SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
1CONFIDENTIAL
SPRING CLOUD AND
NETFLIX OSS OVERVIEW
DZMITRY SKAREDAU, SOLUTION ARCHITECT
MARCH 30, 2016
2CONFIDENTIAL
2
Follow my Microservices Series
• Microservices architecture overview
• Minsk Tech Talks (Oct 08/Oct 16)
• SEC Online (May 17)
• Spring Cloud + Netflix OSS overview
• Minsk Tech Talks (Mar 30)
• Microservices and Domain Driven Design
• 12-Factor Apps: closer look
• CI/CD for Microservices using Docker and Kubernetes
• Spring Cloud workshop
ABOUT
Dzmitry Skaredau
Solution Architect
Twitter: @dskaredov
• ~15 years in software development
• Java Competency Center Expert
https://epa.ms/SkillsMatrix
https://epa.ms/RnDSaaS
https://epa.ms/JavaTechTalks (KB)
https://epa.ms/MinskTechTalks (Yammer)
https://epa.ms/Microservices (Yammer)
3CONFIDENTIAL
3
• Spring Boot
• Spring Cloud Config
• Spring Cloud Bus
• Spring Cloud Netflix
• Spring Cloud Stream
• Spring Cloud Sleuth
AGENDA
4CONFIDENTIAL
SPRING BOOT
5CONFIDENTIAL
5
AUTO CONFIGRATION − NO MORE BOILERPLATE CODE
In information technology, a boilerplate is a unit
of writing that can be reused over and over
without change. By extension, the idea is
sometimes applied to reusable programming as in
"boilerplate code."
6CONFIDENTIAL
6
ACTUATOR
ID Description Sensitive
Default
actuator Provides a hypermedia-based “discovery page” for the other endpoints. Requires Spring HATEOAS to be on the classpath. true
autoconfig Displays an auto-configuration report showing all auto-configuration candidates and the reason why they ‘were’ or ‘were not’
applied.
true
beans Displays a complete list of all the Spring beans in your application. true
configprops Displays a collated list of all @ConfigurationProperties. true
docs Displays documentation, including example requests and responses, for the Actuator’s endpoints. Requiresspring-boot-actuator-
docs to be on the classpath.
false
dump Performs a thread dump. true
env Exposes properties from Spring’s ConfigurableEnvironment. true
flyway Shows any Flyway database migrations that have been applied. true
health Shows application health information (when the application is secure, a simple ‘status’ when accessed over an unauthenticated
connection or full message details when authenticated).
false
info Displays arbitrary application info. false
liquibase Shows any Liquibase database migrations that have been applied. true
logfile Returns the contents of the logfile (if logging.file or logging.path properties have been set). Only available via MVC. Supports the
use of the HTTP Range header to retrieve part of the log file’s content.
true
metrics Shows ‘metrics’ information for the current application. true
mappings Displays a collated list of all @RequestMapping paths. true
shutdown Allows the application to be gracefully shutdown (not enabled by default). true
trace Displays trace information (by default the last few HTTP requests). true
7CONFIDENTIAL
7
ENDPOINTS
• env
• liquibase
• metrics
• trace
• etc
8CONFIDENTIAL
8
INFO
• config
• code
9CONFIDENTIAL
9
HEALTH
Name Description
CassandraHealthIndicator Checks that a Cassandra database is up.
DiskSpaceHealthIndicator Checks for low disk space.
DataSourceHealthIndicator Checks that a connection to DataSource can be obtained.
ElasticsearchHealthIndicator Checks that an ElasticSearch cluster is up.
JmsHealthIndicator Checks that a JMS broker is up.
MailHealthIndicator Checks that a mail server is up.
MongoHealthIndicator Checks that a Mongo database is up.
RabbitHealthIndicator Checks that a Rabbit server is up.
RedisHealthIndicator Checks that a Redis server is up.
SolrHealthIndicator Checks that a Solr server is up.
10CONFIDENTIAL
10
CUSTOM HEALTH INDICATORS
@Bean
HealthIndicator healthIndicator() {
return new HealthIndicator() {
@Override
public Health health() {
return Health.status(check()).build();
}
};
}
11CONFIDENTIAL
11
SPRING DATA REST
12CONFIDENTIAL
SPRING CLOUD
13CONFIDENTIAL
13
SPRING CLOUD
• Distributed/Versioned Configuration Management
• Service Registration & Discovery
• Routing & Load Balancing
• Fault Tolerance (Circuit Breakers)
• Monitoring
• Concurrent API Aggregation & Transformation
• Distributed messaging
• Spring Cloud Config
• Spring Cloud Netflix
• Spring Cloud Bus
• Spring Cloud for Cloud Foundry
• Spring Cloud Cluster
• Spring Cloud Consul
• Spring Cloud Security
• Spring Cloud Sleuth
• Spring Cloud Data Flow
• Spring Cloud Stream
• Spring Cloud Stream Modules
• Spring Cloud Task
• Spring Cloud Zookeeper
• Spring Cloud for Amazon Web Services
• Spring Cloud Connectors
• Spring Cloud Starters
• Spring Cloud CLI
MAIN PROJECTS PATTERNS
14CONFIDENTIAL
SPRING CLOUD CONFIG
15CONFIDENTIAL
15
SPRING CLOUD CONFIG
Spring Cloud Config provides server and client-side support for
externalized configuration in a distributed system
16CONFIDENTIAL
16
SPRING CLOUD CONFIG
FEATURES
MAJOR FEATURES
• Version control
• Changing live
• HTTP, resource-based API for external configuration (name-value pairs, or equivalent YAML content)
• Encrypt and decrypt property values (symmetric or asymmetric)
• Embeddable easily in a Spring Boot application using @EnableConfigServer
• Bind to the Config Server and initialize Spring Environment with remote property sources
• Encrypt and decrypt property values (symmetric or asymmetric)
17CONFIDENTIAL
17
DEMO
• config
• code
18CONFIDENTIAL
18
VERSION CONTROL
• http://localhost:8888/article-service/default/
• http://localhost:8888/article-service/default/1.0.0
• http://localhost:8888/article-service/default/1.0.1
/{application}/{profile}[/{label}]
The HTTP service has resources in the form:
19CONFIDENTIAL
19
REFRESH SCOPE
• config
• code
20CONFIDENTIAL
SPRING CLOUD BUS
21CONFIDENTIAL
21
SPRING CLOUD BUS
An event bus for linking services and service instances together with distributed messaging.
Useful for propagating state changes across a cluster (e.g. config change events)
22CONFIDENTIAL
SPRING CLOUD NETFLIX
23CONFIDENTIAL
23
SPRING CLOUD NETFLIX
MAJOR FEATURES
• Service Discovery
• Circuit Breaker
• Client Side Load Balancer
• Router and Filter
• Monitoring
24CONFIDENTIAL
24
SERVICE DISCOVERY: EUREKA
25CONFIDENTIAL
25
CLIENT SIDE LOAD BALANCER: RIBBON
26CONFIDENTIAL
26
CLIENT SIDE LOAD BALANCER: RIBBON
Ribbon provides a rich set of features including:
• Multiple built-in load balancing rules:
—Round-robin
—Average response-time weighted
—Random
—Availability filtered (avoid tripped circuits or high concurrent
connection counts)
• Custom load balancing rule plugin system
• Pluggable integration with service discovery solutions (including
Eureka)
• Cloud-native intelligence such as zone affinity and unhealthy
zone avoidance
• Built-in failure resiliency
27CONFIDENTIAL
27
CIRCUIT BREAKER: HYSTRIX
28CONFIDENTIAL
28
CIRCUIT BREAKER: HYSTRIX
29CONFIDENTIAL
29
CLIENT SIDE LOAD BALANCERROUTER AND FILTER: ZUUL
Netflix uses filters dynamically loaded into Zuul to perform the following functions:
• Authentication and security: Identifying authentication requirements for each resource and rejecting
requests that do not satisfy them.
• Insights and monitoring: Tracking meaningful data and statistics at the edge in order to give us an
accurate view of production.
• Dynamic routing: Dynamically routing requests to different back-end clusters as needed.
• Stress testing: Gradually increasing the traffic to a cluster in order to gauge performance.
• Load shedding: Allocating capacity for each type of request and dropping requests that go over the
limit.
• Static response handling: Building some responses directly at the edge instead of forwarding them to
an internal cluster.
• Multiregion resiliency: Routing requests across AWS regions in order to diversify our ELB usage and
move our edge closer to our members.
30CONFIDENTIAL
30
CLIENT SIDE LOAD BALANCERROUTER AND FILTER: ZUUL
31CONFIDENTIAL
31
CLIENT SIDE LOAD BALANCERMONITORING: HYSTRIX DASHBOARD
32CONFIDENTIAL
32
CLIENT SIDE LOAD BALANCERMONITORING: HYSTRIX DASHBOARD
33CONFIDENTIAL
33
CLIENT SIDE LOAD BALANCERMONITORING: TURBINE STREAM AGGREGATOR
34CONFIDENTIAL
SPRING CLOUD STREAM
35CONFIDENTIAL
35
SPRING CLOUD STREAM
Spring Cloud Stream is a framework for building message-driven microservices. Spring Cloud Stream builds
upon Spring Boot to create DevOps friendly microservice applications and Spring Integration to provide
connectivity to message brokers.
By adding @EnableBinding to your main application, you get immediate connectivity to a message
broker and by adding @StreamListener to a method, you will receive events for stream processing.
36CONFIDENTIAL
SPRING CLOUD SLEUTH
37CONFIDENTIAL
37
SPRING CLOUD SLEUTH
Spring Cloud Sleuth implements a distributed tracing solution for
Spring Cloud, borrowing heavily from Dapper, Zipkin and HTrace. For
most users Sleuth should be invisible, and all your interactions with
external systems should be instrumented automatically. You can
capture data simply in logs, or by sending it to a remote collector
service.
38CONFIDENTIAL
38
SPRING CLOUD SLEUTH
39CONFIDENTIAL
QUESTIONS?

