building big architectures xp conference 2016

35
#XPIndia2016 Building Big Architecture Ramit Surana @ramitsurana [email protected]

Upload: ramit-surana

Post on 15-Apr-2017

174 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Building Big Architectures XP Conference 2016

#XPIndia2016

Building Big Architecture

Ramit Surana@[email protected]

Page 2: 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

Page 3: Building Big Architectures XP Conference 2016

#XPIndia2016

About Me

• Open Source Guy

• Contributor to Docker, CoreOS and Kubernetes community.

• Open Source community speaker.

• Contact me:

[email protected]

Page 4: Building Big Architectures XP Conference 2016

#XPIndia2016

Important Sayings

Page 5: Building Big Architectures XP Conference 2016

#XPIndia2016

Why is this important ?

Page 6: Building Big Architectures XP Conference 2016

#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

#XPIndia2016

Before and After SOA

Page 8: Building Big Architectures XP Conference 2016

#XPIndia2016

SOA Mythology

Page 9: Building Big Architectures XP Conference 2016

#XPIndia2016

Overview of Monolith Architecture

Page 10: Building Big Architectures XP Conference 2016

#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

#XPIndia2016

Microservices

Page 12: Building Big Architectures XP Conference 2016

#XPIndia2016

Overview of Microservices Architecture

Page 13: Building Big Architectures XP Conference 2016

#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

#XPIndia2016

Microservices vs Monolithic

Page 15: Building Big Architectures XP Conference 2016

#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

#XPIndia2016

The Problem

Page 17: Building Big Architectures XP Conference 2016

#XPIndia2016

Using Monolithic

Developer

Developer

Developer

Developer

Developer

Java

Java

Java

Java

Java

Production

Release Cycles

Page 18: Building Big Architectures XP Conference 2016

#XPIndia2016

Using Microservices

Developer

Developer

Developer

Developer

Developer

Redis

Golang

NodeJS

Java

Php

Release Cycles

Production

Page 19: Building Big Architectures XP Conference 2016

#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

#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

#XPIndia2016

Principles Governing Micro services

Page 22: Building Big Architectures XP Conference 2016

#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

#XPIndia2016

12 Factor app

Page 24: Building Big Architectures XP Conference 2016

#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

#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

#XPIndia2016

Comparison of performance

Page 27: Building Big Architectures XP Conference 2016

#XPIndia2016

But What about DevOps ?

Page 28: Building Big Architectures XP Conference 2016

#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

#XPIndia2016

Case Studies

Page 30: Building Big Architectures XP Conference 2016

#XPIndia2016

How Netflix does it?

Page 31: Building Big Architectures XP Conference 2016

#XPIndia2016

How Twitter do it?

Page 32: Building Big Architectures XP Conference 2016

#XPIndia2016

How Gilt does it?

Page 33: Building Big Architectures XP Conference 2016

#XPIndia2016

How does Google does it?

Page 34: Building Big Architectures XP Conference 2016

#XPIndia2016

Any Questions?

Page 35: Building Big Architectures XP Conference 2016

Thank YouMay you have an awesome day

ahead !