Disclosure :
Problem: I want to automate scaling without having to deal with ec2 instances where I don't have to worry about of scaling of instances. I know that GKE provides that but I want to stick with the AWS. The system where I can define scaling triggers based on requests, memory, CPU on the dashboard (same as elastic-beanstalk but I will need to run multiple services. all services will have different scaling triggers ). From what I read, One common thing is kubernetes and ECS is that I have to write scripts based on cloud-watch events.
Q.1: For Docker Swarm:
How is Docker Swarm better to balance the load and auto scale when I have to already provide more than 1 Virtual machines (created by docker-machine) as workers for my manager?
My View:
Q.2: For Kubernetes:
Does Kubernetes scale up on instance level?
My View:
Q.3 For Elastic Bean Stalk:
If Elastic Bean Stalk can manage my Entire Containerization along with AutoScaling and Load Balancing then how are above 2 so much in demand and better to use?
My View:
I am confused and unable to convince people who say No to Kubernetes and Docker Swarm, If Someone can Please provide me a detailed overview of What and Why to use in production on AWS? as I don't answer for majorly AutoScaling and LoadBalancing on Production even though knowing this tools above.
Questions listed above consider AWS as the cloud deployment platform also I would like to let you know that I have a successfully running docker-compose.yml over Docker Swarm and 4 different YAML files for Kubernetes which also work great on Minikube.
I am confused and unable to convince people who say No to Kubernetes and Docker Swarm, If Someone can Please provide me a detailed overview of What and Why to use in production on AWS?
Two out of three solutions provided by you are platform-agnostic, so we can talk about them without concentration on AWS.
I recommend you to use Kubernetes, and I will try to explain why below.
How is Docker Swarm better to balance the load and auto scale when I have to already provide more than 1 Virtual machines (created by docker-machine) as workers for my manager?
Docker Swarm is a relatively simple platform for orchestration of Docker applications with quite simple logic. To implement node-based autoscaling, you should use some external tools (in AWS, for instance, you can use an Autoscale group with some rules based on CPU load). And you will have to add some custom scripts to add and remove nodes from Docker Swarm cluster. All that things are possible, but you will need to develop it yourself.
Does Kubernetes scale up on instance level?
Yes, it does. Kubernetes can scale using cluster-autoscale daemon, which can run inside a cluster, and automatically scale your instances up and down based on several metrics, including custom ones. You do not have to create any scripts, all logic is already implemented, you just need to setup rules.
If Elastic Bean Stalk can manage my Entire Containerization along with AutoScaling and Load Balancing then how are above 2 so much in demand and better to use?
Elastic Beanstalk is a solution to run applications inside AWS, but you will be limited by its functions. Yes, it can do so many things for you, but if you will need something custom or you will need to create a hybrid cloud solution - that is not an option.
Finally, I can tell you that with Kubernetes you will get:
Also, I can recommend you some Kubernetes modules and apps which can be useful for you on (not only) AWS.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With