What is Microservice Architecture

Microservices architecture is a style that structures an application as a collection of services. This breaks all processes into its own service, where each service has its own container with its own data storage, does not share data. The inverse is monolith architecture which builds all capabilities into a single executable and process. This is a server-side system based on a single application to develop and manage.

Microservices vs. Monolith Architecture
Microservices vs. Monolith Architecture

 

Microservices implements smart endpoints uses no complex middle-ware the brain lay in the application and the network just help to route information.

Some characteristics of microservices architecture are:

  • Componentization via services
  • Organized around business capabilities
  • Decentralized data management
  • Designed for failure

Advantages of using microservices are:

  • A team can choose an any language for the service
  • Less risk in change
  • Partial Development
  • Independent Scaling
Monolith Microservices
Simple Complex
Whole Development Partial Development
No availability when other services failed Some availability when other services fail
Consistently
Preserves modularity
Multiple platforms

What is a chaos monkey?

A chaos monkey is a tool that randomly stops services in the infrastructure during the data, while services are being monitored. Since Failure will happen in any disturbed services having a chaos monkey will force developers to anticipate how that failure would happen and how it will be handled. Since failure will happen in any distributed system telling a chaos monkey into an infrastructure will make people more aware of the fact that things will break by forcing it to happen, then monitoring and recovery can handle the event. This effects how to code is designed and written to become more robust. This is chaos engineering which is the discipline of experimenting on a software system in production in order to build confidence in the system’s capability to withstand turbulent and unexpected conditions.

Netflix’s chaos monkey repository on GitHub

What is Conway’s Law?

Conway’s law states that an “organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.” This is based on the reasoning that for a software module to function, multiple authors must communicate frequently with each other. Thus, the software interface structure of a system will reflect the social boundaries of the organization that produced it. In microservices, there is a lot of variation on how big the size of each team and the number of services to support should be.

 

References

IBM Cloud. (2019, Febuary 26). What are Microservices? Retrieved from Youtube: https://www.youtube.com/watch?v=CdBtNQZH8a4

Richardson, C. (n.d.). Retrieved from microservices.io: https://microservices.io

Thoughtworks. (2015, January 31). Martin Fowler – Microservices. Retrieved from Youtube: https://www.youtube.com/watch?v=2yko4TbC8cI

ThoughtWorks. (n.d.). Martin Fowler. Retrieved from http://www.thoughtworks.com: https://www.thoughtworks.com/profiles/martin-fowler

Wikipedia. (2020, February ). Conway’s law. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Conway%27s_law

 

Published by

Kevin Day

I am a student at Metropolitan State University completing a B.S. degree in Computer Information Technology B.S. I have always enjoyed solving puzzles and math equations, which explains why computer programming and building networks comes very easy to me. I’ve enjoyed working with friends’ or family’s computer problems as it presents new challenges, restoring them back to working order. When I program computers, I use creativity to solve algorithms and build new projects to enhance my programming and computer skills.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s