본문 바로가기

좋아하는 것_매직IT/10.microservice

18.마이크로서비스, PaaS 그리고 클라우드 파운드리를 알아보자

반응형

PaaS(Platform as a Service)는 무엇인가?

  • PaaS는 사용자 정의 소프트웨어를 설치하고 실행할 수 있는 플랫폼을 제공함.
  • 개발자는 PaaS에 어플리케이션만 제공됨. 그리고 애플리케이션을 실행할 수 있게 함.
  • 도커나 쿠버네티스와 달리 개발자는 PaaS 운영체제와 PaaS 운영체제에 설치된 소프트웨어를 제어할 수 없음.
  • 런타임 환경에서 애플리케이션을 시작할 때 PaaS가 도커 컨테이너를 생성할 수 있음. 그러나, 어느 JVM과 리눅스 배포판을 결정할지는 오직 PaaS가 결정함.
  • 즉, PaaS는 다양한 타입의 애플리케이션을 실행할 준비가 돼 있어야 함. 그리고 적절한 환경을 생성할 수 있어야함.
  • 최신 PaaS는 다양한 환경을 지원하고 심지어 자체 환경을 구축할 수 있을 만큼 충분히 유연해지고 있음.
  • 참고페이지 : https://en.wikipedia.org/wiki/Platform_as_a_service

  

클라우드 파운드리란?

  • 클라우드 파운드리는 여러 회사가 참여하는 오픈소스 프로젝트.
    • Pivotal, SAP, IBM, Swisscom 과 같은 클라우드 파운드리 제공 업체에 속한 재단에 의해 관리되고 있음.
  • PaaS 의 대표적인 기술 사례 
  • 개발자가 마이크로서비스 시스템을 테스트할 수 있는 로컬 PaaS를 설치할 수 있도록 노트북에서 피보탈 클라우드 파운드리(Pivotal Cloud Foundry)로 로컬 개발환경을 쉽게 설치 할 수 있음.
  • 클라우드 파운드리 기반의 기능을 제공하는 많은 퍼블릭 클라우드 제공업체가 존재함.
  • 클라우드 파운드리 관련 참고페이지 : https://www.cloudfoundry.org        

기능 및 특징

  • 클라우드 파운드리는 다양한 프로그래밍 언어로 애플리케이션을 지원함.
  • 클라우드 파운드리 시스템에서 수정되거나 자체 작성된 빌드 팩을 설치할 수 있음. 이를 통해 추가 프로그램 언어를 지원하거나 기존 지원을 자신의 필요에 맞게 적용할 수 있음.
  • 빌드 팩의 설정, 메모리 설정을 변경하거나 다른 값을 조정을 할 수 있음.     
  • 빌드팩 목록 
  • 도커 컨테이너를 클라우드 파운드리 환경에 배포하는 것도 가능함

예시

장점

  • 마이크로서비스(로드밸런싱, 라우팅, 서비스탐색)의 일반적인 문제를 해결함.
  • 클라우드 파운드리에는 코드 의존성이 없음.
  • 운영과 배포를 포함함.
  • 표준화를 수행함으로써 매크로 아키텍처를 정의함
  • 개발자는 애플리케이션만 제공하면 됨.  

결론

  • 동기식 마이크로서비스의 경우 클라우드 파운드리의 솔루션은 쿠버네티스의 솔루션과 매우 유사함.
  • 서비스 탐색은 DNS 를 통해 동작함.
  • 클라어인트와 서버는 투명하고, 서비스 등록을 위해 코드를 작성할 필요가 없음.
  • 로드밸런싱은 클라우드 파운드리에서 투명하게 구현됨.
  • 마이크로서비스의 여러 인스턴스가 배포되면 요청은 인스턴스에 자동으로 분한됨.
  • 외부 요청 라우팅의 경우 클라우드 파운드리는 DNS에 의존하고 요청을 다양한 마이크로서비스 인스턴스로 분산함.
  • 복원력을 위해서, 클라우드 파운드리는 히스트릭스 라이브러리를 사용함. 
    • 현재, 클라우드 파운드리는 이 분야의 솔루션을 제공하지 않음.
  • 클라우드 파운드리는 높은 유연성을 제공하지만, 도커 컨테이너에 비하면 유연성은 여전히 한계가 존재함.
  • 참고) PaaS 외의 클라우드의 서비스의 정의

    • IaaS(Infrastructure as a Service)
      • 소프트웨어를 설치할 수 있는 가상 컴퓨터를 제공함.
      • 고전적인 가상화에 해당하는 간단한 솔루션.
      • 시간당 또는 분당 실제로 사용되는 자원에 대한 사용료를 청구함.
      • 참고페이지 : https://en.wikipedia.org/wiki/Infrastructure_as_a_service
    • SaaS(Software as a Service)
      • 소프트웨어를 대여할 수 있는 클라우드 제공 서비스를 나타냄.
      • 예시는 워드프로세싱 or 재무 회계 소프트웨어
      • 소프트웨어 개발의 경우 버전제어 또는 지속적 통합 서버를 SaaS에서 구입할 수 있음.
      • 참고페이지 : https://en.wikipedia.org/wiki/Software_as_a_service

  • 금일의 한마디 명언
    • 예술은 예술가의 형이상학적 가치 판단에 의거해 현실을 선택적으로 재창조한 결과다.  ☞ 에인 랜드, 『낭만주의선언』
728x90
300x250