Containers and Serverless ¶
In order to serve Client application workloads we propose to implement Kubernetes, and proceed to containerize all application stacks whenever it’s the best solution (we’ll also consider AWS Lambda for a Serverless approach when it fits better). Kubernetes is an open source container orchestration platform that eases the process of running containers across many different machines, scaling up or down by adding or removing containers when demand changes and provides high availability features. Also, it serves as an abstraction layer that will give Client the possibility, with minimal effort, to move the apps to other Kubernetes clusters running elsewhere, or a managed Kubernetes service such as AWS EKS, GCP GKE or others.
Clusters will be provisioned with Kops and/or AWS EKS, which are solutions meant to orchestrate this compute engine in AWS. Whenever possible the initial version deployed will be the latest stable release.
Kubernetes addons ¶
Some possible K8s addons could be
- IAM Authenticator
- Kubernetes Nginx Ingress Controller
- Linked2 (Service Mesh)
Monitoring & Logs
- fluentd daemonset for elasticsearch logs
- prometheus node-exporter
Availability & Reliability
- Velero (Backups)