1. Cloud 이해
1.1 클라우드 컴퓨팅이란?
컴퓨팅 리소스를 데이터 센터에 대량으로 집적시킨 후, 개별 이용자가 요구하는 만큼 가상으로 분리하여 정보통신망을 통해 제공하는 서비스. 사용량에 비례하여 비용 청구
1.2 기본 속성
- 주문형 셀프 서비스 - 사업자와 직접 상호 작용하지 않고, 사용자의 개별 관리화면을 통해 서비스를 이용할 수 있음.
- 광범위한 네트워크 접속 - 모바일 기기 등의 다양한 디바이스를 통해 서비스에 접속할 수 있음
- 리소스 공유 - 사업자의 컴퓨팅 리소스를 여러 사용자가 공유하는 형태로 이용
- 신속한 확장성 - 필요에 따라, 필요한 만큼 스케일 업과 스케일 다운 가능
- 측정 가능한 서비스 - 이용한 만큼 요금이 부가되는 종량제
1.3 Cloud 유용성
- 경제성 - 사용하고자 하는 기간만 사용 가능. SW와 데이터를 클라우드에 통합 관리함. SW 업데이트 작업 및 데이터 유지보수의 효율성을 높혀 비용을 절약할 수 있음.
- 유연성 - 컴퓨팅 리소스를 필요에 의해 확장/축소할 수 있음
- 가용성 - 일부 하드웨어 장애가 발생하더라도 서비스를 계속하여 사용할 수 있도록 구성. 자체 시스템보다 낮은
가격에 가용성이 높은 환경을 사용할 수 있음.
- 빠른 구축 속도 - 클라우드가 제공하는 하드웨어와 소프트웨어를 이용하여 시스템을 신속하게 구축 가능
1.4 Cloud 시장 규모 변화
1.5 2018년 트렌드
- 클라우드 서비스 솔루션의 성장
- SaaS는 기업들이 초기 클라우드 서비스를 접할 수 있는 유연하고 경제적인 경로 제시
- IaaS와 PaaS의 성장은 퍼블릭과 프라이빗 부분에서 사용할 수 있는 클라우드 솔루션의 수를 늘림
- 많은 조직들이 클라우드가 보장하는 단순성과 고성능을 사용하게 될 것이며, SaaS 솔루션이 압도적인 클라우드가
서비스가 될 예정
- 고객들이 서비스에 더 쉽게 접근하게 만들고 싶어하는 경우 SaaS, IaaS, PaaS를 통합하는 방향으로 움직일 전망
- 클라우드 스토리지 용량 증가
- IoE(Internet of Everything)의 부상
- IoT가 성장하는 가운데 실시간 데이터 분석 및 클라우드 컴퓨팅의 지속적인 혁신이 IoE를 전면에 내놓을거라 예상
- IoE는 네트워크 모든 기기들과 지능적으로 상호작용하며, 인간과 인간의 소통도 더 쉽게 만드는 기능을 함
- 인터넷 품질의 개선과 5G 네트워크의 부상
- 사이버 보안 시스템에 대한 투자
- 사이버 보안에 대한 기본적인 방어 메커니즘으로 (SIEM)과 악성코드 탐지 시스템에 대한 투자 필요성이 대두됨
- 클라우드 서비스가 관제 보안 서비스를 제공
1.6 2020년 트렌드
- 강화 엣지 : 사용자 디바이스 가까운 곳에서 정보소스/저장소를 배치하여 정보를 처리하고 콘텐츠를 수집/전달함
- 신속한 데이터 처리와 소통이 필요한 로봇/드론/자율주행자동차 등에서 확산중
- 분산 클라우드 : 클라우드 제공 업체의 데이터 센터 외부에 있는 다른 위치에서 퍼블릭 클라우드 서비스 제동
- 중앙 집중 방식의 퍼블릭 클라우드 서비스를 소비자와 가장 가까운 곳으로 이동
* 중요 : 클라우드 특징/장점.
2. Cloud Model 및 특징 이해
2.1 Model별 관리 범위와 예시
IaaS - Infra 관점(Virtual Machine, Disk Networks, Firewalls)
CaaS - 컨테이너 관점(Containters, Volumes, Ips & Ports, Load Balancers)
PaaS/aPaaS - Runtime 관점(Web/WAS, Framework, Appas, Routes) 계속적으로 서비스 작동.
FaaS - 서비스 관점(Actions, Triggers, Gateways, API) 서버리스 컴퓨팅 모델. 실행 대비 비용 발생.
SaaS - 비지니스 관점
2.2 IaaS란
- CPU나 하드웨어 등의 컴퓨팅 리소스(자원)를 네트워크를 통해 서비스로 제공하는 모델
- 물리적 리소스를 가상화하여 유연한 Infrastructure를 제공
- 가상화 유영에는 hypervisor와 container가 존재함
3. PaaS란
- 기업 애플리케이션 실행 환경 및 애플리케이션 개발 환경을 서비스로써 제공하는 모델
- 애플리케이션 실행 환경이나 데이터베이스 등이 미리 마련되어 단기간에 애플리케이션을 개발하여 서비스를 제공할 수 있음
3.1 작동 원리
3.2 주요 용어
4. SaaS란
- 주로 업무에서 사용하는 소프트웨어의 기능을 인터넷 등의 네트워크를 통해 필요한 만큼 서비스를 하는 형태
4.1 특징
Level1 - Ad Hoc/Custom
Level2 - Configurable
Level3 - Configurable, Mutli-Tenancy
Level4 - Scalable, Configurable, Mutli-Tenancy
* Configurable - 환경 설정(소스코드 레벨의 수정 없이 사용자의 요구 사항을 수용)
* Mutli-Tenancy - 하나의 어플리케이션을 다수의 사용자가 공유하여 사용하는 다중 소유 아키텍쳐 지원
* Scalable - 가용성 및 성능 지원을 위해 다수의 인스턴스를 생성하고 사용자의 데이터를 분산 관리.
4.2 테넌트 - 사용자 별로 격리된 환경인 테넌트를 제공하며, 사용자가 독점적으로 이용하는 어플리케이션과 데이터 제공
테넌트별 보안 정책, 가용성, 확장성, 과금을 측정
5. Cloud Native Application
- Desktop application + Web application으로 클라우드 환경에서 실행되는 어플리케이션 프로그램
- web app처럼 기기에 종속성 없음. 또한 오프라인 작업도 가능
5.1 서비스
- 어플리케이션을 여러 개의 서로 독립적인 기능을 하는 서비스로 구분
- 서비스를 묶어서 하나의 통합된 비지니스 서비스를 할 수 있도록 하는것이 중요
- 최소 상태의 컴포넌트들이 격리된 상태의 마이크로 서비스로 구성되어야 하며, 각 서비스는 분산되어야 함
6. Microservice
6.1. 모노리스 서비스의 문제
- 규모가 클지 빌드, 배포, 서버 기능시 시간이 오래 걸림
- 개별 문제가 빌드 실패를 유발
- 컴포넌트들의 call-by-reference기반으로 구성되어 특정 모듈의 문제가 다른 컴포넌트들에도 영향을 줌
- 코드가 커져서 유지 보수 어려움
- 기존 로직 데이터 인터페이스등의 변경에 따른 영향을 파악하기 어려움
- 사소한 수정에도 재컴파일, 배포, QA를 진행하여야 함함
- 컴포넌트 별로 기능/비기능적 특성을 맞춰 새 기술을 도입하고자할때 어려움
- 한 어플리케이션의 기능을 타 어플리케이션에서 사용하기 어려움
6.2 작게 쪼개진, 범위가 명확한 다수의 작은 서비스들
- 단일 책임 원칙
- 도메인 주도 개발
- 제한된 컨텍스트
- 독립적으로 관리됨
6.3 각 서비스의 명확한 소유권
- 일반적으로 "DevOps" 모델 필요
6.4 아키텍처 구성하기 위한 핵심 요소
- 서비스 - 각 컴포넌트는 서비스라는 형태로 구현되고 API를 이용하여 타 서비스와 통신
서비 경계는 구문 또는 도메인의 경계를 따름
- DevOps - 개발, 테스트, 배포를 모두 자동화시킴.
- 데이터 분리 - 서비스 별로 필요에 따라 별도의 데이타 베이스를 사용
서비스가 API에서 데이터베이스까지 수직 분리됨
- API Gateway - 모든 API에 대한 end point를 통합함고 추가 기능을 제공하는 미들웨어
6.5 장점
- 보다 빠르고 간단한 배치와 롤백
- 각 도메인에 적합한 프레임워크/도구/언어
- 더 큰 탄력성
- 더 나은 가용성
6.5 단점
- 복잡성
- 런타임 환경상에서 비동기 상호 작용이 어려움
- 중복성
- 코드 중복과 데이터 중복이 발생함
6.6 고려 사항
- 서비스 범위 설정 - 어디서 어디까지 묶을것인가?
- 기존 레거시 시스템과 공존 고려
- 운영 오버 헤드
- 인터페이스 불일치
- 서비스의 인터페이스를 변경하는 것에 대한 영향 범위를 파악할 것인가?
- 어떻게 서비스 외부로 제공하는 인터페이스가 의도하지 않은 형태로 사용되지 않도록 할 것인가?
- 어떻게 전체 시스팀의 인터페이스 맵을 만들고 팀 간의 커뮤니케이션 비용을 효과적으로 제어할 수 있는가?
6.7 모델링/구현 TIP
- API를 먼저 정의하라
- API를 REST API Manturity Level 2 이상이 되도록 강제화 하라
- API 문서를 유지하라
- ORM 활용하라
- DB에 너무 의존하지 마라
- 도메인 내부에서만 의미있는 값을 외부에 노출하지 마라
- 마이크로 서비스가 별다른 설정없이 바로 기동하게 하라
7. API Gateway
7.1 개요 - API를 총괄하는 Gateway
7.2 주요 기능
MSA와 함께 근래에 떠오르는 기술
AP 게이트웨이는 API 서버 앞단에서 모든 API 서버들의 엔드 포인트를 단일화해줌. API에대한 인증과 인가 기능에서
서버 라우팅 기능까지 있다
-인증/인가에 대한 기능 : API 토큰 발급.
- API 라우팅 : 로드 벨런싱, 서비스와 클라이언트 별 엔드 포인트 제공
- 메디에시션 기능 : 메시지 포맷 변화, 프로토콜 변환
- 로깅/미러링 : API 호출 로깅
* 중요 : PaaS에 대해 중점적으로(IaaS, SaaS는 개념만), 레거시 시스템과 Cloud Native와의 차이
8. PaaS-TA 소개
8.1 개발 배경
- 전자정부 표준프레임워크 기반 Open Paas
- PaaS-TA는 클라우드 인프라 환경을 제어하면서 애플리케이션을 쉽게 개발하고 안정적으로 운영할 수 있도록
관리/지원하는 클라우드 플랫폼
8.2 핵심 기능
- 오프소스 PaaS 검증/안정화
- 다양한 IaaS 지원
- 표준프레임워크 및 국산 SW 탐재
- 설치 자동화
8.3 특징
- 글로벌하게 검증된 오픈 소스를 활용하여 개발됨
- 전체가 오픈 라이선스인 아파치 라이선스로 개방
8.4 장점
- 기존 IaaS 제공 기업을 PaaS-TA를 활용함으로써 경쟁력 강화 기능
- 7동 이상의 다양한 IaaS 지원
- 풍부한 개발/운영환경 제공 - 다양한 개발 언어(추가 가능) 10종 프레임 워크, 국산 SW 서비스 지원
- 통합관제 지원
8.5 구성 요소
- 인프라 제어 및 관리 서비스
- 실행 환경 - 애플리케이션의 개발 및 배포, 실행/운영 관리를 위한 서비스 제공
- 서비스 환경 - 다양한 대외 백엔드 플랫폼 서비스와 연계를 위한 대외 서비스 브로커를 제공
- 개발 환경 - 응요애플리케이션을 개발 및 배포, 온영하기 위한 포털과 서비스 제공
- 인프라 제어 및 연동, 어플리케이션 플랫폼을 위한 관리 서비스
문제 :
Q 클라우드 모델에 관련한 문제입니다.
- 다음 중 클라우드 모델의 특성에 대해 잘못 설명한 것은?
CaaS : 컨테이너 관점에서의 서비스를 제공한다
FaaS : Function as a service의 약어로 서비스 관점에서 기능을 제공한다
PaaS : 어플리케이션 실행환경 및 어플리케이션 개발 환경을 서비스로 제공한다
SaaS : 개발자들이 업무에서 사용하는 소프트웨어의 기능을 쉽게 개발할 수 있도록 서비스를 제공한다
IaaS : CPU, 메모리, 네트워크 등 인프라에 대한 서비스를 네트워크로 제공한다
Q Cloud의 이해
- 다음 중 클라우드의 특징으로 올바르지 않은 것은?
사업자의 컴퓨팅 리소스를 공유하는 형태이다
기간 당 요금을 지불하는 구독 형태로 서비스를 제공한다
주문형 셀프 서비스로 사업자와 직접 상호작용하지 않고 서비스를 이용할 수 있다
모바일 기기 등 다양한 디바이스를 통해 서비스에 접속할 수 있다.
필요에 따라 스케일 업과 스케일 다운이 가능하다
참고 : PaaS-TA 전문가 육성 교육 자료
'Programming > Paas-TA' 카테고리의 다른 글
PaaS-TA 교육 4일차 (0) | 2021.05.25 |
---|---|
PaaS-TA 교육 3일차 (2) | 2021.05.25 |
PaaS-TA 교육 2일차 (0) | 2021.05.21 |