PaaS-TA 교육 1일차

Programming/Paas-TA 2021. 5. 20. 18:31 Posted by big_brother

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