SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
Mite Mitreski
Voxxed Days Istanbul - 9 May 2015
@mitemitreski
Reactive and microservice pitfalls
What is reactive programming?
Reactive programming is _______
a) Hype
b) Awesome
c) Different
d) Just the observer pattern
e) Microsoft Excel
f) Manifesto
g) All of above
http://www.reactivemanifesto.org/
Responsive
Message Driven
ResilientElastic
Microservices
The monolith Microservices
Monolithic Architecture
The monolith
● Componentization is via Services
● Often organized around Tech abilities
○ UI Expert teams
○ Backend or middleware developers
○ DBA’s
… organizations which design systems
... are constrained to produce designs
which are copies of the communication
structures of these organizations...
—Melvin Conway
The microservices
● Organized around Business Capabilities
● Products not Projects
○ development team takes full responsibility for the
software in production
○ "you build, you run it" - aka the Amazon way
● SOA done right?
Decentralized Governance
Java EE
Clojure
Ruby
C# app
Spring
based
Spring
with tab
indentati
on
Decentralized Governance
Java EE
Clojure
Ruby
NodeJS
Spring
based
Spring
with tab
indentati
on
V2
replaced
C# with
NodeJS
Other microservice benefits
● Decentralized Data Management
● Evolutionary Design
Microservices are the unix way
This is the Unix philosophy: Write programs that
do one thing and do it well. Write programs to
work together. Write programs to handle text
streams, because that is a universal interface.
Doug McIlroy, head of the Bell Labs CSRC (Computing Sciences
Research Center), and inventor of the Unix pipe
Mike Gancarz: The UNIX Philosophy
1. Small is beautiful.
2. Make each program do one thing well.
3. Build a prototype as soon as possible.
4. Choose portability over efficiency.
5. Store data in flat text files.
6. Use software leverage to your advantage.
7. Use shell scripts to increase leverage and portability.
8. Avoid captive user interfaces.
9. Make every program a filter.
With all the frameworks out there
what do I pick?
Reactive Microservices?
How NOT to FAIL @ Microservices?
#1 How big is too big?
As big as a piece of Baklava?
#2 Each service on it’s own repo
● Each service should be on a separate VCS
root
○ Physical code separation
● Various dependencies temptations not
possible
#3 What to standardize
Java EE
Clojure
Ruby
NodeJS
Spring
based
Spring
with tab
indentati
on
Standardize interface
Free for all
#4 How do test all of this?
Nod
eJS
S2App
S1
Nod
eJSMock
App
Mock
End 2 end
#5 Coupling avoidance
● Function coupling
● Data structure coupling
● Temporal coupling
● URI coupling
#5 Coupling avoidance
● RPC (RMI)
● CORBA
● Shared Serialization
● SOAP
● Resources (REST)
#6 Avoid distributed transactions
Space B
Space B
JINI/Gigaspaces example
Space A
SOME
APP
#7 Monitoring is essential
Java EE
Clojure
Ruby
NodeJS
Spring
based
Spring
with tab
indentati
on
#7 Monitoring is essential
Spring Boot - Actuator
JMX
Custom HTTP monitoring
Gigaspaces UI
#8 Use tracking ID
Clojure
Spring
App
NodeJS
ID : 223-305
#8 Use tracking ID
Clojure
Spring
App
NodeJS
ID : 223-305
ID : 223-305
#8 Use tracking ID
Clojure
Spring
App
NodeJS
ID : 223-305
ID : 223-305
ID : 223-305
#12 Design for failure
#14 Move to production individually
PROD
S2
1.0.0
S1
1.0.0
App
1.0.0
TEST
S1
1.0.0
App
1.0.0
S2
1.0.0
#14 Move to production individually
PROD
S2
1.0.0
S1
1.0.0
App
1.0.0
TEST
S1
1.0.1
App
1.0.0
S2
1.0.0
#14 Move to production individually
PROD
S2
1.0.0
S1
1.0.1
App
1.0.0
TEST
S1
1.0.1
App
1.0.0
S2
1.0.0
#15 Stability ?
● Timeouts
● Circuit breakers
● Bulkheads
● Handshakes
#16 Make batch calls if possible
ServiceClient
#16 Make batch calls if possible
ServiceClient
Are Microservices the Future?
Who uses microservices ?
Trends
Amazon’s SOA way
Standing in the shoulders of giants
Summary
Microservices are awesome but be
aware of the challenges and make sure
you use best practices.
Operation and resilience are the
biggest overheads.
Summary
Ensure your team is up to the task
and you really need it !
Ensure you have DevOps experties.
Start small and make adjustments
as needed.
Summary
Questions
Microservices resources
● http://martinfowler.com/articles/microservices.html
● Microservices not a free Lunch
● Adventures in a cloudy future

