SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Spring Cloud Microservices
A journey inside a financial entity
Jordi Gil @jordigilnieto
Toni Jara @tonijar
Preface
Team
Spring I/O
2016
Toni Jara
Software engineer with more than 10 years of experience
involved in complex architecture projects as Technical Team
Lead and Senior Architect.
With more than 8 years of experience working with Spring
(mainly Core Framework, MVC and Webflow), lately he’s
been working on microservices architectures with Spring
Cloud.
Jordi Gil
Jordi is a Software Architect with over 18 years of experience
in application development, mainly in information systems for
banking and insurance industries. He focuses on the definition
of architectures for heterogeneous environments and with high
performance, interoperability and availability requirements.
In everis he is leading the innovation group where new
technologies, patterns and architecture models are assessed
for applicability in final customers.
Currently his main areas of interest are MicroServices
Architectures and Cloud PaaS platforms.
Index
1. Introduction
2. Development
3. Deployment
4. Operations
5. Demo
6. Conclusions
7. Questions
Spring I/O
2016
Spring I/O
2016
INTRODUCTION
Introduction
Objectives
Spring I/O
2016
Microservices
Introduction
Monolithic applications
Spring I/O
2016
• Easy to Develop & Deploy & Scale
• Can Be Intimidating to New
Developers
• Modularity Dependent Upon
Language / Frameworks
• Change Cycles Tightly Coupled /
Obstacle to Frequent Deploys
• Inefficient Scaling
• Obstacle to Scaling Development
• Requires Long-Term Commitment to
Technical Stack
HTML JavaScript MVC
Service Service
Data Access
Browser
Relational
Database
Monolithic Application
Introduction
Monolithic applications 2.0
Spring I/O
2016
• SOA approach
• ESBs used to integrate monolithic
applications
• ESB Tightly Couples Services
• Centralized governance models that
actively inhibit change
• ESB becomes the biggest monolith
Service Service
SOA - ESB
Service Service Service
Service Service
Introduction
Microservices architecture
Spring I/O
2016
• Modularity Based on Component
Services
• Change Cycles Decoupled / Enable
Frequent Deploys
• Efficient Scaling
• Individual Components Less
Intimidating to New Developers
• Enables Scaling of Development
• Eliminates Long-Term Commitment
to Technical Stack
• Complexity associated to distributed
systems
• Operational burden
API
Service
Storage
Microservice 1
API
Service
Storage
Microservice 2
API
Service
Storage
Microservice 3
API
Service
Storage
Microservice 4
Introduction
Microservices in a bank
Spring I/O
2016
• API Gateway as the single entry
point for all clients
• Critical core business services
managed through SOA model
• Backends accessed exclusively
through Business Services
API Gateway
Front App Front App
Mainframe
Business Service Business Service
Backends
Business Services - SOA
Microservices
Introduction
Challenges
Spring I/O
2016
Discovery /
Reuse
Scope definition
Productivity
Homogenization
Versioning
Integration
Messaging
formats
Error
management
Testing
Distributed
tracing
Service
Discovery
Load Balancing
Fault Tolerance
Centralized
Configuration
Dynamic
Routing
API Gateway
Technical
challenges
derived from
implementing
distributed
systems
Challenges
derived from
enterprise
environment
Spring Cloud
Procedures &
custom
components
Enterprise-ready
framework
Introduction
Technical model
Spring I/O
2016
Operation
SpringCloud
Infrastructure services
SpringCloud
Service Registry
Eureka
Server
Configuration
Config
Server
Git
Service execution framework
SpringCloud
SpringBoot
Service
Discovery
Eureka
Client
Fault Tolerance /
Resilience
Hyxtrix
Load Balancer
Feign
Security
Spring Cloud
Security
Embedded
servlet container
Tomcat, Jetty,
Undertow
Monitoring &
Management
Actuator
Endpoints
IPC – Inter Process Communication
Runtime
Gateway
Zuul
Monitoring
Dashboard
Hystrix +
Turbine
Log
Management
Central logging
Microservices SOA
Integration
Database
Core
Messages Error mgmt Config
Audit &
Log
HTTP
cache
Introduction
Lifecycle
Spring I/O
2016
Discovery
• Repositories
Design
• Scope definition
Build
• Tools
• Scaffolding
• Patterns
• Naming
conventions
• Core frameworks
• Integrations
QA
• Testing
frameworks
• Mocking
• Code quality
Deployment
• Environment
topology
• Procedures
Operations
• Central Audit &
Logging
• Monitoring
• Administration
Spring I/O
2016
DEVELOPMENT
Development
Discovery
Spring I/O
2016
API
Service
Storage
Microservice
API Documentation
in Swagger format
Model
metadata
Operation
metadata
Configuration
Springfox
library
Managed by application
Managed by
framework
API Repository
Discovery
Subscription
Impact analysis
Audit
Discovery Design Build QA Deployment Operations
Development
Design
Spring I/O
2016
• Key aspect for building a successful microservices architecture.
• No Silver Bullet, but some techniques may help…
Business
Area
Business
Domain
Service
Domain
 Existing reference architectures in some industries
