Название: Road to Kubernetes (Final Release) Автор: Justin Mitchel Издательство: Manning Publications Год: 2024 Страниц: 304 Язык: английский Формат: pdf (true) Размер: 28.6 MB
Learn how and why to use Kubernetes to deploy projects of any size.
“Should we use Kubernetes?” This unique guide condenses 15 years of deployment experience to help answer that very question. It teaches you sustainable deployment practices you can use with any programming language and nearly any kind of modern app. You’ll create portable and containerized applications that can move across deployment options and cloud providers and see why Kubernetes is often the right choice for both small projects and big enterprise software.
With Road to Kubernetes, we start with creating simple Python and Node.js web applications. These applications will stay with us for our entire journey so we can learn about all the various tools and techniques to deploy them. From there, we start using secure shells (SSH) and modern version control by way of Git with self-managed environments, self-managed repositories, and self-managed deployments.
After we understand the self-managed way of deploying, we move to automation with GitHub, GitHub Actions, and even Ansible. GitHub is a popular third-party-managed git repository and code hosting service that also allows us to run one-off code workflows called GitHub Actions. These workflows are short-lived computing environments that are useful to build, test, and deploy our code and help us to continuously integrate and deliver (CI/CD) our apps. Ansible helps us automatically configure our deployment environments (e.g., virtual machines) by declaring what software we need to run our applications.
While Ansible is great at configuring our environments after the fact, we started adopting a way to preconfigure our environments into portable and manageable runtime environments called containers. Containers and the process of containerization were pioneered by Docker and are often known as Docker Containers. These containers are essentially apps themselves that include a small operating system to run our code–think of it as a tiny Linux OS that runs our Python or Node.js app that can be easily moved around from system to system with no additional configuration.
After learning about building and running containers, we learned how to manage deploying different kinds of containers because applications rarely exist in a vacuum–web apps often need databases to run. Running and managing more than one container at a time is called container orchestration and is exactly what Docker Compose, Docker Swarm, HashiCorp Nomad, and, of course, Kubernetes do. While each tool handles containers differently, we’ll look at a number of ways these tools intersect and when and where you might use them.
Inside Road to Kubernetes you’ll learn how to:
Manage git repositories on self-hosted or cloud platforms like GitHub Deploy Python and Node.js apps via cloud-based virtual machines with Git Automate virtual machine configuration and deployment with Ansible Containerize and deploy apps with Docker and Docker Compose Run containers on virtual machines without container orchestration Push and host containers with Docker Hub registry Deploy containerized apps on Kubernetes Implement public and private apps on Kubernetes Configure Kubernetes manifests for Pods, Deployments, Services, and more Provision and configure load balancers for HTTP & HTTPs traffic Use CI/CD techniques with GitHub Actions Deploy Docker Swarm and HashiCorp Nomad to run containers as alternatives to Kubernetes
If you’ve ever thought that Kubernetes was too complex for your deployment needs—think again! This one-of-a-kind guide answers all the deployment questions you might be asking, like “what is container orchestration”, “is Kubernetes right for simple deployments”, and “how can I reliably scale my containerized apps on the cloud”.
about the technology: Choosing Kubernetes as your deployment platform affects everything from application design to ongoing operations concerns like observability and security. Success depends on having all the facts before you start down the Kubernetes road. This book will guide you every step of the way so you can make informed choices about when, how, and why to choose Kubernetes for your next rollout.
about the book: Road to Kubernetes provides a sophisticated framework for evaluating Kubernetes as an enterprise application deployment. You’ll learn the ins and outs of this powerful platform as you deploy a web application to a virtual machine, containerize it, and explore orchestration options. Along the way, you’ll automate build, test, and deploy using GitHub Actions and discover best practices that you can apply to nearly any stack. You’ll end up with a crystal-clear mental model of how to deploy, scale, and maintain applications on Kubernetes.
Who should read this book: If you are unsure if Kubernetes is right for you or your project, this is the book for you. Ideally, you have some basic knowledge of writing Python or javascript code, so you have the foundation to start with the practical examples in this book.
If you are unsure if containers or Docker containers are right for your applications, this book is also for you. Containers are an essential element of Kubernetes, allowing you to create portable applications that can run on any computer, cloud, on-prem servers, Raspberry Pis, or some mixture of all of these. Containers can help make your apps scale. Kubernetes is one of the tools to help ensure that scale is possible, but it’s not the only one. We also learn about Docker Compose, Docker Swarm, and HashiCorp Nomad to run containers.