43

마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Embed Size (px)

Citation preview

Page 1: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container
Page 2: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

마이크로서비스를 위한 컨테이너 플랫폼 Hyunsoo Kim([email protected]) Red Hat

Page 3: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Monoliths and Microservices

3

Page 4: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

마이크로서비스가 최고의 방법?

4

마이크로서비스 기반 설계는 좋은 애플리케이션 설계에 대해

우리가 배운 모든 것들의 궁극적인 표현1)

1) Cotton, Ben. "모놀리스에서 마이크로서비스로." 2017년 1월 3일 https://www.nextplatform.com/2017/01/03/from-monolith-to-microservices

Page 5: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

그래서, 우리는 이렇게 질문합니다

5

모놀리식 애플리케이션을 마이크로서비스 애플리케이션으로

대체할 수 있습니까?

Page 6: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

질문을 바꿔야 합니다

6

회사의 전략적 목표는 무엇이며, 이를 달성하기 위해 어떻게 해야 합니까?

의사소통 구조와 문화, 업무 역량, 그리고 필요한 워크플로우를 이해한 다음, 서비스들이 연결되는 방식, 이들 서비스의 라이프사이클,

그리고 마지막으로 애플리케이션 아키텍처를 파악해야 합니다

Page 7: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

왜 마이크로서비스를 도입하려고 하나요?

7

Time to Market

without Failure

Page 8: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

결론은

8

어떤 아키텍처 형태가 우리에게 가장 적합한가?

Page 9: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Monoliths vs Microservices

9

Monoliths Microservices 개발 •  보다 빠른 최초 개발

•  서비스 추가 또는 변경이 어려움 •  설계 기간 단축이 중요(설계가 매우 어려움) •  서비스 추가 또는 변경이 쉬움

애플리케이션워크플로우

•  손쉽게 애플리케이션을 워크플로우에 적용

•  단일 위치에서 기능(예를 들어 인증 또는 모니터링) 구축

•  보다 복잡한 워크플로우 내 서비스 할당 •  명확하지 않은 서비스 간의 상호 의존성 및 요구사항

•  DB Join 등 어려움

교육 및 유지 관리

•  단순한 아키텍처 •  환경 및 언어에 대한 엄격한 개발 요구 사항

•  유연한 아키텍처 •  더욱 복잡한 설계 •  표준화된 API 또는 통신을 위한 메시징 기능 필요

확장성 •  어려운 확장; 하드웨어 인프라에 따라 차이가 있음

•  한번의 서비스 수요 급증에 대비한 전체 애플리케이션 확장

•  전반적인 아키텍처에 영향을 미치지 않으면서 개별 서비스를 손쉽게 확장 가능

•  동적 대응을 위해 소프트웨어 정의 인프라 활용(컨테이너, 클라우드)

Page 10: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Monoliths vs Microservices

10

Monoliths Microservices 업데이트, 페일오버, 가동중지시간

•  모든 서비스가 종속적으로 연결 •  서비스들은 함께 업데이트 되어야 함; 버전 관리가 연결됨(마이크로서비스도 동일)

•  개별 서비스 장애시 시스템 장애가 발생하는 위험(마이크로서비스도 동일)

•  서비스들이 연결되지 않음 •  서비스는 독립적으로 추가 또는 업데이트될 수 있음

•  장애 위험은 소수의 서비스로 제한됨(Circuit Breaker 등의 기능 필요)

자동화 •  자동화는 대체로 불필요 •  자동화와 오케스트레이션이 필요

적용 대상 시스템

•  계정계 시스템 등에 적합 •  모바일 애플리케이션 등에 적합

Page 11: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

마이크로서비스 적용시 고려 사항

11

•  분산 컴퓨팅의 허점 - 마이크로서비스가 모든 가동중단을 미스테리한 살인사건으로 만들어 버린다는

농담1)

•  트랜잭션 비용 및 지출 증가 - 필수적인 인프라 변화 및 새로운 직무 능력을 가진 인력 채용 및 재교육 등