– Banking – BIAN (Banking Industry Architecture
Network)
– Insurance - Acord
 Functional decomposition based on Verbs (e.g. Checkout) or Nouns (e.g. Product) of
your application  RESTful APIs
 Domain Driven Design divides a complex domain up
into multiple bounded contexts and maps out the
relationships between them.
Discovery Design Build QA Deployment Operations
Development
Build tools
Spring I/O
2016
IDE
Source code
management
GIT / SVN
Lifecycle
automations
Apache
Maven
Testing
Unit testing
Code
Coverage
Code quality
Findbugs PMD Checkstyle SonarQube
To increase productivity, it’s very important to define a standard tool set.
 Find the essential tools and plugins hierarchy below:
Discovery Design Build QA Deployment Operations
Development
Source code management tools
Spring I/O
2016
Discovery Design Build QA Deployment Operations
Source code management with Atlassian Bitbucket
(GIT):
• One project for each team
• One repository for each Microservice
• Collaborative development and revisions with pull
requests & merges (Gitflow)
Master
Official version
Hotfix
Official fixings
Develop
Integration
Feature
Functionality
Release
Candidate version
Gitflow documentation: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
Development
Maven archetype
Spring I/O
2016
Maven
archetype
Java sources
& tests
Maven
Dependencies
Config files
Basic project
structure
Naming
conventions
• Internal and
external core
dependencies
Starter
parent
(POM)
• Spring Data
support
• JAX-WS
access to SOA
Business layer
Integrations
(JAR)
Discovery Design Build QA Deployment Operations
Development
Versioning
Spring I/O
2016
Modification type
New
Major
New
Minor
New
Fix
New
Qualifier
No interface modification NO NO YES YES
Interface modification and backwards compatible NO YES YES YES
Interface modification not backwards compatible YES YES YES YES
Pain point: synchronize Maven (pom.xml) and Spring Cloud version (FeignClient)
Manual Automatic
MAJOR.MINOR.FIX-QUALIFIER
Discovery Design Build QA Deployment Operations
Development
Messaging
Spring I/O
2016
HTTP / JSON
Automatic actions in microservices execution:
Pre-
execution
Execution
Post-
execution
Headers
Body
Messages
HTTP headers
or payload
Functional
message
Header name Message
HEADER.TRACKING_ID Request /
Response
HEADER.* Request
HEADER.STATUS Response
EXCEPTION Response (error)
+ Code
+ Type
+ Severity
+ Description
+ Cause
Discovery Design Build QA Deployment Operations
Development
Integrations
Spring I/O
2016
Discovery Design Build QA Deployment Operations
Development:
1. [MS/SOA] Client JAR (Feign/JAX-WS)
uploaded to Artifactory
2. Consumer adds Maven
dependencies:
• [MS/SOA] Client JAR
• [DB] JDBC driver
3. [DB] Implement Spring Data domain
and repository classes
4. Implement integration logic
• [MS/SOA] @Autowire client
class
• [DB] @Autowire Spring Data
repository
[MS/SOA] Execution:
1. On-the-fly configurations
2. Propagate architecture headers
Client JAR
upload
Add Maven
dependencies
Data model
Integration
logic
Development
Performance enhancements
Spring I/O
2016
Discovery Design Build QA Deployment Operations
HTTP 1.1 caching RFC: https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
Spring MVC Cache Control: https://github.com/foo4u/spring-mvc-cache-control
• HTTP 1.1 Caching RFC 2616 compatible with
all web browsers
• Cache Control and ETag HTTP header support
HTTP cache
• Partial requests: optional input parameters
• Partial responses: query params “fields” and
“fieldsExcluded” to filter output messages
Partial resources
• GZip compression in Spring Boot and Feign
GZip
compression
Development
Unit & integrated testing
Spring I/O
2016
Discovery Design Build QA Deployment Operations
Continuous Integration
Integrated
testing
Unit testing
Testing
frameworks
Granularity: for each class
Naming convention: *Test.java
Approach: TDD
Mock: external class
dependencies
Granularity: for each Microservice
Naming convention: *IT.java
Approach: BDD
Mock: Microservice external
systems
Development
Source code quality
Spring I/O
2016
Discovery Design Build QA Deployment Operations
• IDE plugins:
Findbugs,
Checkstyle, PMD,
Code Coverage
and SonarQube
plugins
Development
• Maven plugins:
SonarQube (quality
reports), Surefire
(unit testing) and
Jacoco (Code
Coverage)
Build
Spring I/O
2016
DEPLOYMENT
Deployment
Continuous Integration
Spring I/O
2016
Discovery Design Build QA Deployment Operations
Compile Test
QA Sonar
Analysis
Package
Deploy to
Artifactory
Deploy to
Infrastructure
Deployment
Infrastructure (I)
Spring I/O
2016
Discovery Design Build QA Deployment Operations
• PaaS is the perfect fit for Microservices, providing features that simplify
microservices development and deployment.
Polyglot languages and frameworks
Consistent testing environments
Scaling
Instant Rollback and Versioning
Self Service
Deployment
Infrastructure (and II)
Spring I/O
2016
Discovery Design Build QA Deployment Operations
API Gateway
Routing
Services Runtime
Persistent Volumes
Platform Runtime Administration
Console
CLI/API
PaaS basic model
Continuous
integration
Build
Test
Deploy
Zuul Gateway
Eureka
Registry
Configuration
Monitoring
MicroServices
Configuration
Logs
Spring I/O
2016
OPERATION
Operation
Spring Cloud Dashboard
Spring I/O
2016
Discovery Design Build QA Deployment Operations
• Simple GUI to administrate Spring Cloud applications infrastructure
• Fork of Spring Boot Admin to manage applications registered in service
registry (like Eureka).
Features for every register service
• Show name/id and version number
• Show health status
• Show details, like
• Java System / Environment / Spring
properties
• JVM & memory metrics
• Counter & gauge Metrics
• Datasource Metrics
• Easy logger level management
• Interact with JMX-Beans
• View Threaddump
• Application registry history ( from
Eureka Server )
• Circuit Breaker dashboard ( from
Hystrix or Turbine )
Operation
Logging
Discovery Design Build QA Deployment Operations
• Centralized Logging with ELK Stack
Front App
Front App
API Gateway
Business Services - SOAMicroservices
Central
Logging
Server
ETL Store Dashboards
Logging
MicroService
Async call
e2e trackingId
Spring I/O
2016
Operation
Audit
Discovery Design Build QA Deployment Operations
Spring I/O
2016
• Audit events integrated in centralized logging system
• Extended to Front and SOA Layer to provide e2e traceability
Start
Request Sent
Response received
End
Error
Functional
Automatically
generated
Generated
from
application
Event types
Event info
Timestamp
Event Type
Hostname
TrackingId
Source Application
Arch version
Error info
App Version
Message
JVMName
MicroServiceType
MicroServiceID
MIcroServiceName
OperationName RequestMapping
Automatically
generated
Generated
from
application/
architecture
Microservice layer specific
Spring I/O
2016
DEMO
Spring I/O
2016
CONCLUSIONS
Conclusions
Final thoughts
Spring I/O
2016
• Microservices architectures have a lot of positive aspects but also challenges
to be solved, technical and related to the enterprise.
• Design is a key concept, there’s no silver bullet but some techniques can help.
• Standardised tools and procedures aids productivity and scalability in big
projects...
• …but extensible and open for future incremental enhancements.
• PaaS environments are best suited for microservices deployment.
Lessons learned
• Brixton upgrade, Docker, HATEOAS, Event management, Asynchronous
messaging, …
Backlog
Spring I/O
2016
QUESTIONS
Spring I/O
2016
everis.com
Consulting, IT & Outsourcing Professional Services

