L7 - Microservices 2 (Migration from Monolithic to Microservices) Flashcards
Explain the Second System Effect…
The tendency of small, elegant, and successful systems, to be succeeded by over-engineered, bloated systems, due to inflated expectations and overconfidence.
Who theorised Second System Syndrome?
Fred Brooks
What is Second System Syndrome usually a consequence of?
Restriction of scope in the first development iteration, leading to over ambition and over compensation in following iterations.
Explain Two Pizza Teams…
- Idea that functional teams should be able to be fed by two pizzas.
- Smaller teams enable better collaboration, and collaboration is fundamental for rapid software development.
What are the 2 main benefits of adopting Two Pizza Teams ideology?
- Improve efficiency
- Improve scalability due to non-siloed organisational structure and less overhead management
Who proposed Two Pizza Teams?
Jeff Bezos
What size of company is Big Ball of Mud usually an issue for?
Large companies with complex software, since smaller software usually requires less planning.
Explain Big Ball of Mud
- Anti-pattern
- An architectural structure that lacks modularity, or any sort of pattern or design.
Explain the concept of Technical Debt
A catch-all term used to describe the resulting technical issues due to a development team expediting development to prioritise rapidity over quality.
What is Technical Debt a consequence of?
Development teams prioritising speed over quality.
Who coined the term Technical Debt?
Ward Cunningham
Explain the CAP Theorem…
A theorem stating that a distributed system can only satisfy 2 out of 3 of the following properties: Consistency, Availability, Partition Tolerance
Explain the definition of each of C, A, and P in the CAP theorem…
- Consistency → All clients see the same data at the same time, regardless of which node they are connected. For this to happen, a data written to one node must be written uniformly to all nodes.
- Availability → All working nodes in the network but always provide request responses without exception.
- Partition tolerance → A partition is a break in communication between 2 nodes in the network. Partition Tolerance means the network must continue working regardless of breakdowns.
Who proposed the CAP theorem?
Eric Brewers
Explain the Strangler Design Pattern…
When an old system is placed behind and intermediary facade, and over time the functionality and services of the old system are replaced behind the facade until a new set of functionality and services have been implemented.