SlideShare a Scribd company logo
1 of 29
Download to read offline
MILAN 20/21.11.2015
Thiyagu Palanisamy - ThoughtWorks
Designing Microservices based systems
MILAN 20/21.11.2015 - Thiyagu Palanisamy
What is microservice?
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Loosely coupled service oriented architecture with bounded contexts
-Adrian Cockcroft
Monolith Microservice
MILAN 20/21.11.2015 - Thiyagu Palanisamy
ESB
SOA?
Microservices
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Characteristics of Microservice
1. Componentization via Services
2. Organized around Business Capabilities
3. Products not Projects
4. Smart endpoints and dumb pipes
5. Decentralized Governance
6. Decentralized Data Management
7. Infrastructure Automation
8. Design for failure
9. Evolutionary Design
http://martinfowler.com/articles/microservices.html
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Why Microservices?
MILAN 20/21.11.2015 - Thiyagu Palanisamy
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3610582
http://tamai-lab.ws.hosei.ac.jp/pub/icsm92.pdf
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Accelerated growth of
technology is disrupting
businesses
https://en.wikipedia.org/wiki/The_Singularity_Is_Near
MILAN 20/21.11.2015 - Thiyagu Palanisamy
should be cheap to replace
gives flexibility to experiment
allows you to go as fast as possible
needs on systems
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Divide & Conquer
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Designing Microservices
MILAN 20/21.11.2015 - Thiyagu Palanisamy
organizations which design systems ... are constrained to produce designs which
are copies of the communication structures of these organizations
Conway's law 1967
MILAN 20/21.11.2015 - Thiyagu Palanisamy
MILAN 20/21.11.2015 - Thiyagu Palanisamy
smaller services based on functional & non functional needs
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Catalog
Product Payment
Price trend
Aggregated
little outdated ok
No delay
Append only
Async
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Understand Domain - Organise around business capabilities
Price Cost
Article Replenishment
Assortment
don’t repeat yourself
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Cost
Gross Cost
Supplier Discounts
Net Cost
Transportation Cost
Packaging Cost
Recycling Tax
IVA
Net Net Cost
…
single responsibility principlebounded context
Supplier Cost
Gross Cost
Supplier Discounts
Net Cost
Operational Cost
Transportation Cost
Packaging Cost
Recycling Tax
Gross Cost
Supplier Discounts
Logistics Cost
Invoice Discounts
Volume Discounts
Transportation Cost
Packaging Cost
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Tell-Don't-Ask
Discounts (Total)
Volume Discounts
Invoice Discounts
Supplier Discounts
Invoice Discounts
Volume Discounts
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Cohesion & Coupling
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Evolutionary Design
MILAN 20/21.11.2015 - Thiyagu Palanisamy
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Java, the Unix way
james lewis
in 2012
MILAN 20/21.11.2015 - Thiyagu Palanisamy
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
ps aux | grep conky | grep -v grep | awk '{print $2}' | xargs kill
MILAN 20/21.11.2015 - Thiyagu Palanisamy
• Modularity - simple parts connected by well defined interfaces
• Clarity - most important communication is to the developer
• Composition - design programs to be connected to other programs
• Separation - separate the mechanisms of the programs from the policies
• Simplicity - small, straightforward cooperating pieces
• Parsimony - avoid writing big programs
• Transparency - design for visibility and discoverability
• Robustness - robustness is the child of transparency and simplicity
• Representation - easier to understand complex data than complex logic
• Least Surprise - build intuitive products that are easy to use
• Silence - do not print unnecessary output
• Repair - fail in a manner that is easy to localize and diagnose
• Economy - value developer time over machine time
• Generation - write abstract high-level programs that generate code
• Optimization - prototype software before polishing it
• Diversity - programs to be flexible and open
• Extensibility - design for the future by making their protocols extensible
Eric Raymond’s 17 Unix Rules
MILAN 20/21.11.2015 - Thiyagu Palanisamy
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Rapid provisioning
Basic Monitoring
Rapid application deployment
MILAN 20/21.11.2015 - Thiyagu Palanisamy
http://martinfowler.com/microservices
https://www.thoughtworks.com/radar
MILAN 20/21.11.2015
Thiyagu Palanisamy
ThoughtWorks
hint - size of μs
Questions?
MILAN 20/21.11.2015 - Thiyagu Palanisamy
Leave your feedback on Joind.in!
https://m.joind.in/event/codemotion-milan-2015

