Top Banner
Microservices and Container Development Red Hat Day – Montreal May 19 th , 2016 Martin Sauvé [email protected] (514)220-8113
28

Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

May 05, 2018

Download

Documents

ngocong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Microservices and Container Development

Red Hat Day – Montreal May 19th, 2016

Martin Sauvé[email protected](514)220-8113

Page 2: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

2

Hoshi RyokanJapanese InnFounded 718 A.D.46 generations of management1300 years in the businessGuiness World Record!

Page 3: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

3

Source: Yale School of Management

75% on the index will be replaced by 2027

S&P 500 Company Life Expectancy

“Company must embrace creative destruction”Richard Foster, Yale School of Management

Even Hoshi Ryokan Inn is threatened by new Japanese fiscal laws

Page 4: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroServices“Embracing Creative Destruction”

Page 5: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

5

What are Microservices ?

It’s a distributed system architecture! (Sounds familiar ?)

Can you make a change to a service and deploy it without changing anything else ?

This session won’t make you an expert In microservice architecture!

No precise definition, but….

Page 6: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroservicesKey Concepts

6

• Loose Coupling – Change independently, use of API• Cross-Functional teams around business capabilities• Resilience – Failure can be isolated, design for failure• Heterogeneous technology – right tool for the job• Product not Project• Scaling • Smart endpoints and dumb pipes• Ease of deployment – culture of automation

http://martinfowler.com/

Page 7: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroservicesIntegration is KEY – Fine GrAIN Distributed Systems

7

• API Driven, REST• Messaging (JMS, AMQP, STOMP…)• Transformation• EIPs

Page 8: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroservicesDeveloper Concerns

8

• How can I run them locally ?• How to package them ?• How to test ?• How do I specify the configuration ?• How do I isolate runtime and processes ?• How do I discover services ?

Page 9: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroServices and Red HAT

Page 10: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Trending…..

10

Page 11: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Modern integration PlatformJboss Fuse

11

Smart Endpoints Enterprise IntegrationPatterns

Small Footprint

Page 12: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Modern Application PlatformOpenshift Enterprise

12

ContainerizedApp Services

Container OrchestrationAt Scale

User Experience

InfrastructureOperating System

Docker Engine/bin/lib /bin/lib

App App App App

• Lightweight• Isolation

• Discovery• Replication

• Ci/CD• Source to Image• Automation

Page 13: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroservicesUsing Jboss Fuse with Apache Camel

13

• Very small java library• Distributed-system toolkit• EIP based• Declarative language, REST DSL for example• Embeddable

Page 14: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroservicesKey Concepts with OpenShift

14

• Loose Coupling • Cross-Functional teams • Resilience • Heterogeneous technology • Product not Project• Scaling • Ease of deployment – culture of automation

Fuse Integration Service (FIS) on OpenShif

Multi-tenancy, resource isolation

Kubernetes scheduling and replicationLeverage Docker eco-system

Only so much a tool can do, this is about process and people!

OpenShif Auto-Scale, target resource utilization

OpenShif, Jenkins….

Page 15: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Red Hat Container Development Kit

Page 16: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

16

http://developers.redhat.com/products/cdk/overview/

Page 17: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

17

Red

Hat

CD

KVa

gran

t Box

Red

Hat

CD

KVa

gran

t Box

What is the CDK ?OpenShif in a Box …. litteraly

Host (your laptop)

VirtualizationProvider

VM Management

Development VM

Container Services

Container Orchestration

Containers Your apps!

Page 18: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

18

CDK - how to install ?

Step 0: Pre-requisite check

Step 1: Download from http://developers.redhat.com/

Step 2: Vagrant up

Page 19: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Red Hat Jboss Developer PlatformTechnology Preview

Page 20: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

20

JBoss Developer Platform All-in-one container development

• CDK• Vagrant• Virtual Box• Cygwin• Eclipse Docker Tooling

Page 21: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Container DevelopmentLifecycle

Page 22: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

22

Pieces and

Relations

Pods

Services Routes

SDN

Replication Controller

DeploymentConfiguration

Build Configuration Image Stream

Source To Image (S2I)

Integrated Docker Registry

Persistent Volumes

Persistent Volume Claims

What is a Kubernetes Application ?

Page 23: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

23

Container Development Process Part 1 – Local Development

Application

ServicesSource

Code/Build/Test RegistryDocker ImageBuild Deploy

App TemplateDC/BC/RC Deploy

Commit

Page 24: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

24

Container Development Tools Part 1 – Local Development

Application

Services

SourceCode/Build/Test Registry

Docker ImageBuild Deploy

App TemplateDC/BC/RC

Deploy

STI

Commit

Page 25: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

25

Container Development Process Part 2 – Life Cycle (simplification)

Application

ServicesCommitJava/Ruby…

Build

DeployQA

CommitJSON/YAML

DeployQA

Release

RegistryQA

Test

DeployProd

RegistryProd

Release DeployProd

Test

OrchestrationOrchestration

Page 26: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

26

Container Development Tools Part 2 – Life Cycle (simplification)

Application

ServicesCommitJava/Ruby…

Build

DeployQA

CommitJSON/YAML

DeployQA

Release

RegistryQA

Test

DeployProd

RegistryProd

Release DeployProd

Test

OrchestrationOrchestration

STI

Page 27: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

MicroservicesDeveloper Concerns

27

• How can I run them locally ? • How to package them ? • How to test ? • How do I specify the configuration ?• How do I isolate runtime and processes ?• How do I discover services ?

CDKDOCKERARQUILLAN

TEMPLATES, ENV VARSDOCKER

KUBERNETES

Page 28: Microservices and Container Development - Red Hatpeople.redhat.com/mlessard/mtl/presentations/mai2016/Microservices... · Microservices and Container Development Red Hat Day – Montreal

Demo Time!