SlideShare a Scribd company logo
1 of 39
asalazar@advlatam.com
@betoSalazar
Edition I
Nowadays Architecture Trends,
from Monolith to Microservices and Serverless
Alberto Salazar,
CTO Advance Latam,
Auth0 Ambassador
21th June 2018
Alberto Salazar
● Speaker, Java Consultant, #Community
● Auth0 Ambassador
● Author
● Java User Group Leader, JCP Member
● Working 17 years with monolithic
● Founder and CTO:
AdvanceLatam & Cloudbanco
@betoSalazar
@EcuadorJUG
@Auth0Ambassador
www.advlatam.com www.cloudbanco.com www.ecuadorjug.org
www.javaday.ec
Nowadays Architecture Trends
@betoSalazar
SOA
Industry approach
ESB
BPM
BAM
Nowadays Architecture Trends - Where we are ?
@betoSalazar
THE MONOLITH
J2EE , JEE
App Server | OSGi
Frontend
Revolution
Html 5 Css3
Mobile
Javascript
The revenge
NodeJS, Angular,
React, Native,
VueJS…
Microservices
Rest, Vert.x | Spring
boot | Micro-profile |
JEE -> Jakarta EE
Nowadays
Devops, Docker,
Kubernetes, Istio
Serverless
Monolith
+ Microservices
+ Serverless
+ Reactive
=
MONOMICROLESS
REACTIVE
Nowadays Architecture Trends - The real problem is?
@betoSalazar
Everybody are looking for answers…….
But what about the architecture & business?
Nowadays Architecture Trends - The real problem is?
@betoSalazar
We are dealing with a distributed architecture
What is a Distributed Architecture ?
@betoSalazar
A distributed system is a system whose components are located on different
networked computers, which then communicate and coordinate their actions by
passing messages to each other.[1] The components interact with each other in
order to achieve a common goal.
Three significant characteristics of distributed systems are: concurrency of
components, lack of a global clock, and independent failure of components.
https://en.wikipedia.org/wiki/Distributed_computing
@betoSalazar
What is the problem with distributed architecture ?
The journey
● The monolith it is our legacy ?
● Evolved to microservices ?
● Third party services and serverless
● Tips, tricks, pros, cons & conclusions
@betoSalazar
asalazar@advlatam.com
@betoSalazar
Monolith
Monolith: How it looks
@betoSalazar
Monolith: How it looks -> A huge EAR file
@betoSalazar
Monolith = Legacy
@betoSalazar
Source: 97 Things Every Software Architect Should Know
asalazar@advlatam.com
@betoSalazar
Microservices
Microservices
@betoSalazar
Domain based services
@betoSalazar
Microservices
We already split our monolith or we are on it
https://jwt.io/
https://nodejs.org/es/
https://facebook.github.io/react/
https://angular.io/
https://facebook.github.io/react-native/
fat jar
api-gateway.jar
Services
api rest
POST bank.com/api/v1/accouts
POST bank.com/api/v1/accouts
logstash
Login
Angular nodejs
Transaction
Angular nodejs
Module n
Angular nodejs
Osgi container
engine-orchestrator.jar
Osgi container
dynamic-camel-routes.jar
fat jar
batch.jar
fat jar
services.jar
fat jar
business-module1.jar
fat jar
business-module-n.jar
Service
some api
Service
some api
Service
some api
Service
some api
Service
some api
Service
some api
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
JWT
JSON WEB TOKEN
&
Authorization Server
but…………not all is happiness
Microservice Madness ?
@betoSalazar
The cost of communication over the
network is not trivial.
Microservice Madness ?
@betoSalazar
It’s hard to trace the thread of execution in a
distributed system.
Microservice Madness ?
@betoSalazar
The cost of development goes up.
Microservice Madness ?
@betoSalazar
Do you depend on a Monolith ?
Provably we will have Bottlenecks
@betoSalazar
Do you have an automation pipeline process ?
DELIVERY PIPELINE
CI / CD
CODE BUILD TEST DEPLOY
CODE ANALYZE (Quality and security)
If your answer is not, do it before
microservices or serverless
asalazar@advlatam.com
@betoSalazar
Serverless
FaaS, Backend as Services
Third party services
@betoSalazar
Serverless
Serverless
! Developers code business logic as functions
! Forgetting everything about the servers
provisioning and scaling concerns where the
logic will be executed
! Ephimeral
! Vendor lock-in is a myth
! Multicloud, get the best from each one (AWS,
Oracle Cloud, Google Cloud, AWS, Azure, etc)
! Troubleshooting is hard
Monolith vs Microservices vs Serverless
@betoSalazar
Monolith Microservices Serverless
asalazar@advlatam.com
@betoSalazar
The Reality - Tips, tricks, pros , cons
@betoSalazar
We end with a Distributed Architecture
Osgi container
engine-orchestrator.jar
Osgi container
dynamic-camel-routes.jar
fat jar
batch.jar
fat jar
services.jar
fat jar
business-module1.jar
fat jar
business-module-n.jar
Service
some api
Service
some api
Service
some api
Service
some api
Service
some api
Service
some api
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
fat jar
api-gateway.jar
Services
api rest
Serverless Security
@betoSalazar
! A user can log in with social network credentials like Facebook, Google
! Returns JWT tokens contain the logged in user
! Use the JSON Web Tokens JWT to validate if a user makes request to a REST Endpoints
! Forget about infrastructure (that’s why we are going serverless, after all) as much as possible;
! Use Auth0 and basically forget about the security details that are behind it.
https://auth0.com
Reactive systems
@betoSalazar
Project Reactor
! non-blocking applications
! 10's of millions of messages per second
! Scaling-Out to overcome latency and slow
microservices
https://projectreactor.io
https://projectreactor.io/docs/core/release/reference/
Spring Webflux
https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#spring-webflux
! non-blocking HTTP runtimes to the Reactive
Streams API
@betoSalazar
https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#spring-webflux
Spring WebfluxRest API
Reactive systems
@betoSalazar
https://cloud.spring.io/spring-cloud-function/
Spring Cloud Functions
FaaS
! Promote the implementation of business logic
via functions
! Adapters for
• AWS Lambda,
• Microsoft Azure,
• Apache OpenWhisk
• and possibly other "serverless"
service providers.
@betoSalazar
The big picture
Osgi container
engine-orchestrator.jar
Osgi container
dynamic-camel-routes.jar
fat jar
batch.jar
fat jar
services.jar
fat jar
business-module1.jar
fat jar
business-module-n.jar
Service
some api
Service
some api
Service
some api
Service
some api
Service
some api
Service
some api
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
businesslogic.jar
Rest-api-layer
fat jar
api-gateway.jar
Services
api rest
API Gateway Lambda
Lambda
asalazar@advlatam.com
@betoSalazar
Demo Secure Serverless
& Code blueprints:
https://github.com/lasalazarr/secure-serverless
Demo
@betoSalazar
Run on the command line:
Run with docker:
asalazar@advlatam.com
@betoSalazar
Summary
@betoSalazar
The conclusion
Nowadays Architecture Trends
! We are dealing with a Distributed Architecture
! Secure your endpoints is a rule
! The system and services have to deal with:
• network communications,
• failures,
• rebalances,
• splits and refactor
! Our legacy system are only legacy because
they’ve been successful enough to last this long
@betoSalazar
The conclusion
Recommendations
If you can fit your team around a table you maybe don’t need microservices yet
Hybrid approach and employing monolithic architecture styles when needed
Care about logs, monitoring and always use a CORRELATIONID and MDC (Mapped Diagnostic Context)
Various software architecture patterns match various problems, so you can start to get a
feel for the right solution to fit your needs.
Several applications with monolithic architecture is a good fit and there is no need to
change or refactor that architecture
Security - JWT json web token, Json Web Signature, Json Web Encryption
@betoSalazar
Recommendations
To manage changes review the Architectural Clash http://architecturalclash.org
-> In extrategy to developed a new way to assess the level of resilience of our frontend
and mobile applications: the Architectural Clash.
Automate the deployment and delivery process -> CI & CD -> DEVOPS Culture
Design for failover, Service load balancing and automatic scaling, data Separation,
Integrity, Performance
If you have monolith dependencies, you will have performance issues
The conclusion
Always think about: • Low coupling
• High Cohesion
• SOLID Principales
• CQRS Command Query Responsibility Segregation
@betoSalazar
#Community
Quito - Ecuador
September 8th
https://www.javaday.ec
asalazar@advlatam.com
@betoSalazar
THANK YOU
Auth0 Ambassadors.
Helping the developer community make the
internet safer.

