Microservices

4 min. read

Microservices

Bounded Context
Subdivide monoliths
Small Teams
Independent
Clearly-Defined Interfaces

Conway’s Law

Command (Create, Add, Save, Notify)

the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.

Separation of concerns
Modularity, encapsulation

Scalability
Horizontally scaling
Workload partitioning

Virtualization and elasticity
Automated operations
On demand provisioning

Like the human body
Each organ has a purpose
Organs form systems
Systems form an organism

Use an ELB (elastic Load Balancing)
https://aws.amazon.com/elasticloadbalancing/

Edge Services

Middle Tier and Platform

https://arnon.me/2014/03/services-microservices-nanoservices/
https://arnon.me/soa-patterns/
https://arnon.me/soa-patterns/inversion-communication/
https://arnon.me/soa-patterns/service-host/
https://arnon.me/soa-patterns/service-instance/
https://arnon.me/soa-patterns/service-watchdog/
https://www.product-lifecycle-management.com/download/DOD-STD-2167A.pdf

Service to Service communication
Use Hystrix

Fault Injection Testing (FIT)

Critical Microservices

CAP Theorem
In the presence of a network partition, you must choose between consistency and availability
Use cassandra

https://en.wikipedia.org/wiki/CAP_theorem

Infrastructure
Infrastructures fail
Amazon AWS takes down Netflix on Christmas Eve (Forbes)

https://www.infoq.com/presentations/netflix-failure-multiple-regions

References
Mastering Chaos - A Netflix Guide to Microservices
https://www.youtube.com/watch?v=CZ3wIuvmHeM

https://8thlight.com/blog/uncle-bob/2015/05/28/TheFirstMicroserviceArchitecture.html

http://ibm-1401.info/1401-IBM-Systems-Journal-FORTRAN.html

Martin Fowler
https://martinfowler.com

https://martinfowler.com/microservices/

https://martinfowler.com/articles/microservices.html

https://www.nginx.com/blog/introduction-to-microservices/

https://www.nginx.com/blog/refactoring-a-monolith-into-microservices/

http://microservices.io/patterns/microservices.html

https://www.infoq.com/news/2014/10/exploring-hexagonal-architecture

http://microservices.io/patterns/index.html

https://www.infoq.com/articles/C4-architecture-model?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text

https://dzone.com/articles/hello-hexagonal-architecture-1

https://medium.com/@ikem/the-making-of-a-100-percent-google-powered-microservice-architecture-part-1-dc627f2f19f4

https://medium.com/statuscode/cloud-functions-vs-container-engine-5c773e364ced

https://cloud.google.com/appengine/docs/standard/python/microservices-on-app-engine

https://techbeacon.com/5-fundamentals-successful-microservice-design

https://smartbear.com/learn/api-design/what-are-microservices/

https://dzone.com/articles/integrating-humio-with-ballerina

Microsoft
https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview-microservices

https://pushpin.org/

https://blog.keen.io/architecture-of-giants-data-stacks-at-facebook-netflix-airbnb-and-pinterest/

https://howtofirebase.com/firebase-data-modeling-939585ade7f4

https://engineering.videoblocks.com/web-architecture-101-a3224e126947

https://codeburst.io/express-js-on-cloud-functions-for-firebase-86ed26f9144c

https://expressjs.com/en/advanced/best-practice-security.html#at-a-minimum-disable-x-powered-by-header

https://www.skcript.com/svr/creating-restful-api-firebase/

https://medium.com/@timleytens/api-security-in-a-microservices-architecture-2ef673e807c

https://medium.com/@muneeb.ahmed20/building-a-reporting-service-in-microservice-architecture-8d5bf3b90fb7

https://www.oreilly.com/library/view/microservices-antipatterns-and/9781492042716/

https://medium.com/it-dead-inside/isolating-your-microservices-through-loose-coupling-48b710e28de6

https://www.codeproject.com/Articles/5162427/Microservices-Myth-Madness-or-Magic