Course Code: mcrservicesbspk
Duration: 14 hours
Prerequisites:
  • None
Course Outline:

- Introduction
• Monolithic vs microservice architecture
• Breaking up an application
• How microservices communicate with each other
• What microservices are
• Technology
• Advantages and disadvantages of microservices
• When should you use them, and when shouldn’t you use them?

- Service Design
• Designing the business logic for your application
• Understanding event sourcing
• Interacting with external APIs

- Service Modelling
• Characteristics of “good” services
• Introduction to domain driven design
• Usefulness of Bounded Contexts when defining service boundaries
• Event storming and capability modelling

- Splitting Out Services
• Planning a transition
• Incremental decomposition patterns
• Splitting the schema
• Discussion of CAP theory, distributed transactions and eventual consistency

- Service Collaboration
• Synchronous vs asynchronous
• Event-based collaboration vs Request/Response
• Coverage of technology options including REST, RPC, Actor frameworks, Message Brokers including Kafka
• Choreography vs Orchestration

- Testing
• End-to-end testing in a microservice world
• Test types and feedback
• Consumer-driven contracts

- Observability
• Log aggregation
• Correlation IDs
• Metrics collection
• Semantic monitoring & synthetic transactions
• Real-user monitoring
• Synthetic Transactions

- Resiliency & Scaling
• Types of scaling (scaling cube + more)
• Scaling for load vs scaling for resiliency
• Circuit Breakers and connection pooling