Building applications for Kubernetes is both a challenge and an opportunity-a challenge because the options and complexity to develop for Kubernetes are evolving rapidly, an opportunity because, if done right, your applications will go into production quicker, scale easier, and run smoother.

This book outlines the impact of Containers and Kubernetes on modern software development and discusses the application frameworks to pick from, how to design an application, and how to develop for and on Kubernetes. You are guided through the application life cycle: development, build, and deployment into the runtime phase. In each phase, you see how it ties to Kubernetes and how to leverage its manifold capabilities. Applications will be more lightweight, easier to maintain, and simpler to operate by just focusing on the business logic. This book provides a strong technical foundation in modern software development and operations. Practical examples show you how to apply the concepts and teach you the full potential of Kubernetes.
What You Will Learn
Get hands-on experience developing, building, and deploying software to Kubernetes Develop your software to get the best out of Kubernetes Focus on business logic while leveraging Kubernetes services Design application components of different granularity from application server-based services to lightweight services Automate deployments and Day 2 operations
Who This Book Is For
Developers who want to close the gap between development and the production environment in order to gain high delivery performance in terms of throughput and stability. This book also targets application operations and DevOps engineers.

¿Benjamin Schmeling is an IT professional with more than 15 years of experience in developing, building, and deploying Java-based software. Today, he works as a solution architect for Red Hat, with a passion for the design and implementation of cloud-native applications running on Kubernetes-based container platforms.


Maximilian Dargatz has been working in the IT industry for more than 10 years and consults clients on their journey to modernize applications for containers and Kubernetes. He currently works for IBM as a solution architect, working with large German clients on their cloud adoption and how to apply DevOps concepts.


Chapter 1: The Impact of Kubernetes on development


Chapter Goal: Understand the foundations of Kubernetes and how it disrupted development and operations


No of pages 30


Sub -Topics


  1. Introduction to Kubernetes
  2. Services provided by Kubernetes (Infrastructure, Cluster, Application, Developer)
  3. Why change development behaviour?

  1. How Kubernetes and DevOps fit together

Chapter 2: Application Design Decisions


Chapter Goal: Discuss various design decisions before you start with development


No of pages: 40


Sub - Topics


  1. Domain Driven Design
  2. Microservices

  1. Choosing the right programming platform (Quarkus, Javascript, Go ... (Python :)

  1. Application Deployment Models (App Server, Modular App Server, e.g. Galleon, Bootable Jar, Serverless, Function as a Service)

Chapter 3: Developing on and with Kubernetes


Chapter Goal: Learn different development models and options


No of pages : 50


Sub - Topics:


  • Local Development, Build and Testing

    1. Hybrid Models (local coding / remote build / remote test, local coding / local build / remote test)

    1. Coding on Kubernetes

    Chapter 4: Writing Kubernetes-native Applications


    Chapter Goal: Explain how to leverage Kubernetes API, Resources, CRDs


    No of pages: 20


    Sub - Topics:


    1. Using the Kubernetes API to make the application control the infrastructure


    2. Create Custom Resource Definitions to interact with the application


    3. Use Custom Resource Definitions to store application data


    Chapter 5: Kubernetes-native CI/CD


    No of pages: 30


    Chapter Goal: How to Leverage Kubernetes for Build (pipelines)


    1. Staging environments
    2. Container Builds

    1. Kubernetes Build Pipelines

    1. Continuous Deployment

  • GitOps

  • Chapter 6: Reproducible Deployments and Operations to Kubernetes


    No of pages: 30


    Chapter Goal: Show different ways of packaging and deploying applications and separating environment-specific configuration


    1. HELM
    2. What are Operators?
    3. Writing your own Operator
    4. Configuration Management

    Chapter 7: Running Distributed Applications


    No of pages: 30


    Chapter Goal: Explain the different runtime aspects and how to use application service to shift technical responsibilities to the platform


    1. Composing applications from services
    2. Databases
    3. Leveraging platform services to purify business logic (Service Mesh, Prometheus, EFK)
    4. Kubernetes-native Middleware

    Chapter 8: Managing the Application Lifecycle


    No of pages: 20


    Chapter Goal: Illustrate how to scale an application, release new features, manage traffic and make services more resilient in a distributed environment.


    1. Scaling your application
    2. Serverless / Function as a Service
    3. Canary Releases, Blue/Green Deployment, Dark Releases, A/B Testing
    4. Improving robustness and resiliency