Course Outline
Introduction
- System and service architecture, PaaS, and cloud-native design
Overview of Monolithic System Architecture
- Executing the full functionality of a monolithic application within a single process
- Scaling through replication across multiple servers
- Protocols used in monolithic systems: EAI, CORBA, etc.
Overview of Web Services
- Service Oriented Architecture (SOA) and Microservices Architecture
Service-Oriented Architecture (SOA)
- Benefits and costs of SOA
- Successes and failures in implementing SOA
- Messaging and Enterprise Service Bus (ESB)
- Infrastructure and tools supporting SOA
How Microservices Implement Web Service Concepts
- Focus on doing one thing and doing it well
- DevOps practices
- Continuous Deployment and Delivery (Continuous Integration, Continuous Build Process, etc.)
- Lightweight protocols
Microservice Protocols and Standards
- HTTP, JMS, AMQP, Websockets, JSON, etc.
Development Frameworks for Building Microservices
- Java-based frameworks (Spring Cloud)
- JavaScript-based frameworks (Seneca)
Decomposing a Monolith Application
- Developing independently deployable applications
- Organizing microservice applications around business capabilities
- Case study: Migrating a monolith application to three core microservices
Setting up a Spring Cloud Development Environment
- Setting up Docker and Docker Compose
- Configuring environment variables
Overview of Spring Cloud and Spring Boot
- Spring Cloud sub-projects: Config Server & Bus, Eureka, Ribbon, Feign, and Hystrix
- Spring Boot
Creating a Spring Boot application
Centralized, versioned configuration management with Spring Cloud Config
Dynamic configuration updates with Spring Cloud Bus
Service discovery with Eureka
Load balancing with Ribbon
Implementing circuit breakers with Hystrix
Using declarative REST clients with Feign
Working with API Gateway
Securing a microservice application
Tracing microservices to identify latencies
Deploying Microservices
- Containers (Docker, K8N, LXC, etc...)
- Configuration Management (Ansible, etc...)
- Service discovery
- Monitoring and Managing Microservices
- Infrastructure for Microservices
Cloud and Auto-Scalability of Microservices
- Microservice redundancy and fail-over mechanisms
- Performance scalability for Microservices
- Auto-scaling capabilities
- Implementing Microservices on OpenStack, AWS, and other cloud platforms
Troubleshooting Common Problems for Distributed Applications
- Ecosystem complexity
- Network performance
- Security
- Deployment challenges
- Testing strategies
- Nano-services
Final Considerations for Building Production-ready Systems
- Ensuring the system is accessible for beginners
- Ensuring the system is comprehensive enough to serve as the foundation for enterprise applications
Summary and Conclusion
Requirements
- Understanding of software and system engineering principles
- Experience in Java development
- Familiarity with the Spring Framework
Audience
- Java developers aiming to quickly build and deploy microservices
- System architects looking to implement microservice architectures
Testimonials (3)
Practise exercises in EA.
Pawel - Krajowa Szkola Skarbowosci
Course - UML in Enterprise Architect (workshops)
The practices
Ivan - si
Course - Spring Cloud for Microservices
Good trainer and process of training