SlideShare une entreprise Scribd logo
1  sur  33
ANSIBLE를 통한 컨테이너 환경 자동화
(OPENSHIFT, KUBERNETES)
PaaS 환경 설치를 위한 Ansible Playbooks
• OpenShift와 Kubernetes 자동 설치 도구
OpenShift에서 제공하는 설치 패키지
– Ansible Playbooks
Kubernetes’ SIG(Special Interest Group)
프로젝트 - Ansible playbooks
openshift-ansible-playbooks
OpenShift 설치
OpenShift 업그레이드
OpenShift 삭제
확장성 제공(추가, 단일 설치등)
kubespray
kubernetes 설치
kubernetes 업그레이드
kubernetes 삭제
Before container
After container
Container Orchestrators
춘추전국시대(3년전) 통일 Kubernetes 시대
Others(Cloud Foundry등)
Kubernetes vs OpenShift
= Enterprise
OpenShift는 Kubernetes를 포함하고 있음
OpenShift는 Kubernetes의 Enterprise 버전
Kubernetes vs OpenShift의 기능 비교
OpenShift 가 제공하는 가치
프로비저닝, 관리, 거버넌스
표준화, 모니터링
물리서버 가상서버 클라우드 컨테이너
하이브리드 클라우드
인프라 관리 툴
중앙집권의 시대
국제 무역 시대
서비스 교역을 위한 표준 API – Open Service Broker API
서비스 제공업체에서
클라우드 기반(Cloud-Native) 플랫폼에서
서비스를 사용하는 방식을
표준화하는 프로젝트(표준 API)
Service Broker란?
서비스 제공자들 간의 교역
OpenShift Ansible Broker‘s Architecture
• Provisioning - Architecture
ANSIBLE SERVICE BROKER - Architecture
OpenShift
Service Catalog
Ansible Service
Broker
Red Hat
Container Catalog
serviceA-apb
Pull
Provisioned Service
2
3
APB
Container
(serviceA)
serviceA
Container
Click Application1
• Action playbooks(설치, 삭제, 권한부여, 권한삭제) 및 meta 데이터를 가지고 있는 이미지
를 생성
ANSIBLE PLAYBOOK BUNDLE (APB)
$ apb build
Ansible Runtime Ansible Playbooks
Ansible PlayBook Bundle (Container Image)
Container Registry
provision.yml
deprovision.yml
bind.yml
unbind.yml
apb.yml
• APB 생성 절차
Ansible Playbook Bundle(APB) 생성 절차
apb Type의 Ansible Role 생성
apb 를 base64 인코딩하여 Dockerfile의 Label로 생성
소스코드로 부터 Build configuration 생성
Build configuration을 빌드
apb를 registry에 추가
apb를 서비스 카탈로그에 등록
• $ ansible-galaxy init --type=apb helloworld-apb
• $ apb bundle prepare
• $ oc new-build --binary=true --name helloworld-apb -n
openshift
• $ oc start-build --follow --from-dir . helloworld-apb
• $ apb registry add helloworld-apb --type
local_openshift –namespaces openshift
• $ apb catalog relist
• apb.yml
apb.yml : 메타 데이터 정의 파일
name: helloworld-apb
description: your description
bindable: False
async: optional
metadata:
displayName: helloworld-apb
plans:
- name: default
description: This default plan
deploys helloworld-apb
free: True
metadata: {}
parameters:
- name: namespace
type: string
default: hello-world-apb
• provision.yml
provision.yml : 설치시 사용하는 Ansible yml
- name: Deploy helloworld-apb
hosts: localhost
connection: local
tasks:
- name: create namespace
shell: “oc create namespqce
{{ namespace }}”
- name: create app
deploymentconfig
shell: “oc create –n
{{ namespace }} –f app.yml”
• deprovision.yml
deprovision.yml : 삭제시 사용하는 Ansible yml
- name: Uninstall helloworld-apb
hosts: localhost
connection: local
tasks:
- name: create namespace
shell: “oc delete project
{{ namespace }}”
• Dockerfile
Dockerfile : 배포시 사용되는 파일
FROM ansibleplaybookbundle/apb-base
LABEL "com.redhat.apb.spec"=
<base64 encoded apb.yml data>
COPY playbooks /opt/apb/actions
COPY roles /opt/ansible/roles
RUN chmod -R g=u /opt/{ansible,apb}
USER apb
JBoss EAP7.1
ContainerJBoss EAP7.1
Container
전자정부 프레임워크 애플리케이션 배포 환경 구성
GIT
Repository
Artifact
Repository
Image Build
Deploy
MariaDB Container
Nexus Container
Database
(Persistent)
Jenkins Container
JBoss EAP7.1
Container
eGOV 애플리케이션
Service
• 전자정부 프레임워크 애플리케이션 빌드 및 배포 환경 자동 구성
Ansible Service Broker를 이용한 Application 배포 환경
OpenShift
Service Catalog
Ansible Service
Broker
Red Hat
Container Catalog
egov-apb
POC Project
이미지 Pull
egov-apb 선택
서비스 자동 설치
Nexus3 Container
Jenkins Container
MariaDB Container
JBoss EAP 7.1
Container
1
2
3
4
5
6
7
Web Site
8 테스트 애플리케이션 확인
“살아 남는 종(種)은 강한 종이 아니고,
또 우수한 종도 아니다.
변화에 적응하는 종이다. ”
- Charles Darwin, 1809
제품이나 서비스에 관한 문의
콜 센터 :02-469-5426 ( 휴대폰 : 010-2243-3394 )
전자메일:sales@opennaru.com
Ansible를 통한 컨테이너 환경 자동화

