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

Developing in a cloud-friendly way

It’s always good to have a clear understanding of the cloud provider and platform you are using. This involves the services you are using as well as the delivery and service model. Although development in the cloud is not really the main focus of this book, we will discuss a few best practices that have a direct impact on the delivery process.

Loose coupling

When building cloud-native applications, you should always aim for loose coupling. This means that you should avoid tight dependencies between your services and should use asynchronous communication between your services. Doing this will make it easier to scale your services independently. Furthermore, it will also make it easier to replace and deploy new versions of your services. This also means that you should avoid using shared databases, opting for event-driven architectures instead. This also avoids inter-service dependencies and simplifies your deployment process.

12-factor...