Contenu connexe

Tendances

Data Ops at TripActions
Data Ops at TripActionsData Ops at TripActions
Data Ops at TripActionsRob Winters
 
How to Make your Graph DB Project Successful with Neo4j Services
How to Make your Graph DB Project Successful with Neo4j ServicesHow to Make your Graph DB Project Successful with Neo4j Services
How to Make your Graph DB Project Successful with Neo4j ServicesNeo4j
 
Neo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4j
Neo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4jNeo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4j
Neo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4jNeo4j
 
Neo4j graphs in the real world - graph days d.c. - april 14, 2015
Neo4j   graphs in the real world - graph days d.c. - april 14, 2015Neo4j   graphs in the real world - graph days d.c. - april 14, 2015
Neo4j graphs in the real world - graph days d.c. - april 14, 2015Neo4j
 
Intro to Neo4j Webinar
Intro to Neo4j WebinarIntro to Neo4j Webinar
Intro to Neo4j WebinarNeo4j
 
You're the New CDO, Now What?
You're the New CDO, Now What?You're the New CDO, Now What?
You're the New CDO, Now What?Caserta
 
How to Build a Successful Data Team - Florian Douetteau @ PAPIs Connect
How to Build a Successful Data Team - Florian Douetteau @ PAPIs ConnectHow to Build a Successful Data Team - Florian Douetteau @ PAPIs Connect
How to Build a Successful Data Team - Florian Douetteau @ PAPIs ConnectPAPIs.io
 
