Open, Hybrid, Multi Cloud Container Platform Red Hat OpenShift
Agenda 1. Digital Transformation 2. Docker, Kubernetes, OpenShift 3. DevOps, CI/CD, MSA 4. Why Red Hat OpenShift 5. Where & How to start
How Digital do you Transformation enable Digital 을어떻게 Transformation? 가능하게할것인가? 아래세가지영역의발전이필요.. Applications 새로운방식의개발, 딜리버리, 통합 Platform 기존플랫폼현대화및클라우드기반인프라구축 Process IT 와비즈니스의보다민첩한프로세스
Containers Transform Monolith Datacenter Waterfall N-Tier Hosted Agile Microservices Applications Hybrid Infrastructures DevOps Processes
Red Hat OpenShift = Docker + Kubernetes Enterprise 컨테이너플랫폼 Docker & Kubernetes 만으로이룰수없는가치를제공 Tools Process
PaaS 는애플리케이션딜리버리를가속화 Craftwork Assembly Physical How to Build an App: 1.Have Idea 2.Get Budget 3.Submit hardware acquisition request 4.Wait 5.Get Hardware 6.Rack and Stack Hardware 7.Install Operating System 8.Install Operating System Patches 9.Create user Accounts 10.Deploy framework/appserver 11.Deploy testing tools 12.Code 13.Test 14.Buy and configure Prod servers 15.Push to Prod 16.Launch 17.Order more servers to meet demand 18.Wait 19.Deploy new servers 20.Etc. Virtualized How to Build an App: 1.Virtualized 2.How to Build an App: 3.Have Idea 4.Get Budget 5.Submit VM Request request 6.Wait 7.Deploy framework/appserver 8.Deploy testing tools 9.Code 10.Test 11.Configure Prod VMs 12.Push to Prod 13.Launch 14.Request VMs to meet demand 15.Wait 16.Deploy app to new VMs 17.Etc. With PaaS How to Build an App: 1.Have Idea 2.Get Budget 3.Code 4.Test 5.Launch 6.Automatically Scale
Docker, Container, Kubernetes
Docker, Container 컨테이너 = 프로세스를격리하여가상환경처럼사용 역사 2013 PyCon, 솔로몬하익스, The future of Linux Containers 발표 (https://www.youtube.com/watch?v=ww9cah9nsls) 정의 컨테이너기반의오픈소스가상화플랫폼 컨테이너 라는표준화된유닛으로소프트웨어를패키징. 컨테이너 에는라이브러리, 시스템도구, 코드, 런타임등소프트웨어를실행하는데필요한모든것이포함됨 애플리케이션을신속하게구축, 테스트및배포할수있는소프트웨어플랫폼
Docker, Container
Docker, Container Layer C Layer C Layer B Layer B Layer A Layer A RHEL NginX Web App Layer C Layer B Layer A WebApp Docker Image 컨테이너실행에필요한파일과설정값등을포함하고있는것 Docker Registry 도커이미지저장소 Docker 컨테이너를구축, 테스트및배포할수있는플랫폼 (Docker)Container Docker Image 가 Run 된프로세스
Quick Docker Concepts Docker Image 컨테이너의베이스가되는것. 프로세스를실행할때필요한파일들의집합체, 즉, OS 패키지, 애플리케이션서버등애플리케이션을실행될때필요한파일들의집합임. Object Oriented 용어로는 Class 로비교될수있음 (Docker) Container 이미지의인스턴스로컨테이너로불림. 하나의 Node/Server 에동일한이미지로여러개의컨테이너들이실행될수있음. Object Oriented 용어로 Instance 와비교될수있음 Dockerfile 도커이미지를빌드하기위해수작업으로실행시켜야하는커맨드들로구성된텍스트문서. 도커가도커파일로부터명령을읽어자동으로이미지를빌드함 Docker Registry 이미지들의저장소이며관리서비스. 예를들어 GitHub
Container 애플리케이션디플로이측면의발전 마이크로서비스뿐만아니라전통적인방식의애플리케이션의효율성및자동화가능 개발부터운영시스템까지보다빠르고일관성있는디플로이 베어메탈, 가상화, 프라이빗 / 퍼블릿클라우드모든인프라에애플리케이션이식가능 Container Container Container Container Container Application Application Application Application Application OS dependencies OS dependencies OS dependencies OS dependencies OS dependencies RHEL Guest VM RHEL RHEL Virtual Machine RHEL Virtual Machine RHEL Virtual Machine LAPTOP BARE METAL VIRTUALIZATION PRIVATE CLOUD PUBLIC CLOUD
Kubernetes (k8s) 쿠버네티스 = 구글이만든도커컨테이너오케스트레이션플랫폼 역사 2014 년구글의내부컨테이너플랫폼 (Borg) 를오픈소스화한것 구글의십수년간의대규모운영시스템워크로드관리경험의산물 Go 언어로구현됨 정의 컨테이너애플리케이션오케스트레이션, 스케줄링, 디플로이먼트, 확장자동화 구글은 20 억 +/week 컨테이너생성, 배포관리중
Kubernetes Architecture source: www.learnitguide.net
Quick Kubernetes Concepts Kubernetes Master 쿠버네티스노드를관리하는서버. kube-apiserver, kube-controller-manager, kube-scheduler and etcd 가실행됨. Cluster 쿠버네티스가애플리케이션을구동관리하는물리서버또는 VM 의집합 Node 쿠버네티스가구동되는물리서버또는 VM 단위. Kubelet, proxy, docker 가구동되고, 노드내에서 Pod 단위로스케줄링함 Pod 컨테이너와볼륨의그룹구동단위. 쿠버네티스가관리하는최소단위. 스케일링, Replication 단위 Service Pod의집합체로하나의 IP address나 DNS name으로접근하는단위
OpenShift = Enterprise Kubernetes OpenShift = Enterprise Kubernetes Red Hat은 #2 Docker Contributor #2 Kubernetes Contributor Docker + Kubernetes + Red Hat Application Runtime + Open source runtime + CI/CD pipeline + Security + Web Console 등관리의편의성
Microservice, CI/CD, DevOps
현재기업의 IT: Waterfall and Silos Application Version X IT 의기민성요구 비즈니스 Dev 용도에맞는기술최신기술, 툴 DEVELOPMENT OPERATIONS Ops Control Risk 최소화
AGILE SOFTWARE DEVELOPMENT
Microservice = AGILE METHOD 에최적 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 모놀리스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스 마이크로서비스
THE DEVOPS MOVEMENT Key concepts: 작은단위로변경하여리스크를줄임 빠른실패를경험하고회복 vs. 절대실패하면안된다 문화의변화 : 실패를수용
WHAT ENABLES DEVOPS? CONTINUOUS INTEGRATION CONTINUOUS DELIVERY CI/CD: 통합, 테스트, 디플로이자동화
WHY RED HAT OPENSHIFT
Kubernetes 프로젝트기여도 소스 : http://stackalytics.com/?project_type=kubernetes-group&metric=commits&release=all&module=kubernetes
Enterprise 컨테이너환경 : 운영효율성 인프라운영상황시각화 디플로이노드정보 컨테이너가디플로이된노드정보 컨테이너와연결된호스트, 스토리지, 다른컴포넌트 문제에대한트러블슈팅 공통태스크자동화
Enterprise 컨테이너환경 : SERVICE HEALTH VM/Storage/Network/ 컨테이너리소스사용현황및트렌드 Performance threshold 에따른 alert Configuration auto detect
Enterprise 컨테이너환경 : SECURITY & COMPLIANCE 신뢰하지않는레지스트리의베이스이미지를사용하는컨테이너감지하여표시
Red Hat 이테스트하고검증한프레임워크 TESTED AND VERIFIED MICROSERVICES FRAMEWORKS LAUNCH 클라우드네이티브샘플기반 Project generator Reactive Eclipse Vert.x Spring Boot Netflix Hystrix SUPPORTED MICROSERVICES RUNTIMES MicroProfile Server-side JS Java EE WildFly Swarm Node.js JBoss EAP Netflix Ribbon Java EE Web Embedded Tomcat Red Hat 이 Fully support 하는런타임
TRUE POLYGLOT PLATFORM 오픈쉬프트에탑재된 Certified Docker Images LANGUAGES Java NodeJS Python PHP Perl Ruby.NET Core Third-party Language Runtimes DATABASES WEB SERVERS MySQL Apache HTTP Server PostgreSQL nginx MongoDB Varnish Redis Phusion Passenger Tomcat...and virtually any docker image out there! Third-party Databases Third-party App Runtimes CrunchyData GitLab Iron.io Couchbase Sonatype MIDDLEWARE Spring Boot Wildfly Swarm Vert.x JBoss Web Server JBoss EAP JBoss A-MQ JBoss Fuse Third-party Middleware EnterpriseDB NuoDB Fujitsu and many more 3SCALE API mgmt JBoss BRMS JBoss BPMS JBoss Data Virt JBoss Data Grid RH Mobile RH SSO Third-party Middleware
Red Hat Support
WHERE & HOW TO START?
Red Hat + Goodmorning Information Technology Discovery Session Design Workshop Open Innovation Lab 고객의주요비즈니스요구사항및목표식별 비즈니스, 기술및운영측면을통한접근 레드햇전문가와고객의의사결정자및이해관계자간대화형토론방식으로진행 PoC 수행이전고객환경및요건검증을위한툴 고객참여형으로요건과요구사항을사전정의 Discovery Session 에서도출된개선방안을구체적이고실현가능한 Action Item 을만들어가는과정 대상시스템현황분석및 GAP 분석 표준아키텍처수립및파일럿업무구현 중장기플랜 ( 기술, 인력, 일정 ) 변화관리플랜 ( 목표, 활동, 교육계획 ) Red Hat 전문가와함께 Agile 방법론과 DevOps 도구를기반으로기존애플리케이션을현대화하거나새로운클라우드네이티브앱을개발하는몰입형실습포함하는포괄적인컨설팅 Cultural Transformation
THANK YOU