Elastic Beanstalk is a PAAS platform from Amazon Web Services. We've been using it in Bench Accounting for more than 2 years and really happy with it. Currently we run all our microservices using Docker-based environments.
There are lots of different tools to run Docker containers in microservice-oriented architecture. Kubernetes and Mesos are definitely great solutions, but they're relatively low-level tools and require proper setup, configuration and constant maintenance. Also, they seem like an overkill for systems with just dozens of services/containers, and we still have relatively small fleet.
Elastic Beanstalk uses cluster scheduler (EC2 Container Service) internally, which makes it very similar to Kubernetes or Mesos, but it's a more high-level solution in general, which also integrates nicely with existing AWS functionality. Features like load balancing, auto scaling, monitoring, health checking, logging and etc. are built-in. At the same time, every component is customizable. So, we chose Elastic Beanstalk because it's really easy to setup and maintain, which means that you don't need a big team to support it!
I'd like to show Elastic Beanstalk features and also go a little bit deeper - explain potential customizations and structure of the environments. I’m also going to share our experience with the platform, including tools and best practices we’ve built.