Introduction to Microsoft Power BI
Introduction to Microsoft Power BIIntroduction to Microsoft Power BI
Introduction to Microsoft Power BICCG
 
The Five Graphs of Government: How Federal Agencies can Utilize Graph Technology
The Five Graphs of Government: How Federal Agencies can Utilize Graph TechnologyThe Five Graphs of Government: How Federal Agencies can Utilize Graph Technology
The Five Graphs of Government: How Federal Agencies can Utilize Graph TechnologyGreta Workman
 
Beyond Big Data: Leverage Large-Scale Connections
Beyond Big Data: Leverage Large-Scale ConnectionsBeyond Big Data: Leverage Large-Scale Connections
Beyond Big Data: Leverage Large-Scale ConnectionsNeo4j
 
Graph Thinking: Why it Matters
Graph Thinking: Why it MattersGraph Thinking: Why it Matters
Graph Thinking: Why it MattersNeo4j
 
Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)
Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)
Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)Stefan Popowycz
 
Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016Looker
 
Not Your Father's Database by Databricks
Not Your Father's Database by DatabricksNot Your Father's Database by Databricks
Not Your Father's Database by DatabricksCaserta
 
GraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph Databases
GraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph DatabasesGraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph Databases
GraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph DatabasesNeo4j
 
Graphs for Enterprise Architects
Graphs for Enterprise ArchitectsGraphs for Enterprise Architects
Graphs for Enterprise ArchitectsNeo4j
 
The Connected Data Imperative: The Shifting Enterprise Data Story
The Connected Data Imperative: The Shifting Enterprise Data StoryThe Connected Data Imperative: The Shifting Enterprise Data Story
The Connected Data Imperative: The Shifting Enterprise Data StoryNeo4j
 
Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...
Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...
Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...StampedeCon
 
Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...
Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...
Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...Neo4j
 
Intro to Data Science on Hadoop
Intro to Data Science on HadoopIntro to Data Science on Hadoop
Intro to Data Science on HadoopCaserta
 

Tendances (20)

Data Ops at TripActions
Data Ops at TripActionsData Ops at TripActions
Data Ops at TripActions
 
How to Make your Graph DB Project Successful with Neo4j Services
How to Make your Graph DB Project Successful with Neo4j ServicesHow to Make your Graph DB Project Successful with Neo4j Services
How to Make your Graph DB Project Successful with Neo4j Services
 
Neo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4j
Neo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4jNeo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4j
Neo4j GraphTalk Amsterdam - Next Generation Solutions using Neo4j
 
Neo4j graphs in the real world - graph days d.c. - april 14, 2015
Neo4j   graphs in the real world - graph days d.c. - april 14, 2015Neo4j   graphs in the real world - graph days d.c. - april 14, 2015
Neo4j graphs in the real world - graph days d.c. - april 14, 2015
 
Intro to Neo4j Webinar
Intro to Neo4j WebinarIntro to Neo4j Webinar
Intro to Neo4j Webinar
 
You're the New CDO, Now What?
You're the New CDO, Now What?You're the New CDO, Now What?
You're the New CDO, Now What?
 
How to Build a Successful Data Team - Florian Douetteau @ PAPIs Connect
How to Build a Successful Data Team - Florian Douetteau @ PAPIs ConnectHow to Build a Successful Data Team - Florian Douetteau @ PAPIs Connect
How to Build a Successful Data Team - Florian Douetteau @ PAPIs Connect
 
Introduction to Microsoft Power BI
Introduction to Microsoft Power BIIntroduction to Microsoft Power BI
Introduction to Microsoft Power BI
 
The Five Graphs of Government: How Federal Agencies can Utilize Graph Technology
The Five Graphs of Government: How Federal Agencies can Utilize Graph TechnologyThe Five Graphs of Government: How Federal Agencies can Utilize Graph Technology
The Five Graphs of Government: How Federal Agencies can Utilize Graph Technology
 
Beyond Big Data: Leverage Large-Scale Connections
Beyond Big Data: Leverage Large-Scale ConnectionsBeyond Big Data: Leverage Large-Scale Connections
Beyond Big Data: Leverage Large-Scale Connections
 
