Upload
truongque
View
251
Download
9
Embed Size (px)
Citation preview
순서
• 배경 – 중요성과 논의의 범위
• 마이크로서비스와 컨테이너 기술 – 마이크로서비스와 Docker
• IOT와 마이크로서비스 – IOT와 Docker 및 마이크로서비스
• OpenStack과 IOT 및 마이크로서비스 – OpenStack과 마이크로서비스 – OpenStack에서의 IOT를 위한 마이크로서비스
• 맺음말
2
배경
• 중요성 – IoT Singularity
– 분산컴퓨팅과 Network Effects
(그림출처: Hani Asfour, "Interactions" ACM Press, 2002)
3
논의의 필요성
• IoT Cloud? – 구성요소
– 핵심주제 • Scalability ; Infrastructure 및 Application
• 유연성 (Interoperability),
• 연결성 (MQTT, Streaming, …), 보안, …
• OpenStack과 IoT, Containerization, …
Device layer IoT Backend/ DevOps Presentation
4
기본개념과
• 기본개념 – 사물인터넷 (IoT)
– 마이크로서비스
– Container/Docker와 Orchestration
– OpenStack
• Disclaimer
5
• 논의의 범위 “OpenStack에서의
IoT구현을 위한
마이크로서비스 기반
Back-end S/W 개발 아키텍처”
• 제외항목 – IoT Device 그 자체
– OpenStack 그 자체
– 마이크로서비스의 자동화 (Test, CI/CD) 관련 항목
– 컨테이너 Orchestration 세부사항
6
마이크로서비스와 컨테이너기술
• 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
• 마이크로서비스와 단일형 (Monolithic) 애플리케이션
그림출처: https://www.nginx.com/blog/introduction-to-microservices/
8
• Microservice와 Container 기술 – Container기술과 Docker
– Application Lifecycle
• 개발 테스트 Staging Production/Deploy
• Application dependencies, Utilization/Scaling
• Version upgrades와 Rollback의 문제
9
– Multi-container Docker application
• Docker Swarm/Compose
• Kubernetes
• 기타
– Flock, Helios, …, Rancher
10
그림: https://blog.docker.com/2015/11/deploy-manage-cluster-docker-swarm/
http://rancher.com/rancher-now-supports-kubernetes/
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
• Device-level – 효용성
• OpenStack Appl.
12 http://openstack.sys-con.com/node/3269115
OpenStack과 IOT 및 마이크로서비스 적용
• OpenStack as Microservices – OpenStack의 각 요소에는 데이터베이스 사용
– 이들 각각은 (주로) REST API를 이미 적용
– 애당초의 설계 - Architecture of share nothing.
– 컨테이너 방식으로 배포가 용이 Kubernetes world.
13
14
– 현황 – 계속 • 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
– 현황 – 계속 • 지원되는 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
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
• 참조기술 – Cloudify
18
• 참조기술 – resin.io
19
• 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
• 클라우드 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
사례 (해외)
• OpenStack Summit Keynote at Austin 2016 – http://superuser.openstack.org/articles/openstack-and-
kubernetes-join-forces-for-an-internet-of-things-platform
22
– Data Collecting
23
– Gateway
24
– Data Center
출처: http://superuser.openstack.org/articles/openstack-and-kubernetes-join-forces-for-an-internet-of-things-platform
25
– Application View
26
• Platform as a Service: K8/Mesos + OpenStack
http://blogs.cisco.com/cloud/deploy-a-kubernetes-cluster-on-openstack-using-ansible
27
• IoT architecture on OpenStack (NTT Data)
28
29
• Kiloeyes – OpenStack Student Projects
30 http://www.industry-academia.org/student-projects.html
• 지역별 기상정보 – ElectricFlow사 (미국)
31
– Pipeline: μ-services with containers
32
• Artik – Non-OpenStack – 삼성전자
https://www.artik.io/wp-content/uploads/2016/03/DevOpsDiagram.jpg 33
정리 (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/
맺음말
• 전망 – 컨테이너 기술 전망
• Serverless computing
– 마이크로서비스 전망 • Orchestration 기술의 진화
– IoT 전망 • 특히 IIOT/Industry 4.0
– OpenStack 전망
– OpenStack에서의 IOT 적용과 마이크로서비스
35