Spring Architecture and Design

Course Overview:

Spring Cloud is a platform for building Java-based distributed systems and microservices. Building complex enterprise applications is challenging. Any change made to a part of the systems could trigger the need for changing the design of the entire system. By the end of this training, participants will have a solid understanding of Service-Oriented Architecture (SOA) and Microservice Architecture as well practical experience using Spring Cloud and related Spring technologies for rapidly developing their own cloud-scale, cloud-ready microservices.

Course Objectives:

  • Participants will learn how to evaluate different technologies and approaches for the design of a services-based system architecture.
  • The training begins with a discussion and comparison of monolithic systems and service architectures, then digs into the details of microservice architecture.
  • Participants are given a chance to put their knowledge into practice as they step through the creation and deployment of a set of proof-of-concept microservices built with Spring Cloud, Spring Boot and Docker.
  • Finally, the relevant infrastructure building blocks are examined to help participants determine the most suitable tools and approaches to use for different organizational requirements.
  • Part lecture, part discussion, exercises and heavy hands-on practice

Pre-requisites:

  • An understanding of software and system engineering
  • Java development experience
  • Experience with Spring Framework

Target Audience:

  • Java developers wishing to rapidly build and deploy microservices
  • System Architects wishing to implement a microservice architecture

Course Duration:

  • 35 hours – 5 days

Course Content:

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

 

Course Customization Options

To request a customized training for this course, please contact us to arrange.

Best selling courses

CLOUD COMPUTING

Enterprise Architecture

DATA SCIENCE

Tableau Basic

CYBER SECURITY / BLOCKCHAIN / NETWORK

Web Application Security

ARTIFICIAL INTELLIGENCE / MACHINE LEARNING / DEEP LEARNING

RPA with UiPath

PROGRAMMING / CODING

MATLAB Fundamentals