Weitere ähnliche Inhalte

Was ist angesagt?

Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on Docker
Docker, Inc.
 
Building ‘Bootiful’ microservices cloud
Building ‘Bootiful’ microservices cloudBuilding ‘Bootiful’ microservices cloud
Building ‘Bootiful’ microservices cloud
Idan Fridman
 

Was ist angesagt? (20)

MicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleMicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scale
 
Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on Docker
 
Building ‘Bootiful’ microservices cloud
Building ‘Bootiful’ microservices cloudBuilding ‘Bootiful’ microservices cloud
Building ‘Bootiful’ microservices cloud
 
Building Microservices with Spring Cloud and Netflix OSS
Building Microservices with Spring Cloud and Netflix OSSBuilding Microservices with Spring Cloud and Netflix OSS
Building Microservices with Spring Cloud and Netflix OSS
 
CDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaCCDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaC
 
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gateway
 
Kubernetes + netflix oss
Kubernetes + netflix ossKubernetes + netflix oss
Kubernetes + netflix oss
 
Cloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudCloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring Cloud
 
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
 
Microservices with Spring Cloud
Microservices with Spring CloudMicroservices with Spring Cloud
Microservices with Spring Cloud
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
Spring cloud Service-Discovery
Spring cloud Service-DiscoverySpring cloud Service-Discovery
Spring cloud Service-Discovery
 
