Platform Engineering on Kubernetes

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Empower your team with platforms built on top of Kubernetes using open source tools. Adopting Kubernetes is complex—especially when you’re working in an organization with multiple teams, deploying to multiple cloud providers, and working with different stacks. Platform Engineering on Kubernetes shows you how to solve these common cloud native problems with open-source tools and emerging best practices from the Kubernetes community. In Platform Engineering on Kubernetes you will learn about: • The principles behind platform engineering and how these apply to Kubernetes • Evaluating and adopting open-source projects to build domain specific platforms • Creating Platform APIs to enable teams to release more software more efficiently • Reducing the cognitive load of a platform for your teams • Measuring your platform initiatives using established software delivery metrics • Package, version, distribute, and deploy with Helm, Tekton, Dagger and Argo CD • Implement a multi-cloud infrastructure strategy using Crossplane • Progressive upgrades with Knative Serving and Argo Rollouts • Enable development teams with standard application-level APIs with Dapr A platform helps your team stay focused on delivering amazing software. But building a reliable platform on top of Kubernetes demands real expertise. Platform Engineering on Kubernetes reveals how to combine multiple popular open-source projects into a custom platform that works for your applications and your teams. It’s the perfect guide for your organization’s journey to Kubernetes, simplifying cloud native development for your dev teams and helping them deliver software faster. Foreword by Jared Watts. About the technology Kubernetes is an amazing orchestration tool, but it’s just the start of your journey to the cloud. To efficiently deliver cloud-native software, your team needs a solid build pipeline, an efficient package manager and distribution mechanism, and APIs that reduce your team’s cognitive load. This book will show you how to build custom platforms on top of Kubernetes—all with open-source tools such as Dapr, Knative, Argo CD and Rollouts, and Tekton. About the book Platform Engineering on Kubernetes starts by clearly defining the elements of a great Kubernetes-based platform. Then, it systematically introduces the tools you’ll need to build a platform that exactly matches your organization’s requirements. Hands-on examples and detailed code guide you through each step. By the end, you’ll be able to create a complete platform to efficiently deliver cloud-native software without being tied to a specific cloud provider or vendor. What's inside • Package, version, distribute, and deploy with Helm, Tekton, Dagger and Argo CD • Implement a multi-cloud infrastructure strategy using Crossplane • Progressive upgrades with Knative Serving and Argo Rollouts • Enable development teams with standard application-level APIs with Dapr About the reader For developers and software architects familiar with the basics of containers and Kubernetes. About the author Mauricio Salatino is currently a Dapr OSS Contributor, a Knative Steering Committee member, and co-lead of the Knative Functions working group.

Author(s): Mauricio Salatino
Edition: 1
Publisher: Manning Publications
Year: 2023

Language: English
Commentary: Publisher's PDF
Pages: 312
City: Shelter Island, NY
Tags: Pipelines; Kubernetes; Knative; Cloud-Native Applications; GitOps; Metrics; Platform Engineering; Crossplane; Keptn Lifecycle Toolkit

Platform Engineering on Kubernetes
dedication
contents
foreword
preface
acknowledgments
about this book
How this book is organized: a roadmap
About the code
liveBook discussion forum
about the author
about the cover illustration
1 (The rise of) platforms on top of Kubernetes
What is a platform, and why do I need one?
Cloud services and domain-specific needs
Your job as an organization
Working with cloud platforms
GCP dashboard, CLIs, and APIs
Why do cloud providers work?
Platforms built on top of Kubernetes
The Kubernetes adoption journey
The CNCF Landscape puzzle
Platform engineering
Why can’t I just buy a platform?
The need for a walking skeleton
Building a Conference application
Differences between a monolith and a distributed set of services
Our walking skeleton and building platforms
Summary
2 Cloud-native application challenges
Running our cloud-native applications
Choosing the best Kubernetes environment for you
Installing the walking skeleton
Installing the Conference application with a single command
Verifying that the application is up and running
Interacting with your application
Inspecting the walking skeleton
Kubernetes deployments basics
Exploring deployments
ReplicaSets
Connecting services
Exploring services
Service discovery in Kubernetes
Troubleshooting internal services
Cloud-native application challenges
Downtime is not allowed
Service’s resilience built-in
Dealing with the application state is not trivial
Dealing with inconsistent data
Understanding how the application is working
Application security and identity management
Other challenges
Linking back to platform engineering
Summary
3 Service pipelines: Building cloud-native applications
What does it take to deliver cloud-native applications continuously?
Service pipelines
Conventions that will save you time
Service pipeline structure
Service pipeline in real life
Service pipeline requirements
Opinions, limitations, and compromises around service pipelines
Service pipelines in action
Tekton in action
Pipelines in Tekton
Tekton advantages and extras
Dagger in action
Should I use Tekton, Dagger, or GitHub Actions?
Linking back to platform engineering
Summary
4 Environment pipelines: Deploying cloud-native applications
Environment pipelines
How did this work in the past, and what has changed lately?
What is GitOps, and how does it relate to environment pipelines?
Steps involved in an environment pipeline
Environment pipeline requirements and different approaches
Environment pipelines in action
Creating an Argo CD application
Dealing with changes the GitOps way
Service + environment pipelines
Linking back to platform engineering
Summary
5 Multi-cloud (app) infrastructure
The challenges of managing infrastructure in Kubernetes
Managing your application infrastructure
Connecting our services to the newly provisioned infrastructure
I’ve heard about Kubernetes operators. Should I use them?
Declarative infrastructure using Crossplane
Crossplane providers
Crossplane compositions
Crossplane components and requirements
Crossplane behaviors
Infrastructure for our walking skeleton
Connecting our services with the new provisioned infrastructure
Linking back to platform engineering
Summary
6 Let’s build a platform on top of Kubernetes
The importance of the platform APIs
Requesting development environments
Platform architecture
Platform challenges
Managing more than one cluster
Isolation and multi-tenancy
Our platform walking skeleton
vcluster for virtual Kubernetes clusters
The platform experience
Linking back to platform engineering
Summary
7 Platform capabilities I: Shared application concerns
What are most applications doing 95% of the time?
The challenges of coupling application and infrastructure
Service-to-service interaction challenges
Storing/reading state challenges
Asynchronous messaging challenges
Dealing with edge cases (the remaining 5%)
Standard APIs to separate applications from infrastructure
Exposing platform capabilities challenges
Providing application-level platform capabilities
Dapr in action
Dapr in Kubernetes
Dapr and your applications
Feature flags in action
Updating our Conference application to consume application-level platform capabilities
Linking back to platform engineering
Summary
8 Platform capabilities II: Enabling teams to experiment
Release strategies fundamentals
Canary releases
Blue/green deployments
A/B testing
Limitations and complexities of using built-in Kubernetes building blocks
Knative Serving: Advanced traffic management and release strategies
Knative Services: Containers-as-a-Service
Advanced traffic-splitting features
Argo Rollouts: Release strategies automated with GitOps
Argo Rollouts canary rollouts
Argo Rollouts blue/green deployments
Argo Rollouts analysis for progressive delivery
Argo Rollouts and traffic management
Linking back to platform engineering
Summary
9 Measuring your platforms
What to measure: DORA metrics and high-performant teams
The integration problem
How to measure our platform: CloudEvents and CDEvents
CloudEvents for continuous delivery: CDEvents
Building a CloudEvents-based metrics collection pipeline
Data collection from event sources
Knative Eventing event sources
Data transformation to CDEvents
Metrics calculation
Working example
Keptn Lifecycle Toolkit
What’s next on the platform engineering journey?
Final thoughts
Summary
index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y