From the course: Google Cloud Professional Cloud Architect Cert Prep: 4 Analyzing and Optimizing Technical and Business Processes

Continuous delivery: An introduction

- [Instructor] Let's walk through a continuous delivery workflow using the latest cloud native ecosystem tools. To start off with, you would develop in an environment. Oftentimes this would be a cloud-based environment like Cloud9 on AWS or GitHub Codespaces on the Azure platform. And the reason for using these cloud-native environments is that they give you the ability to use all of the developer tools that will later be in the production environment. So you have a very similar one-to-one environment. Now, when you're building things, you'll push not only the software but the infrastructure as code as well. And the infrastructure as code allows you to define every single aspect of what's happening in a cloud-based environment or a Kubernetes-based environment. And notice here that when you push the changes that the build system will then go through and test your code, merge the code, and this build will then automatically go to the provisioning step. And what's powerful about infrastructure as code is that it's item potent. And what this means is that it only makes a change if a change is necessary, but it also makes the state always be in the same condition. So if you initially create the infrastructure when you do another, maybe a second build, it won't create the infrastructure again because it'll notice that, let's say this S3 bucket here, has already been created so it won't need to to make that change. Now, likewise, if you mutate it, if you go to your infrastructure as code, you make a small change it would then go through here and create a new bucket for you. Finally, if you need to clean up your resources, it's easiest to do this with infrastructure as code. Now, finally, another thing you can do that's pretty powerful here is you can do whatever actions you'd like. So you can go ahead and and say, instead of a delete action, you could say, I want to create a new infrastructure here and I want to build out in this particular environment a stage environment. And this staging environment is where I'll do my load testing. And then you could likewise make another fork of the code and the infrastructure as code and then create a production environment. So this idea of using the infrastructure itself to define the system and to make item-potent changes is a huge part of continuous delivery. And this allows you to constantly push the changes into a new environment. It doesn't necessarily mean that you will always push that into a production environment without a human being involved, but it does actually allow you to make pushes to multiple environments, and this is really the key concept in continuous delivery.

Contents