Book Image

Strategizing Continuous Delivery in the Cloud

By : Garima Bajpai, Thomas Schuetz
Book Image

Strategizing Continuous Delivery in the Cloud

By: Garima Bajpai, Thomas Schuetz

Overview of this book

Many organizations are embracing cloud technology to remain competitive, but implementing and adopting development processes while modernizing a cloud-based ecosystem can be challenging. Strategizing Continuous Delivery in Cloud helps you modernize continuous delivery and achieve infrastructure-application convergence in the cloud. You’ll learn the differences between cloud-based and traditional delivery approaches and develop a tailored strategy. You’ll discover how to secure your cloud delivery environment, ensure software security, run different test types, and test in the pre-production and production stages. You’ll also get to grips with the prerequisites for onboarding cloud-based continuous delivery for organizational and technical aspects. Then, you’ll explore key aspects of readiness to overcome core challenges in your cloud journey, including GitOps, progressive delivery controllers, feature flagging, differences between cloud-based and traditional tools, and implementing cloud chaos engineering. By the end of this book, you’ll be well-equipped to select the right cloud environment and technologies for CD and be able to explore techniques for implementing CD in the cloud.
Table of Contents (18 chapters)
1
Part 1: Foundation and Preparation for Continuous Delivery in the Cloud
6
Part 2: Implementing Continuous Delivery
11
Part 3: Best Practices and the Way Ahead

Securing your CI/CD environment

Let’s assume that we want to deliver some application our company is maintaining and that as a modern company, we are using CI/CD in a cloud environment, as shown in the following figure:

Figure 8.1 – Example of a CI/CD environment

Figure 8.1 – Example of a CI/CD environment

The preceding figure shows a simplified environment that is hosted in the cloud and was created using IaC. We assume that application development and deployment processes are mainly source-code-driven and that we are using a source code management (SCM) system, such as Git. We have a CI system that listens to changes; when something changes, it builds and tests software and pushes this to an artifact store. We have a GitOps controller in place, which listens for changes, and when new artifacts arrive or the repository gets updated, it deploys the application. This is a very simplified process for the sake of finding some attack vectors. In a real-world scenario, this might not fit...