More Related Content

What's hot

Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlett
mfrancis
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
Miguel Pastor
 

What's hot (20)

Voxxed days cluj-napoca Nowadays architecture trends alberto_salazarv2
Voxxed days cluj-napoca Nowadays architecture trends alberto_salazarv2Voxxed days cluj-napoca Nowadays architecture trends alberto_salazarv2
Voxxed days cluj-napoca Nowadays architecture trends alberto_salazarv2
 
Monitoring Challenges - Monitorama 2016 - Monitoringless
Monitoring Challenges - Monitorama 2016 - MonitoringlessMonitoring Challenges - Monitorama 2016 - Monitoringless
Monitoring Challenges - Monitorama 2016 - Monitoringless
 
Monktoberfest Fast Delivery
Monktoberfest Fast DeliveryMonktoberfest Fast Delivery
Monktoberfest Fast Delivery
 
Fast Delivery DevOps Israel
Fast Delivery DevOps IsraelFast Delivery DevOps Israel
Fast Delivery DevOps Israel
 
Microxchg Microservices
Microxchg MicroservicesMicroxchg Microservices
Microxchg Microservices
 
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
 
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlett
 
Oracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to MicroservicesOracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to Microservices
 
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
Java Tweet for Beer! Chopeira controlada com Java, JavaFX, e IoT!
 
