Hands-On Cloud Native Application

Since the wide adoption of the container technology and cloud computing, the Cloud Native application has become one of the most popular engineering practices. Now, even programmers with very few infrastructure knowledge can launch a great fleet of cloud native applications for serving millions of requests. The practical book shows you how to make it happen.

Through the book, you will learn concrete examples, minimal theory, and how to build and deliver a typical React-based front-end and Flask-based back-end to cloud platform.

Table of Content

Preface

Chapter 1. The Landscape of Cloud Native Application

Part I

  • Craft Toolkit
    • Setup Homebrew
    • Setup Git
    • Setup Python
    • Setup NodeJS
    • Setup Terraform
    • Setup Virtualbox
    • Setup Minikube
    • Setup Docker
    • Setup Docker-Compose
    • Setup Helm

Chapter 2. Getting Started with React

Chapter 3. Play around with Containers

Chapter 4. Build Front End App

  • Before We Start the Development
  • Overview
  • Wrapping Up
  • References

Chapter 5. Build a Microservice

  • What is HTTP Framework?
  • Why use HTTP Framework?
  • Essential Knowledge
    • ASGI v/s WSGI
    • Request & Response
  • Getting Started
    • Project Setup
    • Run a Server
    • Create Schema
    • Add GraphQL Endpoint
    • Connect to a PostgreSQL Database
    • Add WebSockets Support
    • Add OAuth2 Login
    • Add Dockerfile
  • Summary
  • References

Chapter 6. Play around with GraphQL

Part II

Chapter 7. Play Around With Kubernetes

  • What is Kubernetes?
  • Why use Kubernetes?
  • Essential Knowledge
    • Master
    • Nodes
    • Pods
    • Deployments
    • StatefulSets
    • Volume
  • Play around with Minikube
    • Install Minikube
    • Create a Cluster
    • Run a Pod
    • Inspect the Pod
    • Kill the Pod
    • Apply a Deployment
    • Apply a StatefulSet
  • Summary
  • References

Chapter 8. Create Kubernetes Cluster on the Cloud

  • What is Kubernetes Cluster on the Cloud?
  • Why use Kubernetes Cluster on the Cloud?
  • Essential Knowledge
    • VPC, Subnet, Routing Tables
    • Security Group
    • Kubernetes Cluster
    • Load Balancer
  • Create Kubernetes Cluster the Hard Way
    • Create Kubernetes Cluster on AWS
    • Create Kubernetes Cluster on GKE
    • Create Kubernetes Cluster on Azure
    • Create Kubernetes Cluster on DigitalOcean
  • Summary
  • References

Chapter 9. Advance Use of Kubernetes

  • The Missing Parts
  • Essential Knowledge
    • Role, ClusterRole
    • Namespace
    • Network Policy
    • Resource Quota
    • ConfigMap
    • Secret
    • Ingress
    • Storage Class
  • Play Around with Kubernetes
  • Summary
  • References

Chapter 10. Write a Helm Chart

  • What is Helm?
  • Why use Helm?
  • Essential Knowledge
  • Write a Helm Chart
  • Play around with Helm
  • Summary
  • References

Chapter 11. GitOps (TODO)

  • What is GitOps
  • Why use GitOps
    • Single Source of Truth
    • Declarative Architecture
    • Version Control
    • No kubectl, no scripts
  • Essential Knowledge
    • Continuous Integration
    • Continuous Delivery
    • GitOps Principle
  • GitOps Practise

Chapter 12. Lightweight Option: Platform-as-a-Service

  • What is

Chapter 13. Lightweight Option: Function-as-a-Service

Part III

Chapter 14. Collect Logs by Fluentd

  • What are Logs?
  • Why Do We Need Logs?
  • Essential Knowledge
  • Manage Logs
  • Build Logging Pipeline
  • Summary
  • References

Chapter 15. Collect Metrics by Prometheus

  • What are Metrics?
  • Metrics in Kubernetes
    • Cluster Metrics
    • Deployment Metrics
    • Pod Metrics
    • Runtime Metrics
    • Web Application Metrics
    • Background Application Metrics
    • Batch Application Metrics
  • Why Do We Need Metrics?
  • Emit Metrics
  • Collect Metrics
  • Summary
  • References

Chapter 16. Build a Monitoring Dashboard by Grafana

  • What is Monitoring Dashboard?
  • Why Use Monitoring Dashboard?
  • Essential Knowledge
    • Liveness
    • Readyness
    • Probe
    • Query
    • Dashboard
    • Panel
    • Chart
  • Metric Analytics
  • Build a Monitoring Dashboard
    • Deploy Grafana
    • Provisioning of Datasources
    • Provisioning of Dashboards
    • Up and Running
    • Organize Dashboards
  • Summary
  • References

Chapter 17. Build a Status Site

Chapter 18. Canary Deployment

Chapter 19. Chaos Engineering

Chapter 20. Automate Toil Work by Python