liveBook · Manning

What you will learn in Platform Engineering on Kubernetes

by Mauricio Salatino

Chapter by chapter

Chapter 1: (The rise of) platforms on top of Kubernetes

1.1 What is a platform, and why do I need one? · 1.1.1 Cloud services and domain-specific needs · 1.1.2 Your job as an organization · 1.1.3 Working with cloud platforms · 1.1.4 GCP dashboard, CLIs, and APIs · 1.1.5 Why do cloud providers work? · 1.2 Platforms built on top of Kubernetes · 1.2.1 The Kubernetes adoption journey · 1.2.2 The CNCF Landscape puzzle · 1.3 Platform engineering · 1.3.1 Why can’t I just buy a platform? · 1.4 The need for a walking skeleton · 1.4.1 Building a Conference application · 1.4.2 Differences between a monolith and a distributed set of services · 1.4.3 Our walking skeleton and building platforms · 1.5 Summary

What you learn in chapter 1 →

Chapter 2: Cloud-native application challenges

2.1 Running our cloud-native applications · 2.1.1 Choosing the best Kubernetes environment for you · 2.1.2 Installing the walking skeleton · 2.2 Installing the Conference application with a single command · 2.2.1 Verifying that the application is up and running · 2.2.2 Interacting with your application · 2.3 Inspecting the walking skeleton · 2.3.1 Kubernetes deployments basics · 2.3.2 Exploring deployments · 2.3.3 ReplicaSets · 2.3.4 Connecting services · 2.3.5 Exploring services · 2.3.6 Service discovery in Kubernetes · 2.3.7 Troubleshooting internal services · 2.4 Cloud-native application challenges · 2.4.1 Downtime is not allowed · 2.4.2 Service’s resilience built-in · 2.4.3 Dealing with the application state is not trivial · 2.4.4 Dealing with inconsistent data · 2.4.5 Understanding how the application is working · 2.4.6 Application security and identity management · 2.4.7 Other challenges · 2.5 Linking back to platform engineering · 2.6 Summary

What you learn in chapter 2 →

Chapter 3: Service pipelines: Building cloud-native applications

3.1 What does it take to deliver cloud-native applications continuously? · 3.2 Service pipelines · 3.3 Conventions that will save you time · 3.4 Service pipeline structure · 3.4.1 Service pipeline in real life · 3.4.2 Service pipeline requirements · 3.4.3 Opinions, limitations, and compromises around service pipelines · 3.5 Service pipelines in action · 3.5.1 Tekton in action · 3.5.2 Pipelines in Tekton · 3.5.3 Tekton advantages and extras · 3.5.4 Dagger in action · 3.5.5 Should I use Tekton, Dagger, or GitHub Actions? · 3.6 Linking back to platform engineering · 3.7 Summary

What you learn in chapter 3 →

Chapter 4: Environment pipelines: Deploying cloud-native applications

4.1 Environment pipelines · 4.1.1 How did this work in the past, and what has changed lately? · 4.1.2 What is GitOps, and how does it relate to environment pipelines? · 4.1.3 Steps involved in an environment pipeline · 4.1.4 Environment pipeline requirements and different approaches · 4.2 Environment pipelines in action · 4.2.1 Creating an Argo CD application · 4.2.2 Dealing with changes the GitOps way · 4.3 Service + environment pipelines · 4.4 Linking back to platform engineering · 4.5 Summary

What you learn in chapter 4 →

Chapter 5: Multi-cloud (app) infrastructure

5.1 The challenges of managing infrastructure in Kubernetes · 5.1.1 Managing your application infrastructure · 5.1.2 Connecting our services to the newly provisioned infrastructure · 5.1.3 I’ve heard about Kubernetes operators. Should I use them? · 5.2 Declarative infrastructure using Crossplane · 5.2.1 Crossplane providers · 5.2.2 Crossplane compositions · 5.2.3 Crossplane components and requirements · 5.2.4 Crossplane behaviors · 5.3 Infrastructure for our walking skeleton · 5.3.1 Connecting our services with the new provisioned infrastructure · 5.4 Linking back to platform engineering · 5.5 Summary

What you learn in chapter 5 →

Chapter 6: Let’s build a platform on top of Kubernetes

6.1 The importance of the platform APIs · 6.1.1 Requesting development environments · 6.2 Platform architecture · 6.2.1 Platform challenges · 6.2.2 Managing more than one cluster · 6.2.3 Isolation and multi-tenancy · 6.3 Our platform walking skeleton · 6.3.1 vcluster for virtual Kubernetes clusters · 6.3.2 The platform experience · 6.4 Linking back to platform engineering · 6.5 Summary

What you learn in chapter 6 →

Chapter 7: Platform capabilities I: Shared application concerns

7.1 What are most applications doing 95% of the time? · 7.1.1 The challenges of coupling application and infrastructure · 7.1.2 Service-to-service interaction challenges · 7.1.3 Storing/reading state challenges · 7.1.4 Asynchronous messaging challenges · 7.1.5 Dealing with edge cases (the remaining 5%) · 7.2 Standard APIs to separate applications from infrastructure · 7.2.1 Exposing platform capabilities challenges · 7.3 Providing application-level platform capabilities · 7.3.1 Dapr in action · 7.3.2 Dapr in Kubernetes · 7.3.3 Dapr and your applications · 7.3.4 Feature flags in action · 7.3.5 Updating our Conference application to consume application-level platform capabilities · 7.4 Linking back to platform engineering · 7.5 Summary

What you learn in chapter 7 →

Chapter 8: Platform capabilities II: Enabling teams to experiment

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 · 8.5 Summary

What you learn in chapter 8 →

Chapter 9: Measuring your platforms

9.1 What to measure: DORA metrics and high-performant teams · 9.1.1 The integration problem · 9.2 How to measure our platform: CloudEvents and CDEvents · 9.2.1 CloudEvents for continuous delivery: CDEvents · 9.2.2 Building a CloudEvents-based metrics collection pipeline · 9.2.3 Data collection from event sources · 9.2.4 Knative Eventing event sources · 9.2.5 Data transformation to CDEvents · 9.2.6 Metrics calculation · 9.2.7 Working example · 9.3 Keptn Lifecycle Toolkit · 9.4 What’s next on the platform engineering journey? · 9.5 Final thoughts · 9.6 Summary

What you learn in chapter 9 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.