Compute ¶
Containers and Serverless ¶
Overview
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
Security
- IAM Authenticator
Networking
- Kubernetes Nginx Ingress Controller
- Linked2 (Service Mesh)
Monitoring & Logs
- fluentd daemonset for elasticsearch logs
- kube-state-metrics
- prometheus node-exporter
Distributed Tracing
- jaeger
- opencensus
UI Dashboard
- kube-ops-view
- kubernetes-dashboard
- weave-scope
Availability & Reliability
- autoscaler
- Velero (Backups)
Utilities
- onetimesecret