Microservice 의관점에서바라본 PaaS www.k-cloud.kr
목 차 Microservice 와 PaaS (Cloudfoundry) K-Cloud(K PaaS-TA) 의특징
Microservice 의구조 서비스가많아질수록빌드 / 배포, 운영관리의중요도가증가 복잡한 Microservice 의구조 이미지출처 : AWS 2
빌드 / 배포의자동화 _ PaaS 의장점 1 자동화된 Pipeline 자동빌드ㆍ테스트ㆍ배포를위한 Pipeline 기능을제공 AWS Pipeline 빌드ㆍ테스트ㆍ배포의자동화 Commit Build Test Stage Deploy K PaaS-TA Pipeline 3
손쉬운스케일아웃및부하분산 _ PaaS 의장점 2 매우편리한스케일아웃및부하분산기능을제공 IaaS PaaS Scale out 절차 Scale out 절차 VM 이미지생성 VM 이미지복제 로드밸런서추가 로드밸런서에 VM 등록 인스턴스개수변경 재시작 Scale out 및 loadbalancing Scale out 및 loadbalancing LB 3Load balancer 생성 4VM 추가 VM 1 VM 2 VM 3 1 인스턴스이미지생성 2 인스턴스이미지복제 라우터라우터 컨테이너1 컨테이너2 컨테이너3 어플리케이션저장소 어플리케이션자동복제 컨테이너생성 4
팀별독립공간부여및신속한개발 / 운영환경구성 _ PaaS 의장점 3 팀별로독립된공간에서신속하게개발 / 운영환경을구축 편리한조직관리및독립적배포 신속한개발 / 운영환경구축 통합관리 수분내구축완료 런타임선택 서비스선택 용량할당 용량할당 용량할당 Language DBMS 독립적배포 독립적배포 독립적배포 Application Server KEY/Value APP API APP API APP Framework Messaging 5
자원의효율적활용 _ PaaS 의장점 4 어플리케이션의크기에맞는인스턴스용량설계가용이 IaaS PaaS VM 1 VM 1 VM 1 VM 1 App A App A App A App A Container 1 Container 1 Container 1 Container 1 Bins/ Libs Bins/ Libs Bins/ Libs Bins/ Libs App A App A App A App A Guest OS Guest Guest Overhead OS OS Guest OS Bins/ Libs Bins/ Libs Bins/ Libs Bins/ Libs Hypervisor Host OS Server Container Engine Host OS Server 6
PaaS vs. IaaS for Microservices Architectures (1/2) Capabilities of microservices solutions 1. One service for one job IaaS implementation Every service is deployed on an IaaS instance (a physical or virtual machine) by a QA/DevOps team. DevOps are responsible for configuring valid communication interfaces. Scalability is provided by the DevOps team. PaaS implementation (Cloud Foundry) A service (or an application) is deployed by a developer. Scalability can be controlled by a developer. Communication endpoints are served by the PaaS. You just need to assign a unique name to the service in the root PaaS domain. You do not have to think about IaaS. Instead, you will be able to focus on implementing business logic for each of the services. 2. Using different tools to implement different services The DevOps team needs to configure an application runtime on IaaS instances. An application runtime is automatically deployed in a PaaS container. 3. Loose coupling The DevOps team manages IaaS instances used for service deployment. PaaS containers are isolated elements for application deployment. Container life cycle is managed by the PaaS. 7
PaaS vs. IaaS for Microservices Architectures (2/2) Capabilities of microservices solutions 4. Independency of developers 5. Continuous delivery 6. Integration with external services IaaS implementation DevOps may need to create multiple IaaS environments for each of the development groups. DevOps engineers need to install and configure build-automation tools and integrate them with a project repository to provide continuous delivery. The DevOps team deploys external services. Applications connect to external services using properties. PaaS implementation (Cloud Foundry) When a PaaS is used, development groups can be managed as organization units. Deployments for development and testing can be arranged as spaces. You can have multiple organizations and spaces in a single PaaS deployment. Build-automation solution can be deployed in Cloud Foundry as a regular application. This reduces the time necessary to provide continuous delivery for a project compared to IaaS. A service broker of the PaaS can be used to deploy and publish some external services. Service binding makes it easier to connect an application instance to external services. 8
목 차 Microservice 와 PaaS K-Cloud(K PaaS-TA) 의특징
K-Cloud(K PaaS-TA) 란 (1/2) 여러분의아이디어를 SW 로실현할수있도록무료로지원하는 PaaS 서비스 접속 URL : www.k-cloud.kr l portal.k-cloud.kr 10
K-Cloud(K PaaS-TA) 란 (2/2) PaaS-TA 기반, 다양한서버환경지원, 어플리케이션의높은가용성제공 가장많이사용하는오픈소스 PaaS 솔루션 Cloudfoundry 기반 PaaS-TA 기반 국내환경에맞도록기술검증및안정화된 PaaS 솔루션 SW 의높은가용성제공 ( 부하분산, HA) K-Cloud PaaS Xpert 기반 Pipeline, 모니터링, 웹포털등의다양한기능이추가된솔루션 다양한배포방식지원 (WAR, Zip 및 Docker 컨테이너 ) 다양한 WEB/WAS, DBMS, Framwork 지원 11
K-Cloud 의특징 (1/4) JAVA, PHP, Nodejs, Python 등다양한개발언어와 DBMS, 프레임워크를지원 빌드팩 & 서비스 language ver server Framwork JAVA OpenJDK-1.8.0_91 Tomcat Spring Boot egovframework-v2.5 egovframework-v3.5 Ruby ruby-2.3.1 Rails NODE.JS node-6.2.1 Go go-1.6.2 python python-3.5.0 php php-7.0.7 httpd Static NginX 구분 ver 비고 Mariadb 10.0.23 Mysql로표기 mongodb 2.6 redis 2.8 InMemory DB rabbitmq 3.3 인터페이스 CLI IDE Windows 버전 (32, 64bit) Mac OS 버전 (32, 64bit) Linux 버전 (32, 64bit) egovframe Eclipse IntelliJ cubrid postgresql 하반기서비스예정 하반기서비스예정 etc 12
K-Cloud 의특징 (2/4) 압축파일형태및도커이미지형태의다양한어플리케이션배포방식지원 압축파일형태의어플리케이션배포절차 도커이미지형태의어플리케이션배포절차 런타임환경및버전선택 개발언어선택 버전선택 프레임워크선택 도커이미지 URL 입력 Docker hub, Git hub URL 입력 환경설정및소스코드업로드 서비스 URL 입력 소스코드파일지정 (ZIP, WAR) 컨테이너용량설정 환경설정 서비스 URL 입력 컨테이너용량설정 서비스선택및바인딩 연결서비스선택 바인딩할어플리케이션선택 서비스선택및바인딩 연결서비스선택 바인딩할어플리케이션선택 13
K-Cloud 의특징 (3/4) 전자정부표준프레임워크탑재 14
K-Cloud 의특징 (4/4) 개발에서운영까지이어질수있는퍼블릭 PaaS 서비스 15
조직생성, 영역용량계획추가, 영역추가방법 조직생성 영역용량계획추가 영역추가 조직, 영역의개념 조직생성및영역추가절차 사용자 A 조직 ( 부서 or 회사 ) 조직생성 1. 조직 ( 부서 or 회사 ) 의명칭과조직에서 사용할최대자원용량을선택 관리자승인필요 영역 1 ( 팀 ) APP APP APP 용량할당 용량계획 1 MAX 10G 영역의용량계획추가 2. 조직 ( 부서 ) 내영역 ( 팀 ) 에할당할최대용량을미리설정 - 영역용량은조직용량을초과할수없음 영역 2 ( 팀 ) 용량계획 2 APP APP APP 용량할당 MAX 20G 조직내 1 개영역만둘경우조직용량과영역용량을동일하게설정 영역추가 3. 영역 ( 팀 ) 의명칭과팀에서사용할최대자원용량을 미리설정해놓은용량계획에따라할당 16
감사합니다. 17