Amazon Elastic Container Service (Amazon ECS) is a scalable, high performance container management service that supports Docker containers.
N/A
GitLab
Score 8.7 out of 10
N/A
GitLab DevSecOps platform enables software innovation by aiming to empower development, security, and operations teams to build better software, faster. With GitLab, teams can create, deliver, and manage code quickly and continuously instead of managing disparate tools and scripts. GitLab helps teams across the complete DevSecOps lifecycle, from developing, securing, and deploying software. Differentiators, as described by Gitlab:
Simplicity: With GitLab, DevSecOps can…
There is no additional charge for Amazon ECS. You pay for AWS resources (e.g., Amazon EC2 instances or Amazon EBS volumes) you create to store and run your application. You only pay for what you use, as you use it; there are no minimum fees and no upfront commitments.
Amazon Elastic Container Service (Amazon ECS) is well suited where you need the ease of managing the clusters by letting AWS do the stuff for you. Obviously, whenever you want to run the docker based workloads, it is always better to go for either AWS ECS or AWS EKS. If you are interested in staying at AWS only and don't want to be cloud-agnostic, then go for AWS ECS instead of AWS EKS. AWS ECS is cheaper than AWS EKS and also more managed by AWS and better integrated with other AWS services. If you want to run those workloads as serverless, then AWS ECS Fargate is the best option to go with. If you already have a Kubernetes based setup that you want to migrate to AWS, then go for AWS EKS instead of AWS ECS.
It is well-suited for any project that needs VCS. It's an excellent choice for teams that might be remote or have to collaborate across teams. Plenty of features allow for async working. With its dashboards and reporting features, it is also suitable for nontechnical PMs or stakeholders. It allows for very bespoke customization and can most often do much more than you need it to.
Well Integrated - As with the majority of AWS services, ECS works will with any other AWS product (Route 53, CloudWatch, IAM, etc).
Easy to get started with - It is easy to get started building just about anything in AWS and using ECS is no exception to this rule. Be careful though -- AWS lets you do/build anything in any way you could think of and allowing yourself to shoot yourself in the foot is no exception.
The user interface sometimes seem to be confusing and cumbersome. It can be improved so that people can understand clearly which section to go for which functionality.
When a container fails, the error logs are not readily available on the ECS console. If it can be provided it would be easier to debug from there itself instead of going to our log manager.
Sometimes the old EC2 containers become stale and need to be restarted manually. There should be a notification for such scenarios. We have mostly been finding it out on our own and then fixing it by manually restarting EC2 instances.
If this could be proactively monitored and notified, it would be great.
I really feel the platform has matured quite faster than others, and it is always at the top of its game compared to the different vendors like GitHub, Azure pipelines, CircleCI, Travis, Jenkins. Since it provides, agents, CI/CD, repository hosting, Secrets management, user management, and Single Sign on; among other features
Aside from some ECS-specific terms to learn at first, learning & starting to use ECS is relatively straightforward. AWS docs on the topic are also of high quality, with sound & relevant examples to follow. Troubleshooting container issues is also a breeze thanks to CloudWatch integration & helpful error messages on the AWS console.
I find it easy to use, I haven't had to do the integration work, so that's why it is a 9/10, cause I can't speak to how easy that part was or the initial set up, but day to day use is great!
I've never had experienced outages from GItlab itself, but regarding the code I have deployed to Gitlab, the history helps a lot to trace the cause of the issue or performing a rollback to go back to a working version
GItlab reponsiveness is amazing, has never left me IDLE. I've never had issues even with complex projects. I have not experienced any issues when integrating it with agents for example or SSO
Support is relatively good, although the documentation sometimes is lacking, as well as outdated in our experience, especially when we initiated the process of using this service. But once we found how to assemble things, we haven't really required support from anyone at AWS, the service works without problems so we haven't had the need to contact support, which speaks well of how ECS is built.
At this point, I do not have much experience with Gitlab support as I have never had to engage them. They have documentation that is helpful, not quite as extensive as other documentation, but helpful nonetheless. They also seem to be relatively responsive on social media platforms (twitter) and really thrived when GitHub was acquired by Microsoft
AWS Elastic Beanstalk is a good beginner level orchestration service but lacks container management and scaling capabilities. EC2 is again not a Managed cloud service. It is like just renting a computer on cloud and then managing it on our own. Compared to these ECS is a comprehensive solution that provides management, scaling, containerization and other service connectivity out of the box.
GitHub is an inferior product from most points of view. We had to use it and the teams finds no positives about it. Everything is a downgrade from our previous GitLab solution. GitLab CI\CD is vastly superior to workflows, for example doing a manual node is just "when : manual" in GitLab while you have to do clickops in GitHub to achieve the same. No overview of code in branches is a minus when we tried to figure out what our colleagues are trying to merge as it looked off.
We run 8 web applications (demo instances) on a single machine. At a particular time, no more than 3 applications run simultaneously. So, we keep only required containers up. This helps us to provision small EC2 machines without compromising performance.
Overall Amazon ECS helps to have less number of dedicated machines as more than one solution can be deployed on a single instance. This reduces costs a lot.