Download presentation
Presentation is loading. Please wait.
Published byGerard Stokes Modified over 6 years ago
1
OpenLegacy Training Day Four Introduction to Microservices
Prepared for
2
Agenda Introduction to Microservices Microservice Architecture
Components and Frameworks Inter-Process Communications OpenLegacy Microservices
3
In the beginning, there was a Monolith …
? Explain about how applications were built before. Explain the problem with the old “Monolith” architecture.
4
What is a Microservices Architecture?
Microservices architecture is a service‑oriented architecture composed of loosely coupled elements that have bounded contexts Scale out vs. Scale up If you keep scaling up, you’ll hit a limit Horizontal scaling gives you a longer runway Redundancy and Isolation For Resiliency Make more than one of anything Isolate the blast radius for any given failure - Loosely coupled means that you can update services independently
5
Tight Coupling Doesn’t Work
6
Loose Coupling
8
Microservices Architecture Example
9
Components and Frameworks
Service Discovery (Netflix Eureka) Gateway (Netflix Zuul) Fault Tolerance (Netflix Hystrix) Config Server (Spring Cloud) UAA (Spring Security) Log Analysis (Zipkin) Aggregation (ELK Stack) - Fast slide, just to show the components in a list
10
Service Discovery Implemented using Netflix Eureka
Eureka is a REST (Representational State Transfer) based service that is primarily used in AWS cloud to locate services for load balancing and failover of middle-tier servers
11
Gateway Implemented using Netflix Zuul
Zuul is an edge service providing dynamic routing, monitoring, resiliency, security, etc.
12
Fault Tolerance Implemented using Netflix Hystrix
Hystrix is a Latency and Fault Tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable
13
Config Server Spring Cloud Config Server features:
HTTP, resource-based API for external configuration (name- value pairs, or equivalent YAML content) Encrypt and decrypt property values (symmetric or asymmetric) Easily embeddable in a Spring Boot application using @EnableConfigServer Config Client features (for Spring applications): Bind to Config Server and initialize Spring Environment with remote property sources
14
UAA – User Account and Authentication
UAA is a multi-tenant Identity Management service It is primarily an OAuth2 provider, issuing tokens for client applications to use when they act on behalf of business users UAA can also act as an SSO service using those credentials (or others) It has endpoints to manage user accounts and register OAuth2 clients, as well as various other management functions
15
Log Analysis Spans are written using Spring Cloud Sleuth
We can monitor APIs in real-time using Zipkin Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in microservice architectures. It manages both collection and lookup of this data. Zipkin’s design is based on the Google Dapper paper.
16
Log Aggregation Elasticsearch Logstash Kibana
Writing, indexing and viewing of logs in distributed environment is implemented with the ELK stack. Elasticsearch Logstash Kibana
17
Elasticsearch
18
Logstash
19
Kibana
20
Inter-Process Communication (IPC)
Netflix Ribbon Ribbon is a client side IPC library that is battle-tested in Cloud @LoadBalanced Annotation to mark a RestTemplate bean to be configured to use a LoadBalancerClient
21
Demo
22
Deployment Packaging Docker Cloud Foundry
23
Packaging JAR Spring Boot Maven plugin
A JAR (Java ARchive) is a package file format typically used to aggregate many Java class files and associated metadata and resources (text, images, etc.) into one file for distribution Spring Boot Maven plugin Spring Boot Maven Plugin provides Spring Boot support in Maven, allowing you to package executable jar or war archives and run an application “in-place” Can be packaged as JAR or WAR Can be deployed to traditional containers like Tomcat as a WAR Can be ran anywhere as a “self-executable” JAR Spring Boot also has a plugin for gradle
24
Docker Docker is the world’s leading software container platform
Dockerfile Docker builds images automatically by reading instructions from a Dockerfile Docker Compose Compose is a tool to define and run multi-container Docker applications We provide dockerfiles with all of our projects We provide a default docker compose for the projects We provide a default docker compose for the ELK stack (pre-configured for openlegacy)
25
Cloud Foundry Cloud Foundry is the industry standard open source Cloud application platform to develop and deploy Enterprise Cloud applications. Manifest Manifests provide consistency and reproducibility, and help automate deployment, especially of multiple applications at once Cloud Foundry is the industry standard open source cloud application platform for developing and deploying enterprise cloud applications. It automates, scales and manages cloud apps throughout their lifecycle. Applications can be written in just about any language and are deployed in containers on multiple cloud infrastructures. We provide default manifests for all of our projects
26
Exercise Username: ol-training Password: training2017
Username: ol-training Password: training2017
27
Questions? Tom Fingerman
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.