Microservice architecture & management
Opened this issue · 36 comments
Concepts: proxy, load balancer, control plane, data plane, service mesh
References: https://en.wikipedia.org/wiki/Microservices
http://istio.io/ is a proxy manager / service mesh
+1 for istio. Note that istio has very usedul trace/monitor/log features
Content Delivery Network: https://en.wikipedia.org/wiki/Content_delivery_network
Example: cloudflare
Polyglot architecture
gRPC: https://grpc.io/
There's actually a Content Delivery Network around where you can look behind the scenes. It's based on pretty much all the cool research, most of it available as production grade open source software, all initiated by Prof Yair Amir @ Johns Hopkins Uni http://www.cs.jhu.edu/~yairamir/ and is commercially known as http://www.ltnglobal.com/.
serverless architecture, serverless computing
Architecting with Microservices: a Systematic Mapping Study
https://www.sciencedirect.com/science/article/pii/S0164121219300019?dgcid=rss_sd_all
Some good introduction articles:
Microservices: A Definition of This New Architectural Term
Microservice Architecture (Examples and Diagram)
Pattern: Microservice Architecture
Other example app https://github.com/dockersamples/example-voting-app
Microservices Architecture.
https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices.
Optimal and Automated Deployment for Microservices.
https://dblp.org/rec/conf/fase/BravettiGMTZ19
4 Microservice Frameworks in Comparison, Streaming Example Included
https://blogs.itemis.com/en/4-microservice-frameworks-in-comparsion-example-included
Conductor is a microservices orchestration engine
https://github.com/Netflix/conductor
Varnish HTTP Cache
https://varnish-cache.org/
another service mesh https://github.com/containous/maesh
The rise of nanoservices: A call to consider the flexibility of extra-small microservices powered by serverless computing.
https://increment.com/software-architecture/the-rise-of-nanoservices/
Meet Lagom
Lagom is an open source framework for building systems of Reactive microservices in Java or Scala.
https://www.lagomframework.com/
What a good name!
Github's curated collection of DevOps tools
The KAR runtime makes it easy to develop and run stateful, scalable, resilient applications for the hybrid cloud that combine microservices and managed services.
https://github.com/IBM/kar
Linkerd: Ultralight, security-first service mesh for Kubernetes
https://github.com/linkerd/linkerd2
Spin is an open source framework for building and running fast, secure, and composable cloud microservices with WebAssembly
https://github.com/fermyon/spin
This is an Executor Plugin for Argo Workflows that runs WebAssembly modules
Bacalhau is a platform for fast, cost efficient, and secure computation by running jobs where the data is generated and stored. With Bacalhau you can streamline your exisiting workflows without the need of extensive rewriting by running arbitrary Docker containers and WebAssembly (wasm) images as tasks.
wasmCloud lets you focus on shipping features. Build secure, portable, re-usable components called actors and get rid of the headaches that come from being smothered by boilerplate, dependency hell, tight coupling, and making design decisions mandated by your infrastructure.
Krustlet is a Kubelet written in Rust — which listens on the event stream for new pods that the scheduler assigns to it, based on specific Kubernetes tolerations.
Spin is an open source framework for building and running fast, secure, and composable cloud microservices with WebAssembly https://github.com/fermyon/spin
How to start with spin, https://github.com/fermyon/workshops
k8sgpt is a tool for scanning your kubernetes clusters, diagnosing and triaging issues in simple english.
https://github.com/k8sgpt-ai/k8sgpt
Micro frontends
https://martinfowler.com/articles/micro-frontends.html
Islands architecture
https://www.patterns.dev/posts/islands-architecture
Fault tolerance library
https://github.com/resilience4j/resilience4j
Kubernetes scheduling: Taxonomy, ongoing issues and challenges
C Carrión - ACM Computing Surveys, 2022
https://dl.acm.org/doi/abs/10.1145/3539606
Microservice Extraction Based on a Comprehensive Evaluation of Logical Independence and Performance
http://ieeexplore.ieee.org/document/10477676
IEEE Transactions on Software Engineering 2024
Fuzzing Microservices: A Series of User Studies in Industry on Industrial Systems with EvoMaster
https://arxiv.org/abs/2208.03988
Paper: Employing Software Diversity in Cloud Microservices to Engineer Reliable and Performant Systems
https://arxiv.org/pdf/2407.07287