More Related Content

Similar to Thiyagu Palanisamy - Designing Microservices based systems | Codemotion Milan 2015

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Similar to Thiyagu Palanisamy - Designing Microservices based systems | Codemotion Milan 2015 (20)

Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Democratize Observability with Software Defined Packet Brokers
Democratize Observability with Software Defined Packet BrokersDemocratize Observability with Software Defined Packet Brokers
Democratize Observability with Software Defined Packet Brokers
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
Things I wish I'd known before I started with Microservices - Software Circus...
Things I wish I'd known before I started with Microservices - Software Circus...Things I wish I'd known before I started with Microservices - Software Circus...
Things I wish I'd known before I started with Microservices - Software Circus...
 
Mule soft meetup Houston 16
Mule soft meetup Houston 16Mule soft meetup Houston 16
Mule soft meetup Houston 16
 
Present 2005 1014
Present 2005 1014Present 2005 1014
Present 2005 1014
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TechEvent Agile infrastructure projects
TechEvent Agile infrastructure projectsTechEvent Agile infrastructure projects
TechEvent Agile infrastructure projects
 
[WSO2 Integration Summit Milan 2019] Microservices and Container Based Archit...
[WSO2 Integration Summit Milan 2019] Microservices and Container Based Archit...[WSO2 Integration Summit Milan 2019] Microservices and Container Based Archit...
[WSO2 Integration Summit Milan 2019] Microservices and Container Based Archit...
 
Mark Schroeder - Considering APIs?
Mark Schroeder - Considering APIs?Mark Schroeder - Considering APIs?
Mark Schroeder - Considering APIs?
 
Oracle Commerce as a Secure, Scalable Hybrid Cloud Service, webinar slides
Oracle Commerce as a Secure,  Scalable Hybrid Cloud Service, webinar slidesOracle Commerce as a Secure,  Scalable Hybrid Cloud Service, webinar slides
Oracle Commerce as a Secure, Scalable Hybrid Cloud Service, webinar slides
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
from shadow IT to empowered IT-asanka 2014 08-gartner catalyst
from shadow IT to empowered IT-asanka 2014 08-gartner catalystfrom shadow IT to empowered IT-asanka 2014 08-gartner catalyst
from shadow IT to empowered IT-asanka 2014 08-gartner catalyst
 
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 
TTN 2015 "Defining DevOps: Concepts, Technology and Automation. Oh yeah, and ...
TTN 2015 "Defining DevOps: Concepts, Technology and Automation. Oh yeah, and ...TTN 2015 "Defining DevOps: Concepts, Technology and Automation. Oh yeah, and ...
TTN 2015 "Defining DevOps: Concepts, Technology and Automation. Oh yeah, and ...
 

