Let's talk about website deployment. We've come a long way from using File Transfer Protocol (FTP) to upload files to a web server. Web developers use continuous integration and continuous deployment (CI/CD) to automate much of the development to production steps.

Continuous Integration and Continuous Delivery (CI/CD) Fundamentals
CI/CD automates your builds, testing, and deployment so you can ship code changes faster and more reliably. Learn more about CI/CD fundamentals.
GitLab CI/CD | GitLab
Learn how to use GitLab CI/CD, the GitLab built-in Continuous Integration, Continuous Deployment, and Continuous Delivery toolset to build, test, and deploy your application.

Note: in these two examples, there is a slight difference in the "CD" part of CI/CD, which stems from deployment vs. delivery. Delivery is subtly different, with more human checks and approvals along the way to production, but they are the same for our purposes.

You don't upload source code to a web server to launch a website. Well, at least you don't have to. A good website has a continuous deployment model based on a version control system. CI/CD created the following advantages:

  1. Faster development to production speed. Real-time feedback allows developers to make changes to production regularly without waiting to release a new version.
  2. More website stability and reliability. Automated, continuous testing ensures that the production website remains stable. Web developers work in real-time with error checking on a copy of the entire stack with near-instant end-to-end feedback as we code.
  3. Efficient business operations. Organizations can focus those brilliant minds on innovation and common sense by removing humans from manual tasks.

Next, let's talk about content delivery, the big hype around the term "serverless," and why many website developers do a lot of their business at the edge.

As a user, when you visit a website, your web browser is actually downloading many files and other information in the form of requests and responses. The first requests establish security protocols, identify clients and capabilities, and provide the website's skeleton. Once your browser receives responses, it will then make more follow-on requests for image files, javascript, and those responses will let the browser construct the website for you to use.

Data flies back and forth between your device's browser client and the server(s) it sends requests. Some data is big (like a video or a large photograph), and some come in tiny pieces. Furthermore, some data contains instructions for your client to compute or render something.

There are many tradeoffs to make as a web designer to decide what work should be done by the client and what work should be done before sending it to the client. Also, for really heavy video files that need a lot of bandwidth, how can those be provided more innovatively to reduce bandwidth or improve the user experience?


Low-Latency Content Delivery Network (CDN) - Amazon CloudFront - Amazon Web Services
Amazon CloudFront is a content delivery network (CDN) service that helps you distribute your static and dynamic content quickly and reliably with high speed performance, security, and developer ease-of-use.
YouTube Data API | Google Developers
Add YouTube features to your application, including the ability to upload videos, create and manage playlists, and more.