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.
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:
- Faster development to production speed. Real-time feedback allows developers to make changes to production regularly without waiting to release a new version.
- 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.
- 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.
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?