Weitere ähnliche Inhalte

Andere mochten auch

13 decomposição de um número em fatores primos
13 decomposição de um número em fatores primos13 decomposição de um número em fatores primos
13 decomposição de um número em fatores primos
Carla Gomes
 
MM - Travel Manitoba AGM - Aug 31, 2011
MM - Travel Manitoba AGM - Aug 31, 2011MM - Travel Manitoba AGM - Aug 31, 2011
MM - Travel Manitoba AGM - Aug 31, 2011
ctc-cct
 
MOOCs - disruptive innovation for higher education(rev1)
MOOCs - disruptive innovation for higher education(rev1)MOOCs - disruptive innovation for higher education(rev1)
MOOCs - disruptive innovation for higher education(rev1)
William Hall
 
Leerkrachtassistent Veilig stap voor stap
Leerkrachtassistent Veilig stap voor stapLeerkrachtassistent Veilig stap voor stap
Leerkrachtassistent Veilig stap voor stap
Webredactie_Zwijsen
 
Java2day 2013 : Modern workflows for javascript integration
Java2day 2013 : Modern workflows for javascript integrationJava2day 2013 : Modern workflows for javascript integration
Java2day 2013 : Modern workflows for javascript integration
Mite Mitreski
 
A Glassof Milk.Pps
A Glassof Milk.PpsA Glassof Milk.Pps
A Glassof Milk.Pps
vinod kumar
 

Andere mochten auch (20)

Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Microservices Architecture (MSA) - Presentation made at The Open Group confer...Microservices Architecture (MSA) - Presentation made at The Open Group confer...
Microservices Architecture (MSA) - Presentation made at The Open Group confer...
 
13 decomposição de um número em fatores primos
13 decomposição de um número em fatores primos13 decomposição de um número em fatores primos
13 decomposição de um número em fatores primos
 
Presentation
PresentationPresentation
Presentation
 
Top500 November 2013
Top500 November 2013Top500 November 2013
Top500 November 2013
 
S I N G A P U R P D F
S I N G A P U R  P D FS I N G A P U R  P D F
S I N G A P U R P D F
 
MM - Travel Manitoba AGM - Aug 31, 2011
MM - Travel Manitoba AGM - Aug 31, 2011MM - Travel Manitoba AGM - Aug 31, 2011
MM - Travel Manitoba AGM - Aug 31, 2011
 
Winnaar #watishijmooi-prijs van #postitwarrekenen opdracht 5
Winnaar #watishijmooi-prijs van #postitwarrekenen opdracht 5Winnaar #watishijmooi-prijs van #postitwarrekenen opdracht 5
Winnaar #watishijmooi-prijs van #postitwarrekenen opdracht 5
 
คู่มือต้านรัฐประหาร Against the coup thai
คู่มือต้านรัฐประหาร Against the coup   thaiคู่มือต้านรัฐประหาร Against the coup   thai
คู่มือต้านรัฐประหาร Against the coup thai
 
ASphere
ASphereASphere
ASphere
 
1 monitoring n evaluation
1 monitoring n evaluation1 monitoring n evaluation
1 monitoring n evaluation
 
Zone-S
Zone-SZone-S
Zone-S
 
Class 2. ss
Class 2. ssClass 2. ss
Class 2. ss
 
MOOCs - disruptive innovation for higher education(rev1)
MOOCs - disruptive innovation for higher education(rev1)MOOCs - disruptive innovation for higher education(rev1)
MOOCs - disruptive innovation for higher education(rev1)
 
Mahle Newsletter Edition4 2010
Mahle Newsletter Edition4 2010Mahle Newsletter Edition4 2010
Mahle Newsletter Edition4 2010
 
Leerkrachtassistent Veilig stap voor stap
Leerkrachtassistent Veilig stap voor stapLeerkrachtassistent Veilig stap voor stap
Leerkrachtassistent Veilig stap voor stap
 
