Containerized Microservices on Kubernetes
About the project
The production platform behind ComDigital's products, run on Kubernetes with a 99.9% uptime target.
Problem and purpose
ComDigital's products (a marketing data platform, an eSIM e-commerce platform and a vehicle valuation platform) needed one production platform that stays available, can be observed and ships releases without downtime.
My role and responsibility
I worked on the production platform behind these products: the containerised services, the central logging and monitoring, and the automated CI/CD pipelines.
Architecture and key decisions
- Python and Node.js microservices on Kubernetes and Docker; Kubernetes restarts and reschedules a failed container or node
- Health checks keep an unhealthy instance out of traffic until it recovers
- Multi-stage CI/CD pipelines build, test and promote each release, and rolling updates give zero-downtime releases
- Graylog collects logs from every service and Grafana dashboards track uptime, error rates and latency against the 99.9% goal, with alerts
- Compute and BigQuery costs were reviewed as part of a Google Cloud cost reduction
Technologies
Python, Node.js, Kubernetes, Docker, Graylog, Grafana, CI/CD, Google Cloud, BigQuery.