24
DockerDay - Microservices ** Final** Katowice, 16 December 2015

DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

DockerDay - Microservices

** Final**

Katowice, 16 December 2015

Page 2: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Dominik Sowa

Chief architect in ING Services Polska delivering PaaS, IaaS and SecaaS services. Responsible for technological innovation and development of infrastruscture+security services in ING group. An enthusiast of new technologies and the use of open source solutions in large corporations.

www.linkedin.com/in/dominiksowa

2

Who am I?

Page 3: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

1. Microservices architecture2. Autoscaling in applications3. Technology platforms4. Data persistency in containers

3

Agenda

Page 4: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Microservices architecture

4

Page 5: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.

These services are built around business capabilities and independently deployable by fully automated deployment machinery.

There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

5

Definition by James Lewis and Martin Fowler

So

urc

e:.

htt

p:/

/ma

rtin

fow

ler.

com

Google Trends on: microservices

Page 6: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

6

Monolythic Microservices

Monolythic vs microservices applications

vs

Page 7: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

7

Monolythic Microservices

Monolythic vs microservices applications

vs

Page 8: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Ho

st

8

Monolythic Microservices

Monolythic vs microservices applications

App1

Ho

stDB1 DB2

Ho

st

DB1 DB2

Srv1 Srv2Srv3

Srv3

Ho

st

DB2

Srv2Srv4

Srv4

Srv4

Srv5

vs

Page 9: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

9

Cloud deployment and elastic

scalability

Complex distributed systems

Fast changes, new features

Current challenges

Page 10: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Implementation - standardization

10

Page 11: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Implementation - transport

11

Page 12: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Implementation - logistics

12

Page 13: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - www.docker.com

• Containers for applications and its dependencies

What is ?

Infrastructure

Host Operating System

Hypervisor

GuestOS

Libs/Bins

App 1

GuestOS

Libs/Bins

App 2

GuestOS

Libs/Bins

App 3

Infrastructure

Operating System

Docker Engine

Libs/Bins

App 1

Libs/Bins

App 2

Libs/Bins

App 3

Page 14: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Docker host OS – where to start?

Docker ready OS:• CoreOS• Project Atomic (Fedora, CentOS, RHEL)• Snappy Ubuntu Core• RancherOS

Regular linux distros

Page 15: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

a real container ecosystem

15

So

urc

e: h

ttp

://b

log

.oct

o.c

om

/en

/do

cke

r-re

gis

try

-fir

st-s

tep

s/

Page 16: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Autoscaling in applications

16

Page 17: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Ho

rizo

nta

l

Ap

plic

ati

on

17

Vertical vs horizontal scaling

Ho

st

Ve

rtic

al

Ho

stDB1 DB2

Ho

st

Ho

st

Ho

stH

ostDB1 DB2

App1 App1 App1 App1

Page 18: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

18

Autoscaling with microservices

Ho

stDB1 DB2

Srv1 Srv2Srv3

Srv3

Ho

st

DB2

Srv2Srv4

Srv4

Srv4

Srv5

Ho

st

Srv5Srv5

Srv4

Srv5

Srv4

Ho

st

DB1 DB2

Srv1 Srv2

DB1

Srv1

Ho

st

DB2

Srv2

DB2

Srv2

Ho

st

Srv3

Srv4

Srv3

Srv5DB2

Srv2

Page 19: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Technology platforms

19

Page 20: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

20

Runtime platforms

The runtime platform supports the execution of program, when deployed with the program it becomes stateless, immutable and short lived.

Page 21: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Database

ObjectStorage

Message

Security

Cache

Logging

21

Data platform

The data platform can provide state, caching, logging and event information from or to the runtime platform.

Page 22: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Data persistency in containers

22

Page 23: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Use old platform solutions

Deploy state in container

Develop private cloud services

Consume public cloud services

23

How to solve persistency in containers

GuestOS

Libs/Bins

Database

GuestOS

Libs/Bins

Message

GuestOS

Libs/Bins

Log Mgt

Local DC

DB aaS

Messsage

Log aaS

Libs/Bins

Database

Libs/Bins

Message

Libs/Bins

Log Mgt

Page 24: DockerDay - Microservices by ING...• "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications." - • Containers for applications

Thanks

24