Java 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
Java 8: Nashorn & avatar.js di Enrico Risa al JUG RomaJava 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
Java 8: Nashorn & avatar.js di Enrico Risa al JUG Roma
 
Fastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + SwaggerFastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + Swagger
 
Microservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservicesMicroservices: The OSGi way A different vision on microservices
Microservices: The OSGi way A different vision on microservices
 
Badass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroBadass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara Micro
 
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
 
When Developers Operate and Operators Develop
When Developers Operate and Operators DevelopWhen Developers Operate and Operators Develop
When Developers Operate and Operators Develop
 
Microservices Application Tracing Standards and Simulators - Adrians at OSCON
Microservices Application Tracing Standards and Simulators - Adrians at OSCONMicroservices Application Tracing Standards and Simulators - Adrians at OSCON
Microservices Application Tracing Standards and Simulators - Adrians at OSCON
 
Extreme DevOps in Fintech
Extreme DevOps in FintechExtreme DevOps in Fintech
Extreme DevOps in Fintech
 
Innovation in Architecture
Innovation in Architecture Innovation in Architecture
Innovation in Architecture
 
Comparing JVM Web Frameworks - Devoxx 2010
Comparing JVM Web Frameworks - Devoxx 2010Comparing JVM Web Frameworks - Devoxx 2010
Comparing JVM Web Frameworks - Devoxx 2010
 
Salesforce Agile Methodology and Tools
Salesforce Agile Methodology and ToolsSalesforce Agile Methodology and Tools
Salesforce Agile Methodology and Tools
 

Similar to Oracle Developer Tour Latam Nowadays Architecture Trends, from Monolith to Microservices and Serverless

AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWS
Amazon Web Services
 

Similar to Oracle Developer Tour Latam Nowadays Architecture Trends, from Monolith to Microservices and Serverless (20)

Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
Groundbreakers tour Nowadays Architecture Trends, from Monolith to Microservi...
 
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
Devnexus - Nowadays Architecture Trends, from Monolith to Microservices and S...
 
ES~Conference Mexico Nowadays Architecture Trends, from Monolith to Microserv...
ES~Conference Mexico Nowadays Architecture Trends, from Monolith to Microserv...ES~Conference Mexico Nowadays Architecture Trends, from Monolith to Microserv...
ES~Conference Mexico Nowadays Architecture Trends, from Monolith to Microserv...
 
2018 MONOLITICH TO MICROSERVICES - Conferencia Javeros colombia
2018 MONOLITICH TO MICROSERVICES  - Conferencia Javeros colombia 2018 MONOLITICH TO MICROSERVICES  - Conferencia Javeros colombia
2018 MONOLITICH TO MICROSERVICES - Conferencia Javeros colombia
 
#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to Microservices#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to Microservices
 
Oracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservicesOracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservices
 
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Sail In The Cloud
Sail In The CloudSail In The Cloud
Sail In The Cloud
 
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech TalkCloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
 
agile microservices @scaibo
agile microservices @scaiboagile microservices @scaibo
agile microservices @scaibo
 
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETESKUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES
KUBEBOOT - SPRING BOOT DEPLOYMENT ON KUBERNETES
 
