Course Content
Introduction to Microservices?
- Small and focused
- Loosely coupled
- Language-neutral
- Bounded Context
- Comparing microservices and monolithic architectures
Benefits from Microservices
- Enterprise solutions context
- Service management perspective
- Business owner perspective
- Challenges with a monolithic architecture
- Developer perspective
- Tester perspective
How is this different than service-oriented architecture?
- Case studies and most common architectural patterns
- Example scenarios using microservices
- An e-commerce discount site
- Large brick-and-mortar retailer
- Financial Services Company
What to avoid with Microservices
- keep an eye on the latency dispute
- Don’t create too many microservice
- Don’t start with microservices
- Don’t even think about microservices without DevOps
- Don’t manage your own infrastructure
Characteristics of Microservices architecture
- Evolutionary design
- Business-oriented
- Decentralized data management
- Design for failure
- Discoverability
- Dealing with complexity
- Inter-service communication design
Designing Microservices
- Use design thinking to scope and identify microservices
- Choosing the implementation stack
- Sizing the microservices
Microservices and DevOps
- Why use DevOps
- Introduction to DevOps
- Organizing teams to support microservices
- Organize a DevOps team to support other microservices teams
REST API and messaging
- REST
- Messaging
- REST and messaging together
DevOps and Microservices
- Why you should use DevOps
- Defining DevOps
- Organize a DevOps team to support other microservices teams
- DevOps is a prerequisite to well-adopting microservices
- Organizing teams to support microservices
Microservices governance
- Centralized versus decentralized governance
- DevOps capabilities: Testing strategies for microservices
- Building a sufficient testing strategy
- Enterprise transformation for microservices
- Considerable testing methods
DevOps capabilities for Microservices architecture
- Continuous business planning
- Continuous integration and collaborative development
- Continuous release and deployment
- Continuous testing and monitoring
- Continuous customer feedback and optimization