An open API service indexing awesome lists of open source software.

https://github.com/khaydarov/otus-microservices

OTUS microservice architecture homeworks
https://github.com/khaydarov/otus-microservices

api-gateway bff-microservice ddd-architecture design-patterns docker event-driven-architecture golang grafana grpc ingress-nginx istio-ingress kubernetes microservices php prometheus

Last synced: 3 months ago
JSON representation

OTUS microservice architecture homeworks

Awesome Lists containing this project

README

          

## Course plan

1. Pros and cons of microservice architecture
* Architecture and architect
* Monoliths and microservices
* Patterns of microservice architecture

2. Docker basics
* Containerization. Overview
* Docker components: engine, cli, registry
* Building from Dockerfile
* Practice: build, run, up, down, pull, push

3. Infrastructural patterns
* CI/CD methodology
* VM vs Containers
* Deployment patterns
* Service discovery
* Health check

4. Kubernetes basics (part 1)
* Pods, ReplicaSets, Deployments

5. Kubernetes basics (part 2). [Homework #1](https://github.com/khaydarov/otus-microservices/tree/main/hw01)
* ConfigMaps, Persistence Volumes, Persistence Volume Claims
* Helm, Helm-dep, Ingress

6. Kubernetes basics (part 3). [Homework #2](https://github.com/khaydarov/otus-microservices/tree/main/hw02)
* Templating with Helm
* Jobs, Secrets

7. Kubernetes. QA
8. Monitoring and alerting
* USE, RED и Four Golden Signals
* SLI, SLO, SLA
* Metric collection patterns

9. Prometheus, Grafana. [Homework #3](https://github.com/khaydarov/otus-microservices/tree/main/hw03)
* Prometheus
* Grafana
* AlertManager
* PromQL

10. Service mesh on the example of Istio [Homework #4](https://github.com/khaydarov/otus-microservices/tree/main/hw04)
* Service Mesh architecture

11. Authorization and authentication in microservice architecture
* Auth patterns in monoliths
* Identity Provider и OIDC
* Token-Based authentication, JWT
* Auth-Proxy

12. Backend for frontends. API Gateway. [Homework #5](https://github.com/khaydarov/otus-microservices/tree/main/hw05)
* API Gateway
* Backend for Frontends
* Auth patterns in API Gateway
* Circuit Breaker, Retry

13. Asynchronous and synchronous API
* Message Bus, Enterprise Service Bus
* CQRS, Event Sourcing
* Orchestration and choreography
* API versioning
* IDL, API design first
* Anemic API vs Rich API

14. Event Driven Architecture
* Designing event driven patterns
* Using event driven patterns

15. Distributed message brokers on the example of Kafka
* Kafka

16. Consistent data maintenance patterns (Stream processing). [Homework #6](https://github.com/khaydarov/otus-microservices/tree/main/hw06)
* Transactional Log
* Stream processing
* Event Sourcing
* Change Data Capture

17. GraphQL, gRPC
18. RESTful
* Maturity levels;
* HATEOS
* Anemic API and Rich API
* Restful Patterns
* JsonSchema, OpenAPI
* GraphQL

19. Idempotency and commutativity API in HTTP and message brokers. [Homework #7](https://github.com/khaydarov/otus-microservices/tree/main/hw07)
* Idempotency and commutativity
* Idempotent receiver
* Idempotent consumer
* Polling publisher
* Compare-and-Set
* Transaction Log Miner

20. Testing in microservices (part 1)
* Architecture Significant Requirements
* Availability, Interoperability, Modifiability
* Architecture Frameworks
* Quality Attributes Assessment

21. Testing in microservices (part 2)
* Chaos engineering
* Stress testing

22. DDD and modular monoliths (part 1)
* Coupling
* Cohesion
* Common principles

23. DDD and modular monoliths (part 2)
* Decomposition rules
* Aggregates
* Strategic Classification

24. Microservices decomposition. [Homework #8](https://github.com/khaydarov/otus-microservices/tree/main/hw08)
* Decomposition patterns
* Context Canvas

25. From monolith to microservices
* Distributed Tracing
* Opentracing/OpenTelemetry
* Tracers: Zipkin, Jaeger; APM: NewRelic, DataDog
* Strangler pattern

26. Distributed systems overview
* CAP & PACELC theorems
* BASE & ACID
* Actor Model

27. Distributed transactions. [Homework #9](https://github.com/khaydarov/otus-microservices/tree/main/hw09)
* Consistency patterns
* Two-phase commit, Saga pattern
* Transactional messaging
* Deadlock

28. Caching patterns
* LRU, MRU, PLRU, LFU
* LoadBalancing

29. Sharding
* Vertical, Horizontal partitioning
* Vertical, Horizontal sharding
* Consistent hashing

30. CP systems
* Consistency algorithms: Paxos, Raft, Zab

31. AP systems
* Gossip: Scuttlebut
* Replication without master (dynamoDB like databases)

32. The role of the architect
* Evolutionary Architecture and Emergent Design

33. Architecture cost. Artifacts of architecture