Course Outline
Introduction
- System and service architecture, Platform as a Service (PaaS), and cloud-native design for government
Overview of Monolithic System Architecture
- Running an entire monolithic application's functionality in a single process
- Scalability achieved through replication across multiple servers
- Protocols utilized in monolithic systems, such as Enterprise Application Integration (EAI) and Common Object Request Broker Architecture (CORBA)
Overview of Web Services
- Service-Oriented Architecture (SOA) and Microservices Architecture
Service-Oriented Architecture (SOA)
- Benefits and costs associated with SOA implementation
- Successes and challenges in implementing SOA
- Messaging and Enterprise Service Bus (ESB)
- Infrastructure and tools supporting SOA
How Microservices Implement Web Service Concepts
- Focusing on a single responsibility and excelling at it
- DevOps practices for continuous improvement
- Continuous Deployment and Delivery, including Continuous Integration and build processes
- Utilization of lightweight protocols
Microservice Protocols and Standards
- HTTP, Java Message Service (JMS), Advanced Message Queuing Protocol (AMQP), WebSockets, JSON, etc.
Development Frameworks for Building Microservices
- Java-based frameworks, such as Spring Cloud
- Javascript-based frameworks, such as Seneca
Decomposing a Monolithic Application
- Developing independently deployable applications for government
- Organizing microservice applications around business capabilities
- Case study: Transitioning a monolithic application to three core microservices
Setting up a Spring Cloud Development Environment
- Configuring 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
- Introduction to 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
Declarative REST clients with Feign
Working with API Gateway
Securing a microservice application
Tracing microservices to identify latencies
Deploying Microservices
- Containers (Docker, Kubernetes, LXC, etc.)
- Configuration Management (Ansible, etc.)
- Service discovery mechanisms
- Monitoring and managing microservices for government
- Infrastructure requirements for microservices
Cloud and Auto Scalability of Microservices
- Microservice redundancy and fail-over strategies
- Performance scalability solutions for microservices
- Auto-scalability features
- Implementing microservices on cloud platforms such as OpenStack, AWS, and others
Troubleshooting Common Problems for Distributed Applications
- Complexity of the ecosystem
- Network performance issues
- Security concerns
- Deployment challenges
- Testing methodologies
- Nano-services and their implications
Final Considerations for Building Production-Ready Systems
- Making the system accessible and user-friendly for beginners
- Ensuring the system is comprehensive enough to serve as a foundation for enterprise applications
Summary and Conclusion
Requirements
- An understanding of software and system engineering for government
- Experience in Java development
- Familiarity with the Spring Framework
Audience
- Java developers seeking to quickly build and deploy microservices within public sector environments
- System architects aiming to implement a microservice architecture for government operations
Testimonials (5)
Practise exercises in EA.
Pawel - Krajowa Szkola Skarbowosci
Course - UML in Enterprise Architect (workshops)
It was dynamic and very practical, in addition to the fact that a virtual machine was provided to us through a URL
Aida - ENGINEERING AND SERVICES JF S.A. DE C.V.
Course - Spring Cloud for Microservices
-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)
Practical examples, and open disussions