microservice 아키텍처 - openstack 환경에서의 iot 적용을 중심으로 -

35
마이크로서비스 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 - 2016.7.21 윤형기 ([email protected] )

Upload: truongque

Post on 03-Jan-2017

248 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

마이크로서비스 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

2016.7.21

윤형기 ([email protected])

Page 2: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

순서

• 배경 – 중요성과 논의의 범위

• 마이크로서비스와 컨테이너 기술 – 마이크로서비스와 Docker

• IOT와 마이크로서비스 – IOT와 Docker 및 마이크로서비스

• OpenStack과 IOT 및 마이크로서비스 – OpenStack과 마이크로서비스 – OpenStack에서의 IOT를 위한 마이크로서비스

• 맺음말

2

Page 3: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

배경

• 중요성 – IoT Singularity

– 분산컴퓨팅과 Network Effects

(그림출처: Hani Asfour, "Interactions" ACM Press, 2002)

3

Page 4: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

논의의 필요성

• IoT Cloud? – 구성요소

– 핵심주제 • Scalability ; Infrastructure 및 Application

• 유연성 (Interoperability),

• 연결성 (MQTT, Streaming, …), 보안, …

• OpenStack과 IoT, Containerization, …

Device layer IoT Backend/ DevOps Presentation

4

Page 5: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

기본개념과

• 기본개념 – 사물인터넷 (IoT)

– 마이크로서비스

– Container/Docker와 Orchestration

– OpenStack

• Disclaimer

5

Page 6: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• 논의의 범위 “OpenStack에서의

IoT구현을 위한

마이크로서비스 기반

Back-end S/W 개발 아키텍처”

• 제외항목 – IoT Device 그 자체

– OpenStack 그 자체

– 마이크로서비스의 자동화 (Test, CI/CD) 관련 항목

– 컨테이너 Orchestration 세부사항

6

Page 7: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

마이크로서비스와 컨테이너기술

• Microservice 아키텍처 – 정의

• “…”

• 1 tier 2 tier 3 tier N-tier CBD (components) SOA 마이크로서비스 (즉, decoupled-SOA)

– 주요 개념 • 마이크로서비스의 설계

– 컴포넌트의 composition

– “Bounded Context”

• 컴포넌트의 연결 = RESTful API

– 이슈 • API Gateway

• Service Discovery

• Event-driven Data Management

7

Page 8: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• 마이크로서비스와 단일형 (Monolithic) 애플리케이션

그림출처: https://www.nginx.com/blog/introduction-to-microservices/

8

Page 9: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• Microservice와 Container 기술 – Container기술과 Docker

– Application Lifecycle

• 개발 테스트 Staging Production/Deploy

• Application dependencies, Utilization/Scaling

• Version upgrades와 Rollback의 문제

9

Page 11: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

IoT

• IOT와 마이크로서비스 – Best Match?

• 마이크로서비스와 Weakly-connected embedded system

• 서비스 중심 Vendor lock-in

– 마이크로서비스 아키텍처의 특징과 IoT – Smart endpoints and dumb pipes, Componentization via Services, …

– IoT와 Container 방법론 • IoT 개발/운영에서의 Container 접근의 유효성

– Device 측면 – Build with simple components (예: Ras Pi, Arduino, …)

– 개발 - Back-end Application

– 운영측면 - Messaging/Log

– Language/Framework 측면 - Node.js, Python, Golang, …, Frameworks

– Service Provider 현황 • AWS (BeanStalk, Dash, Lambda, Echo, …, “Mobile (Smartphone) Hub”)

• Google Container Engine, MS Azure Container Service, …

11

Page 12: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• Device-level – 효용성

• OpenStack Appl.

12 http://openstack.sys-con.com/node/3269115

Page 13: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

OpenStack과 IOT 및 마이크로서비스 적용

• OpenStack as Microservices – OpenStack의 각 요소에는 데이터베이스 사용

– 이들 각각은 (주로) REST API를 이미 적용

– 애당초의 설계 - Architecture of share nothing.

– 컨테이너 방식으로 배포가 용이 Kubernetes world.

13

Page 14: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

14

Page 15: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

– 현황 – 계속 • Magnum

– Container as a Service