Knowle westmediacentre leadershipsocialinclusion
Knowle westmediacentre leadershipsocialinclusionKnowle westmediacentre leadershipsocialinclusion
Knowle westmediacentre leadershipsocialinclusion
 
Java2day 2013 : Modern workflows for javascript integration
Java2day 2013 : Modern workflows for javascript integrationJava2day 2013 : Modern workflows for javascript integration
Java2day 2013 : Modern workflows for javascript integration
 
Goiás
GoiásGoiás
Goiás
 
A Glassof Milk.Pps
A Glassof Milk.PpsA Glassof Milk.Pps
A Glassof Milk.Pps
 
ITS Corporate Introduction - HQ in Simi Valley, the heart of Southern Califo...
ITS Corporate Introduction  - HQ in Simi Valley, the heart of Southern Califo...ITS Corporate Introduction  - HQ in Simi Valley, the heart of Southern Califo...
ITS Corporate Introduction - HQ in Simi Valley, the heart of Southern Califo...
 

Ähnlich wie Micro service pitfalls voxxed days istanbul 2015

MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
Stuart Lodge
 

Ähnlich wie Micro service pitfalls voxxed days istanbul 2015 (20)

Microservice pitfalls
Microservice pitfalls Microservice pitfalls
Microservice pitfalls
 
Microservice Workshop Hands On
Microservice Workshop Hands On Microservice Workshop Hands On
Microservice Workshop Hands On
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Breaking down a monolith
Breaking down a monolithBreaking down a monolith
Breaking down a monolith
 
Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
Mobile Applications Architecture - GDG Ternopil' Architecture Components MeetupMobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
Mobile Applications Architecture - GDG Ternopil' Architecture Components Meetup
 
Demystifying microservices for JavaEE developers by Steve Millidge.
Demystifying microservices for JavaEE developers by Steve Millidge.Demystifying microservices for JavaEE developers by Steve Millidge.
Demystifying microservices for JavaEE developers by Steve Millidge.
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 
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
 
Microservices - Yet another buzzword
Microservices - Yet another buzzwordMicroservices - Yet another buzzword
Microservices - Yet another buzzword
 
Reactive programming: Brincando com eficiência, composição e assíncronia
Reactive programming: Brincando com eficiência, composição e assíncroniaReactive programming: Brincando com eficiência, composição e assíncronia
Reactive programming: Brincando com eficiência, composição e assíncronia
 
Micro Frontends
Micro FrontendsMicro Frontends
Micro Frontends
 
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсКирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Microservice Architecture JavaCro 2015
Microservice Architecture JavaCro 2015Microservice Architecture JavaCro 2015
Microservice Architecture JavaCro 2015
 
Create first android app with MVVM Architecture
Create first android app with MVVM ArchitectureCreate first android app with MVVM Architecture
Create first android app with MVVM Architecture
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
Node.js Service - Best practices in 2019
Node.js Service - Best practices in 2019Node.js Service - Best practices in 2019
Node.js Service - Best practices in 2019
 

Mehr von Mite Mitreski (7)

Getting all the 99.99(9) you always wanted
Getting all the 99.99(9) you always wanted Getting all the 99.99(9) you always wanted
Getting all the 99.99(9) you always wanted
 
The core libraries you always wanted - Google Guava
The core libraries you always wanted - Google GuavaThe core libraries you always wanted - Google Guava
The core libraries you always wanted - Google Guava
 
Devoxx 2014 : Sparky guide to bug free JavaScirpt
Devoxx 2014 : Sparky guide to bug free JavaScirptDevoxx 2014 : Sparky guide to bug free JavaScirpt
Devoxx 2014 : Sparky guide to bug free JavaScirpt
 
Unix for developers
Unix for developersUnix for developers
Unix for developers
 
State of the lambda
State of the lambdaState of the lambda
State of the lambda
 
Google Guava for cleaner code
Google Guava for cleaner codeGoogle Guava for cleaner code
Google Guava for cleaner code
 
Eclipse 10 years Party
Eclipse 10 years PartyEclipse 10 years Party
Eclipse 10 years Party
 

Kürzlich hochgeladen

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Kürzlich hochgeladen (20)

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 

Micro service pitfalls voxxed days istanbul 2015