More from Codemotion

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Thiyagu Palanisamy - Designing Microservices based systems | Codemotion Milan 2015

  • 1. MILAN 20/21.11.2015 Thiyagu Palanisamy - ThoughtWorks Designing Microservices based systems
  • 2. MILAN 20/21.11.2015 - Thiyagu Palanisamy What is microservice?
  • 3. MILAN 20/21.11.2015 - Thiyagu Palanisamy Loosely coupled service oriented architecture with bounded contexts -Adrian Cockcroft Monolith Microservice
  • 4. MILAN 20/21.11.2015 - Thiyagu Palanisamy ESB SOA? Microservices
  • 5. MILAN 20/21.11.2015 - Thiyagu Palanisamy Characteristics of Microservice 1. Componentization via Services 2. Organized around Business Capabilities 3. Products not Projects 4. Smart endpoints and dumb pipes 5. Decentralized Governance 6. Decentralized Data Management 7. Infrastructure Automation 8. Design for failure 9. Evolutionary Design http://martinfowler.com/articles/microservices.html
  • 6. MILAN 20/21.11.2015 - Thiyagu Palanisamy Why Microservices?
  • 7. MILAN 20/21.11.2015 - Thiyagu Palanisamy http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3610582 http://tamai-lab.ws.hosei.ac.jp/pub/icsm92.pdf
  • 8. MILAN 20/21.11.2015 - Thiyagu Palanisamy Accelerated growth of technology is disrupting businesses https://en.wikipedia.org/wiki/The_Singularity_Is_Near
  • 9. MILAN 20/21.11.2015 - Thiyagu Palanisamy should be cheap to replace gives flexibility to experiment allows you to go as fast as possible needs on systems
  • 10. MILAN 20/21.11.2015 - Thiyagu Palanisamy Divide & Conquer
  • 11. MILAN 20/21.11.2015 - Thiyagu Palanisamy Designing Microservices
  • 12. MILAN 20/21.11.2015 - Thiyagu Palanisamy organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations Conway's law 1967
  • 13. MILAN 20/21.11.2015 - Thiyagu Palanisamy
  • 14. MILAN 20/21.11.2015 - Thiyagu Palanisamy smaller services based on functional & non functional needs
  • 15. MILAN 20/21.11.2015 - Thiyagu Palanisamy Catalog Product Payment Price trend Aggregated little outdated ok No delay Append only Async
  • 16. MILAN 20/21.11.2015 - Thiyagu Palanisamy Understand Domain - Organise around business capabilities Price Cost Article Replenishment Assortment don’t repeat yourself
  • 17. MILAN 20/21.11.2015 - Thiyagu Palanisamy Cost Gross Cost Supplier Discounts Net Cost Transportation Cost Packaging Cost Recycling Tax IVA Net Net Cost … single responsibility principlebounded context Supplier Cost Gross Cost Supplier Discounts Net Cost Operational Cost Transportation Cost Packaging Cost Recycling Tax Gross Cost Supplier Discounts Logistics Cost Invoice Discounts Volume Discounts Transportation Cost Packaging Cost
  • 18. MILAN 20/21.11.2015 - Thiyagu Palanisamy Tell-Don't-Ask Discounts (Total) Volume Discounts Invoice Discounts Supplier Discounts Invoice Discounts Volume Discounts
  • 19. MILAN 20/21.11.2015 - Thiyagu Palanisamy Cohesion & Coupling
  • 20. MILAN 20/21.11.2015 - Thiyagu Palanisamy Evolutionary Design
  • 21. MILAN 20/21.11.2015 - Thiyagu Palanisamy
  • 22. MILAN 20/21.11.2015 - Thiyagu Palanisamy Java, the Unix way james lewis in 2012
  • 23. MILAN 20/21.11.2015 - Thiyagu Palanisamy 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 ps aux | grep conky | grep -v grep | awk '{print $2}' | xargs kill
  • 24. MILAN 20/21.11.2015 - Thiyagu Palanisamy • Modularity - simple parts connected by well defined interfaces • Clarity - most important communication is to the developer • Composition - design programs to be connected to other programs • Separation - separate the mechanisms of the programs from the policies • Simplicity - small, straightforward cooperating pieces • Parsimony - avoid writing big programs • Transparency - design for visibility and discoverability • Robustness - robustness is the child of transparency and simplicity • Representation - easier to understand complex data than complex logic • Least Surprise - build intuitive products that are easy to use • Silence - do not print unnecessary output • Repair - fail in a manner that is easy to localize and diagnose • Economy - value developer time over machine time • Generation - write abstract high-level programs that generate code • Optimization - prototype software before polishing it • Diversity - programs to be flexible and open • Extensibility - design for the future by making their protocols extensible Eric Raymond’s 17 Unix Rules
  • 25. MILAN 20/21.11.2015 - Thiyagu Palanisamy
  • 26. MILAN 20/21.11.2015 - Thiyagu Palanisamy Rapid provisioning Basic Monitoring Rapid application deployment
  • 27. MILAN 20/21.11.2015 - Thiyagu Palanisamy http://martinfowler.com/microservices https://www.thoughtworks.com/radar
  • 29. MILAN 20/21.11.2015 - Thiyagu Palanisamy Leave your feedback on Joind.in! https://m.joind.in/event/codemotion-milan-2015