Graph Thinking: Why it Matters
Graph Thinking: Why it MattersGraph Thinking: Why it Matters
Graph Thinking: Why it Matters
 
Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)
Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)
Visualizing Healthcare Data with Tableau (Toronto Central LHIN Presentation)
 
Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016
 
Not Your Father's Database by Databricks
Not Your Father's Database by DatabricksNot Your Father's Database by Databricks
Not Your Father's Database by Databricks
 
GraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph Databases
GraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph DatabasesGraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph Databases
GraphDay Stockholm - Graphs in the Real World: Top Use Cases for Graph Databases
 
Graphs for Enterprise Architects
Graphs for Enterprise ArchitectsGraphs for Enterprise Architects
Graphs for Enterprise Architects
 
The Connected Data Imperative: The Shifting Enterprise Data Story
The Connected Data Imperative: The Shifting Enterprise Data StoryThe Connected Data Imperative: The Shifting Enterprise Data Story
The Connected Data Imperative: The Shifting Enterprise Data Story
 
Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...
Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...
Enterprise Search: Addressing the First Problem of Big Data & Analytics - Sta...
 
Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...
Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...
Neo4j GraphDay - Graphs in the Real World: Tope Use Cases for Graph Databases...
 
Intro to Data Science on Hadoop
Intro to Data Science on HadoopIntro to Data Science on Hadoop
Intro to Data Science on Hadoop
 

En vedette

Introduction to Data Modeling in Cassandra
Introduction to Data Modeling in CassandraIntroduction to Data Modeling in Cassandra
Introduction to Data Modeling in CassandraJim Hatcher
 
Elks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetupElks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetupAnoop Vijayan
 
Microservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM LibertyMicroservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM LibertyMichael Hofmann
 
IoT and Big Data
IoT and Big DataIoT and Big Data
IoT and Big Datasabnees
 
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM France Lab
 
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...SANG WON PARK
 
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 "How overlay networks can make public clouds your global WAN" by Ryan Koop o... "How overlay networks can make public clouds your global WAN" by Ryan Koop o...
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...Cohesive Networks
 
Cisco Network Functions Virtualization Infrastructure (NFVI)
Cisco Network Functions Virtualization Infrastructure (NFVI)Cisco Network Functions Virtualization Infrastructure (NFVI)
Cisco Network Functions Virtualization Infrastructure (NFVI)Cisco Russia
 
AppSensor - Near Real Time Event Detection and Response
AppSensor - Near Real Time Event Detection and ResponseAppSensor - Near Real Time Event Detection and Response
AppSensor - Near Real Time Event Detection and Responsejtmelton
 
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015StampedeCon
 
Sitios turísticos de valledupar
Sitios turísticos de valleduparSitios turísticos de valledupar
Sitios turísticos de valleduparelkin
 
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/20146 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014Christian Beedgen
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEODimitri Brunel
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...Leonardo De Moura Rocha Lima
 
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshellFluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshellN Masahiro
 
All you need to know about Orient Me
All you need to know about Orient MeAll you need to know about Orient Me
All you need to know about Orient MeLetsConnect
 

En vedette (20)

Introduction to Data Modeling in Cassandra
Introduction to Data Modeling in CassandraIntroduction to Data Modeling in Cassandra
Introduction to Data Modeling in Cassandra
 
Diabetes mellitus
Diabetes mellitusDiabetes mellitus
Diabetes mellitus
 
Elks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetupElks for analysing performance test results - Helsinki QA meetup
Elks for analysing performance test results - Helsinki QA meetup
 
Microservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM LibertyMicroservices mit Java EE - am Beispiel von IBM Liberty
Microservices mit Java EE - am Beispiel von IBM Liberty
 
IoT and Big Data
IoT and Big DataIoT and Big Data
IoT and Big Data
 
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
 
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
 
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 "How overlay networks can make public clouds your global WAN" by Ryan Koop o... "How overlay networks can make public clouds your global WAN" by Ryan Koop o...
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 
Cisco Network Functions Virtualization Infrastructure (NFVI)
Cisco Network Functions Virtualization Infrastructure (NFVI)Cisco Network Functions Virtualization Infrastructure (NFVI)
Cisco Network Functions Virtualization Infrastructure (NFVI)
 
AppSensor - Near Real Time Event Detection and Response
AppSensor - Near Real Time Event Detection and ResponseAppSensor - Near Real Time Event Detection and Response
AppSensor - Near Real Time Event Detection and Response
 
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
How Cisco Migrated from MapReduce Jobs to Spark Jobs - StampedeCon 2015
 
Sitios turísticos de valledupar
Sitios turísticos de valleduparSitios turísticos de valledupar
Sitios turísticos de valledupar
 