DEVBCN_Jakarta EE! The future of enterprise application behind the myths. _Al...
DEVBCN_Jakarta EE! The future of enterprise application behind the myths.
_Al...DEVBCN_Jakarta EE! The future of enterprise application behind the myths.
_Al...
DEVBCN_Jakarta EE! The future of enterprise application behind the myths. _Al...
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
Js foo - Sept 8 upload
Js foo - Sept 8 uploadJs foo - Sept 8 upload
Js foo - Sept 8 upload
 
AWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWSAWS Startup Webinar | Developing on AWS
AWS Startup Webinar | Developing on AWS
 
IglooConf 2020 - API management for microservices in a hybrid and multi-cloud...
IglooConf 2020 - API management for microservices in a hybrid and multi-cloud...IglooConf 2020 - API management for microservices in a hybrid and multi-cloud...
IglooConf 2020 - API management for microservices in a hybrid and multi-cloud...
 
Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
 
Rapid Prototyping with Sass, Compass and Middleman by Bermon Painter
Rapid Prototyping with Sass, Compass and Middleman by Bermon PainterRapid Prototyping with Sass, Compass and Middleman by Bermon Painter
Rapid Prototyping with Sass, Compass and Middleman by Bermon Painter
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Oracle Developer Tour Latam Nowadays Architecture Trends, from Monolith to Microservices and Serverless

  • 1. asalazar@advlatam.com @betoSalazar Edition I Nowadays Architecture Trends, from Monolith to Microservices and Serverless Alberto Salazar, CTO Advance Latam, Auth0 Ambassador 21th June 2018
  • 2. Alberto Salazar ● Speaker, Java Consultant, #Community ● Auth0 Ambassador ● Author ● Java User Group Leader, JCP Member ● Working 17 years with monolithic ● Founder and CTO: AdvanceLatam & Cloudbanco @betoSalazar @EcuadorJUG @Auth0Ambassador www.advlatam.com www.cloudbanco.com www.ecuadorjug.org www.javaday.ec
  • 4. SOA Industry approach ESB BPM BAM Nowadays Architecture Trends - Where we are ? @betoSalazar THE MONOLITH J2EE , JEE App Server | OSGi Frontend Revolution Html 5 Css3 Mobile Javascript The revenge NodeJS, Angular, React, Native, VueJS… Microservices Rest, Vert.x | Spring boot | Micro-profile | JEE -> Jakarta EE Nowadays Devops, Docker, Kubernetes, Istio Serverless Monolith + Microservices + Serverless + Reactive = MONOMICROLESS REACTIVE
  • 5. Nowadays Architecture Trends - The real problem is? @betoSalazar Everybody are looking for answers……. But what about the architecture & business?
  • 6. Nowadays Architecture Trends - The real problem is? @betoSalazar We are dealing with a distributed architecture
  • 7. What is a Distributed Architecture ? @betoSalazar A distributed system is a system whose components are located on different networked computers, which then communicate and coordinate their actions by passing messages to each other.[1] The components interact with each other in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components. https://en.wikipedia.org/wiki/Distributed_computing
  • 8. @betoSalazar What is the problem with distributed architecture ?
  • 9. The journey ● The monolith it is our legacy ? ● Evolved to microservices ? ● Third party services and serverless ● Tips, tricks, pros, cons & conclusions @betoSalazar
  • 11. Monolith: How it looks @betoSalazar
  • 12. Monolith: How it looks -> A huge EAR file @betoSalazar
  • 13. Monolith = Legacy @betoSalazar Source: 97 Things Every Software Architect Should Know
  • 16. @betoSalazar Microservices We already split our monolith or we are on it https://jwt.io/ https://nodejs.org/es/ https://facebook.github.io/react/ https://angular.io/ https://facebook.github.io/react-native/ fat jar api-gateway.jar Services api rest POST bank.com/api/v1/accouts POST bank.com/api/v1/accouts logstash Login Angular nodejs Transaction Angular nodejs Module n Angular nodejs Osgi container engine-orchestrator.jar Osgi container dynamic-camel-routes.jar fat jar batch.jar fat jar services.jar fat jar business-module1.jar fat jar business-module-n.jar Service some api Service some api Service some api Service some api Service some api Service some api businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer JWT JSON WEB TOKEN & Authorization Server but…………not all is happiness
  • 17. Microservice Madness ? @betoSalazar The cost of communication over the network is not trivial.
  • 18. Microservice Madness ? @betoSalazar It’s hard to trace the thread of execution in a distributed system.
  • 19. Microservice Madness ? @betoSalazar The cost of development goes up.
  • 20. Microservice Madness ? @betoSalazar Do you depend on a Monolith ? Provably we will have Bottlenecks
  • 21. @betoSalazar Do you have an automation pipeline process ? DELIVERY PIPELINE CI / CD CODE BUILD TEST DEPLOY CODE ANALYZE (Quality and security) If your answer is not, do it before microservices or serverless
  • 23. @betoSalazar Serverless Serverless ! Developers code business logic as functions ! Forgetting everything about the servers provisioning and scaling concerns where the logic will be executed ! Ephimeral ! Vendor lock-in is a myth ! Multicloud, get the best from each one (AWS, Oracle Cloud, Google Cloud, AWS, Azure, etc) ! Troubleshooting is hard
  • 24. Monolith vs Microservices vs Serverless @betoSalazar Monolith Microservices Serverless
  • 26. @betoSalazar We end with a Distributed Architecture Osgi container engine-orchestrator.jar Osgi container dynamic-camel-routes.jar fat jar batch.jar fat jar services.jar fat jar business-module1.jar fat jar business-module-n.jar Service some api Service some api Service some api Service some api Service some api Service some api businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer fat jar api-gateway.jar Services api rest
  • 27. Serverless Security @betoSalazar ! A user can log in with social network credentials like Facebook, Google ! Returns JWT tokens contain the logged in user ! Use the JSON Web Tokens JWT to validate if a user makes request to a REST Endpoints ! Forget about infrastructure (that’s why we are going serverless, after all) as much as possible; ! Use Auth0 and basically forget about the security details that are behind it. https://auth0.com
  • 28. Reactive systems @betoSalazar Project Reactor ! non-blocking applications ! 10's of millions of messages per second ! Scaling-Out to overcome latency and slow microservices https://projectreactor.io https://projectreactor.io/docs/core/release/reference/ Spring Webflux https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#spring-webflux ! non-blocking HTTP runtimes to the Reactive Streams API
  • 30. @betoSalazar https://cloud.spring.io/spring-cloud-function/ Spring Cloud Functions FaaS ! Promote the implementation of business logic via functions ! Adapters for • AWS Lambda, • Microsoft Azure, • Apache OpenWhisk • and possibly other "serverless" service providers.
  • 31. @betoSalazar The big picture Osgi container engine-orchestrator.jar Osgi container dynamic-camel-routes.jar fat jar batch.jar fat jar services.jar fat jar business-module1.jar fat jar business-module-n.jar Service some api Service some api Service some api Service some api Service some api Service some api businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer businesslogic.jar Rest-api-layer fat jar api-gateway.jar Services api rest API Gateway Lambda Lambda
  • 32. asalazar@advlatam.com @betoSalazar Demo Secure Serverless & Code blueprints: https://github.com/lasalazarr/secure-serverless
  • 33. Demo @betoSalazar Run on the command line: Run with docker:
  • 35. @betoSalazar The conclusion Nowadays Architecture Trends ! We are dealing with a Distributed Architecture ! Secure your endpoints is a rule ! The system and services have to deal with: • network communications, • failures, • rebalances, • splits and refactor ! Our legacy system are only legacy because they’ve been successful enough to last this long
  • 36. @betoSalazar The conclusion Recommendations If you can fit your team around a table you maybe don’t need microservices yet Hybrid approach and employing monolithic architecture styles when needed Care about logs, monitoring and always use a CORRELATIONID and MDC (Mapped Diagnostic Context) Various software architecture patterns match various problems, so you can start to get a feel for the right solution to fit your needs. Several applications with monolithic architecture is a good fit and there is no need to change or refactor that architecture Security - JWT json web token, Json Web Signature, Json Web Encryption
  • 37. @betoSalazar Recommendations To manage changes review the Architectural Clash http://architecturalclash.org -> In extrategy to developed a new way to assess the level of resilience of our frontend and mobile applications: the Architectural Clash. Automate the deployment and delivery process -> CI & CD -> DEVOPS Culture Design for failover, Service load balancing and automatic scaling, data Separation, Integrity, Performance If you have monolith dependencies, you will have performance issues The conclusion Always think about: • Low coupling • High Cohesion • SOLID Principales • CQRS Command Query Responsibility Segregation
  • 39. asalazar@advlatam.com @betoSalazar THANK YOU Auth0 Ambassadors. Helping the developer community make the internet safer.