» Multi-tenancy container

» API를 통해 Kubernetes와 Swarm을 모두 지원

» Container는 tenant별로 분리 (isolated)되고

» 이에 대한 액세스 시 Keystone 이용

– 배경

» OpenStack의 Heat, Keystone, Neutron, Keystone

» + flannel (host 및 container간의 network binding)

» Docker, Kubernetes

• Kolla – Containerize OpenStack into microservice

• 기타 – Murano, Apache Mesos

15

Page 16: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

– 현황 – 계속 • 지원되는 Hypervisors

– Libvirt

» KVM/QEMU, Xen, VirtualBox, Hyper-V, OpenVZ, LXC, etc.

– VMware

• 지원되는 이미지 포맷

– Raw, QCOW2, VHD, VMDK

– OVF

• 참조기술/관련 프로젝트

– Monasca (https://launchpad.net/monasca)

– AWS Lambda

– Cloudify

– resin.io

16

Page 17: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

17

"Right Scale 2016 State of the Cloud“ (1,060 IT professionals in U.S.) http://www.rightscale.com/blog/cloud-industry-insights/new-devops-trends-2016-state-cloud-survey

Page 18: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• 참조기술 – Cloudify

18

Page 19: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• 참조기술 – resin.io

19

Page 20: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• IoT Infrastructure에 대한 요구사항 – Compute

• DevOps support – CD/CI

• Orchestration

– Storage • 다양한 데이터 포맷 (Record/Document/Binary)

• Cooperation with Computing resources

– Network • 프로토콜 지원 – MQTT/ Kafka/ CoAP/ REST

• QoS Control - Bandwidth/ Priority (QoS)/ Latency/ Throughput

• Session & Authentication 관리 - 3G/4G/5G, Neighborhood comm.

– Security • Multitenancy - PaaS/IaaS, 빅데이터 처리, Dashboard

• Authentication/Authorization

• Encryption

20

Page 21: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• 클라우드 IoT 애플리케이션의 개발전략 – Build from scratch

• Lift and Shift / Greenfield / Incremental replacement

– Migrate to cloud

• 결정사항 – 가상화 방식

• VM vs. Container (on bare metal or on VM)

– Orchestration • Script 직접 작성, OpenStack – Heat, Murano • 3rd party 솔루션

– Cloud Foundry, Cloudify, Rancher Labs – Kubernetes – Mesos

– 기타 • 구성관리 – Puppet, Chef, Ansible • 서버 프로비저닝 – Cloud Init

21

Page 22: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

사례 (해외)

• OpenStack Summit Keynote at Austin 2016 – http://superuser.openstack.org/articles/openstack-and-

kubernetes-join-forces-for-an-internet-of-things-platform

22

Page 23: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

– Data Collecting

23

Page 24: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

– Gateway

24

Page 25: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

– Data Center

출처: http://superuser.openstack.org/articles/openstack-and-kubernetes-join-forces-for-an-internet-of-things-platform

25

Page 26: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

– Application View

26

Page 28: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• IoT architecture on OpenStack (NTT Data)

28

Page 29: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

29

Page 31: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

• 지역별 기상정보 – ElectricFlow사 (미국)

31

Page 32: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

– Pipeline: μ-services with containers

32

Page 34: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

정리 (Simplified Architecture)

34

Sensors/Cameras, /Actuators

Devices

Streaming/Data Motion (Storm, Kaka)

Speed

OpenStack (… Keystone …)

Prot G/W (MQTT,XMPP) Data

Store

Messaging bus

Containers/API gateway

Orchestration

Data Store

Data Store

Cloud Platforms

Service Infra

OPC UA

Microservice Fabric

PLC/DCS/…

Device G/Ws

Lambda Architecture by Marz + IoT Cloud (?) http://lambda-architecture.net/

Page 35: Microservice 아키텍처 - OpenStack 환경에서의 IOT 적용을 중심으로 -

맺음말

• 전망 – 컨테이너 기술 전망

• Serverless computing

– 마이크로서비스 전망 • Orchestration 기술의 진화

– IoT 전망 • 특히 IIOT/Industry 4.0

– OpenStack 전망

– OpenStack에서의 IOT 적용과 마이크로서비스

35