trainocate-advanced-technology-courses-b
Home > Vendors > Advanced-Technology-Courses > SPRING-ARCH-DESIGN

SPRING-ARCH-DESIGN - Spring Architecture and Design

Overview

Duration: 5 days
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.

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

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
        o Creating a Spring Boot application
        o Centralized, versioned configuration management with Spring Cloud Config
        o Dynamic configuration updates with Spring Cloud Bus
        o Service discovery with Eureka
        o Load balancing with Ribbon
        o Applying circuit breakers with Hystrix
        o Declarative REST clients with Feign
        o Working with API Gateway
        o Securing a microservice application
        o 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

Audience

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

Prerequisites

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

Certification

Trainocate Certificate of Attendance

Schedule

Show Schedule for: