Get in Touch

Course Outline

Introduction

  • System and service architecture, PaaS, and cloud-native design

Overview of Monolithic System Architecture

  • Running an entire monolithic application's functionality within a single process
  • Scalability achieved 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 ESB
  • Infrastructure and tools supporting SOA

How Microservices Implement Web Service Concepts

  • Focus on doing one thing and doing 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 Monolithic Application

  • Developing independently deployable applications
  • Organising microservice applications around business capabilities
  • Case study: Migrating 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
  • Spring Boot

Creating a Spring Boot Application

Centralised, 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 the ecosystem
  • Network performance
  • Security
  • Deployment
  • Testing
  • Nano-services

Final Considerations for Building Production-Ready Systems

  • Making the system accessible for beginners
  • Ensuring the system is comprehensive enough to serve as the foundation for enterprise applications

Summary and Conclusion

Requirements

  • A solid understanding of software and system engineering
  • Experience in Java development
  • Proficiency with the Spring Framework

Audience

  • Java developers seeking to rapidly build and deploy microservices
  • System architects aiming to implement a microservice architecture
 21 Hours

Number of participants


Price per participant

Testimonials (3)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories