Friday, 26 February 2021

Microservices Jargons

RESTful API Patterns

    Statelessness

    Content Negotiation

    URI Templates

    Pagination

    Versioning

    Authorization

    API facade

    Discoverability

    Idempotent

    Circuit breaker


Microservice Patterns:


API gateway

Service registry

Circuit breaker

Messaging

Database per Service

Access Token

Saga

Event Sourcing & CQRS


Problem: How to enable a service to run in multiple environments

without modification?

Solution : (CloudConfig)

Externalize all application configuration including the database

credentials and network location. On startup, a service reads

the configuration from an external source, e.g. OS environment

variables, etc.


Container design patterns (Distributed Systems)

❑ The sidecar design pattern

❑ The ambassador design pattern

❑ The adapter design pattern

❑ The leader election design pattern

❑ The work queue design pattern

❑ The scatter/gather design pattern


Service Discovery:

Eureka instances can be registered and clients can discover the instances using Spring-managed beans.


Circuit Breaker:

Hystrix/Resilience4j clients can be built with a simple annotation-driven method decorator Embedded Hystrix/Micrometer dashboard with declarative Java configuration


Declarative REST Client:

Feign creates a dynamic implementation of an interface decorated with JAX-RS or Spring MVC annotations

Client-Side Load Balancer:

Ribbon / Spring Cloud Load Balancer

Router and Filter:

    Automatic registration of Zuul/Spring Cloud Gateway filters, and a simple convention over configuration approach to reverse proxy creation


ELK – Elasticsearch, Logstash, Kibana:  three different tools usually used together.

They are used for searching, analyzing, and visualizing log data in real-time.


Zipkin -is a distributed tracing system

It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both the collection and lookup of this data.

Spring Cloud Gateway

Spring Cloud Gateway is API Gateway implementation by the Spring Cloud team on top of the Spring reactive ecosystem.

It provides a simple and effective way to route incoming requests to the appropriate destination using Gateway Handler Mapping. And Spring Cloud Gateway uses Netty server to provide non-blocking asynchronous request processing.


To BE continue......

Eureka

Zookeeper

consule

Kafka

Ribbon/Hystrix

Resilience4j

OAuth

Feign distributed tracing 

Zipkin


pods

ELK

Kibana

Circuit Breaker

Splunk

Docker Swarm

Scaling (horizontal, Vertical)

Cloud Foundry

Ratelimiter


BulkHead

  BlueGreen Deployment

API Gateway

Spring Cloud Gateway

Proxy servers

Juules


SAGA pattern

cloudnative

Kubernetes

Docker

Profiling

12 factor app

OpenStack