7

Right now I need to know exactly how can I instantly deploy a micro service based backend when needed? I can manage all the integration of technologies by myself but when it comes to hosting on AWS its just impossible for me to get those many instances and it is just impossible to afford right now.

Im contemplating on the idea of starting with a monolithic backend while having the possibility of deploying micro services backend instantly when the business kicks off.

But Im not sure how to achieve this idea if ever it is possible.

Is it possible or am I wrong?

Please help, thanks.

  • Do you mean build a monolith and cram it into the cloud as-is without any re-design? – Nathan Hughes Apr 18 at 20:48
  • No, maybe like 2 separate projects achieving same goal but monolith project will be used first then when there is a good success I can switch to micro services. I dont know whether this is possible or makes any sense. – user11368857 Apr 18 at 22:34
3

This is common issue if planing to use Aws EBS, I had same issue and solved using following approch

1) Think design as monolithic and then decide further into bounded context and each bounded context will be a microservicea.

2) Now design your database and try to keep.each microservice db into separate schema.

3) Now in maven module create parent child module .

4) In parents module keep your spring boot main method, swagger,and common module like security etc

5) Disable spring boot nature in child module .

6) Add all child module microservice into parent module and maven build install.

7) Deploy on AWS EBS .

8 ) Expose all microservice using Aws Api getway.

Benefits: in future whenever you will be able to support infrastructure cost just move module and db schema and no other changes required.

Disagreed with statement that "wrong perception that deploying monolithic is cheaper than micro-services" plz check Aws cost estimations monolythic is cheaper then microservice ,microservice need polygot persistence and independent hosting.

  • 4
    I dont know anything about "spring boot". Im going to use GoLang, Node.js, Cassandra, Mysql, Redis, HAProxy, NGinX. Can you please elaborate on that? – user11368857 Apr 19 at 6:15
  • What you would have done if you were in my place? – user11368857 Apr 19 at 10:25
2

Firstly, it is a wrong perception that deploying monolithic is cheaper than micro-services w.r.t. infrastructure..If you are sure you want to go micro-services way; then its better to build it now..

You can build multiple micro-services and deploy on same virtual machine. Also, these days you have many light weight technologies ( lighter than spring boot ) which has lesser memory footprint, faster start up time like micronaut.

Also, until and unless you are running at scale of Amazon... it is a wrong perception that monolithic cannot scale..Even monolithic can handle quite good number of requests.

  • 2
    "You can build multiple micro-services and deploy on same virtual machine." -------- So using this approach I can dedicate a virtual machine for each micro service easily when I get too much traffic later? – user11368857 Apr 19 at 5:43
  • 2
    Thanks a lot for helping me clear my confusion and kill my headache which was there from 20+ days. Now I know what to do. – user11368857 Apr 19 at 5:58
  • 4
    @Deepak "but still with micro-services u will have to run multiple JVM which MIGHT need a bigger machine.." ----- So the conclusion is to get multiple instances for each microservice or forget the project as price for both approaches is almost the same? – user11368857 Apr 19 at 9:44
  • 5
    @vaquarkhan "but still with micro-services u will have to run multiple JVM which MIGHT need a bigger machine.." ----- So the conclusion is to get multiple instances for each microservice or forget the project as price for both approaches is almost the same? – user11368857 Apr 19 at 9:45
  • 4
    @vaquarkhan What you would have done if you were in my place? – user11368857 Apr 19 at 10:25
2

I feel like building micro services from day 1 is the best approach these days, no one knows which of your services goes viral. You can not afford a blackout when everyone wants to connect to your services.

  • 1
    I agree with Ekatarina, its very wise to build micro services from the beginning to avoid rebuilding everything from scratch later. – user11382382 Apr 19 at 6:35
0

It is very possible to build multiple micro-services and run on the same server / vps and when your project / service goes viral over-night you can always dedicate a separate instance / server for each service easily.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy