Amazon Elastic Container Service (ECS) is a container orchestration platform which can run containers on EC2 instances or serverless using Fargate. For many container-based systems we find ECS to be a good choice thanks to its simplicity, maturity and basic but competent feature set.
Amazon Elastic Kubernetes Service (EKS) is:
AWS Developer Tools
AWS Developer Tools allows you to "Host code, build, test, and deploy your applications to AWS". This article focuses on CodeBuild (for building deployable artefacts), CodeDeploy (for deploying to environments), CodePipeline (for defining and running build pipelines) and CodeCommit (an AWS-hosted Git repository solution).
Circle CI is recommended as the default choice for cloud-hosted CI/CD systems. It is a mature product, but still retains the cleanliness and modernity of design which makes it so easy to use well.
While Concourse has an elegant architecture, a clean 'everything as code' approach and features iconic pipeline visualisations, it has failed to gain significant traction and remains a niche tool. The continued small user community, poor documentation and esoteric choice of Garden as the container run time instead of Docker presents operational challenges. For new deliverables we recommend other tools over Concourse, although there is not an urgent need to migrate existing projects away from it.
GitLab provide a suite of products which work well together but can be used separately; the two primary components are a git wrapper, similar to GitHub, and the well-regarded GitLab CI CI/CD system, which is a good default choice if running within your own infrastructure.
Jenkins is one of the most widely used CI/CD systems we come across. Despite its long history and large user base, the common consensus is that there are now far better alternatives than Jenkins. Jenkins is a workable solution for clients already invested in it, but we do not consider it a default choice for greenfield work. While plugins can add features such as containerised builds and pipelines definitions as code, these have to be configured carefully to work reliably and it is hard to avoid a cobbled-together feel. Newer tools which have been built with features such as these in mind tend to offer a cleaner and more reliable solution with less effort.
Kubernetes is an open source container orchestration platform, highly regarded for its flexibility and scalability. While Kubernetes is often considered the de facto standard for container orchestration, we recommend careful consideration before adopting due to its operational complexity. In many cases, native cloud platform orchestration options such as ECS may prove to be a better fit, especially for relatively small or simple deployments.