SlideShare a Scribd company logo
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를 통한 컨테이너 환경 자동화

More Related Content

What's hot

Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Yevgeniy Brikman
 
Getting Started with Infrastructure as Code
Getting Started with Infrastructure as CodeGetting Started with Infrastructure as Code
Getting Started with Infrastructure as Code
WinWire Technologies Inc
 
From Zero to Docker
From Zero to DockerFrom Zero to Docker
From Zero to Docker
Abhishek Verma
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Adin Ermie
 
Terraform
TerraformTerraform
Terraform
Harish Kumar
 
An Introduction to the AWS Well Architected Framework - Webinar
An Introduction to the AWS Well Architected Framework - WebinarAn Introduction to the AWS Well Architected Framework - Webinar
An Introduction to the AWS Well Architected Framework - Webinar
Amazon Web Services
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
C4Media
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Robert Greiner
 
Terraform Basics
Terraform BasicsTerraform Basics
Terraform Basics
Mohammed Fazuluddin
 
Final terraform
Final terraformFinal terraform
Final terraform
Gourav Varma
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
Opsta
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
Adam Paxton
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
Kellton Tech Solutions Ltd
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
Winton Winton
 
Application Migrations
Application MigrationsApplication Migrations
Application Migrations
Amazon Web Services
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
Abdullah al Mamun
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
balaji257
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
Shiva Narayanaswamy
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay Kumar Uppal
 

What's hot (20)

Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
Getting Started with Infrastructure as Code
Getting Started with Infrastructure as CodeGetting Started with Infrastructure as Code
Getting Started with Infrastructure as Code
 
From Zero to Docker
From Zero to DockerFrom Zero to Docker
From Zero to Docker
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
 
Terraform
TerraformTerraform
Terraform
 
An Introduction to the AWS Well Architected Framework - Webinar
An Introduction to the AWS Well Architected Framework - WebinarAn Introduction to the AWS Well Architected Framework - Webinar
An Introduction to the AWS Well Architected Framework - Webinar
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Terraform Basics
Terraform BasicsTerraform Basics
Terraform Basics
 
Final terraform
Final terraformFinal terraform
Final terraform
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
Api presentation
Api presentationApi presentation
Api presentation
 
Application Migrations
Application MigrationsApplication Migrations
Application Migrations
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 

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

03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
Opennaru, inc.
 
02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible
Opennaru, inc.
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
SK Telecom
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
Ji-Woong Choi
 
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
Gwan-Taek Lee
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호
용호 최
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
rockplace
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon Web Services Korea
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
AWSKRUG - AWS한국사용자모임
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
NAVER LABS
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
Joongi Kim
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
SK Telecom
 
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020 AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWSKRUG - AWS한국사용자모임
 
인프라 자동 배포를 위한 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
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
Hyperledger Korea User Group
 
Windows Kubernetes Deep Dive
Windows Kubernetes Deep DiveWindows Kubernetes Deep Dive
Windows Kubernetes Deep Dive
Jung Hyun Nam
 
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
AWS DevOps와 ECR을 통한 Elastic Beanstalk 배포 환경 구축 및 타 환경과의 비교
ssuserd4f9ff
 
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
 
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS Kubernetes 서비스 자세히 살펴보기 (정영준 & 이창수, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
Amazon Web Services Korea
 

Similar to 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 솔루션즈 아키텍트)
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
 
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
 

More from Opennaru, inc.

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

More from 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

Editor's Notes

  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 를 적극 추천합니다.