•  복잡성 증가 - 마이크로서비스는 수백 개의 잠재적인 장애 지점을 가짐 - 상호의존성이 명확하지 않아서 복잡성 증가

•  시스템 사고(Systems thinking)와 설계 - 시스템에 대한 전반적인 이해가 이루어지지 않는다면, 모놀리스와 상당부분

유사해짐2)

1) @HonestStatusPage. Twitter, 2015년 10월7일, https://twitter.com/honest_update/status/651897353889259520?lang=en 2) Knoernschild, Kirk. "아키텍처 및 제공 민첩성 극대화를 위한 모놀리식 소프트웨어의 리팩터링(refactor)." Gartner Key insights, 2017년 5월 18일

Page 12: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Monoliths,Microservices + Container

12

Monoliths + Container Microservice + Container 확장성 •  컨테이너 적용시 보다 쉽게 확장 가능

•  오토스케일링 기능 적용으로 유연한 확장 가능

•  컨테이너 적용시 보다 쉽게 확장 가능 •  오토스케일링 기능 적용으로 유연한 확장 가능

업데이트, 페일오버, 가동중지시간

•  모든 서비스가 종속적으로 연결 •  서비스들은 함께 업데이트되어야 함; 버전 관리가 연결됨(마이크로서비스도 동일)

•  컨테이너의 Scale-out 을 통해 확장하여 장애 발생에 대비 가능

•  개별 서비스 장애시 시스템 장애가 발생하는 위험 – 컨테이너 적용 시 빠르게 rollback 하여 장애 최소화 가능

•  서비스들이 연결되지 않음 •  서비스는 독립적으로 추가 또는 업데이트될 수 있음

•  장애 위험은 소수의 서비스로 제한됨(Circuit Breaker 등의 기능 필요)

•  컨테이너의 Scale-out 을 통해 확장하여 장애 발생에 대비 가능

•  개별 서비스 장애시 시스템 장애가 발생하는 위험 – 컨테이너 적용시 빠르게 rollback 하여 장애 최소화 가능

자동화 •  컨테이너에 자동화 및 오케스트레이션 기술을 적용하면 보다 빠른 릴리즈 가능

•  컨테이너에 자동화 및 오케스트레이션 기술을 적용하면 보다 빠른 릴리즈 가능

Page 13: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

컨테이너

13

l  OS 가상화 기술 (vs. HW 가상화 기술 a.k.a. VM) l  HW 가상화 기술보다 더 경량화

l  컨테이너 기술의 종류 l  LXC

l  OpenVZ

l  Solaris/HPUX

l  CoreOS rkt

l  OCI Container - Open Industry Standard Container

Page 14: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

표준 컨테이너 기술

14

Established in June 2015

Create Open Industry Standards

around Container Formats and Runtime

https://www.opencontainers.org/

Page 15: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

CoreOS rkt

15

Page 16: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

VM vs. Container

16

1.  Hypervisor나 GuestOS로 인한 overhead 없음 2.  Guest OS 관리 부분의 부담이 없음 3.  빠른 startup 4.  인스턴스 증가시, 추가적인 설정작업 없이 서비스 제공

VIRTUAL MACHINES CONTAINERS

virtual machines are isolated apps are not

containers are isolated so are the apps

VM

OS Dependencies

Kernel

Hypervisor

Hardware

App App App App

Hardware

Container Host (Kernel)

Container

App

OS deps

Container

App

OS deps

Container

App

OS deps

Container

App

OS deps

Page 17: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

VM vs. Container

17

Container Host

Container

Application

OS dependencies

Virtual Machine

Application

OS dependencies

Operating System

VM Isolation Complete OS Static Compute Static Memory High Resource Usage

Container Isolation Shared Kernel Burstable Compute Burstable Memory Low Resource Usage

Page 18: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

VM vs. Container

18

Container Host

Container

Application

OS dependencies

Dev

IT Ops Infrastructure

Virtual Machine

Application

