![Page 2: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/2.jpg)
#XPIndia2016
Agenda• Why is this important ?
• Defining SOA
• What are Monoliths ?
• What are Microservices ?
• About Docker
• Principles of Microservices
• Refactoring
• 12 Factor App
• Conway's Law
• Coupling
• Case Studies
![Page 3: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/3.jpg)
#XPIndia2016
About Me
• Open Source Guy
• Contributor to Docker, CoreOS and Kubernetes community.
• Open Source community speaker.
• Contact me:
![Page 4: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/4.jpg)
#XPIndia2016
Important Sayings
![Page 5: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/5.jpg)
#XPIndia2016
Why is this important ?
![Page 6: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/6.jpg)
#XPIndia2016
SOA(Service Oriented Architecture)
Architectural pattern in computer software design in which application components provide services to other components via a communications protocol, typically over a network.
![Page 7: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/7.jpg)
#XPIndia2016
Before and After SOA
![Page 8: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/8.jpg)
#XPIndia2016
SOA Mythology
![Page 9: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/9.jpg)
#XPIndia2016
Overview of Monolith Architecture
![Page 10: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/10.jpg)
#XPIndia2016
Monolithics
• Single Runtime
• Single Codebase
• Layered architecture
• Initialization of the system may be tricky or laborious.
•Change to the control flow is impossible.
•An application where all of the logic runs in a single app server.
![Page 11: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/11.jpg)
#XPIndia2016
Microservices
![Page 12: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/12.jpg)
#XPIndia2016
Overview of Microservices Architecture
![Page 13: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/13.jpg)
#XPIndia2016
Microservices
• Loosely coupled service oriented architecture with bounded contexts.
•Design for failure
•Decentralized Governance
•Decentralized Data Management.
•Componentization via Services
![Page 14: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/14.jpg)
#XPIndia2016
Microservices vs Monolithic
![Page 15: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/15.jpg)
#XPIndia2016
About Docker
•Open platform for developers and sysadmins to build, ship, and run distributed applications.
•Docker enables apps to be quickly assembled from components.
• It eliminates the friction between development, QA and production environments.
![Page 16: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/16.jpg)
#XPIndia2016
The Problem
![Page 17: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/17.jpg)
#XPIndia2016
Using Monolithic
Developer
Developer
Developer
Developer
Developer
Java
Java
Java
Java
Java
Production
Release Cycles
![Page 18: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/18.jpg)
#XPIndia2016
Using Microservices
Developer
Developer
Developer
Developer
Developer
Redis
Golang
NodeJS
Java
Php
Release Cycles
Production
![Page 19: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/19.jpg)
#XPIndia2016
Using Docker Hub with Microservices
Developer
Developer
Developer
Developer
Developer
Configure
Configure
Configure
Configure
Configure
Release Cycles
Production
DockerHub
![Page 20: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/20.jpg)
#XPIndia2016
Using PaaS
Developer
Developer
Developer
Developer
Developer
Configure
Configure
Configure
Configure
Configure
Release Cycles
Production
DockerHub
Orchestration Engine
PaaS
![Page 21: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/21.jpg)
#XPIndia2016
Principles Governing Micro services
![Page 22: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/22.jpg)
#XPIndia2016
Coupling
•Tight coupling leads to huge, monolithic systems that are difficult to maintain or improve upon
• If changing one module in a program requires changing another module, then coupling exists.
![Page 23: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/23.jpg)
#XPIndia2016
12 Factor app
![Page 24: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/24.jpg)
#XPIndia2016
Conway's Law
"Any organization that designs a system … will inevitably produce a design whose structure is a
copy of the organization's communication structure."
![Page 25: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/25.jpg)
#XPIndia2016
Refactoring
•Process to change the existing code without changing its external behavior.
•Refactoring improves nonfunctional attributes of the software.
![Page 26: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/26.jpg)
#XPIndia2016
Comparison of performance
![Page 27: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/27.jpg)
#XPIndia2016
But What about DevOps ?
![Page 28: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/28.jpg)
#XPIndia2016
DevOps
•DevOps is a company culture where the Developers movement or practice emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals.
• It helps in automation and making delivery fast.
![Page 29: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/29.jpg)
#XPIndia2016
Case Studies
![Page 30: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/30.jpg)
#XPIndia2016
How Netflix does it?
![Page 31: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/31.jpg)
#XPIndia2016
How Twitter do it?
![Page 32: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/32.jpg)
#XPIndia2016
How Gilt does it?
![Page 33: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/33.jpg)
#XPIndia2016
How does Google does it?
![Page 34: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/34.jpg)
#XPIndia2016
Any Questions?
![Page 35: Building Big Architectures XP Conference 2016](https://reader031.vdocument.in/reader031/viewer/2022022414/587604b41a28ab4a508b65ab/html5/thumbnails/35.jpg)
Thank YouMay you have an awesome day
ahead !