We are into a startup and as a trending technology our predecessors used micro-services for our new website.
It is a good move if we see the benefits of micro-services like
- scaling a website gets much easier
- loosely coupled
- easy for developing
- deployment can focus on each service
- can be used different technologies for each service
- testing can be concentrated on one service
Here we are considered the problems we may face in future and developed the application thinking about the benefits of micro-services.
Point to be noted: We also have to think about – does these problems will be a big issue for us compared to the disadvantages of the micro-services?
NOTE: Our Website is a less traffic website and we are getting our clients one by one. It is not a heavily used website. Keep this in mind while reading this article.
We faced issues following issues with micro-services:
- Complexity – more complex for deployment and maintenance
- Cost – AWS ECS costs more for all the micro-service hosting for a less traffic website
- Even though these are micro-services it has some dependency between them that we cannot avoid. Be ready to deal with this.
- Sometimes one service (AWS Container) goes offline and starting over! So we get the No Service issue in the website.
- Very difficult to go back to monolith application even clubbing 3-4 services together, as they use different software or software versions.
So be careful if you are planning to use micro-service architecture for a less used website or as a starting of your business. Take your time and think if micro-service architecture suits your business and your current situation.
The fact: It should not take that much cost for a website which has less traffic. Be ready to pay minimum amount for hosting with micro-services.
Set up:
- Used AWS ECS (ec2 launch type) with services and task definitions defined
- 11 Micro-services, 11 containers are spinning
- Cost: Rs.12k ($160) per month
Workaround:
- Consider using AWS Fargate type but not sure these issues get resolved
- Deploy all the services in one EC2 Instance without using ECS