OS dependencies

Operating System

IT Ops (and Dev, sort of)

Infrastructure

Clear ownership boundary between Dev and IT Ops drives DevOps adoption

and fosters agility

Optimized for stability

Optimized for agility

Page 19: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Virtual machines are NOT portable

19

Virtual machines are NOT portable across hypervisor and do NOT provide portable packaging for applications

VM Type X

Application

OS dependencies

Operating System

VIRTUALIZATION BARE METAL

Application

OS dependencies

Operating System

PRIVATE CLOUD

VM Type Y

Application

OS dependencies

Operating System

PUBLIC CLOUD

VM Type Z

Application

OS dependencies

Operating System

LAPTOP

Guest VM

Application

OS dependencies

Operating System

Page 20: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Containers are portable

20

RHEL Containers + RHEL Host = Guaranteed Portability Across Any Infrastructure

LAPTOP

Container

Application

OS dependencies

Guest VM

RHEL

BARE METAL

Container

Application

OS dependencies

RHEL

VIRTUALIZATION

Container

Application

OS dependencies

Virtual Machine

RHEL

PRIVATE CLOUD

Container

Application

OS dependencies

Virtual Machine

RHEL

PUBLIC CLOUD

Container

Application

OS dependencies

Virtual Machine

RHEL

Page 21: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Red Hat OpenShift Container Platform

21

An Open-source Framework For Managing Containerized Applications

At Scale

Page 22: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Deployment Automation

22

Automatic Deployment of Containers on Any Infrastructure

NODE NODE NODE

Laptop | Bare-metal | Virtualization | OpenStack Amazon Web Services | Microsoft Azure | Google Cloud

Page 23: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Infrastructure as Code

23

NODE NODE

LB

YAML JSON

Declarative Container Infrastructure

Page 24: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Immutable Infrastructure

24

APP

Mutable Infrastructure Leads to Fragile Hard-to-Reproduce Snowflakes

Page 25: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Immutable Infrastructure

25

App Image

App

CONTAINER

Starting From the Same Validated State Each Time

Page 26: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Immutable Infrastructure

26

App Image

App

CONTAINER

Starting From the Same Validated State Each Time

Page 27: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Immutable Infrastructure

27

App Image

App

CONTAINER

App

CONTAINER

Starting From the Same Validated State Each Time

Page 28: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Environment Consistency

28

App App Image

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

App

CONTAINER

LOCAL DEV TEST STAGE PROD

Build Once, Deploy into Production-like Environment Everywhere

Page 29: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Continuous Delivery Pipeline

29

CHANGE BUILD TEST DEPLOY VERIFY RELEASE GO LIVE

Page 30: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Zero Downtime Deployment

30

service

App v1 CONTAINER

App v1 CONTAINER

client

Safe Rolling Updates Without Disrupting The Production Traffic

Page 31: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Zero Downtime Deployment

31

Safe Rolling Updates Without Disrupting The Production Traffic

service

App v1 CONTAINER

App v1 CONTAINER

client

App v2 CONTAINER

Page 32: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Zero Downtime Deployment

32

Safe Rolling Updates Without Disrupting The Production Traffic

service

App v1 CONTAINER

client

App v2 CONTAINER

Page 33: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Zero Downtime Deployment

33

Safe Rolling Updates Without Disrupting The Production Traffic

service

App v1 CONTAINER

client

App v2 CONTAINER

App v2 CONTAINER

Page 34: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Zero Downtime Deployment

34

Safe Rolling Updates Without Disrupting The Production Traffic

service

client

App v2 CONTAINER

App v2 CONTAINER

Page 35: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Auto Scaling

35

Container Autoscaling Without Human Interaction

Auto�Scaling�

SERVICE

app=payroll role=frontend

POD

app=payroll

role=frontend

POD

app=payroll

role=frontend

Name: payroll-frontend IP: 172.10.1.23 Port: 8080

version=1.0 version=1.0

POD

app=payroll

role=frontend

POD

app=payroll

