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
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.
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.
Table of Contents
1 (The rise of) platforms on top of Kubernetes 2 Cloud-native application challenges 3 Service Building cloud-native applications 4 Environment Deploying cloud-native applications 5 Mul
The author gets right to defining platform engineering around page 16 and gives a succinct definition: "Platform teams take the work done by developers safely to production."
The author then uses a simple but apropos "walking skeleton" example application of a conference organization application that is used throughout the book. This is the kind of application that you'd see being used for HashiConf.
There is a short overview of the pros/cons of various platform options that include local workstation, on premise (bare metal), or cloud managed Kubernetes clusters. Cloud managed clusters are generally recommended but KinD (Kubernetes in Docker) is used as the target testing platform for most examples. There are other options I might have included (k3s, minikube, or docker engine's built in kubernetes cluster) but I don't blame the author for keeping this part light in order to focus on the platform engineering content. By the end of chapter 2 you will have covered most of the basics of hand delivering an application into a Kubernetes cluster without platform engineering. This gives the reader most requisite knowledge for the remainder of the book's contents.
From here the author dives into;
- Service Pipelines - Environment Pipelines - Multi-Cloud - Building a platform - Challenge: Shared apps - Challenge: Enabling experimentation - Measuring Platforms
# Pros
I liked this book quite a bit for the following reasons.
- Strong push for using existing not custom tools in platform engineering solutions. - I really like that practical examples of how to use platform agnostic tools such as Tekton and Dagger.io are included. Being tethered by a particular DevOps platform is one aspect of my industry that I've come to realize is limiting. - Covers of a good number of modern tools used in the industry (ArgoCD, Tekton, Github Actions, Crossplane, Dapr, Knative, et cetera) but is careful not to be bound by any of them. - Author exhibits a good knowledge of the many challenges of platform engineering specific to Kubernetes. Things like service discovery, async, workload isolation, and more have coverage. - Standard Kubernetes release patterns are covered; A/B, Blue/Green, and Canary. - GitOps is covered, specifically one of the most popular choices for Kubernetes GitOps deployments was covered quite well, ArgoCD. - A relatively concise tome of knowledge. Good links to additional information throughout. This means there is not too much recreating the wheel and is appreciated in any technical book. The size of the book is actually a bit misleading as... - The additional github project for the book is brimming with additional content. It can be a book of its own. I like that the author doesn't just copy and paste his examples into the book as filler. This shows respect for the target audience's technical acumen and saves some trees. - Crossplane is covered as the preferred Kubernetes way of doing infrastructure as code. I've been dying to really see more of this in action :)
# Cons
A book covering such a broad topic area is never going to be perfect. Here are some areas I found a bit lacking.
- Management of multiple environment deployments in GitOps workflows that span multiple project repos is lacking clear direction. There is mention of "Golden Paths" but how to develop a such a path is missing. - Secrets management is mentioned a few times (external-secrets and HashiCorp Vault) but not specifically addressed. I find this to be a crucial and often overlooked aspect of a well oiled platform engineering engine for Kubernetes workloads. - There are no clear examples of how to handle brand new applications in the platform engineering workflow. - Often a Kubernetes application is only a small part of the numerous applications that comprise the cluster's overall functionality. Certificate manager, HashiCorp Vault, Cloud specific but integrated services like AWS IAM role integration, External DNS, and more are all part of the services that an application may need to integrate with when being deployed to a cluster. Though a whole book could be written on such things, a chapter on how one might setup the actual platform itself would have been a welcome addition for contextual awareness of such things. - Conspicuously absent from this book is any mention of policy management. Open policy agent and Kyverno don't even have a presence in the index. - Identity management for how you grant developers rights to deploy into specific environments is not well covered, nor is workload identity management covered (Spiffe/Spire as an abstraction to such things for example) - The publisher made the odd choice of a non-black font for the majority of the pdf I reviewed. This is normally something I'd look past but it made reading the digital copy of this book a bit of a visual chore.
When I read a book like this I always ask myself a few questions;
**Question 1:** Did I learn about some new tool or gain a better appreciation about a tool I was already aware of?
**Answer:** Yes! "vcluster" and "Knative Serving" is now on my shortlist of tools to become more familiar with.
**Question 2:** Does the book offer unique insight into my industry that I might not have knowledge of otherwise?
**Answer:** Yes! The author is clearly experienced with delivering Kubernetes workloads and adds his unique perspective and experiences to the table repeatedly throughout the book.
Platform engineering has a bit of a niche audience that the author does a good job catering towards. I am comfortable recommending this book to a mid-level or higher developers or DevOps practitioners looking to better understand some options for streamlining applications into Kubernetes at their organization. The many practical examples provided add good context to the points being made. I believe that this book will help many readers get a better understanding of some of the tools available to them and be a good point of reference for their own efforts. Just beware that this book is not a compendium of all Kubernetes platform engineering knowledge. But it is a very well rounded and good book for most technical professionals' libraries.
In the past, I have tried with others in my team to work towards building a service. A service that we as a team could provide to other teams to make their life easier. Think about provisioning new resources, or configuring them. Providing a ci/cd solution in a way that the team can save time and energy, so the team could focus on their own work. But recently, a new word, term or meaning for this approach came to life: Platform Engineering. But as this is quite a new term, resources like books, videos pop up here and there to jump. These resources all provide a way for explaining what Platform Engineering is. Or what you can do to achieve platform engineering in your organisation. This book is one of those resources: Platform Engineering on Kubernetes by Mauricio Salatino. And this book dives into the Platform Engineering with 1 of the well know "tools" out there Kubernetes. This book is for sure, one of the best resources out there you can find on this topic.
It starts with what any book does, what is it: What is platform engineering and why do you need one. You will then go into some more depth about some of the challenges of cloud native applications. Building and deploying them is one of them. Luckily Mauricio has an example application that is used throught out the book. While you read through the chapters, you will use this application to improve it in your cluster. In one of the chapters it will how you can use Tekton or Dagger as your service pipeline. I personally think a nice thing of this book is that, even though you will see code, the real installations and configurations is coming from documentation in Mauricio's git repository. A dedicated repository contains documentation explaining and how to install and use most of the tools. Very easy for the people that has the electronice version of the book, by clicking on the link. But maybe a bit more challenging for physical copies. And I totally understand why this is done. Otherwise this book would have been massive. But does that mean you can just follow the documents in the git repo and ignore the book? If all the technical parts are in a GIT repo?
No. Following the documentation on the git repository will help you right now. Working with the tool and solving a specific usecase, but you will miss a lot. You will miss all the knowledge and experience Mauricio Salatino has while reading this book. Not only that, you will also miss the journey and how everything fits together in creating a Platform. As they say: It is not the end result that matters, but the journey towards that matters. This book has all of that. And there is a lot more that is explained in this book (Multi cloud, deployment strategies, Dora), but I think it is better that you will buy and read the book. You won't be dissapointed.
For all the nerds out there, Tekton, Dagger, Dappr, Crossplane and ArgoCD are all topics in this book. Or should I have started with this? :)
On one hand, the concept for this book was great & I like how the author aimed at what seemed to be a sweet spot between being too high level & getting distracted by the technical intricacies. Also: all the fundamental concepts are here: what's a platform & platform engineering, what are pipelines & GitOps, ... But I felt like the author did not properly use all these bricks to set up a building. There's no major mental model to set things up conceptually - e.g. infra lifecycle is here, application lifecycle is here as well, but there's very little consideration to how these inter-connect, depend & what are the practical implications.
Also - there's very little on the foundations of self-service & how to start setting it up. There's very little on metrics & assessing quality of platform engineering. There's very little on practicalities of kaizen in this space. There's also a bunch of "typical" challenges related to inertia & speed - hybrid environments, state mgmt, various quality assurance / check loops - this is not covered either.
What IS covered are the most popular Cloud Native tools to started with platform engineering on K8s. The "coverage" is not super-deep (quite the contrary), but seems sufficient to start exploring the topic for real. It's also not locked to any vendor (cloud or not), which is definitely a pro as well.
This book is how to level up yourself as a developer in the modern ages. And that is by the means of leveraging Kubernetes as the backbone along with a set of proven Open Source tools (Computing Foundation). The example application in the book is a well-crafted, and extensive blueprint to delivering a Platform-based App that makes the learning journey practical, yet insightful. Once adapted to the concept, the things lined up well and I felt captivated to experiment on my own. Along the way I put aside a few notes: Kubernetes goes hand in-hand with a sophisticated deployment pipeline. I found the possibility to harness the cloud vendor agnostic development this way of very high value because it appeared to be no longer intimidating. Kubernetes is more welcoming than one can think of, but it is not without its own, unique challenges. The Kubernetes ecosystem is vast, and changes fast. I do not mean this book has a short time span of validity, I would rather say Kubernetes and its surroundings will only get more rounded. To wrap it up, I think the name of the book is not conveying exactly what journey this book takes one onto, and yet that I highly recommend it for enterprise architects and senior developers.
Well it took me time to write this review but I’m happy with the book’s content. For me this is one of the book's standout features is its meticulous approach to explaining Kubernetes concepts. From fundamental principles to advanced topics, each chapter is crafted with clarity and precision, making it accessible to both beginners and seasoned professionals alike. The author's expertise shines through as they demystify complex concepts such as service discovery, load balancing, and autoscaling, providing readers with a solid foundation for building robust platforms.
What sets this book apart is its emphasis on real-world scenarios and best practices, the demo app has multiple challenges that allow the users to understand the different aspects . Through insightful case studies and practical examples, readers gain valuable insights into how Kubernetes is being used in industry-leading organizations to tackle challenges such as microservices orchestration, CI/CD pipelines, and observability. You will learn about tekton pipelines.
"Platform Engineering on Kubernetes" is an indispensable resource for Solutions Architects navigating the intricate landscape of Kubernetes. With a focus on practical implementation, the book seamlessly combines theoretical concepts with real-world scenarios, offering valuable insights for designing and managing robust platforms. The authors address common challenges, providing clear solutions and strategies for optimization, scalability, and troubleshooting. Noteworthy chapters cover advanced topics such as CI/CD integration and security considerations, making the book suitable for both intermediate and experienced professionals. The engaging writing style, practical tips, and inclusion of code snippets enhance its accessibility, transforming it into a comprehensive and practical guide. In conclusion, this book is a must-have for those looking to deepen their understanding of Kubernetes and elevate their platform engineering skills.
Platform Engineering on Kubernetes is an insightful read that combines technical depth with practical guidance. The book unpacks the complexities of Kubernetes, making it accessible for readers across different expertise levels. It shines in its exploration of creating resilient and scalable platforms, with a focus on real-world application scenarios. The inclusion of advanced deployment strategies and security best practices is particularly valuable. A must-read for anyone serious about understanding Kubernetes in a dynamic tech landscape.
it's a good overview of tools but nothing else. I was missing a good example or specific case. Instead, I was presented with a set of open-source tools that are really cool; it's good to know them. However, I could do them outside of the book, too.
It might be 4 stars for some, I did not found what I was looking for, however, there is still value in that book if you have not yet been working with platform idea
Its a great book for the SREs and developers working with the Kubernetes platform in production environments covering a great breadth of cloud native technologies like Knative, Crossplane, CD, Tekton, Jenkins X.
The author draws from his vast experience and provides practical insights on leveraging Kubernetes as a platform platform.
Not deep, but good enough to understand what could platform engineering be in practice. Some reasonable samples, some alternatives. I liked the book a lot.