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
- Host: GitHub
- URL: https://github.com/khaydarov/otus-microservices
- Owner: khaydarov
- Created: 2022-02-02T12:39:27.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-28T07:36:34.000Z (almost 4 years ago)
- Last Synced: 2025-09-09T15:21:28.690Z (10 months ago)
- Topics: api-gateway, bff-microservice, ddd-architecture, design-patterns, docker, event-driven-architecture, golang, grafana, grpc, ingress-nginx, istio-ingress, kubernetes, microservices, php, prometheus
- Language: Go
- Homepage:
- Size: 1.88 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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