Learning To Deploy Cloud Native Apps, First Week

ยท

4 min read

Introduction

In this article I will describe the way I took to deploy my local container app as a cloud-native app on AWS, I will describe my thoughts and my mistakes. This article isn't describing the perfect way of deploying an application, but describes my amateur way of doing it. If you want to get the full experience, grab a Nespresso coffee, let it get cold without sugar and enjoy my thoughts.

Understanding AWS Services

Well I have a lot of questions dancing on my mind, like:

  1. It seems AWS Services have a lot of services to offer, which is suitable for our case?
  2. Am I looking for just deploying without knowing the underlying logic behind it?

Well, it seems at first I will ask our savior "Google". Google ma Man "how to deploy the container on AWS"

search-engine-search-how-to-deploy-container.png

Without reading every article, seemingly there are 3 AWS Services that interest us: ECS, AWS Beanstalk, and Fargate. okito, so the first question answered

  • [x] It seems AWS Services have a lot of services to offer, which is suitable for our case.

Now let's understand each one of them

Digging into AWS Services

digging.jpg

Note: I am listening ๐ŸŽต to

What is ECS

here is a challenge for you, type "aws ecs" into Google and try to read some articles, and let's compare our thoughts, wouldn't that be great ?! Let's try. Here are the articles that I read:

Welcome back ๐Ÿ˜ƒ friend, here is what I got from the 2 above articles. ECS (Elastic Container Service) give us the control to stop, and manage containers, also with it, we pay only for what we use, and we can scale our services with ease. ahhh I always dreamed of scaling my application on the cloud while I am lying on the couch. Isn't this cool ?!

I discovered that Fargate is a part of ECS and by using it we eliminate the headache of managing the underlying infrastructure like patching the server. But if we're looking for more customization of the underlying infrastructure, EC2(just a dumb server) is the way to go. I'm getting excited, my friend ๐Ÿ˜„

I think this is what we're looking for, but let's not rush and look for other Services (AWS Beanstalk).

What is Beanstalk

Note: Song Changed ๐ŸŽต

Let's repeat the previous process, I will search for "aws beanstalk". Here are the articles that I read:

Well, my friend Beanstalk seems sexier ๐Ÿฅต to be honest, what I concluded from the above sources is :

With Beanstalk, we can upload source code using AWS Console or AWS CLI, it also promises us to handle provisioning, load-balancing, auto-scaling, and monitoring and we can customize the deployment server, here is what they said on the documentation:

"You also retain full control over the AWS resources powering your application. If you decide you want to take over some (or all) of the elements of your infrastructure, you can do so seamlessly by using Elastic Beanstalk's management capabilities. "

mon ami, I have a question, "But aren't they seemed the same?"
Okay, let's compare both services.

ECS and Beanstalk are they twins ?

twin.jpg

Note: Song Changed ๐ŸŽต

"this one is my favorite from pg.lost"

The source I read from:

After reading, I concluded the following sentence:
You should go for Elastic Beanstalk If:

  • You do not have the skills or knowledge to set up ECS. Elastic Beanstalk will do most of the work for you.
  • You do not have any strict compliance or regulatory needs for managing the infrastructure. EB provides a lot of simplicity and flexibility at the cost of a lack of control over the infrastructure.
  • You are coming off a similar PaaS, and you want to do as few operations as possible.

You should go for AWS Elastic Container Service (ECS) if:

  • You are new to containerization and microservices
  • You have a small team, and your applications are not very complex.
  • You want an AWS native solution to integrate easily with other AWS solutions.

So to answer the previous question:

  • [x] Am I looking for just deploying without knowing the underlying logic behind it ?

Answer: No, I am looking into understanding the logic behind every step my deployment commits, so Beanstalk isn't for me in this but I will give it a try and write an article describing my experience with Beanstalk.

Conclusion

A love letter to ECS:
You have attracted me by your beauty of letting me play with your customized settings, ahhh so sexy.

So the next article I will describe my full experience of reading the documentation and trying to deploy a demo. don't forget to share with me your ideas and thoughts about this article.

ย