Lecture 6: Microservices Flashcards
How is scalability achieved when designing microservice-based systems?
Scaling the resources of only those services that demand more resources.
T/F
Microservices suggest to put logic in the communication channel instead of the endpoints.
False
T/F
Microservice can be developed in any programming language, inependently form the programming language used to develop the other microservices
True
T/F
Microservices communicate using system calls
false
T/F
microservices are more complex to mange than monolithic application
true
T/F
microservices are effective even if the domain of the applicaiton is not well known
false
T/F
microservices allows for partial deployement of the system
true
t/f
monoliths allows for partial deployment of the system
false
t/f
monoliths have greater degree of availability compared to microservices
false
is easier to perform inter-module refactoring in monoliths rather than in microservices
true
When micorservices should not be considered as a valid option?
- unclear domain boundaries
- low level of complexity
Microservices are characterized as
small, isolated components, independently upgradable components
What are microservices
Microservices is an architecture style, in which large complex software applications are composed of one or more services. Microservice can be deployed independently of one another and are loosely coupled. Each of these microservices focuses on completing one task only and does that one task really well.
Provide at least 3 major common characteristics of microservices
- small and focused
- loose coupling
- language neutral
What are potential drawbacks of microservices
- infrastructure complexitiy
- latency issues
- management of an high number of services
what are the benefits of microservices
- it is easier for a developer to start working on a monolithic application rather than a micorservice-based application
- enables you to avoid large code base, making it easier to maintain or add new features
- makes it easier to use exisitng skills, or the most suitable language,
- enables teams to work independently of each other
- simplifies tracking code dependencies
- enables complete ownership by a self-contained single team, from definiton through development, deployement, operations
- makes it easier to scale bottlenecks
What are the main reasons for companies to migrate their monolithic application into microservice-based applicaiton
- difficulty to maintain, modify and become productive quickly
- long cycles of time-to-market to roll out new services
- need for better ROI from exisitng software initiatives, to spend money for current initiatives
- that fits newer architecture, and a future roadmap that has longer shelf life and better ROI
- scalability issues and performance issues
- 27 x 7 availability and security issues
What are the benefits of building products not projects and hwy is it suitable to MSA?
- team should own a product over its full lifetime
- more maintainable
- clear responsibilities
- you build, you run it
What is the meaning of decentralized governance
one of the consequences of centralised governance is the tendency to standardise on single technology platforms. Experience shows that this approach is constricting as it is not possible to choose the right tool for the job
what does it mean design for failure
consequence of using service as components, is that applications need to be designed so that they can tolerate the failure of services.
Teams are responsible to develop, operate and maintain the services over time
True
Team size is irrelevant in microservices
false
team are responsible for testing the service
true