Slide 1

Slide 1 text

Ramit Surana @ramitsurana /in/ramitsurana Building Big Architecture Exploring Journey from monolithics to microservices

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

About Me • Open Source Guy • Contributor to Docker, CoreOS and Kubernetes community. • Open Source community speaker. • Contact me: [email protected]

Slide 4

Slide 4 text

Important Sayings

Slide 5

Slide 5 text

Why is this important ?

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

Before and After SOA

Slide 8

Slide 8 text

SOA Mythology

Slide 9

Slide 9 text

Overview of Monolith Architecture

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

Microservices

Slide 12

Slide 12 text

Overview of Microservices Architecture

Slide 13

Slide 13 text

Microservices • Loosely coupled service oriented architecture with bounded contexts. • Design for failure • Decentralized Governance • Decentralized Data Management. • Componentization via Services

Slide 14

Slide 14 text

Microservices vs Monolithic

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

The Problem

Slide 17

Slide 17 text

Using Monolithic Developer Developer Developer Developer Developer Java Java Java Java Java Production Release Cycles

Slide 18

Slide 18 text

Using Microservices Developer Developer Developer Developer Developer Redis Golang NodeJS Java Php Release Cycles Production

Slide 19

Slide 19 text

Using Docker Hub with Microservices Developer Developer Developer Developer Developer Configure Configure Configure Configure Configure Release Cycles Production Docker Hub

Slide 20

Slide 20 text

Using Orchestration Developer Developer Developer Developer Developer Configure Configure Configure Configure Configure Release Cycles Production Docker Hub Orchestration Engine

Slide 21

Slide 21 text

Using Orchestration Developer Developer Developer Developer Developer Configure Configure Configure Configure Configure Release Cycles Production Docker Hub Orchestration Engine

Slide 22

Slide 22 text

Using PaaS Developer Developer Developer Developer Developer Configure Configure Configure Configure Configure Release Cycles Production Docker Hub Orchestration Engine PaaS

Slide 23

Slide 23 text

Principles Governing Micro services

Slide 24

Slide 24 text

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.

Slide 25

Slide 25 text

12 Factor app

Slide 26

Slide 26 text

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."

Slide 27

Slide 27 text

Refactoring • Process to change the existing code without changing its external behavior. • Refactoring improves nonfunctional attributes of the software.

Slide 28

Slide 28 text

Comparison of perfomance

Slide 29

Slide 29 text

But What about DevOps ?

Slide 30

Slide 30 text

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.

Slide 31

Slide 31 text

Case Studies

Slide 32

Slide 32 text

How Netflix does it?

Slide 33

Slide 33 text

How Twitter do it?

Slide 34

Slide 34 text

How Gilt does it?

Slide 35

Slide 35 text

How does Google does it?

Slide 36

Slide 36 text

Any Questions?

Slide 37

Slide 37 text

Thank You May you have a nice day ahead !