Afterword

Ubiquitous Platform

Today, Kubernetes is the most popular container orchestration platform. It is jointly developed and supported by all major software companies and offered as a service by all the major cloud providers. It supports Linux and Windows systems and all major programming languages. Kubernetes can orchestrate and automate stateless and stateful applications, batch jobs, periodic tasks, and serverless workloads. It is the new application portability layer and the common denominator among everybody on the cloud. If you are a software developer targeting the cloud, the odds are that Kubernetes will become part of your everyday life sooner or later.

Hybrid Responsibilities

In recent years, more and more of the application’s nonfunctional requirements are provided as capabilities by cloud-native platforms. Distributed application responsibilities such as provisioning, deployment, service discovery, configuration management, job management, resource isolation, and health checks are all implemented by Kubernetes. With the popularization of microservices architecture, implementing even a simple service will require a good understanding of distributed technology stacks and container orchestration fundamentals. As a consequence, a developer has to be fluent in a modern programming language to implement the business functionality, and equally fluent in cloud-native technologies to address the nonfunctional requirements.

What We Covered

In this book, we covered 24 of the most popular patterns from Kubernetes, grouped as the following:

  • Foundational patterns represent the principles that containerized applications must comply with in order to become good cloud-native citizens. Regardless of the application nature, and the constraints you may face, you should aim to follow these guidelines. Adhering to these principles will help ensure that your applications are suitable for automation on Kubernetes.

  • Behavioral patterns describe the communication mechanisms and interactions between the Pods and the managing platform. Depending on the type of the workload, a Pod may run until completion as a batch job, or be scheduled to run periodically. It can run as a daemon service or singleton. Picking the right management primitive will help you run a Pod with the desired guarantees.

  • Structural patterns focus on structuring and organizing containers in a Pod to satisfy different use cases. Having good cloud-native containers is the first step, but not enough. Reusing containers and combining them into Pods to achieve a desired outcome is the next step.

  • Configuration patterns cover customizing and adapting applications for different configuration needs on the cloud. Every application needs to be configured, and no one way works for all. We explore patterns from the most common to the most specialized.

  • Advanced patterns explore more complex topics that do not fit in any of the other categories. Some of the patterns, such as Controller are mature—Kubernetes itself is built on it—and some are still new and might change by the time you read this book. But these patterns cover fundamental ideas that cloud-native developers should be familiar with.

Final Words

Like all good things, this book has come to an end. We hope you have enjoyed reading this book and that it has changed the way you think about Kubernetes. We truly believe Kubernetes and the concepts originating from it will be as fundamental as object-oriented programming concepts are. This book is our attempt to create the Gang of Four Design Patterns but for container orchestration. We hope this is not the end, but the beginning for your Kubernetes journey; it is so for us.

Happy kubectl-ing.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset