Building Big Architectures XP Conference 2016
-
Upload
ramit-surana -
Category
Software
-
view
174 -
download
2
Transcript of Building Big Architectures XP Conference 2016
#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
#XPIndia2016
About Me
• Open Source Guy
• Contributor to Docker, CoreOS and Kubernetes community.
• Open Source community speaker.
• Contact me:
#XPIndia2016
Important Sayings
#XPIndia2016
Why is this important ?
#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.
#XPIndia2016
Before and After SOA
#XPIndia2016
SOA Mythology
#XPIndia2016
Overview of Monolith Architecture
#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.
#XPIndia2016
Microservices
#XPIndia2016
Overview of Microservices Architecture
#XPIndia2016
Microservices
• Loosely coupled service oriented architecture with bounded contexts.
•Design for failure
•Decentralized Governance
•Decentralized Data Management.
•Componentization via Services
#XPIndia2016
Microservices vs Monolithic
#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.
#XPIndia2016
The Problem
#XPIndia2016
Using Monolithic
Developer
Developer
Developer
Developer
Developer
Java
Java
Java
Java
Java
Production
Release Cycles
#XPIndia2016
Using Microservices
Developer
Developer
Developer
Developer
Developer
Redis
Golang
NodeJS
Java
Php
Release Cycles
Production
#XPIndia2016
Using Docker Hub with Microservices
Developer
Developer
Developer
Developer
Developer
Configure
Configure
Configure
Configure
Configure
Release Cycles
Production
DockerHub
#XPIndia2016
Using PaaS
Developer
Developer
Developer
Developer
Developer
Configure
Configure
Configure
Configure
Configure
Release Cycles
Production
DockerHub
Orchestration Engine
PaaS
#XPIndia2016
Principles Governing Micro services
#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.
#XPIndia2016
12 Factor app
#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."
#XPIndia2016
Refactoring
•Process to change the existing code without changing its external behavior.
•Refactoring improves nonfunctional attributes of the software.
#XPIndia2016
Comparison of performance
#XPIndia2016
But What about DevOps ?
#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.
#XPIndia2016
Case Studies
#XPIndia2016
How Netflix does it?
#XPIndia2016
How Twitter do it?
#XPIndia2016
How Gilt does it?
#XPIndia2016
How does Google does it?
#XPIndia2016
Any Questions?
Thank YouMay you have an awesome day
ahead !