← All videos

Engineering video

17:26 · 15 August 2024

how to deliver end-to-end like a Senior Dev

Chapters 8 sections

  1. 0:00Introduction to End-to-End Delivery
  2. 0:34Source Control and Repositories
  3. 1:52The Build Pipeline
  4. 4:16Artifacts and Deployment Pipelines

Key concepts in this video:

1. Source Control and Git Workflows

Teams manage codebases using source control repositories (like GitHub, GitLab) and Git flows such as trunk flow, feature flow for mid-sized teams, and Git flow for complex enterprises.

Watch section from 1:00 →

2. Build Pipelines

A build pipeline automates the transformation of source code into a deployable artifact by executing steps in a specific order: code linting, running unit tests, TypeScript compilation, and module bundling/minification via Webpack.

Watch section from 2:00 →

3. Artifact Repositories

Professional software companies store versioned deployable versions of their applications—tagged by commit hashes or semantic versioning—in artifact repositories to enable quick rollbacks without rebuilding from source control.

Watch section from 4:16 →

4. Static Front-End Deployment

Static client applications are deployed by uploading the build artifact directly to block storage (like S3) and serving them globally through a Content Delivery Network (CDN) that routes users based on lowest latency.

Watch section from 6:00 →

5. Server-Side Rendering and Compute

When introducing server-side rendering, the deployment requirements shift from static storage to compute instances that can execute Node.js server code and handle dynamic requests.

Watch section from 10:00 →

6. Zero-Downtime Deployments

To avoid downtime caused by in-place server restarts, mature teams use zero-downtime deployment strategies like blue-green deployments combined with a load balancer to safely switch traffic to a new server version.

Watch section from 13:41 →

Transcript

It all starts with some code on your, let's say, machine. If this is a front-end, I would assume as a by-product, as an end-product of this, we would have some JS code. What happens next? You'd push your code to GitHub, let's say. Somehow it'll end up deployed in Netlify, right? Something like Netlify or Vercel, or whatever, the one-click deployment. But again, this will make you look like a junior.