Backend DevOps https://www.youtube.com/watch?v=IYhZ6Ic1d8k
Horizontal
you basically have multiple instances of the server running, the requests go through a Load Balancer which then decides which instance to redirect the request to.
- Statelessness:
- If the request is a restful api then you have to handle statelessness and INSTANCE STICKINESS so if there is a state in the request, the Load Balancer knows to redirect the requests from the same client to the same instance in the server.
- might be not good - for example if the requests are being done by a web-scrapper this could be a lot of requests and would overload that one instance.
- to mitigate could use, session stickiness in combination with a distributed cache.
- If the request is a restful api then you have to handle statelessness and INSTANCE STICKINESS so if there is a state in the request, the Load Balancer knows to redirect the requests from the same client to the same instance in the server.
- Loose coupling and Identifying bottlenecks:
- basically know which part of the server needs scaling( is it only the microservices inside of it, the DB that gets callbacked to or the entire instance)
- Aggressive Auto Scaling, Kubernetes, managed infrastructure.
- automatically detect that you need scaling, and Kubernetes is good for that, managed infrastructure
- Scaling Down:
- listen for shut down events