Course Outline
Introduction
- System and service architecture, PaaS, and cloud-native design
Overview of Monolithic System Architecture
- Running an entire monolithic applications functionality in a single process
- Scalability through replication across multiple servers
- Protocols used in monolithic systems: EAI, CORBA, etc.
Overview of Webservices
- Service Oriented Architecture (SOA) and Microservices Architecture
Service-Oriented Architecture (SOA)
- Benefit and Costs of SOA
- Successes and failures in implementing SOA
- Messaging and ESB
- Infrastructure and tools supporting SOA
How Microservices Implement Web Service Concepts
- Do one thing and do it well
- DevOps
- 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
- Setting 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
Applying circuit breakers with Hystrix
Declarative REST clients with Feign
Working with API Gateway
Securing a microservice application
Tracing microservices to uncover 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
- Performance scalability for Microservices
- Auto scalability
- Implementing Microservices on OpenStack, AWS, and other cloud platforms
Troubleshooting Common Problems for Distributed Applications
- Complexity of ecosystem
- Network Performance
- Security
- Deployment
- Testing
- Nano-services
Final Considerations for Building Production-ready Systems
- Making system easy for beginners
- Making system complete so that it can serve as the foundation for enterprise applications
Summary and Conclusion
Requirements
- An understanding of software and system engineering
- Java development experience
- Experience with Spring Framework
Audience
- Java developers wishing to rapidly build and deploy microservices
- System architects wishing to implement a microservice architecture
Testimonials (5)
The practice on each case, the good explanation, very understandable and extensive knowledge of the topics; a real example was used to practice
ESTEFANNY GIL MORA - Global K S.A. de C.V.
Course - Use Case Modeling
Machine Translated
-Knowledge of the teacher in the subject was really good. He was able to explain very nicely and was able to answer all the questions at that moment. -To be able to know what all the tool is capable of was really good. -The structure he showed, like using scenarios and traceability would be really helpful in my day-to-day work.
Harsha Jain - Scania CV AB
Course - Introduction to Enterprise Architect
Great knowledge.
Marie - Forsvarets forkningsinstitutt
Course - Systems Modeling with SysML and Enterprise Architect (EA)
Muchos ejemplos.
Alberto Laguna Aceves - Isdefe
Course - UML in Enterprise Architect (workshops)
I really enjoyed the real examples and exercises.