Selma_CV1
Selma_CV1Selma_CV1
Selma_CV1
 
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/20146 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
6 Million Ways To Log In Docker - NYC Docker Meetup 12/17/2014
 
Question 7
Question 7Question 7
Question 7
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEO
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
 
Security Realism in Education
Security Realism in EducationSecurity Realism in Education
Security Realism in Education
 
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshellFluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
 
All you need to know about Orient Me
All you need to know about Orient MeAll you need to know about Orient Me
All you need to know about Orient Me
 

Similaire à SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity

Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathonaaronwso2
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition3scale
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionSteven Willmott
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5Vinayak Tavargeri
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Shelly Megan
 
Simplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptxSimplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptxssuser5faa791
 
DevOps on Oracle Cloud
DevOps on Oracle CloudDevOps on Oracle Cloud
DevOps on Oracle CloudMee Nam Lee
 
Oracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best PracticesOracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best PracticesRajesh Raheja
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Nedelcho Delchev
 
Framework adoption for java enterprise application development
Framework adoption for java enterprise application developmentFramework adoption for java enterprise application development
Framework adoption for java enterprise application developmentClarence Ho
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...VMware Tanzu
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 

Similaire à SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity (20)

Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon
 
Arun Kumar(7.8Yrs).DOC
Arun Kumar(7.8Yrs).DOCArun Kumar(7.8Yrs).DOC
Arun Kumar(7.8Yrs).DOC
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
 
Simplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptxSimplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptx
 
ABC’s Proposal
ABC’s ProposalABC’s Proposal
ABC’s Proposal
 
BadesahebKBichu
BadesahebKBichuBadesahebKBichu
BadesahebKBichu
 
DevOps on Oracle Cloud
DevOps on Oracle CloudDevOps on Oracle Cloud
DevOps on Oracle Cloud
 
Oracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best PracticesOracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best Practices
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Framework adoption for java enterprise application development
Framework adoption for java enterprise application developmentFramework adoption for java enterprise application development
Framework adoption for java enterprise application development
 
SandeepVanama_Resume
SandeepVanama_ResumeSandeepVanama_Resume
SandeepVanama_Resume
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 

Dernier

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
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
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
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
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
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
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 

Dernier (20)

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
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
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
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
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
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...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
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
 