Kubernetes your next application server
Kubernetes  your next application serverKubernetes  your next application server
Kubernetes your next application server
 
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech TalkLevel-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
Level-up your gaming telemetry using Kafka Streams | DevNation Tech Talk
 
Building Micro-Services with Scala
Building Micro-Services with ScalaBuilding Micro-Services with Scala
Building Micro-Services with Scala
 
Serverless Workflow: New approach to Kubernetes service orchestration | DevNa...
Serverless Workflow: New approach to Kubernetes service orchestration | DevNa...Serverless Workflow: New approach to Kubernetes service orchestration | DevNa...
Serverless Workflow: New approach to Kubernetes service orchestration | DevNa...
 
AWS re:Invent re:Cap 2019: My ElasticSearch Journey on AWS
AWS re:Invent re:Cap 2019: My ElasticSearch Journey on AWSAWS re:Invent re:Cap 2019: My ElasticSearch Journey on AWS
AWS re:Invent re:Cap 2019: My ElasticSearch Journey on AWS
 
Mutating Admission Webhook creation
Mutating Admission Webhook creationMutating Admission Webhook creation
Mutating Admission Webhook creation
 
Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...Serverless and Servicefull Applications - Where Microservices complements Ser...
Serverless and Servicefull Applications - Where Microservices complements Ser...
 

Andere mochten auch

Andere mochten auch (16)

The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
 
Spring cloud sleuth
Spring cloud sleuthSpring cloud sleuth
Spring cloud sleuth
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수그루비 소개 발표자료 - 김연수
그루비 소개 발표자료 - 김연수
 
