Platforms
Kubernetes
A platform for running containers across a cluster of machines, suited to systems with many services and changing load. A single application with steady load usually needs less.
Part of Tailor-made Software Development
Kubernetes runs containers across a cluster of machines. It schedules them, restarts failed ones, rolls out updates gradually and routes traffic between services.
Where it fits
Systems with many services, uneven or growing load, and a team able to operate a cluster. Kubernetes supports controlled rollouts with rollback and uses a declarative model: you describe the state you want and the cluster works towards it. It can also scale workloads horizontally, once metrics are collected and an autoscaler is configured.
Its limits
A cluster brings ongoing work: networking, storage, security policy, ingress and upgrades. A single application with steady load does not need it, and a simpler setup costs less to run. If you cannot name a failure or scaling problem it would solve now, it is probably too early.
A managed service such as Amazon EKS runs the control plane, but the team still plans version upgrades, because each Kubernetes version reaches end of support, and manages node groups and add-ons. Data-residency requirements can usually be met with a managed service in a local region, and AWS has a region in Bangkok.
How we use it
For a new system we often start with something simpler, such as Amazon ECS, and move to Kubernetes when the number of services or the scaling needs grow.