SpringIO 2016 - Spring Cloud MicroServices, a journey inside a financial entity

  • 1. Spring Cloud Microservices A journey inside a financial entity Jordi Gil @jordigilnieto Toni Jara @tonijar
  • 2. Preface Team Spring I/O 2016 Toni Jara Software engineer with more than 10 years of experience involved in complex architecture projects as Technical Team Lead and Senior Architect. With more than 8 years of experience working with Spring (mainly Core Framework, MVC and Webflow), lately he’s been working on microservices architectures with Spring Cloud. Jordi Gil Jordi is a Software Architect with over 18 years of experience in application development, mainly in information systems for banking and insurance industries. He focuses on the definition of architectures for heterogeneous environments and with high performance, interoperability and availability requirements. In everis he is leading the innovation group where new technologies, patterns and architecture models are assessed for applicability in final customers. Currently his main areas of interest are MicroServices Architectures and Cloud PaaS platforms.
  • 3. Index 1. Introduction 2. Development 3. Deployment 4. Operations 5. Demo 6. Conclusions 7. Questions Spring I/O 2016
  • 6. Introduction Monolithic applications Spring I/O 2016 • Easy to Develop & Deploy & Scale • Can Be Intimidating to New Developers • Modularity Dependent Upon Language / Frameworks • Change Cycles Tightly Coupled / Obstacle to Frequent Deploys • Inefficient Scaling • Obstacle to Scaling Development • Requires Long-Term Commitment to Technical Stack HTML JavaScript MVC Service Service Data Access Browser Relational Database Monolithic Application
  • 7. Introduction Monolithic applications 2.0 Spring I/O 2016 • SOA approach • ESBs used to integrate monolithic applications • ESB Tightly Couples Services • Centralized governance models that actively inhibit change • ESB becomes the biggest monolith Service Service SOA - ESB Service Service Service Service Service
  • 8. Introduction Microservices architecture Spring I/O 2016 • Modularity Based on Component Services • Change Cycles Decoupled / Enable Frequent Deploys • Efficient Scaling • Individual Components Less Intimidating to New Developers • Enables Scaling of Development • Eliminates Long-Term Commitment to Technical Stack • Complexity associated to distributed systems • Operational burden API Service Storage Microservice 1 API Service Storage Microservice 2 API Service Storage Microservice 3 API Service Storage Microservice 4
  • 9. Introduction Microservices in a bank Spring I/O 2016 • API Gateway as the single entry point for all clients • Critical core business services managed through SOA model • Backends accessed exclusively through Business Services API Gateway Front App Front App Mainframe Business Service Business Service Backends Business Services - SOA Microservices
  • 10. Introduction Challenges Spring I/O 2016 Discovery / Reuse Scope definition Productivity Homogenization Versioning Integration Messaging formats Error management Testing Distributed tracing Service Discovery Load Balancing Fault Tolerance Centralized Configuration Dynamic Routing API Gateway Technical challenges derived from implementing distributed systems Challenges derived from enterprise environment Spring Cloud Procedures & custom components Enterprise-ready framework
  • 11. Introduction Technical model Spring I/O 2016 Operation SpringCloud Infrastructure services SpringCloud Service Registry Eureka Server Configuration Config Server Git Service execution framework SpringCloud SpringBoot Service Discovery Eureka Client Fault Tolerance / Resilience Hyxtrix Load Balancer Feign Security Spring Cloud Security Embedded servlet container Tomcat, Jetty, Undertow Monitoring & Management Actuator Endpoints IPC – Inter Process Communication Runtime Gateway Zuul Monitoring Dashboard Hystrix + Turbine Log Management Central logging Microservices SOA Integration Database Core Messages Error mgmt Config Audit & Log HTTP cache
  • 12. Introduction Lifecycle Spring I/O 2016 Discovery • Repositories Design • Scope definition Build • Tools • Scaffolding • Patterns • Naming conventions • Core frameworks • Integrations QA • Testing frameworks • Mocking • Code quality Deployment • Environment topology • Procedures Operations • Central Audit & Logging • Monitoring • Administration
  • 14. Development Discovery Spring I/O 2016 API Service Storage Microservice API Documentation in Swagger format Model metadata Operation metadata Configuration Springfox library Managed by application Managed by framework API Repository Discovery Subscription Impact analysis Audit Discovery Design Build QA Deployment Operations
  • 15. Development Design Spring I/O 2016 • Key aspect for building a successful microservices architecture. • No Silver Bullet, but some techniques may help… Business Area Business Domain Service Domain  Existing reference architectures in some industries – Banking – BIAN (Banking Industry Architecture Network) – Insurance - Acord  Functional decomposition based on Verbs (e.g. Checkout) or Nouns (e.g. Product) of your application  RESTful APIs  Domain Driven Design divides a complex domain up into multiple bounded contexts and maps out the relationships between them. Discovery Design Build QA Deployment Operations
  • 16. Development Build tools Spring I/O 2016 IDE Source code management GIT / SVN Lifecycle automations Apache Maven Testing Unit testing Code Coverage Code quality Findbugs PMD Checkstyle SonarQube To increase productivity, it’s very important to define a standard tool set.  Find the essential tools and plugins hierarchy below: Discovery Design Build QA Deployment Operations
  • 17. Development Source code management tools Spring I/O 2016 Discovery Design Build QA Deployment Operations Source code management with Atlassian Bitbucket (GIT): • One project for each team • One repository for each Microservice • Collaborative development and revisions with pull requests & merges (Gitflow) Master Official version Hotfix Official fixings Develop Integration Feature Functionality Release Candidate version Gitflow documentation: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
  • 18. Development Maven archetype Spring I/O 2016 Maven archetype Java sources & tests Maven Dependencies Config files Basic project structure Naming conventions • Internal and external core dependencies Starter parent (POM) • Spring Data support • JAX-WS access to SOA Business layer Integrations (JAR) Discovery Design Build QA Deployment Operations
  • 19. Development Versioning Spring I/O 2016 Modification type New Major New Minor New Fix New Qualifier No interface modification NO NO YES YES Interface modification and backwards compatible NO YES YES YES Interface modification not backwards compatible YES YES YES YES Pain point: synchronize Maven (pom.xml) and Spring Cloud version (FeignClient) Manual Automatic MAJOR.MINOR.FIX-QUALIFIER Discovery Design Build QA Deployment Operations
  • 20. Development Messaging Spring I/O 2016 HTTP / JSON Automatic actions in microservices execution: Pre- execution Execution Post- execution Headers Body Messages HTTP headers or payload Functional message Header name Message HEADER.TRACKING_ID Request / Response HEADER.* Request HEADER.STATUS Response EXCEPTION Response (error) + Code + Type + Severity + Description + Cause Discovery Design Build QA Deployment Operations
  • 21. Development Integrations Spring I/O 2016 Discovery Design Build QA Deployment Operations Development: 1. [MS/SOA] Client JAR (Feign/JAX-WS) uploaded to Artifactory 2. Consumer adds Maven dependencies: • [MS/SOA] Client JAR • [DB] JDBC driver 3. [DB] Implement Spring Data domain and repository classes 4. Implement integration logic • [MS/SOA] @Autowire client class • [DB] @Autowire Spring Data repository [MS/SOA] Execution: 1. On-the-fly configurations 2. Propagate architecture headers Client JAR upload Add Maven dependencies Data model Integration logic
  • 22. Development Performance enhancements Spring I/O 2016 Discovery Design Build QA Deployment Operations HTTP 1.1 caching RFC: https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html Spring MVC Cache Control: https://github.com/foo4u/spring-mvc-cache-control • HTTP 1.1 Caching RFC 2616 compatible with all web browsers • Cache Control and ETag HTTP header support HTTP cache • Partial requests: optional input parameters • Partial responses: query params “fields” and “fieldsExcluded” to filter output messages Partial resources • GZip compression in Spring Boot and Feign GZip compression
  • 23. Development Unit & integrated testing Spring I/O 2016 Discovery Design Build QA Deployment Operations Continuous Integration Integrated testing Unit testing Testing frameworks Granularity: for each class Naming convention: *Test.java Approach: TDD Mock: external class dependencies Granularity: for each Microservice Naming convention: *IT.java Approach: BDD Mock: Microservice external systems
  • 24. Development Source code quality Spring I/O 2016 Discovery Design Build QA Deployment Operations • IDE plugins: Findbugs, Checkstyle, PMD, Code Coverage and SonarQube plugins Development • Maven plugins: SonarQube (quality reports), Surefire (unit testing) and Jacoco (Code Coverage) Build
  • 26. Deployment Continuous Integration Spring I/O 2016 Discovery Design Build QA Deployment Operations Compile Test QA Sonar Analysis Package Deploy to Artifactory Deploy to Infrastructure
  • 27. Deployment Infrastructure (I) Spring I/O 2016 Discovery Design Build QA Deployment Operations • PaaS is the perfect fit for Microservices, providing features that simplify microservices development and deployment. Polyglot languages and frameworks Consistent testing environments Scaling Instant Rollback and Versioning Self Service
  • 28. Deployment Infrastructure (and II) Spring I/O 2016 Discovery Design Build QA Deployment Operations API Gateway Routing Services Runtime Persistent Volumes Platform Runtime Administration Console CLI/API PaaS basic model Continuous integration Build Test Deploy Zuul Gateway Eureka Registry Configuration Monitoring MicroServices Configuration Logs
  • 30. Operation Spring Cloud Dashboard Spring I/O 2016 Discovery Design Build QA Deployment Operations • Simple GUI to administrate Spring Cloud applications infrastructure • Fork of Spring Boot Admin to manage applications registered in service registry (like Eureka). Features for every register service • Show name/id and version number • Show health status • Show details, like • Java System / Environment / Spring properties • JVM & memory metrics • Counter & gauge Metrics • Datasource Metrics • Easy logger level management • Interact with JMX-Beans • View Threaddump • Application registry history ( from Eureka Server ) • Circuit Breaker dashboard ( from Hystrix or Turbine )
  • 31. Operation Logging Discovery Design Build QA Deployment Operations • Centralized Logging with ELK Stack Front App Front App API Gateway Business Services - SOAMicroservices Central Logging Server ETL Store Dashboards Logging MicroService Async call e2e trackingId Spring I/O 2016
  • 32. Operation Audit Discovery Design Build QA Deployment Operations Spring I/O 2016 • Audit events integrated in centralized logging system • Extended to Front and SOA Layer to provide e2e traceability Start Request Sent Response received End Error Functional Automatically generated Generated from application Event types Event info Timestamp Event Type Hostname TrackingId Source Application Arch version Error info App Version Message JVMName MicroServiceType MicroServiceID MIcroServiceName OperationName RequestMapping Automatically generated Generated from application/ architecture Microservice layer specific
  • 35. Conclusions Final thoughts Spring I/O 2016 • Microservices architectures have a lot of positive aspects but also challenges to be solved, technical and related to the enterprise. • Design is a key concept, there’s no silver bullet but some techniques can help. • Standardised tools and procedures aids productivity and scalability in big projects... • …but extensible and open for future incremental enhancements. • PaaS environments are best suited for microservices deployment. Lessons learned • Brixton upgrade, Docker, HATEOAS, Event management, Asynchronous messaging, … Backlog
  • 37. Spring I/O 2016 everis.com Consulting, IT & Outsourcing Professional Services