Self-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to MicroservicesSelf-contained Systems: A Different Approach to Microservices
Self-contained Systems: A Different Approach to Microservices
 
Hystrix소개
Hystrix소개Hystrix소개
Hystrix소개
 
Dmp hadoop getting_start
Dmp hadoop getting_startDmp hadoop getting_start
Dmp hadoop getting_start
 
Microservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and ZipkinMicroservices Tracing with Spring Cloud and Zipkin
Microservices Tracing with Spring Cloud and Zipkin
 
Building Distributed Systems with Netflix OSS and Spring Cloud
Building Distributed Systems with Netflix OSS and Spring CloudBuilding Distributed Systems with Netflix OSS and Spring Cloud
Building Distributed Systems with Netflix OSS and Spring Cloud
 
무식하게 배우는 gradle
무식하게 배우는 gradle무식하게 배우는 gradle
무식하게 배우는 gradle
 
Docker Platform and Ecosystem
Docker Platform and EcosystemDocker Platform and Ecosystem
Docker Platform and Ecosystem
 
Microservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale AgileMicroservices and Self-contained System to Scale Agile
Microservices and Self-contained System to Scale Agile
 
Spring Boot 소개
Spring Boot 소개Spring Boot 소개
Spring Boot 소개
 
Microservices Technology Stack
Microservices Technology StackMicroservices Technology Stack
Microservices Technology Stack
 
Microservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring CloudMicroservice With Spring Boot and Spring Cloud
Microservice With Spring Boot and Spring Cloud
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
 

Ähnlich wie Spring Cloud and Netflix OSS overview v1

Ähnlich wie Spring Cloud and Netflix OSS overview v1 (20)

ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
 
Confluent Tech Talk Korea
Confluent Tech Talk KoreaConfluent Tech Talk Korea
Confluent Tech Talk Korea
 
All Streams Ahead! ksqlDB Workshop ANZ
All Streams Ahead! ksqlDB Workshop ANZAll Streams Ahead! ksqlDB Workshop ANZ
All Streams Ahead! ksqlDB Workshop ANZ
 
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
 
05.10.2017 AWS User Group Meetup - FALLACIES OF DISTRIBUTED COMPUTING WITH KU...
05.10.2017 AWS User Group Meetup - FALLACIES OF DISTRIBUTED COMPUTING WITH KU...05.10.2017 AWS User Group Meetup - FALLACIES OF DISTRIBUTED COMPUTING WITH KU...
05.10.2017 AWS User Group Meetup - FALLACIES OF DISTRIBUTED COMPUTING WITH KU...
 
Fallacies of distributed computing with Kubernetes on AWS
Fallacies of distributed computing with Kubernetes on AWSFallacies of distributed computing with Kubernetes on AWS
Fallacies of distributed computing with Kubernetes on AWS
 
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...[RightScale Webinar] Architecting Databases in the cloud:  How RightScale Doe...
[RightScale Webinar] Architecting Databases in the cloud: How RightScale Doe...
 
Who's in your Cloud? Cloud State Monitoring
Who's in your Cloud? Cloud State MonitoringWho's in your Cloud? Cloud State Monitoring
Who's in your Cloud? Cloud State Monitoring
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
 
Flying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsFlying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native Applications
 
Easy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsEasy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applications
 
Security Requires Visibility-Turn Data Into Security Insight
Security Requires Visibility-Turn Data Into Security InsightSecurity Requires Visibility-Turn Data Into Security Insight
Security Requires Visibility-Turn Data Into Security Insight
 
Microservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing MicroservicesMicroservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing Microservices
 
Come costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWSCome costruire apllicazioni "12-factor microservices" in AWS
Come costruire apllicazioni "12-factor microservices" in AWS
 
Bridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and KafkaBridging the Gap: Connecting AWS and Kafka
Bridging the Gap: Connecting AWS and Kafka
 
All About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice FrameworksAll About Microservices and OpenSource Microservice Frameworks
All About Microservices and OpenSource Microservice Frameworks
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
 
Introduction no sql solutions with couchbase and .net core
Introduction no sql solutions with couchbase and .net coreIntroduction no sql solutions with couchbase and .net core
Introduction no sql solutions with couchbase and .net core
 
