Microservice 의 관점에서 바라본 PaaS www.k-cloud.kr
Microservice의관점에서바라본 PaaSwww.k-cloud.kr
Microservice와 PaaS (Cloudfoundry)
K-Cloud(K PaaS-TA)의특징
목 차
2
이미지 출처 : AWS
Microservice의구조
서비스가 많아질수록 빌드/배포, 운영관리의 중요도가 증가
복잡한Microservice의구조
3
빌드ㆍ테스트ㆍ배포의 자동화
빌드/배포의자동화 _ PaaS의장점①
자동 빌드ㆍ테스트ㆍ배포를 위한 Pipeline 기능을 제공
자동화된 Pipeline
Commit Build Test Stage Deploy
K PaaS-TA Pipeline
AWS Pipeline
4
손쉬운스케일아웃및부하분산 _ PaaS의장점②
매우 편리한 스케일 아웃 및 부하분산 기능을 제공
IaaS PaaS
Scale out절차
VM이미지생성
VM이미지복제
로드밸런서추가
로드밸런서에VM등록
Scale out 및 loadbalancing
LB
③Load balancer생성
VM 1
VM 2
VM 3
①인스턴스이미지생성
②인스턴스이미지복제
④VM 추가
Scale out절차
인스턴스개수변경
재시작
라우터
컨테이너1
컨테이너2
컨테이너3
컨테이너생성
라우터
Scale out 및 loadbalancing
어플리케이션저장소
어플리케이션자동복제
5
수 분내 구축 완료
팀별독립공간부여및신속한개발/운영환경구성 _ PaaS의장점③
팀별로 독립된 공간에서 신속하게 개발/운영환경을 구축
편리한조직관리및독립적배포 신속한개발/운영환경구축
APP
용량 할당 용량 할당
APP APPAPI API
독립적배포
통합 관리
용량 할당
독립적배포
독립적배포
런타임선택
Language
Application Server
Framework
DBMS
KEY/Value
Messaging
서비스선택
6
자원의효율적활용 _ PaaS의장점④
어플리케이션의 크기에 맞는 인스턴스 용량 설계가 용이
Server
Host OS
Hypervisor
Guest OS
Bins/Libs
App A
VM 1
Guest OS
Bins/Libs
App A
VM 1
Guest OS
Bins/Libs
App A
VM 1
Guest OS
Bins/Libs
App A
VM 1
Overhead
Server
Host OS
Container Engine
Bins/Libs
App A
Container 1
Bins/Libs
App A
Container 1
Bins/Libs
App A
Container 1
Bins/Libs
App A
Container 1
IaaS PaaS
7
PaaS vs. IaaS for Microservices Architectures (1/2)
Capabilities of microservicessolutions
IaaS implementationPaaS implementation (Cloud
Foundry)
1. One service for one job
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.
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 PaaScontainer.
3. Loose couplingThe DevOps team manages IaaSinstances used for service deployment.
PaaS containers are isolated elements for application deployment. Container life cycle is managed by the PaaS.
8
PaaS vs. IaaS for Microservices Architectures (2/2)
Capabilities of microservicessolutions
IaaS implementationPaaS implementation (Cloud
Foundry)
4. Independency of developersDevOps may need to create multiple IaaS environments for each of the development groups.
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 PaaSdeployment.
5. Continuous delivery
DevOps engineers need to install and configure build-automation tools and integrate them with a project repository to provide continuous delivery.
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.
6. Integration with external servicesThe DevOps team deploys external services. Applications connect to external services using properties.
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.
Microservice와 PaaS
K-Cloud(K PaaS-TA)의특징
목 차
10
K-Cloud(K PaaS-TA)란 (1/2)
접속 URL : www.k-cloud.kr l portal.k-cloud.kr
여러분의 아이디어를 SW로 실현할 수 있도록 무료로 지원하는 PaaS 서비스
11
PaaS-TA기반Cloudfoundry 기반
PaaS Xpert 기반SW의 높은 가용성 제공(부하분산, HA)
K-Cloud(K PaaS-TA)란 (2/2)
다양한 배포방식 지원(WAR, Zip 및 Docker 컨테이너)
다양한 WEB/WAS, DBMS, Framwork 지원
“ 가장 많이 사용하는오픈소스 PaaS솔루션 “
“ 국내 환경에 맞도록기술검증 및 안정화된PaaS솔루션 “
“ Pipeline, 모니터링, 웹포털등의 다양한 기능이추가된 솔루션 “
PaaS-TA기반, 다양한 서버환경 지원, 어플리케이션의 높은 가용성 제공
K-Cloud
12
빌드팩 & 서비스
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
cubrid 하반기 서비스예정
postgresql 하반기 서비스예정
CLI
Windows 버전(32, 64bit)
Mac OS 버전(32, 64bit)
Linux 버전(32, 64bit)
IDE
eGovFrame
Eclipse
IntelliJ
etc
JAVA, PHP, Nodejs, Python 등 다양한 개발언어와 DBMS, 프레임워크를 지원
K-Cloud의 특징 (1/4)
13
압축파일 형태의 어플리케이션 배포절차 도커이미지 형태의 어플리케이션 배포절차
런타임환경및
버전 선택
환경 설정및
소스코드업로드
서비스선택 및바인딩
• 개발언어 선택
• 버전 선택
• 프레임워크 선택
• 서비스 URL 입력
• 소스코드 파일 지정 (ZIP, WAR)
• 컨테이너 용량 설정
• 연결 서비스 선택
• 바인딩할 어플리케이션 선택
도커이미지URL 입력
환경 설정
서비스선택 및바인딩
• Docker hub , Git hub URL 입력
• 서비스 URL 입력
• 컨테이너 용량 설정
• 연결 서비스 선택
• 바인딩할 어플리케이션 선택
K-Cloud의 특징 (2/4)
압축파일 형태 및 도커이미지 형태의 다양한 어플리케이션 배포방식 지원
14
K-Cloud의 특징 (3/4)
전자정부 표준프레임워크 탑재
15
K-Cloud의 특징 (4/4)
개발에서 운영까지 이어질 수 있는 퍼블릭 PaaS서비스
16
조직생성및영역추가절차조직, 영역의개념
조직 생성, 영역 용량계획 추가, 영역 추가 방법
사용자 A
조직 (부서 or 회사)
영역1 (팀)
영역2 (팀)
APPAPP
APP
APPAPP
APP
조직생성영역 용량계획 추가영역추가
조직 생성
영역의 용량계획 추가
영역추가
1. 조직(부서or 회사)의 명칭과 조직에서
사용할 최대 자원 용량을 선택
2. 조직(부서)내영역(팀)에할당할최대용량을 미리설정
-영역용량은조직용량을초과할수없음
3. 영역(팀)의명칭과팀에서사용할최대자원용량을
미리설정해놓은용량계획에따라할당
관리자승인필요
※ 조직내 1개 영역만 둘 경우 조직용량과 영역용량을동일하게 설정
MAX10G
MAX 20G
용량계획 1
용량계획 2
용량 할당
용량 할당
17
감사합니다.