SlideShare a Scribd company logo
1 of 27
Jacek Bukowski
GlobalLogic
„Flying to clouds” – can it
be easy?
Joint forces of Netflix and Spring
Spring was always about simplifying the
complicated aspects of your enterprise system.
Netflix went to microservice architecture long
before this term even was created.
Both are very much contributed to open source
software.
How can you benefit from joint forces of the both?
CLOUD AND CLOUD NATIVE
APPLICATION
Cloud
„any computing environment in which computing,
networking, and storage resources can be
provisioned and released elastically in an on-
demand, self-service manner”
from „Migrating to Cloud Native Applications Architectures” by Matt Stine
Target cloud
Service model Cloud Provider
SaaSSaaS PaaSPaaS
IaaSIaaS MBaaSMBaaS
EaaS/XaaS/*aaSEaaS/XaaS/*aaS
Technology stack
Language Persistence
Cloud Native
Style of application
development
•Twelve-Factor
Applications –
http://12factor.net
•Microservices
•Self-Service Agile
Infrastructure
•API-Based
Collaboration
•Antifragility
NETFLIX
Netflix – some facts
•Moved away of monolithic architecture
before microservices where named
(started in 2009, ended early 2016)
•30% of the Internet traffic
•500+ microservices
•2+ billion API gateway requests daily
•Each API call requires avarage six
calls to backend services
•Over 800 different client devices
•Open sourced much of their tools and
services
Netflix Open Source Software
Netflix OSS Center:
•Big Data
•Build and Delivery Tools
•Common Runtime Services &
Libraries
•Content Encoding
•Data Persistence
•Insight, Reliability and
Performance
•Security
•User Interface
http://netflix.github.io
Netflix OSS - Runtime and Libraries
•Eureka – registry/service discovery
•Archaius – distributed configuration
•Ribbon – inter process and service
communication
•Hystrix – reliability of calls and fault
tolerance
•Karyon and Governator – containers
•Prana – support for non-JVM runtimes
•Zuul – dynamic routing, monitoring,
resiliency and security, used to handle
front end requests
•Fenzo – scheduler for Apache Mesos
SPRING CLOUD
Spring Cloud
Facilitates the Cloud Native styles
Common features required by all the
components in a distributed system
•Distributed/versioned configuration
•Service registration and discovery
•Routing
•Service-to-service calls
•Load balancing
•Circuit Breakers
•Global locks
•Leadership election and cluster state
•Distributed messaging
Spring Cloud
Spring BootSpring Boot
SpringSpring
Spring Cloud
Context
Spring Cloud
Context Spring Cloud CommonsSpring Cloud Commons
Spring Cloud NetfixSpring Cloud Netfix Spring Cloud ConsulSpring Cloud ConsulSpring Cloud ConfigSpring Cloud Config
Spring Cloud for
Amazon Web
Services
Spring Cloud for
Amazon Web
Services
Spring Cloud BusSpring Cloud Bus
Spring Cloud
for Cloud
Foundry
Spring Cloud
for Cloud
Foundry
Spring Cloud ...Spring Cloud ...
Spring Boot Context
•Parent of Main Application Context
•Used to load properties from external
sources
•Out of the box loads properties form
Config Server
•Can be configured to do anything you
want
•Handling environment changes
• Re-bind
@ConfigurationProperties
• Set log levels for logging.level.*
• @RefreshScope
EnvironmentEnvironment
Main Applicatin
Context
Main Applicatin
Context
Bootstrap
Context
Bootstrap
Context
application.yml
application-
{profile}.yml
application.yml
application-
{profile}.yml
bootstrap.yml
bootstrap-
{profile}.yml
bootstrap.yml
bootstrap-
{profile}.yml
External properties
(e.g. Config
Server)
External properties
(e.g. Config
Server)
HigherprecedenceHigherprecedence
Spring Cloud Config
Config Server
•HTTP, resource-based API for
external configuration
•JSON/YML/properties resources
•Git backend (default)
•Integrates with Spring Security
Config Client
•Config-first bootstrap
•Discovery-first bootstrap
•Fail-fast option
•Like reading local
application*.yml family with extra
dimention „label”
/{application}/{profile}/{label}
${spring.application.name}
${spring.profiles.active}
master
spring.cloud.config.[name|env|label]
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
Spring Cloud Commons
Common Abstractions
•Service Discovery
•Load Balancing
•Circuit Breakers
Implementations:
•Spring Cloud Netflix
•Spring Cloud Consule
Spring Cloud Netflix
Enable common patterns with just
annotations:
•Discovery: Eureka
•Circuit Breaker: Hystrix
•Client Side Load Balancer:
Ribbon
•Declarative REST Client: Feign
•Router and Filter: Zuul
•External Configuration: Archaius
Discovery: Eureka
Eureka Server
•Run by @EnableEurekaServer
•By default is also a client, so needs a
peer
•Optional standalone mode
•Keep registration in memory
Eureka Client
•Enable by
@EnableDiscoveryClient
•Sending heartbeats to Eureka server
•Optionally send health check status
•Special virutal URL:
http://users/...
•Discovery clients:
• Native EurekaClient
• Spring Cloud
DiscoveryClient
• Feign client
• Spring RestTemplate
Circuit Breaker: Hystrix
• Proxy the beans enabling circuit
breaker
• Enabled by annotation on the
method
@HystrixCommand(fallbackMethod=„”)
public Article getArticle(String id)
{
// call external system
}
• Fallback can be provided
• Hystrix metrics stream:
/hystrix.stream
• Hystrix Dashboard
• Turbine combining hystrix streams
Client side load balancer: Ribbon
• Used by default in
@FeignClient
• Ribbon API can be used
directly
• Configuring by
<client>.ribbon.listO
fServers
• Can get „listOfServers” from
Eureka, if available
Feign Client
• Declarative Web Service Client
• Create interface and annotate it
• Feign annotations, JAX-RS annotations, Spring MVC
(added by Spring Cloud)
@FeignClient(name = "articles-service")
public interface ArticlesClient {
@RequestMapping(value = "/articles/{id}", method =
RequestMethod.GET, produces =
MediaType.APPLICATION_JSON_VALUE)
public Article getArticle(@PathVariable("id") String
id);
}
• In Spring Cloud uses Eureka, Ribbon and Hystrix
DEMO
Registry Server
(Eureka)
Registry Server
(Eureka)
Config
Server
Config
Server
News ServiceNews Service
Articles ServiceArticles Service
ClientClient
GitGit
YAML files
get properties – default
number of articles
find Articles
Service
Get article
content
Give me top news!
• Load balanced
• Protected with Circuit Breaker
1 class
1 class
6 classes
4 classes
Let’s see
QUESTIONS
Links
Demo code:
https://github.com/buczyn/spring-cloud-netflix-demo
Thank you
Jacek Bukowski
@: jacek.bukowski@globallogic.com
P: +48 728 869 133

More Related Content

What's hot

[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to API[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to APILakmal Warusawithana
 
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...Docker, Inc.
 
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...Docker, Inc.
 
Network Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoNetwork Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoMatt Ray
 
Zeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridZeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridJongyoul Lee
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Worksconfluent
 
Getting Started with Consul
Getting Started with ConsulGetting Started with Consul
Getting Started with ConsulRamit Surana
 
Application Deployment and Management at Scale at 1&1
Application Deployment and Management at Scale at 1&1Application Deployment and Management at Scale at 1&1
Application Deployment and Management at Scale at 1&1Matt Baldwin
 
Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on DockerDocker, Inc.
 
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...HostedbyConfluent
 
Grails in the Cloud (2013)
Grails in the Cloud (2013)Grails in the Cloud (2013)
Grails in the Cloud (2013)Meni Lubetkin
 
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...DevOpsDays Tel Aviv
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelChristian Posta
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next yearShapeBlue
 
Fuse integration-services
Fuse integration-servicesFuse integration-services
Fuse integration-servicesChristian Posta
 
How Cloudify uses Chef as a Foundation for PaaS
How Cloudify uses Chef as a Foundation for PaaSHow Cloudify uses Chef as a Foundation for PaaS
How Cloudify uses Chef as a Foundation for PaaSNati Shalom
 

What's hot (20)

[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to API[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to API
 
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
 
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
 
Network Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoNetwork Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and Cisco
 
Docker in the Cloud
Docker in the CloudDocker in the Cloud
Docker in the Cloud
 
Zeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridZeppelin meetup 2016 madrid
Zeppelin meetup 2016 madrid
 
Kubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBayKubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBay
 
How Apache Kafka® Works
How Apache Kafka® WorksHow Apache Kafka® Works
How Apache Kafka® Works
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
Getting Started with Consul
Getting Started with ConsulGetting Started with Consul
Getting Started with Consul
 
Application Deployment and Management at Scale at 1&1
Application Deployment and Management at Scale at 1&1Application Deployment and Management at Scale at 1&1
Application Deployment and Management at Scale at 1&1
 
Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on Docker
 
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
Kafka Excellence at Scale – Cloud, Kubernetes, Infrastructure as Code (Vik Wa...
 
DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
Grails in the Cloud (2013)
Grails in the Cloud (2013)Grails in the Cloud (2013)
Grails in the Cloud (2013)
 
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache Camel
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next year
 
Fuse integration-services
Fuse integration-servicesFuse integration-services
Fuse integration-services
 
How Cloudify uses Chef as a Foundation for PaaS
How Cloudify uses Chef as a Foundation for PaaSHow Cloudify uses Chef as a Foundation for PaaS
How Cloudify uses Chef as a Foundation for PaaS
 

Viewers also liked

Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a NutshellTsuyoshi Miyake
 
CF Korea Meetup - Spring Cloud Services
CF Korea Meetup - Spring Cloud ServicesCF Korea Meetup - Spring Cloud Services
CF Korea Meetup - Spring Cloud ServicesJay Lee
 
Spring Cloud Into Production
Spring Cloud Into ProductionSpring Cloud Into Production
Spring Cloud Into ProductionTodd Miller
 
Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesVMware Tanzu
 
Cloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudCloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudConor Svensson
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architectureIgor Khotin
 

Viewers also liked (7)

Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a Nutshell
 
CF Korea Meetup - Spring Cloud Services
CF Korea Meetup - Spring Cloud ServicesCF Korea Meetup - Spring Cloud Services
CF Korea Meetup - Spring Cloud Services
 
Spring Cloud Into Production
Spring Cloud Into ProductionSpring Cloud Into Production
Spring Cloud Into Production
 
Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud Services
 
Cloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudCloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring Cloud
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architecture
 
Slides That Rock
Slides That RockSlides That Rock
Slides That Rock
 

Similar to Flying to clouds - can it be easy? Cloud Native Applications

Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Lucas Jellema
 
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to KubernetesMigrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to KubernetesTony Erwin
 
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...Tony Erwin
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittalbuildacloud
 
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Lucas Jellema
 
Better, faster, cheaper infrastructure with apache cloud stack and riak cs redux
Better, faster, cheaper infrastructure with apache cloud stack and riak cs reduxBetter, faster, cheaper infrastructure with apache cloud stack and riak cs redux
Better, faster, cheaper infrastructure with apache cloud stack and riak cs reduxJohn Burwell
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel RidingChristian Posta
 
Cloudstack for beginners
Cloudstack for beginnersCloudstack for beginners
Cloudstack for beginnersJoseph Amirani
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerWeb à Québec
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...DataWorks Summit
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStackJoe Brockmeier
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stackNitin Mehta
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1makker_nl
 
CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overviewsedukull
 

Similar to Flying to clouds - can it be easy? Cloud Native Applications (20)

spring-cloud.pptx
spring-cloud.pptxspring-cloud.pptx
spring-cloud.pptx
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
 
OpenStack and Windows
OpenStack and WindowsOpenStack and Windows
OpenStack and Windows
 
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to KubernetesMigrating Enterprise Microservices From Cloud Foundry to Kubernetes
Migrating Enterprise Microservices From Cloud Foundry to Kubernetes
 
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, A...
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
TechBeats #2
TechBeats #2TechBeats #2
TechBeats #2
 
Better, faster, cheaper infrastructure with apache cloud stack and riak cs redux
Better, faster, cheaper infrastructure with apache cloud stack and riak cs reduxBetter, faster, cheaper infrastructure with apache cloud stack and riak cs redux
Better, faster, cheaper infrastructure with apache cloud stack and riak cs redux
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
Cloudstack for beginners
Cloudstack for beginnersCloudstack for beginners
Cloudstack for beginners
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Un-clouding the cloud
Un-clouding the cloudUn-clouding the cloud
Un-clouding the cloud
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...
 
Getting Started with Apache CloudStack
Getting Started with Apache CloudStackGetting Started with Apache CloudStack
Getting Started with Apache CloudStack
 
Cloud stack for_beginners
Cloud stack for_beginnersCloud stack for_beginners
Cloud stack for_beginners
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
 
20191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 120191201 kubernetes managed weblogic revival - part 1
20191201 kubernetes managed weblogic revival - part 1
 
CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
 

Recently uploaded

Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 

Recently uploaded (20)

Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 

Flying to clouds - can it be easy? Cloud Native Applications

  • 1. Jacek Bukowski GlobalLogic „Flying to clouds” – can it be easy?
  • 2. Joint forces of Netflix and Spring Spring was always about simplifying the complicated aspects of your enterprise system. Netflix went to microservice architecture long before this term even was created. Both are very much contributed to open source software. How can you benefit from joint forces of the both?
  • 3. CLOUD AND CLOUD NATIVE APPLICATION
  • 4. Cloud „any computing environment in which computing, networking, and storage resources can be provisioned and released elastically in an on- demand, self-service manner” from „Migrating to Cloud Native Applications Architectures” by Matt Stine
  • 5. Target cloud Service model Cloud Provider SaaSSaaS PaaSPaaS IaaSIaaS MBaaSMBaaS EaaS/XaaS/*aaSEaaS/XaaS/*aaS
  • 7. Cloud Native Style of application development •Twelve-Factor Applications – http://12factor.net •Microservices •Self-Service Agile Infrastructure •API-Based Collaboration •Antifragility
  • 9. Netflix – some facts •Moved away of monolithic architecture before microservices where named (started in 2009, ended early 2016) •30% of the Internet traffic •500+ microservices •2+ billion API gateway requests daily •Each API call requires avarage six calls to backend services •Over 800 different client devices •Open sourced much of their tools and services
  • 10. Netflix Open Source Software Netflix OSS Center: •Big Data •Build and Delivery Tools •Common Runtime Services & Libraries •Content Encoding •Data Persistence •Insight, Reliability and Performance •Security •User Interface http://netflix.github.io
  • 11. Netflix OSS - Runtime and Libraries •Eureka – registry/service discovery •Archaius – distributed configuration •Ribbon – inter process and service communication •Hystrix – reliability of calls and fault tolerance •Karyon and Governator – containers •Prana – support for non-JVM runtimes •Zuul – dynamic routing, monitoring, resiliency and security, used to handle front end requests •Fenzo – scheduler for Apache Mesos
  • 13. Spring Cloud Facilitates the Cloud Native styles Common features required by all the components in a distributed system •Distributed/versioned configuration •Service registration and discovery •Routing •Service-to-service calls •Load balancing •Circuit Breakers •Global locks •Leadership election and cluster state •Distributed messaging
  • 14. Spring Cloud Spring BootSpring Boot SpringSpring Spring Cloud Context Spring Cloud Context Spring Cloud CommonsSpring Cloud Commons Spring Cloud NetfixSpring Cloud Netfix Spring Cloud ConsulSpring Cloud ConsulSpring Cloud ConfigSpring Cloud Config Spring Cloud for Amazon Web Services Spring Cloud for Amazon Web Services Spring Cloud BusSpring Cloud Bus Spring Cloud for Cloud Foundry Spring Cloud for Cloud Foundry Spring Cloud ...Spring Cloud ...
  • 15. Spring Boot Context •Parent of Main Application Context •Used to load properties from external sources •Out of the box loads properties form Config Server •Can be configured to do anything you want •Handling environment changes • Re-bind @ConfigurationProperties • Set log levels for logging.level.* • @RefreshScope EnvironmentEnvironment Main Applicatin Context Main Applicatin Context Bootstrap Context Bootstrap Context application.yml application- {profile}.yml application.yml application- {profile}.yml bootstrap.yml bootstrap- {profile}.yml bootstrap.yml bootstrap- {profile}.yml External properties (e.g. Config Server) External properties (e.g. Config Server) HigherprecedenceHigherprecedence
  • 16. Spring Cloud Config Config Server •HTTP, resource-based API for external configuration •JSON/YML/properties resources •Git backend (default) •Integrates with Spring Security Config Client •Config-first bootstrap •Discovery-first bootstrap •Fail-fast option •Like reading local application*.yml family with extra dimention „label” /{application}/{profile}/{label} ${spring.application.name} ${spring.profiles.active} master spring.cloud.config.[name|env|label] /{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties
  • 17. Spring Cloud Commons Common Abstractions •Service Discovery •Load Balancing •Circuit Breakers Implementations: •Spring Cloud Netflix •Spring Cloud Consule
  • 18. Spring Cloud Netflix Enable common patterns with just annotations: •Discovery: Eureka •Circuit Breaker: Hystrix •Client Side Load Balancer: Ribbon •Declarative REST Client: Feign •Router and Filter: Zuul •External Configuration: Archaius
  • 19. Discovery: Eureka Eureka Server •Run by @EnableEurekaServer •By default is also a client, so needs a peer •Optional standalone mode •Keep registration in memory Eureka Client •Enable by @EnableDiscoveryClient •Sending heartbeats to Eureka server •Optionally send health check status •Special virutal URL: http://users/... •Discovery clients: • Native EurekaClient • Spring Cloud DiscoveryClient • Feign client • Spring RestTemplate
  • 20. Circuit Breaker: Hystrix • Proxy the beans enabling circuit breaker • Enabled by annotation on the method @HystrixCommand(fallbackMethod=„”) public Article getArticle(String id) { // call external system } • Fallback can be provided • Hystrix metrics stream: /hystrix.stream • Hystrix Dashboard • Turbine combining hystrix streams
  • 21. Client side load balancer: Ribbon • Used by default in @FeignClient • Ribbon API can be used directly • Configuring by <client>.ribbon.listO fServers • Can get „listOfServers” from Eureka, if available
  • 22. Feign Client • Declarative Web Service Client • Create interface and annotate it • Feign annotations, JAX-RS annotations, Spring MVC (added by Spring Cloud) @FeignClient(name = "articles-service") public interface ArticlesClient { @RequestMapping(value = "/articles/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public Article getArticle(@PathVariable("id") String id); } • In Spring Cloud uses Eureka, Ribbon and Hystrix
  • 23. DEMO
  • 24. Registry Server (Eureka) Registry Server (Eureka) Config Server Config Server News ServiceNews Service Articles ServiceArticles Service ClientClient GitGit YAML files get properties – default number of articles find Articles Service Get article content Give me top news! • Load balanced • Protected with Circuit Breaker 1 class 1 class 6 classes 4 classes Let’s see
  • 27. Thank you Jacek Bukowski @: jacek.bukowski@globallogic.com P: +48 728 869 133

Editor's Notes

  1. Twelve-Factor Applications - a collection of patterns for cloud-native application architectures, originally developed by engineers at Heroku. Codebase Dependencies Config Backing services Build, release, run Processes Port binding Concurrency Disposability Dev/prod parity Logs Admin processes Migration cookbook: Patterns/recipes – shown later Decomposition recipes Not talk here: Cultural &amp; Organizational Changes
  2. Netflix starter moving out of the monolithic architecture in 2009, while term „microservice” showed up in 2012 – one of the first was James Lewis during 33rd Degree conference in Kraków
  3. Big data - Tools and services to handle (big) data Build and Delivery Tools – get software from desktop to the cloud Common Runtime Services &amp; Libraries - Runtime containers, libraries and services that power microservices Content Encoding - automated scalable multimedia ingest and encoding Data Persistence - storing and serving data in the Cloud Insight, Reliability and Performance – metrics and performance analysis Security – tools to analyse and monitor security data User Interface - Libraries to help you build rich client applications