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
 21 Hours

Number of participants


Price per participant

Testimonials (5)

Upcoming Courses

Related Categories