role=backend version=1.0

Page 36: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

Red Hat Discovery Session 소개 Hyunsoo Kim([email protected]) Red Hat

Page 37: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

디스커버리 세션 배경

37

•  디지털 트랜스포메이션 •  빅데이터, AI, 블록체인, IoT 등 IT 트렌드

•  Cloud, Container, NFV/SDN •  마이크로 서비스 아키텍처 기술 복잡도

•  사람 – 프로세스 – 기술 변화 필요 •  전략적이고 조직을 넘나드는 협업 필요 DevOps

Page 38: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

디스커버리 세션 개념

38

디스커버리 세션이란?

고객의 디지털 트랜스포메이션으로 전환을 위한 "여행"을 위해, 고객의 목표와 요구사항들을 사전 정의하고 구조화된 방식으로 범위를 지정하고, 고객의참여와 토론을 통해 고객의 개선안을 도출함으로써, 고객의 디지털 트랜스포메이션을 도와드리는, 레드햇의 방법

목표와 과제 도출

양방향의 전략 토론 방식

핵심 이해관계자 참여

고객의 기술/조직역량 파악

실행 가능한 개선안 도출

Page 39: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

디스커버리 세션 제안 항목

39

구분 디스커버리 세션 세부 항목 제품 기준

Applications

App Migration and Modernization JBoss EAP OpenShift Container Platform

Containerized Application Delivery OpenShift Container Platform Microservice Architecture

Cloud &

Infrastructure

Ansible Automation Ansible Ansible Tower

Cloud Infrastructure OpenStack Cloud Forms Ceph Storage

Page 40: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

디스커버리 세션 진행 절차

40

1. 고객 Needs -  디스커버리 세션 관련 고객 필요 또는 요청

-  세일즈로 문의

2. 미팅 -  고객 환경 및 요청 사항 관련 미팅

-  일정/참석자/세부주제 등 협의

3. 세션 준비 -  미팅 이후 관련 세션의 질문지 전달

-  질문지 피드백 기준의 세션 준비

5. 세션 결과 보고서 전달 -  세션시 도출된 내용을 토대로 최종 결과 보고서 작성

-  1~2주 소요 -  최종 결과 보고서 전달 -  추가 컨설팅 또는 사업에 대한 협의

4. 세션 진행 -  세션 목적 및 방향성 제시 -  고객요구사항/개선사항/ 로드맵 및 향후 계획 등

협의 -  상호 질의 응답 및 토론 형태 -  도출 내용에 대한 Wrap-Up

Page 41: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

디스커버리 세션 아젠다

41

Session Duration Lead Description Point

소개 30분 레드햇 참석자 소개와 디스커버리 세션 개요 소개

Why 비지니스 개요 1시간 고객 고객의 비즈니스 개요 프레젠테이션 및 이에 대한 질문과 답변

시장 개요 30분 레드햇 레드햇 솔루션 및 관련 사례 등에 대한 세션 진행 How

현재 고객 상황 (AS-IS) 1 - 2 시간 양방향 주요 설계 아키텍처, 사용 사례, 현재 환경 상태, 기존 과제 및

비즈니스 관련 내용

What 향후 목표 (TO-BE) 1 - 2 시간 양방향 현재 상태에서 미래 상태로의 전환 및 유스케이스에 우선순위를

두는 고급 아키텍처, 관련 Red Hat 솔루션 및 접근 방식 논의

로드맵과 다음 단계 1 시간 레드햇 주요 사항 리뷰와 다음 단계 일정을 위한 Wrap-up세션

Page 42: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

디스커버리 세션 단계

42

Project (Paid)

Discovery Workshop

(Paid)

Discovery Session

(Non-Paid)

Page 43: 마이크로서비스를 - ciosummit.co.kr · l Solaris/HPUX l CoreOS rkt l OCI Container - Open Industry Standard Container . ... Container App OS deps . VM vs. Container 17 Container

감사합니다 Hyunsoo Kim([email protected]) Red Hat