MongoDB 4.0 새로운 기능 소개
MongoDB 4.0 새로운 기능 소개MongoDB 4.0 새로운 기능 소개
MongoDB 4.0 새로운 기능 소개
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Spring Cloud and Netflix OSS overview v1

  • 1. 1CONFIDENTIAL SPRING CLOUD AND NETFLIX OSS OVERVIEW DZMITRY SKAREDAU, SOLUTION ARCHITECT MARCH 30, 2016
  • 2. 2CONFIDENTIAL 2 Follow my Microservices Series • Microservices architecture overview • Minsk Tech Talks (Oct 08/Oct 16) • SEC Online (May 17) • Spring Cloud + Netflix OSS overview • Minsk Tech Talks (Mar 30) • Microservices and Domain Driven Design • 12-Factor Apps: closer look • CI/CD for Microservices using Docker and Kubernetes • Spring Cloud workshop ABOUT Dzmitry Skaredau Solution Architect Twitter: @dskaredov • ~15 years in software development • Java Competency Center Expert https://epa.ms/SkillsMatrix https://epa.ms/RnDSaaS https://epa.ms/JavaTechTalks (KB) https://epa.ms/MinskTechTalks (Yammer) https://epa.ms/Microservices (Yammer)
  • 3. 3CONFIDENTIAL 3 • Spring Boot • Spring Cloud Config • Spring Cloud Bus • Spring Cloud Netflix • Spring Cloud Stream • Spring Cloud Sleuth AGENDA
  • 5. 5CONFIDENTIAL 5 AUTO CONFIGRATION − NO MORE BOILERPLATE CODE In information technology, a boilerplate is a unit of writing that can be reused over and over without change. By extension, the idea is sometimes applied to reusable programming as in "boilerplate code."
  • 6. 6CONFIDENTIAL 6 ACTUATOR ID Description Sensitive Default actuator Provides a hypermedia-based “discovery page” for the other endpoints. Requires Spring HATEOAS to be on the classpath. true autoconfig Displays an auto-configuration report showing all auto-configuration candidates and the reason why they ‘were’ or ‘were not’ applied. true beans Displays a complete list of all the Spring beans in your application. true configprops Displays a collated list of all @ConfigurationProperties. true docs Displays documentation, including example requests and responses, for the Actuator’s endpoints. Requiresspring-boot-actuator- docs to be on the classpath. false dump Performs a thread dump. true env Exposes properties from Spring’s ConfigurableEnvironment. true flyway Shows any Flyway database migrations that have been applied. true health Shows application health information (when the application is secure, a simple ‘status’ when accessed over an unauthenticated connection or full message details when authenticated). false info Displays arbitrary application info. false liquibase Shows any Liquibase database migrations that have been applied. true logfile Returns the contents of the logfile (if logging.file or logging.path properties have been set). Only available via MVC. Supports the use of the HTTP Range header to retrieve part of the log file’s content. true metrics Shows ‘metrics’ information for the current application. true mappings Displays a collated list of all @RequestMapping paths. true shutdown Allows the application to be gracefully shutdown (not enabled by default). true trace Displays trace information (by default the last few HTTP requests). true
  • 9. 9CONFIDENTIAL 9 HEALTH Name Description CassandraHealthIndicator Checks that a Cassandra database is up. DiskSpaceHealthIndicator Checks for low disk space. DataSourceHealthIndicator Checks that a connection to DataSource can be obtained. ElasticsearchHealthIndicator Checks that an ElasticSearch cluster is up. JmsHealthIndicator Checks that a JMS broker is up. MailHealthIndicator Checks that a mail server is up. MongoHealthIndicator Checks that a Mongo database is up. RabbitHealthIndicator Checks that a Rabbit server is up. RedisHealthIndicator Checks that a Redis server is up. SolrHealthIndicator Checks that a Solr server is up.
  • 10. 10CONFIDENTIAL 10 CUSTOM HEALTH INDICATORS @Bean HealthIndicator healthIndicator() { return new HealthIndicator() { @Override public Health health() { return Health.status(check()).build(); } }; }
  • 13. 13CONFIDENTIAL 13 SPRING CLOUD • Distributed/Versioned Configuration Management • Service Registration & Discovery • Routing & Load Balancing • Fault Tolerance (Circuit Breakers) • Monitoring • Concurrent API Aggregation & Transformation • Distributed messaging • Spring Cloud Config • Spring Cloud Netflix • Spring Cloud Bus • Spring Cloud for Cloud Foundry • Spring Cloud Cluster • Spring Cloud Consul • Spring Cloud Security • Spring Cloud Sleuth • Spring Cloud Data Flow • Spring Cloud Stream • Spring Cloud Stream Modules • Spring Cloud Task • Spring Cloud Zookeeper • Spring Cloud for Amazon Web Services • Spring Cloud Connectors • Spring Cloud Starters • Spring Cloud CLI MAIN PROJECTS PATTERNS
  • 15. 15CONFIDENTIAL 15 SPRING CLOUD CONFIG Spring Cloud Config provides server and client-side support for externalized configuration in a distributed system
  • 16. 16CONFIDENTIAL 16 SPRING CLOUD CONFIG FEATURES MAJOR FEATURES • Version control • Changing live • HTTP, resource-based API for external configuration (name-value pairs, or equivalent YAML content) • Encrypt and decrypt property values (symmetric or asymmetric) • Embeddable easily in a Spring Boot application using @EnableConfigServer • Bind to the Config Server and initialize Spring Environment with remote property sources • Encrypt and decrypt property values (symmetric or asymmetric)
  • 18. 18CONFIDENTIAL 18 VERSION CONTROL • http://localhost:8888/article-service/default/ • http://localhost:8888/article-service/default/1.0.0 • http://localhost:8888/article-service/default/1.0.1 /{application}/{profile}[/{label}] The HTTP service has resources in the form:
  • 21. 21CONFIDENTIAL 21 SPRING CLOUD BUS An event bus for linking services and service instances together with distributed messaging. Useful for propagating state changes across a cluster (e.g. config change events)
  • 23. 23CONFIDENTIAL 23 SPRING CLOUD NETFLIX MAJOR FEATURES • Service Discovery • Circuit Breaker • Client Side Load Balancer • Router and Filter • Monitoring
  • 26. 26CONFIDENTIAL 26 CLIENT SIDE LOAD BALANCER: RIBBON Ribbon provides a rich set of features including: • Multiple built-in load balancing rules: —Round-robin —Average response-time weighted —Random —Availability filtered (avoid tripped circuits or high concurrent connection counts) • Custom load balancing rule plugin system • Pluggable integration with service discovery solutions (including Eureka) • Cloud-native intelligence such as zone affinity and unhealthy zone avoidance • Built-in failure resiliency
  • 29. 29CONFIDENTIAL 29 CLIENT SIDE LOAD BALANCERROUTER AND FILTER: ZUUL Netflix uses filters dynamically loaded into Zuul to perform the following functions: • Authentication and security: Identifying authentication requirements for each resource and rejecting requests that do not satisfy them. • Insights and monitoring: Tracking meaningful data and statistics at the edge in order to give us an accurate view of production. • Dynamic routing: Dynamically routing requests to different back-end clusters as needed. • Stress testing: Gradually increasing the traffic to a cluster in order to gauge performance. • Load shedding: Allocating capacity for each type of request and dropping requests that go over the limit. • Static response handling: Building some responses directly at the edge instead of forwarding them to an internal cluster. • Multiregion resiliency: Routing requests across AWS regions in order to diversify our ELB usage and move our edge closer to our members.
  • 30. 30CONFIDENTIAL 30 CLIENT SIDE LOAD BALANCERROUTER AND FILTER: ZUUL
  • 31. 31CONFIDENTIAL 31 CLIENT SIDE LOAD BALANCERMONITORING: HYSTRIX DASHBOARD
  • 32. 32CONFIDENTIAL 32 CLIENT SIDE LOAD BALANCERMONITORING: HYSTRIX DASHBOARD
  • 33. 33CONFIDENTIAL 33 CLIENT SIDE LOAD BALANCERMONITORING: TURBINE STREAM AGGREGATOR
  • 35. 35CONFIDENTIAL 35 SPRING CLOUD STREAM Spring Cloud Stream is a framework for building message-driven microservices. Spring Cloud Stream builds upon Spring Boot to create DevOps friendly microservice applications and Spring Integration to provide connectivity to message brokers. By adding @EnableBinding to your main application, you get immediate connectivity to a message broker and by adding @StreamListener to a method, you will receive events for stream processing.
  • 37. 37CONFIDENTIAL 37 SPRING CLOUD SLEUTH Spring Cloud Sleuth implements a distributed tracing solution for Spring Cloud, borrowing heavily from Dapper, Zipkin and HTrace. For most users Sleuth should be invisible, and all your interactions with external systems should be instrumented automatically. You can capture data simply in logs, or by sending it to a remote collector service.