Microservices Architecture vs Service-Oriented Architecture (SOA)

Microservices Architecture is a architectural development technique —a variant of the Service-Oriented Architecture (SOA) structural style— that arranges an application as a collection of loosely coupled services

  • Service-Oriented Architecture (SOA) has an enterprise scope
  • Microservices Architecture has an application scope

Service Types

  • Stateful Service - a service that has a concept of a session or persistence, like a chat service.
  • Stateless Service - a service that does not have a concept of a session, but rather performs individual self-contained tasks, like a video transcoding service

Service Abstraction

Operations Component Types & Tech Stacks

Tech Stack

Operations Component Type

Netflix - Spring Cloud

Kubernetes & Docker

central configuration server

Config Server, Consul, Archaius

ConfigMap and Secrets

service discovery

Eureka, Hashicorp Consul

Kubernetes Service & Ingress Resources

dynamic routing and load balancing

Ribbon

Kubernetes Service

edge server - api gateway

Zuul

Kubernetes Service & Ingress Resources

centralized log analysis

Elasticsearch, Logstash, Kibana (ELK Stack)

Elasticsearch, Fluentd, Kibana (EFK Stack)

centralized metrics

Spectator & Atlas

Heapster, Prometheus, Grafana

distributed tracing

Sleuth & Zipkin

OpenTracing & Zipkin

resilience, fault tolerance, circuit breaker

Hystrix/Resilience4j, Turbine & Ribbon

Kubernetes Health Check & resource isolation

autoscaling and self-healing

Kubernetes Health Check, Self Healing, Autoscaling

package deployment

Spring Boot

Docker/Rkt, Kubernetes Scheduler & Deployment

job management

Spring Batch

Kubernetes Jobs & Scheduled Jobs

singleton application

Spring Cloud Cluster

Kubernetes Pod

monitoring

Hystrix Dashboard & Turbine

Open Authorization (OAuth) protected API’s

Spring Cloud Security + Spring Security OAuth2

Subpages

Video Resources