8 Platform capabilities II: Enabling teams to experiment

 

This chapter covers

  • Enabling teams by providing release strategies capabilities
  • Identifying the challenges of using Kubernetes built-in mechanisms to implement release strategies
  • Using Knative Serving advanced traffic management to release our cloud-native applications
  • Leveraging Argo Rollouts out-of-the-box release strategies

In chapter 7, we looked at how enabling development teams with application-level APIs can reduce the cognitive load on developers to solve common distributed application challenges while at the same time enabling platform teams to wire and configure these components to be accessible for applications to consume. We also evaluated using feature flags to enable developers to keep releasing new features and enable other teams closer to the business to decide when these new features are exposed to customers.

In this chapter, we will look at how introducing different release strategies can help the organization catch errors earlier in the process, validate assumptions, and enable teams to experiment with different versions of the same application running simultaneously.

8.1 Release strategies fundamentals

8.1.1 Canary releases

8.1.2 Blue/green deployments

8.1.3 A/B testing

8.1.4 Limitations and complexities of using built-in Kubernetes building blocks

8.2 Knative Serving: Advanced traffic management and release strategies

8.2.1 Knative Services: Containers-as-a-Service

8.2.2 Advanced traffic-splitting features

8.3 Argo Rollouts: Release strategies automated with GitOps

8.3.1 Argo Rollouts canary rollouts

8.3.2 Argo Rollouts blue/green deployments

8.3.3 Argo Rollouts analysis for progressive delivery

8.3.4 Argo Rollouts and traffic management

8.4 Linking back to platform engineering

Summary