Contenu connexe

Tendances

클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017 클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
Amazon Web Services Korea
 

Tendances (20)

AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
AWS Transit Gateway를 통한 Multi-VPC 아키텍처 패턴 - 강동환 솔루션즈 아키텍트, AWS :: AWS Summit ...
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetes
 
Virtual Chassis for Cloud Builders
Virtual Chassis for Cloud BuildersVirtual Chassis for Cloud Builders
Virtual Chassis for Cloud Builders
 
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10![웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
 
(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubelet
 
Automate DBA Tasks With Ansible
Automate DBA Tasks With AnsibleAutomate DBA Tasks With Ansible
Automate DBA Tasks With Ansible
 
Intro into Rook and Ceph on Kubernetes
Intro into Rook and Ceph on KubernetesIntro into Rook and Ceph on Kubernetes
Intro into Rook and Ceph on Kubernetes
 
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈 Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
Amazon RDS 살펴보기 (김용우) - AWS 웨비나 시리즈
 
Data Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDBData Streaming with Apache Kafka & MongoDB
Data Streaming with Apache Kafka & MongoDB
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB Day
 
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
데브옵스 엔지니어를 위한 신규 운영 서비스 - 김필중, AWS 개발 전문 솔루션즈 아키텍트 / 김현민, 메가존클라우드 솔루션즈 아키텍트 :...
 
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017 클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container Platform
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
週末趣味のAWS VPC Traffic Mirroring
週末趣味のAWS VPC Traffic Mirroring週末趣味のAWS VPC Traffic Mirroring
週末趣味のAWS VPC Traffic Mirroring
 
AWS OpsWorksハンズオン
AWS OpsWorksハンズオンAWS OpsWorksハンズオン
AWS OpsWorksハンズオン
 

Similaire à Ansible를 통한 컨테이너 환경 자동화

쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
용호 최
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Jongwon Han
 

Similaire à Ansible를 통한 컨테이너 환경 자동화 (20)

03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
An overview of kubernetes & (very) simple live demo
An overview of kubernetes & (very) simple live demoAn overview of kubernetes & (very) simple live demo
An overview of kubernetes & (very) simple live demo
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
 
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020 AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
 
Windows Kubernetes Deep Dive
Windows Kubernetes Deep DiveWindows Kubernetes Deep Dive
Windows Kubernetes Deep Dive
 
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
 
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
 
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
 
AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 

Plus de Opennaru, inc.

Plus de Opennaru, inc. (20)

머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
 
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
 
컨테이너 기술의 역사와 발전 단계
컨테이너 기술의 역사와 발전 단계컨테이너 기술의 역사와 발전 단계
컨테이너 기술의 역사와 발전 단계
 
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
 
컨테이너 기술과 가상화 기술의 주요한 차이점
컨테이너 기술과 가상화 기술의 주요한 차이점컨테이너 기술과 가상화 기술의 주요한 차이점
컨테이너 기술과 가상화 기술의 주요한 차이점
 
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
 
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
 
가상화 기술 VS 컨테이너의 집적도 비교 데모
가상화 기술 VS 컨테이너의 집적도 비교 데모가상화 기술 VS 컨테이너의 집적도 비교 데모
가상화 기술 VS 컨테이너의 집적도 비교 데모
 
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
 
마이크로서비스 아키텍처 (MSA) 데모
마이크로서비스 아키텍처 (MSA) 데모마이크로서비스 아키텍처 (MSA) 데모
마이크로서비스 아키텍처 (MSA) 데모
 
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
 
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
 
자동 확장 자원 풀 – Auto Scaling 데모
자동 확장 자원 풀 – Auto Scaling 데모자동 확장 자원 풀 – Auto Scaling 데모
자동 확장 자원 풀 – Auto Scaling 데모
 
자동 장애 복구 데모 – Auto Healing 데모
자동 장애 복구 데모 – Auto Healing 데모자동 장애 복구 데모 – Auto Healing 데모
자동 장애 복구 데모 – Auto Healing 데모
 
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
 
PaaS 환경에서 전자 정부 프레임워크 배포 데모
PaaS 환경에서 전자 정부 프레임워크 배포 데모PaaS 환경에서 전자 정부 프레임워크 배포 데모
PaaS 환경에서 전자 정부 프레임워크 배포 데모
 
PaaS 환경에서 워드프레스 구축하기 데모
PaaS 환경에서 워드프레스 구축하기 데모PaaS 환경에서 워드프레스 구축하기 데모
PaaS 환경에서 워드프레스 구축하기 데모
 
PaaS 환경에서 다중 사용자를 위한 머신 러닝 플랫폼 구축 데모
PaaS 환경에서 다중 사용자를 위한  머신 러닝 플랫폼 구축 데모PaaS 환경에서 다중 사용자를 위한  머신 러닝 플랫폼 구축 데모
PaaS 환경에서 다중 사용자를 위한 머신 러닝 플랫폼 구축 데모
 
16. understanding and implementing msa concepts pub
16. understanding and implementing msa concepts pub16. understanding and implementing msa concepts pub
16. understanding and implementing msa concepts pub
 
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
 

Ansible를 통한 컨테이너 환경 자동화

  • 1. ANSIBLE를 통한 컨테이너 환경 자동화 (OPENSHIFT, KUBERNETES)
  • 2.
  • 3. PaaS 환경 설치를 위한 Ansible Playbooks • OpenShift와 Kubernetes 자동 설치 도구 OpenShift에서 제공하는 설치 패키지 – Ansible Playbooks Kubernetes’ SIG(Special Interest Group) 프로젝트 - Ansible playbooks openshift-ansible-playbooks OpenShift 설치 OpenShift 업그레이드 OpenShift 삭제 확장성 제공(추가, 단일 설치등) kubespray kubernetes 설치 kubernetes 업그레이드 kubernetes 삭제
  • 6.
  • 7. Container Orchestrators 춘추전국시대(3년전) 통일 Kubernetes 시대 Others(Cloud Foundry등)
  • 8. Kubernetes vs OpenShift = Enterprise OpenShift는 Kubernetes를 포함하고 있음 OpenShift는 Kubernetes의 Enterprise 버전
  • 11.
  • 12. 프로비저닝, 관리, 거버넌스 표준화, 모니터링 물리서버 가상서버 클라우드 컨테이너 하이브리드 클라우드 인프라 관리 툴 중앙집권의 시대
  • 14. 서비스 교역을 위한 표준 API – Open Service Broker API 서비스 제공업체에서 클라우드 기반(Cloud-Native) 플랫폼에서 서비스를 사용하는 방식을 표준화하는 프로젝트(표준 API)
  • 18. • Provisioning - Architecture ANSIBLE SERVICE BROKER - Architecture OpenShift Service Catalog Ansible Service Broker Red Hat Container Catalog serviceA-apb Pull Provisioned Service 2 3 APB Container (serviceA) serviceA Container Click Application1
  • 19. • Action playbooks(설치, 삭제, 권한부여, 권한삭제) 및 meta 데이터를 가지고 있는 이미지 를 생성 ANSIBLE PLAYBOOK BUNDLE (APB) $ apb build Ansible Runtime Ansible Playbooks Ansible PlayBook Bundle (Container Image) Container Registry provision.yml deprovision.yml bind.yml unbind.yml apb.yml
  • 20.
  • 21. • APB 생성 절차 Ansible Playbook Bundle(APB) 생성 절차 apb Type의 Ansible Role 생성 apb 를 base64 인코딩하여 Dockerfile의 Label로 생성 소스코드로 부터 Build configuration 생성 Build configuration을 빌드 apb를 registry에 추가 apb를 서비스 카탈로그에 등록 • $ ansible-galaxy init --type=apb helloworld-apb • $ apb bundle prepare • $ oc new-build --binary=true --name helloworld-apb -n openshift • $ oc start-build --follow --from-dir . helloworld-apb • $ apb registry add helloworld-apb --type local_openshift –namespaces openshift • $ apb catalog relist
  • 22. • apb.yml apb.yml : 메타 데이터 정의 파일 name: helloworld-apb description: your description bindable: False async: optional metadata: displayName: helloworld-apb plans: - name: default description: This default plan deploys helloworld-apb free: True metadata: {} parameters: - name: namespace type: string default: hello-world-apb
  • 23. • provision.yml provision.yml : 설치시 사용하는 Ansible yml - name: Deploy helloworld-apb hosts: localhost connection: local tasks: - name: create namespace shell: “oc create namespqce {{ namespace }}” - name: create app deploymentconfig shell: “oc create –n {{ namespace }} –f app.yml”
  • 24. • deprovision.yml deprovision.yml : 삭제시 사용하는 Ansible yml - name: Uninstall helloworld-apb hosts: localhost connection: local tasks: - name: create namespace shell: “oc delete project {{ namespace }}”
  • 25. • Dockerfile Dockerfile : 배포시 사용되는 파일 FROM ansibleplaybookbundle/apb-base LABEL "com.redhat.apb.spec"= <base64 encoded apb.yml data> COPY playbooks /opt/apb/actions COPY roles /opt/ansible/roles RUN chmod -R g=u /opt/{ansible,apb} USER apb
  • 26.
  • 27. JBoss EAP7.1 ContainerJBoss EAP7.1 Container 전자정부 프레임워크 애플리케이션 배포 환경 구성 GIT Repository Artifact Repository Image Build Deploy MariaDB Container Nexus Container Database (Persistent) Jenkins Container JBoss EAP7.1 Container eGOV 애플리케이션 Service
  • 28. • 전자정부 프레임워크 애플리케이션 빌드 및 배포 환경 자동 구성 Ansible Service Broker를 이용한 Application 배포 환경 OpenShift Service Catalog Ansible Service Broker Red Hat Container Catalog egov-apb POC Project 이미지 Pull egov-apb 선택 서비스 자동 설치 Nexus3 Container Jenkins Container MariaDB Container JBoss EAP 7.1 Container 1 2 3 4 5 6 7 Web Site 8 테스트 애플리케이션 확인
  • 29.
  • 30. “살아 남는 종(種)은 강한 종이 아니고, 또 우수한 종도 아니다. 변화에 적응하는 종이다. ” - Charles Darwin, 1809
  • 31.
  • 32. 제품이나 서비스에 관한 문의 콜 센터 :02-469-5426 ( 휴대폰 : 010-2243-3394 ) 전자메일:sales@opennaru.com

Notes de l'éditeur

  1. Ansibl playbooks 기반으로 PaaS 환경 자동 설치가 가능합니다. Openshift의 경우 Redhat에서 제공해주는 OpenShift-playbook을 통하여 설치가 가능하고, Kubernetes는 Open source projec인 kube sprary를 통하여 자동 설치 할 수 있습니다. 각각 설치, 업그레이드, 삭제에 관련된 기능은 똑같다고 보시면 됩니다. 쿠버네티스를 수동으로 설치할 경우 어떻게 하나요? Kubernetes에서 Cluster을 수동으로 설치 할 경우 수작업으로 각 노드별로 필요 패키지 구성이 필요합니다. 요구사항대로 OS에 필수 패키지 및 기본 셋팅부터 Cluster에를 구성하기위한 API, Scheduler Controller Manger, Kubectl utility 등 필수 환경을 수동으로 구성해야합니다. 설치시 설정이나 패키지 버전이 맞지 않은경우 잘못되는 경우 원인을 찾기 힘들기 때문에 수동 설치시 불편함이 많습니다.
  2. Docker는 왜 이름이 도커일까요? Container는 왜 이름이 컨테이너일까요? Docker는 바로 부두노당자라는 의미로 Container가 바로 무역의 세계화 혁명의 핵심이 되었기 때문입니다. 자, Unix에서 Linux로 이동한다고 생각해 보세요. OS, 미들웨어, 애플리케이션, 보안모듈, 라이브러리 등 하나하나 설치해야 했습니다.
  3. Container를 이용한다면? AWS, AZURE등 어떤 환경으로 옮기더라도 Container 박스만 탑재하면 쉽고 빠르게 옮길 수 있습니다.
  4. - 계속 강조했던 PaaS의 핵심은 개발, 배포, 운영이라는 것이 바로 결국은 DevOps입니다. 그냥 PaaS만 써보려면 Docker만 설치하면 됩니다. 바로 OpenShift가 DevOps 환경을 제공합니다. - 현재 전 세계적으로 PaaS를 제공하는 플랫폼은 OpenShift가 가장 많이 설치되어 있고, 국내도 PaaS는 대부분 OpenShift가 도입되어 있습니다. 삼성전자, 롯데카드, 온나라, 두산정보통신 등이 OpenShift를 도입하였습니다. - PaaS는 OpenSource 기반의 Enterprise 제품이기 때문에 기술지원을 받을 수 있습니다.
  5. Container 기반 운영환경을 이야기 할텐데, 지금 개발 및 배포는 어떻게 진행하고 계세요? 아마도 다음 장표로 설명이 가능할 것 같습니다.
  6. Ansible Service Broker가 동작하는 아키텍처 입니다. 고객이나 서비스 제공자가 Service Catalog에서 설치를 원하는 APB를 선택하면 Ansible Service Broker는 해당 APB 이미지를 가져와서 서비스 컨테이너를 프로비전 합니다.
  7. APB는 Self-provision을 하기 위한 playbooks와 meta 데이터를 가지고 있는 이미지 입니다. 각 Action playbooks 역할을 하는 4개의 파일과 metadata 파일 그리고 Ansible playbooks로 구성되어있습니다. 각 action playbooks는 Provsion.yml, deprovision.yml bind.yml unbind.yml 이 있으며, apb.yml 메타 데이터도 포함되어있습니다.
  8. 이제 OpenShift에 대해서 소개할텐데, OpenShift를 도입하는 핵심이 뭐라고 생각하세요? 왜 PaaS를 하려고 할까요?
  9. Step1번 부터 Step 6번까지 APB 생성 및 Service Catalog 갱신 방법 입니다. ansible-galaxy 명령어를 사용하여 기본 apb playbooks 생성 Dockerfile에 apb 스펙을 base64 endcoding을 하여 넣기 위해 bundle prepar를 합니다. Openshift 프로젝트에서 apb 이미지를 빌드하기 위해 buildconfig를 생성 합니다. Build config를 실행하고 이미지가 정상적으로 생성 되었으면 apb registr에 생성된 apb 이미지를 등록합니다. 추가된 apb 이미지를 service catalog에서 확인 하기 위해 catalog relist를 실행 합니다.
  10. APB의 Meta data가 들어가 있는 yml 파일입니다.
  11. Service Catalog에서 선택한 Service를 설치 하기 위한 action playbook 입니다.
  12. Service Catalog에서 선택한 Service를 삭제 하기 위한 action playbook 입니다.
  13. Service Catalog에서 선택한 Service를 Self-provision 하기 위해 필요한 이미지를 만듭니다.
  14. 왜 컨테이너인가에 대한 소개입니다.
  15. 현재 웹서버, 서블릿 엔진은 이미 성능 적인 측면에서 거의 평준화 되었습니다. 하지만 앞서 설명한 세밀한 유입 제어가 뒷받침 되지 않는다면 배포나 특정 서버 작업 시에 안정성을 확보하기 어렵습니다. 하지만 Undertow 에서 제공하는 세밀한 유입 제어 부분을 활용한다면 배포 및 특정 작업 시에도 안정성을 확보하여 더욱 품질 좋은 서비스를 할 수 있게 될 것입니다. 그렇기에 저희는 엔터프라이즈 환경에서 Undertow, JBoss EAP 를 적극 추천합니다.