Setting up development environment in micro-services architecture [closed] - microservices

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
We are moving towards developing a web app in a micro-services architecture.
We thought about running the services behind a API gateway that will handle authentication and will proxy the requests to the appropriate services.
We have encountered a problem while setting up the development environment. How can we develop a service in a local machine (laptop) and test and run it in a way that is similar to the production (behind the gateway)?
Consider the following requirements:
Inter process communication (B2B)
Manage and sync different versions
Access the service with authentication token (produced by the gateway)

Difficulty to setup development environment for microservices is proportional to the number of microservices. I have a running setup on my laptop with 2 microservices along with eureka, zuul gateway with oAuth2, an authorization server and spring cloud config. Beyond this I have not tried as it will start becoming unmanageable.
In this case it is better to have the development environment on cloud. You can choose any cloud provider and avail a free subscription for sometime. For eg. Amazon gives you 750 hours of linux time free for a month. You can create any number of instances as you need(with minimal cost after free usage).

Related

Microservices Architecture Best Practice [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
This post was edited and submitted for review 1 year ago and failed to reopen the post:
Original close reason(s) were not resolved
Improve this question
I will be appritiated if anyone answer to below quesion.
How a system will be designed with hundreds of services if each and every service has to be independent with a dedicated port as per microservices architecture? i mean is it a good practice to open hundreds of ports on OS for example?
Best Regards.
For security reasons microservices are hosted in private vpc, i.e. the nodes (where the microservices are run) does not have public ip. And the only way to get access to them is via a gateway api (see below). Also "each and every services has to be independent" should be in the means of domain link1 link2.
To expose services use the API gateway pattern: "a service that provides a single-entry point for certain groups of microservices" link1 link2. Note that api gateway is for a group of microservices, i.e. there may be several gateways for different groups of services (one for public api, one for mobile api, etc).
Only you can answer this question because only you knows what problem you try to solve. Before deciding I recommend to read about MonolithFirst approach
Micro services architecture is somehow the next generation of ESB products but in this case due to the high number of services,I am not sure if it is a solution!

Spring boot: How should I deploy my microservices [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
So at first I built a simple monolith application and deploy it using docker and nginx (for reverse proxy only). for now I have plan to separate each services because some services require a lot of time and IO to do their jobs. I have researched about it and I know some components that I'll need like spring cloud eureka, service discovery and etc. I'm a bit confused because I only use docker and nginx if I add these components do I still need nginx on top it? can you give me an example of structure that I should know or apply to my project.
In your first iteration of the refactoring you can do without Service Discovery:
create a SpringBoot app for each microservice
services talk to each other directly (no need to have Nginx), also without Service Discovery it means that you hardcode (or store in a property file) the URL of the endpoints
deploy NGINX in front of the application/service which serves the end users (ie a Web Application)
Once you have validated your new architecture (splitting the responsibilities across the microservices) you can introduce Service Discovery (Eureka) so the endpoints are no longer hardcoded.
Nginx is pretty light so it can also be used for handling internal traffic if you like, but at this point you architecture should start considering volume of traffic and number of components to decide what works better.

Best AWS server for eCommerce [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I'm trying to deploy my Laravel app to AWS server and I got two options:
ECS services which allow me to use docker to manage the number of services I need (Ram, CPU ..etc)
AWS eCommerce Platform to set monthly plan services (static number of Ram, CPU, and storage according to the plan)
So which one should I use for my e-commerce platform? comparing should contain:
performance: which one is better to deal with API requests (I heard docker slows down the processing)
price: is it safer to choose a monthly plan instead of cost by view or resources?
security: AWS offers more security options on the AWS e-commerce platform
The issue with managing your own instance is that you have to work out security aspects deeply especially if you are handling payments or credit card information. Considering e-commerce site this may be at the core of requirement. Personally i will go for a managed service rather than ECS, as you be spending a lot of time configuring and securing ECS.IN ECS case you have to buy a SSL certificate on top, plus penetration testing to make sure site is secure etc.
The managed platform is hopefully already PCI-DSS compliant and easy to configure.

Kestrel server vs HTTP.sys [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
In Dotnet core, there are two built-in servers Kestrel and HTTP.sys.
I would like to know the differences between those two servers and when to use a particular server when it comes to performance, reliability, micro-service friendly, etc.
Answer: Kestrel vs. HTTP.sys from the official Microsoft docs.
See Kestrel vs. HTTP.sys from the official Microsoft docs.
Main differences are that HTTP.sys is windows only while kestrel can run on linux as well. That also means that HTTP.sys works with windows authentication "out of box" with few settings whereas kestrel needs a lot more to set it up. Performance wise they are similar with http.sys being a bit faster since it is optimized for windows. Also the base for IIS is HTTP.sys.
Reliability not only depends on the server but the infra it is on. I.E if you put both in docker with kubernetes they will be reliable and scalable since you will have containers to take care of that part.
Now i have microservices on both and they are very friendly and i use them for different purposes, environments depending on the service in question.
Also to mention that for public facing services i use reverse proxy anyway i am not familiar with how the two act in that role. Having said that Microsoft recommends HTTP.sys if you have a front facing service since it is more resilient to attacks out of box, but like I said since my services are behind a reverse proxy that handles those requests cannot verify the claims.
hope this helps a bit

Amazon version of Rackspace's cloud sites? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I was wondering if any of you know an Amazon version of cloud sites from rackspace. I know they have services similar to cloud servers and files but not this?
Basically, I'm looking for a scalable web server managed by them, *** but (this is what cloud sites can't do) I want to still be able to do things in the backend and install other apps etc.. (like my own server)?
thanks
Amazon does not offer any managed hosting services. What they provide is infrastructure-as-a-service, the barebones level services for building on top of. They offer no management services. This stuff is meant for low level developers / system administrators to build the higher level systems on, not your average web hosting customer.
Amazon's new Elastic Beanstalk offers something closer to Rackspace Cloud Sites, but is currently limited to Java sites.
I have a new Platform as a Service (SaaS) in the works to offer multiple languages/frameworks on top of AWS to the general public. Check it out...
http://www.mojoengine.com

Resources