Microservices

  • Kubernetes makes it easy to deploy a lot of diverse applications
  • Those applications can be monoliths that don’t have anything to do with each other, or microservices, small services that make up one application
  • The microservices architecture is increasingly popular
  • This approach allows developers to split up the application in multiple independent parts
  • Having to manage microservices can put an operational strain on the engineering team
  • Between microservices there is usually:
    • No encryption
    • No retries, no failover
    • No intelligent load balancing
    • No routing decisions
    • No metrics / logs / traces
    • No access control
  • Work around this by using a proxy container, called a Sidecar, which can give you:
    • Encryption between apps
    • Retries when connection fails
    • Intelligent load balancing
  • You can add a management interface for the Sidecars and have:
    • Routing decisions
    • Metrics / logs / traces
    • Access control

The above you can automate with Istio (https://istio.io/docs/concepts/what-is-istio/)