맨위로가기

클라우드 파운드리

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

클라우드 파운드리는 2009년 VMware에서 개발을 시작한 오픈 소스 플랫폼으로, 애플리케이션의 개발, 배포, 관리를 지원한다. 2015년 클라우드 파운드리 재단이 설립되어 오픈 소스 소프트웨어로 관리되며, 다양한 언어와 프레임워크를 지원하고 여러 클라우드 환경에서 애플리케이션을 실행할 수 있다. 사용자는 'cf' 명령 줄 인터페이스를 통해 애플리케이션을 배포하고, 서비스 브로커 API를 통해 외부 자원에 접근할 수 있다.

더 읽어볼만한 페이지

  • 클라우드 컴퓨팅용 자유 소프트웨어 - 쿠버네티스
    쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링, 관리하는 오픈 소스 시스템으로, 구글의 Borg 시스템에서 영감을 받아 설계되었으며 파드, 서비스 등의 기능을 제공하여 클라우드 네이티브 환경에서 중요한 역할을 한다.
  • 클라우드 컴퓨팅용 자유 소프트웨어 - 아파치 하둡
    아파치 하둡은 대용량 데이터를 분산 처리하기 위한 자바 기반의 오픈 소스 프레임워크로, HDFS, 맵리듀스, YARN 등의 모듈로 구성되어 클라우드 환경에서도 사용된다.
  • 리눅스 재단 프로젝트 - 하이퍼레저
    하이퍼레저는 리눅스 재단에서 주도하는 오픈소스 블록체인 프로젝트로, 산업 전반의 블록체인 기술 협력 및 발전을 목표하며 글로벌 비즈니스 거래를 지원하기 위해 시스템 성능과 안정성 향상에 중점을 두고 다양한 하위 플랫폼과 도구를 제공하는 것이 특징이다.
  • 리눅스 재단 프로젝트 - 쿠버네티스
    쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링, 관리하는 오픈 소스 시스템으로, 구글의 Borg 시스템에서 영감을 받아 설계되었으며 파드, 서비스 등의 기능을 제공하여 클라우드 네이티브 환경에서 중요한 역할을 한다.
  • 루비로 작성된 자유 소프트웨어 - 루비 온 레일즈
    루비 온 레일즈는 데이비드 헤이네마이어 한손이 개발한 MVC 아키텍처 기반의 웹 애플리케이션 프레임워크로, "설정보다 관례"와 "반복 금지" 원칙을 핵심 철학으로 삼아 다양한 웹 서비스 개발에 사용되며 다른 프레임워크에 영향을 주었다.
  • 루비로 작성된 자유 소프트웨어 - Travis CI
    Travis CI는 소프트웨어 프로젝트의 지속적인 통합 및 제공을 위한 서비스로, `.travis.yml` 파일로 구성되며 GitHub와 연동하여 빌드를 실행하고 테스트 결과를 제공한다.
클라우드 파운드리 - [IT 관련 정보]에 관한 문서
일반 정보
이름클라우드 파운드리
영어 이름Cloud Foundry
종류클라우드 컴퓨팅
라이선스아파치 라이선스 2.0
개발
개발 주체클라우드 파운드리 재단
최초 출시2011년
프로그래밍 언어Go, 루비, Java
기타
웹사이트클라우드 파운드리 공식 웹사이트

2. 역사

클라우드 파운드리는 2009년 VMware 내부에서 데릭 콜리슨(Derek Collison)이 이끄는 소규모 팀에 의해 'Project B29'라는 이름으로 처음 구상 및 개발되었다.[2][3][4] 당시 VMware가 인수한 SpringSource가 보유했던 동명의 프로젝트 이름이 사용되었으나, 직접적인 기술적 연관성은 없다.[5]

2011년 4월, VMware는 클라우드 파운드리를 업계 최초의 개방형 서비스형 플랫폼(PaaS)으로 공식 발표했다. 이후 2012년 4월에는 대규모 분산 시스템의 배포 및 관리를 위한 오픈 소스 도구 체인인 BOSH가 공개되었다.[6]

2013년에는 VMware와 모회사 EMC가 클라우드 및 빅데이터 기술에 집중하기 위해 Pivotal을 설립하였고, 클라우드 파운드리를 포함한 관련 자산과 개발 조직이 Pivotal로 이관되었다.[7]

오픈 소스 프로젝트로서의 지속적인 발전과 중립적인 거버넌스 확보를 위해, 2014년 2월 '클라우드 파운드리 재단'(Cloud Foundry Foundation) 설립 계획이 발표되었으며,[8] 같은 해 12월 비영리 재단으로 공식 출범하였다.[10] 재단 설립에는 EMC, IBM, VMware, HP, SAP 등 다수의 글로벌 IT 기업들이 초기 멤버로 참여하여 개방형 생태계 구축의 기틀을 마련했다.

2. 1. 개발 배경

클라우드 파운드리는 2009년 VMware 내부에서 데릭 콜리슨(Derek Collison)이 이끄는 소규모 팀에 의해 'Project B29'라는 이름으로 처음 구상되고 개발되었다.[2][3][4] 당시에는 아마존 EC2용 자바 PaaS 프로젝트가 '클라우드 파운드리'라는 이름을 사용하고 있었는데, 이 프로젝트는 2008년 크리스 리차드슨(Chris Richardson)이 설립하여 2009년 SpringSource에 인수되었다.[5] 같은 해 VMware가 SpringSource를 인수했지만, 현재의 클라우드 파운드리는 원래 SpringSource 프로젝트와 직접적인 관련은 없으며, 해당 프로젝트 종료 후 이름을 이어받았다.

2011년 4월 12일, VMware는 클라우드 파운드리를 업계 최초의 개방형 PaaS(Platform as a Service)로 공식 발표했다. 1년 뒤인 2012년 4월에는 대규모 분산 서비스의 배포 및 관리를 위한 오픈 소스 도구 체인 BOSH가 공개되었다.[6]

클라우드 파운드리의 개발과 운영 주체는 변화를 거듭했다. 2012년12월 6일, VMware와 모회사 EMC는 클라우드 및 빅데이터 중심의 'Pivotal Initiative' 조직을 발표했다. 이후 2013년3월 7일 클라우드 파운드리 개발은 Pivotal로 이관되었고, 같은 해 4월 EMC와 VMware는 클라우드 파운드리, RabbitMQ, Spring 등을 포함한 자산을 기반으로 Pivotal을 공식 설립했다.[7]

2013년6월 6일에는 클라우드 파운드리 V1 서비스 종료와 함께 V2 출시 계획이 발표되었다. V2는 V1과 API 호환성이 없으며, Heroku의 Buildpack 채택, 주요 컴포넌트의 Go 언어 재작성, 리눅스 컨테이너 기반의 Warden에서 애플리케이션 실행 등 아키텍처가 크게 변경되었다.

오픈 소스 거버넌스를 강화하기 위해 2014년2월 24일, Pivotal은 'Cloud Foundry Foundation' 설립 계획을 발표했다.[8] 재단은 초기에 7개 플래티넘, 2개 골드 멤버로 구성될 예정이었으며, 같은 해 5월 8개 회원사가 추가되었다.[9] 2014년12월 9일, 'Cloud Foundry Foundation'은 비영리 법인으로 공식 설립되었고, 개발 프로젝트는 Linux Foundation Collaborative Project로서 지원을 받게 되었다. 설립 발표 당시 EMC, IBM, VMware, HP, SAP를 비롯해 후지쯔, NTT, 히타치, 도시바 등 총 44개 기업이 회원사로 참여했다.[10]

애플리케이션 실행 환경 개선 노력의 일환으로, 2014년3월 13일 기존의 DEA(Droplet Execution Agent)를 대체하고 Docker 등 다양한 환경을 지원하는 'Diego' 개발 프로젝트가 시작되었다. 2015년11월 7일, Pivotal은 자사의 유료 배포판인 Pivotal Cloud Foundry 1.6 버전에 Diego를 통합하여 제공하기 시작했다.

2. 2. 클라우드 파운드리 재단 설립

2014년 2월 24일, Pivotal은 클라우드 파운드리 개발의 거버넌스를 이관하기 위해 '클라우드 파운드리 재단' 설립 계획을 발표했다. 같은 해 12월 9일, 재단은 비영리 법인으로 공식 설립되었으며, 리눅스 재단의 협력 프로젝트(Linux Foundation Collaborative Project)로서 지원을 받게 되었다고 발표했다. 이 발표 시점에는 EMC, IBM, VMware, HP, SAP 등 주요 IT 기업과 함께 일본의 후지쯔, NTT, 히타치, 도시바 등 총 44개 기업이 참여했다.

이후 2015년 1월, 클라우드 파운드리 재단은 독립적인 비영리 501(c)(6) 리눅스 재단 협력 프로젝트로 정식 출범했다.[11] 재단 설립과 함께 클라우드 파운드리 소프트웨어(소스 코드 및 모든 관련 상표)는 오픈 소스 소프트웨어 재단에서 관리하게 되었다. 클라우드 파운드리는 주로 루비, Go, 자바로 작성되었다.[12] 2019년 2월 기준으로 재단은 65개의 회원사를 보유하고 있었다.[13]

재단은 모든 클라우드 파운드리 지적 재산을 보유하는 중립적인 역할을 수행한다. 지적 재산이 클라우드 파운드리에 기여되면 이는 재단의 소유가 되며, 501(c)(6) 조직 규정에 따라 영리 단체로 이전될 수 없다. 재단은 상표권과 커뮤니티의 집합 저작물에 대한 저작권이라는 두 가지 유형의 기여된 지적 재산을 관리한다. 또한, 모든 코드 기여를 사용하고 재허가할 수 있는 라이선스를 보유하지만, 개별 기여 코드에 대한 저작권을 직접 소유하지는 않는다.[14]

클라우드 파운드리 및 재단 설립과 관련된 주요 연혁은 다음과 같다.

날짜주요 내용
2011년 4월 12일VMware가 업계 최초의 개방형 PaaS(Platform as a Service)로 클라우드 파운드리를 처음 공개.
2012년 12월 6일VMware와 모회사 EMC가 클라우드 및 빅데이터 중심의 신규 조직 Pivotal Initiative 발표.
2013년 3월 7일VMware가 클라우드 파운드리 개발을 Pivotal로 이관.
2013년 6월 6일클라우드 파운드리 V1 서비스 종료 및 V2 출시 계획 발표. V2는 Heroku의 Buildpack 채용, Go 언어 재작성, Warden 컨테이너 사용 등 아키텍처 변경.
2014년 2월 24일Pivotal, 클라우드 파운드리 재단 설립 및 거버넌스 이관 계획 발표.
2014년 3월 13일애플리케이션 실행 환경인 DEA를 대체하고 Docker 등 다양한 환경을 지원하는 Diego 개발 프로젝트 시작.
2014년 12월 9일클라우드 파운드리 재단 공식 설립 발표 (비영리 법인, 리눅스 재단 협력 프로젝트). 초기 44개 기업 참여.
2015년 1월클라우드 파운드리 재단, 독립적 비영리 501(c)(6) 단체로 정식 출범.[11]
2015년 11월 7일Pivotal, 유료 배포판인 Pivotal Cloud Foundry 1.6 버전에 Diego를 통합하여 제공 시작.


3. 플랫폼

클라우드 파운드리 플랫폼은 클라우드 파운드리 재단을 통해 오픈 소스 소프트웨어로 제공되거나, 여러 상업 제공업체를 통해 소프트웨어 제품 또는 서비스 형태로 이용할 수 있다. 이는 개발자와 기업이 애플리케이션을 구축, 배포, 운영하기 위한 다양한 선택지를 제공한다.

3. 1. 개요

클라우드 파운드리 플랫폼은 클라우드 파운드리 재단을 통해 오픈 소스 소프트웨어로 제공되거나, 여러 상업 제공업체를 통해 소프트웨어 제품 또는 서비스 형태로 이용할 수 있다.

클라우드 파운드리는 오픈 소스 소프트웨어이므로 누구나 사용할 수 있다. 클라우드 파운드리 배포는 일반적으로 클라우드 파운드리 재단에서 관리하는 또 다른 오픈 소스 도구인 BOSH 배포 시스템을 사용하여 기본 인프라스트럭처와 상호 작용한다. 중국의 주요 검색 엔진인 바이두 웹사이트는 오픈 소스 클라우드 파운드리를 기반으로 구현되었다.[38]

과거 피보탈 소프트웨어(Pivotal Software)는 피보탈 클라우드 파운드리(Pivotal Cloud Foundry, PCF)라는 상용 버전을 제공했으며, 이는 아마존 웹 서비스(AWS)에서 호스팅되는 피보탈 웹 서비스(Pivotal Web Services, PWS)와는 별개로 설치 및 관리를 위한 추가 도구를 포함했다.

2015년 12월, 클라우드 파운드리 재단은 클라우드 파운드리 인증 제공업체의 자격 기준을 명시한 "클라우드 파운드리 PaaS 인증 프로그램"을 발표했다.[39] 클라우드 파운드리 기반 PaaS 제공업체는 다음과 같다.

3. 2. 오픈 소스 소프트웨어

클라우드 파운드리 플랫폼은 오픈 소스 소프트웨어인 클라우드 파운드리 재단을 통해, 또는 여러 상업 제공업체의 제품이나 서비스를 통해 이용할 수 있다.

클라우드 파운드리는 오픈 소스 소프트웨어이므로 누구나 이용 가능하다. 클라우드 파운드리 배포는 기반 인프라스트럭처와의 상호 작용을 위해 클라우드 파운드리 BOSH 배치 시스템(클라우드 파운드리 재단에서 관리하는 또 다른 오픈 소스 도구)을 사용한다. 바이두 웹사이트는 오픈 소스 클라우드 파운드리를 기반으로 구현되었다.[38]

피보탈 클라우드 파운드리(PCF)는 피보탈에서 제공하는 상용 버전이다. 이는 아마존 웹 서비스(AWS)에서 호스팅되며, 오픈 소스 기반의 피보탈 웹 서비스(PWS)에는 포함되지 않은 설치 및 관리 도구를 추가로 제공한다.

2015년 1월, 클라우드 파운드리 재단은 독립적인 비영리 501(c)(6) 리눅스 재단 협력 프로젝트로 설립되었다.[11] 재단 설립 이후, 클라우드 파운드리 소프트웨어(소스 코드 및 모든 관련 상표)는 이 재단에서 관리하게 되었다. 소프트웨어는 주로 루비, Go, 자바로 작성되었다.[12] 2019년 2월 기준으로 재단에는 65개의 회원사가 있었다.[13]

재단은 모든 클라우드 파운드리 지적 재산을 보유하며 중립적인 역할을 수행한다. 클라우드 파운드리에 기여된 지적 재산은 재단의 소유가 되며, 501(c)(6) 조직 규정에 따라 영리 단체로 이전될 수 없다. 재단은 상표와 커뮤니티 집합 저작물에 대한 저작권이라는 두 가지 유형의 기여된 지적 재산을 보유한다. 또한, 모든 코드 기여를 사용하고 재허가할 수 있는 라이선스를 가지지만, 해당 기여의 저작권을 직접 소유하지는 않는다.[14]

2015년 12월, 클라우드 파운드리 재단은 "클라우드 파운드리 PaaS 인증 프로그램"을 발표하여 클라우드 파운드리 인증 제공자의 자격 기준을 명시하였다.[39] 2016년 6월 기준 인증된 제공자 목록은 다음과 같다.

제공자
Atos Canopy
CenturyLink App Fog
GE Predix
HPE Helion Stackato 4.0
Huawei FusionStage
IBM Bluemix
Pivotal Cloud Foundry
SAP HANA Cloud Platform
Swisscom Application Cloud


3. 3. 상용 버전 및 인증 프로그램

클라우드 파운드리 플랫폼은 클라우드 파운드리 재단을 통해 오픈 소스 소프트웨어로 이용하거나, 여러 상업 제공업체를 통해 제품 또는 서비스 형태로 이용할 수 있다.

오픈 소스 버전의 클라우드 파운드리는 누구나 사용할 수 있으며, 배포 시에는 클라우드 파운드리 재단에서 관리하는 또 다른 오픈 소스 도구인 BOSH 배포 시스템을 사용하여 기반 인프라스트럭처와 상호 작용한다.

상용 버전으로는 피보탈에서 제공하는 피보탈 클라우드 파운드리(Pivotal Cloud Foundry, PCF)가 있다. PCF는 아마존 웹 서비스(AWS)에서 호스팅되는 피보탈의 오픈 소스 기반 서비스인 피보탈 웹 서비스(Pivotal Web Services, PWS)에는 포함되지 않은 설치 및 관리용 추가 도구들을 제공한다.

2015년 12월, 클라우드 파운드리 재단은 클라우드 파운드리 인증 제공자의 자격 기준을 명시한 "클라우드 파운드리 PaaS 인증 프로그램"을 발표하였다.[39] 2016년 6월 기준으로 인증된 제공자들은 다음과 같다.

제공자서비스명/링크
아토스[https://canopy-cloud.com/ Atos Canopy]
센추리링크[https://web.archive.org/web/20170207202828/https://www.ctl.io/appfog/ CenturyLink App Fog]
GE[https://www.ge.com/digital/predix GE Predix]
휴렛 팩커드 엔터프라이즈[https://www.hpe.com/us/en/software/multi-cloud-platform.html HPE Helion Stackato 4.0]
화웨이[http://e.huawei.com/us/solutions/technical/cloud-computing Huawei FusionStage]
IBM[https://www.ibm.com/cloud-computing/bluemix/ IBM Bluemix]
피보탈[https://pivotal.io/platform Pivotal Cloud Foundry]
SAP[https://hcp.sap.com/index.html SAP HANA Cloud Platform]
스위스콤[https://www.swisscom.ch/en/business/enterprise/offer/cloud-data-center-services/paas/application-cloud.html Swisscom Application Cloud]


4. 사용법

클라우드 파운드리를 사용하기 위해서는 개발자가 주로 사용하는 명령줄 인터페이스(CLI) 도구인 `cf`가 필요하다. 이 도구는 Go 언어로 작성되었으며, 윈도우, macOS, 리눅스 운영체제에서 사용할 수 있도록 설치 파일이 제공된다.

`cf` CLI는 다양한 기능을 제공하지만, 애플리케이션을 클라우드 파운드리에 배포(deployment)할 때는 주로 `cf push` 명령어를 사용한다. 이 명령어는 배포할 애플리케이션의 이름, 실행할 인스턴스 개수, 각 인스턴스에 할당할 메모리 크기, 애플리케이션 접근에 사용할 URL 경로, 그리고 배포할 애플리케이션 원본 파일의 위치 등을 인수로 지정받는다.

예를 들어, 다음과 같은 명령어를 사용하여 자바 웹 애플리케이션을 배포할 수 있다.

cf push spring-music -i 2 -m 512M -n spring-music-v1 -p build/libs/spring-music.war

위 명령어의 각 부분은 다음과 같은 의미를 가진다.


  • `cf push spring-music`: `spring-music`이라는 이름으로 애플리케이션을 배포한다.
  • `-i 2`: 애플리케이션 인스턴스를 2개 실행한다. (자바 웹 애플리케이션의 경우, 기본적으로 톰캣 인스턴스 2개가 생성될 수 있다.)
  • `-m 512M`: 각 인스턴스에 512MB의 메모리를 할당한다.
  • `-n spring-music-v1`: 애플리케이션에 접근할 URL의 경로(호스트 이름) 부분을 `spring-music-v1`로 설정한다.
  • `-p build/libs/spring-music.war`: 배포할 웹 아카이브(WAR) 파일이 `build/libs/spring-music.war` 경로에 있다는 것을 지정한다.


모든 클라우드 파운드리 환경은 하나 이상의 도메인을 관리한다. 예를 들어, 피보탈 웹 서비스(PWS) 환경에서는 기본적으로 `cfapps.io` 도메인을 사용한다. 따라서 위의 예시처럼 `spring-music` 애플리케이션을 PWS에 배포하고 `-n spring-music-v1` 옵션을 사용했다면, 최종적으로 접근 가능한 URL은 `spring-music-v1.cfapps.io`가 된다.

사용자들은 일반적으로 애플리케이션의 수명 주기 단계(예: 개발, QA, 운영)와 일치하는 하나 이상의 '스페이스(space)'에 대한 접근 권한을 가진다. 예를 들어, QA 테스트를 위해 준비된 애플리케이션은 해당 프로젝트의 QA 스페이스에 `push` 명령어를 사용하여 배포할 수 있다. 각 사용자는 역할에 따라 접근할 수 있는 스페이스가 제한될 수 있다.

다음은 더 간단한 `cf push` 명령어의 예시이다.[32]

cf push APP-NAME-1234 -i 2 -m 512M

이 명령은 `APP-NAME-1234`라는 이름의 애플리케이션을 각각 512MB의 메모리를 가진 두 개의 컨테이너에 배포한다.

4. 1. 특징

클라우드 파운드리는 전 세계 조직에서 사용하는 대표적인 멀티 클라우드 애플리케이션 플랫폼이다. 초기 개발 단계부터 모든 테스트 단계를 거쳐 최종 배포에 이르기까지, 애플리케이션의 전체 수명 주기를 지원하므로 지속적 배포 및 지속적 전달 방식에 적합하다.

클라우드 파운드리의 컨테이너 기반 아키텍처는 AWS, 마이크로소프트 애저, GCP, 오픈스택, VM웨어 vSphere, VM웨어 Photon, IBM 소프트레이어 등 다양한 클라우드 서비스 환경 위에서 어떤 프로그래밍 언어로 작성된 애플리케이션이든 실행할 수 있게 해준다. 이러한 멀티 클라우드 환경 덕분에 개발자들은 특정 애플리케이션 워크로드에 가장 적합한 클라우드 플랫폼을 선택하여 활용할 수 있으며, 필요하다면 애플리케이션 코드 변경 없이 몇 분 안에 해당 워크로드를 다른 클라우드 환경으로 이전할 수도 있다.

사용자들은 일반적으로 하나 이상의 '스페이스'(space)에 대한 접근 권한을 부여받는다. 이 스페이스는 개발, QA(품질 보증), 운영 등 애플리케이션 수명 주기의 특정 단계와 일치하는 경우가 많다. 예를 들어, QA 테스트를 위해 준비된 애플리케이션은 해당 프로젝트의 QA 스페이스에 배포(push)될 수 있다. 각 사용자는 서로 다른 스페이스에 대한 접근 권한과 제약을 가질 수 있다.

개발자들은 클라우드 파운드리를 사용하기 위해 ''cf''라는 명령 줄 인터페이스(CLI) 도구가 필요하다. 이 도구는 Go 언어로 작성되었으며, 윈도우, macOS, 리눅스 운영체제용 설치 파일을 제공한다.

''cf'' 유틸리티는 다양한 옵션을 제공하지만, 애플리케이션 배포에는 주로 ''cf push'' 명령어가 사용된다. 이 명령어는 배포할 애플리케이션의 이름, 실행할 인스턴스 개수, 각 인스턴스에 할당할 메모리 크기, 애플리케이션 접근에 사용할 URL 경로, 그리고 배포할 애플리케이션 원본 파일의 위치 등을 인수로 지정받는다. 예를 들면 다음과 같다.

cf push spring-music -i 2 -m 512M -n spring-music-v1 -p build/libs/spring-music.war

위 명령어는 ''spring-music''이라는 이름의 자바 웹 애플리케이션을 배포한다. `-i 2` 옵션은 2개의 인스턴스를 생성하라는 의미이며(이 경우 기본적으로 2개의 아파치 톰캣 인스턴스가 생성된다), `-m 512M` 옵션은 각 인스턴스에 512MB의 메모리를 할당하도록 지정한다. `-n spring-music-v1`은 애플리케이션에 접근할 URL의 경로 부분을 ''spring-music-v1''으로 설정하고, `-p build/libs/spring-music.war`는 배포할 웹 아카이브(WAR) 파일이 ''build/libs/spring-music.war''에 있음을 나타낸다.

모든 클라우드 파운드리 인스턴스는 하나 이상의 도메인을 관리한다. 예를 들어, 피보탈 웹 서비스(PWS) 환경에서는 모든 애플리케이션이 ''cfapps.io''라는 도메인을 통해 접근된다. 따라서 위의 ''spring-music'' 애플리케이션이 PWS에 배포되었다면, 최종 접근 URL은 ''spring-music-v1.cfapps.io''가 된다.

애플리케이션이 클라우드 파운드리에 배포될 때, 해당 애플리케이션을 실행하기 위한 이미지가 생성되어 내부적으로 저장된다. 그 후, 이 이미지는 실행을 위해 'Warden' 컨테이너에 배치된다. 만약 여러 개의 인스턴스를 실행하도록 설정했다면, 여러 개의 이미지가 각각 다른 Warden 컨테이너 위에서 시작된다. 이 과정에서 BOSH가 중요한 역할을 하는데, 클라우드 파운드리의 내부 컨트롤러는 BOSH를 사용하여 기반 인프라스트럭처(주로 가상 머신)를 관리하고, 이 인프라 위에서 Warden 컨테이너들을 실행시킨다. 애플리케이션이 삭제되면, 해당 애플리케이션에 속한 모든 컨테이너는 파괴되고 사용했던 자원은 다른 애플리케이션이 사용할 수 있도록 반환된다.

만약 실행 중인 애플리케이션 인스턴스에 충돌이 발생하면, 해당 컨테이너는 자동으로 종료되고 즉시 새로운 Warden 컨테이너가 시작되어 서비스를 지속한다. 각 컨테이너는 오직 하나의 애플리케이션만을 실행함으로써 애플리케이션 간의 격리, 보안, 회복력을 보장한다.

클라우드 파운드리 환경의 가장 앞단에는 부하 분산 라우터가 위치한다. 이 라우터는 외부로부터 들어오는 요청들을 받아, 해당 요청을 처리해야 하는 애플리케이션이 실행 중인 여러 컨테이너들 중 적절한 곳으로 요청을 분배하는 역할을 수행한다.

4. 2. 개발 및 배포

클라우드 파운드리는 전 세계의 다양한 조직에서 사용하는 대표적인 멀티 클라우드 애플리케이션 플랫폼이다. 초기 개발 단계부터 모든 테스트 단계를 거쳐 최종 배포에 이르기까지, 애플리케이션의 전체 수명 주기를 지원하므로 지속적 전달 및 지속적 배포 방식에 적합하다. 클라우드 파운드리는 컨테이너 기반 아키텍처를 채택하여, AWS, 마이크로소프트 애저, GCP, 오픈스택, VM웨어 vSphere, VM웨어 Photon, IBM 소프트레이어 등 다양한 클라우드 서비스 환경 위에서 어떤 프로그래밍 언어로 작성된 애플리케이션이든 실행할 수 있다. 이러한 멀티 클라우드 환경은 개발자가 특정 애플리케이션의 작업 부하(workload)에 가장 적합한 클라우드 플랫폼을 선택하여 활용하고, 필요에 따라 애플리케이션 코드 변경 없이 몇 분 만에 다른 클라우드 환경으로 워크로드를 이전할 수 있게 해준다.

사용자들은 일반적으로 애플리케이션 수명 주기 단계(예: 개발, QA, 운영)에 맞춰 설정된 하나 이상의 '스페이스(space)'에 대한 접근 권한을 가진다. 예를 들어, QA 테스트 준비가 완료된 애플리케이션은 해당 프로젝트의 QA 스페이스에 배포(push)할 수 있다. 각 사용자는 역할에 따라 서로 다른 스페이스에 대한 접근 권한 및 제약을 가질 수 있다.

개발자들은 클라우드 파운드리 환경과 상호작용하기 위해 주로 `cf` 명령 줄 인터페이스(CLI) 도구를 사용한다. 이 도구는 Go 언어로 작성되었으며, 윈도우, macOS, 리눅스 운영체제용 설치 파일을 제공한다.

`cf` CLI는 다양한 기능을 제공하지만, 애플리케이션을 배포할 때는 주로 `cf push` 명령어를 사용한다. 이 명령어는 배포할 애플리케이션의 이름, 인스턴스 수, 사용할 메모리 양, 접근 URL 호스트 이름, 애플리케이션 소스 파일 위치 등의 정보를 인수로 받는다. 예를 들어, 특정 자바 웹 애플리케이션을 배포하는 명령어는 다음과 같다.

cf push spring-music -i 2 -m 512M -n spring-music-v1 -p build/libs/spring-music.war

위 명령어는 `spring-music`이라는 이름의 자바 웹 애플리케이션을 배포한다. `-i 2` 옵션은 애플리케이션 인스턴스를 2개 실행하도록 지정하며 (이 경우, 기본적으로 2개의 톰캣 인스턴스가 생성된다), `-m 512M` 옵션은 각 인스턴스에 512MB의 메모리를 할당하도록 한다. `-n spring-music-v1` 옵션은 애플리케이션에 접근할 호스트 이름(URL의 일부)을 `spring-music-v1`로 설정하고, `-p build/libs/spring-music.war` 옵션은 배포할 웹 아카이브 파일의 경로를 지정한다.

모든 클라우드 파운드리 인스턴스는 하나 이상의 도메인을 관리한다. 예를 들어, 피보탈 웹 서비스(PWS) 환경에 배포된 애플리케이션들은 기본적으로 `cfapps.io` 도메인을 통해 접근할 수 있다. 따라서 위 예시의 `spring-music` 애플리케이션이 PWS에 배포되었다면, 최종 접근 URL은 `spring-music-v1.cfapps.io`가 된다.

애플리케이션이 클라우드 파운드리에 배포될 때, 플랫폼은 해당 애플리케이션을 실행하기 위한 이미지를 생성하여 내부적으로 저장한다. 이 이미지는 실행을 위해 'Warden'이라는 컨테이너 기술을 사용하여 컨테이너 내부에 배치된다. 만약 여러 개의 인스턴스를 실행하도록 설정했다면(예: `-i 2`), 여러 개의 컨테이너 위에서 각각의 이미지가 실행된다. 이 과정에서 클라우드 파운드리의 내부 컨트롤러는 BOSH라는 도구를 사용하여 기반 인프라스트럭처(예: 가상 머신)를 관리하고 Warden 컨테이너를 실행시킨다. 애플리케이션이 삭제되면, 해당 애플리케이션에 속했던 모든 컨테이너는 파괴되고 사용했던 자원은 다른 애플리케이션이 사용할 수 있도록 반환된다.

만약 실행 중인 애플리케이션 인스턴스에 문제가 발생하여 충돌하면, 해당 컨테이너는 자동으로 종료되고 새로운 Warden 컨테이너가 즉시 시작되어 서비스를 지속한다. 각 컨테이너는 오직 하나의 응용 프로그램만 실행함으로써 격리 수준을 높이고 보안과 안정적인 복구를 보장한다.

클라우드 파운드리 환경의 가장 앞단에는 부하 분산 라우터가 위치한다. 이 라우터는 외부로부터 들어오는 요청을 받아 해당 요청을 처리해야 하는 애플리케이션으로 전달하고, 만약 해당 애플리케이션이 여러 인스턴스로 실행 중이라면 그중 하나의 가용 컨테이너로 요청을 분산시키는 역할을 한다.

간단한 `cf push` 명령어 예시는 다음과 같다.[32]

cf push APP-NAME-1234 -i 2 -m 512M

이 명령은 `APP-NAME-1234`라는 이름의 애플리케이션을 각각 512MB의 메모리를 가진 두 개의 컨테이너에 배포한다.

5. 서비스

클라우드 파운드리에 배포된 애플리케이션데이터베이스, 메시징 시스템, 파일 시스템과 같은 외부 자원에 접근하기 위해 서비스라는 개념을 이용한다.[40][15] 이는 플랫폼 내에서 외부 의존성을 추상화하여 관리하는 방식으로, 오픈 서비스 브로커 API 표준을 통해 외부 자원과 상호작용한다.

관리자는 사용자들이 필요에 따라 서비스를 요청하고 프로비저닝할 수 있도록 서비스 마켓플레이스를 구성할 수 있다. 애플리케이션을 배포할 때 필요한 서비스를 지정하면, 해당 서비스 접근에 필요한 자격 증명 정보가 환경 변수에 자동으로 추가되어 애플리케이션에서 사용할 수 있게 된다.

5. 1. 오픈 서비스 브로커 API

클라우드 파운드리에 배포된 애플리케이션들은 2016년 12월에 출시된 https://www.openservicebrokerapi.org/ 오픈 서비스 브로커 API를 통해 외부 리소스에 접근한다.[40]

플랫폼에서 데이터베이스, 메시징 시스템, 파일 시스템 등 모든 외부 종속성은 서비스로 간주된다. 클라우드 파운드리는 관리자들이 서비스 마켓플레이스를 만들 수 있게 하며, 여기에서 사용자들은 요청 시(온디맨드) 서비스를 프로비저닝할 수 있다. 애플리케이션이 클라우드 파운드리에 푸시(push)되면, 해당 애플리케이션이 필요로 하는 서비스들 또한 지정될 수 있다. 이 과정에서 서비스 접근에 필요한 자격 증명 정보가 환경 변수에 추가된다.

5. 2. 서비스 마켓플레이스

클라우드 파운드리에 배치된 애플리케이션들은 2016년 12월에 출시된 https://www.openservicebrokerapi.org/ 오픈 서비스 브로커 API를 통해 외부 자원에 접근한다.[40][15]

플랫폼 안에서 데이터베이스, 메시징 시스템, 파일 시스템 등 모든 외부 의존물들은 서비스로 간주된다. 클라우드 파운드리는 관리자들이 서비스 마켓플레이스를 만들 수 있게 하며, 사용자는 이 마켓플레이스를 통해 필요한 서비스를 온디맨드 방식으로 프로비저닝(자원 준비)할 수 있다. 애플리케이션을 클라우드 파운드리에 푸시(push)할 때 해당 애플리케이션이 필요로 하는 서비스를 지정하면, 이 과정에서 자격 증명 정보가 환경 변수에 추가된다.

배포된 애플리케이션은 서비스를 사용하여 데이터베이스나 파일 시스템과 같은 외부 리소스에 접근한다. 플랫폼에 미리 등록된 서비스는 `cf marketplace` 명령으로 확인할 수 있다. 이용하려는 서비스는 `cf create-service` 명령으로 서비스 인스턴스를 생성하고, `cf bind-service` 명령을 실행하여 외부 리소스를 이용하는 애플리케이션에 바인딩하여 사용한다.

Pivotal Web Services에서는 다음과 같은 서비스를 이용할 수 있으며, 그 외 클라우드 파운드리를 이용한 PaaS(서비스형 플랫폼) 사업자들은 각자 독자적인 통합 서비스를 제공하고 있다.

서비스설명
MySQL오픈 소스 RDBMS
vFabric PostgresPostgreSQL 기반 RDBMS
MongoDB확장 가능한 오픈 소스 문서 지향 데이터베이스
Redis오픈 소스 키-값 데이터 구조 서버
RabbitMQ애플리케이션을 위한 안정적이고 확장 가능한 메시징 시스템


6. 소프트웨어

컨테이너 기반 아키텍처로 시작된 클라우드 파운드리는 오픈 컨테이너 이니셔티브(OCI) 및 컨테이너 네트워크 인터페이스(CNI)와 같은 다른 프로젝트 및 표준과의 협력을 통해 컨테이너 혁신을 지원할 수 있다.[16][41]

애플리케이션은 주로 빌드팩(Buildpack) 수명 주기를 사용하여 배포되며, 다양한 언어와 프레임워크를 지원한다.[17][18] 빌드팩 수명 주기 외에도 도커 이미지로 패키지된 애플리케이션은 도커 수명 주기를 사용하여 배포할 수 있다.

BOSH-Lite Vagrant 가상 머신을 사용하여 버추얼박스AWS와 같은 환경에 클라우드 파운드리를 설치하는 것도 가능하다.[24][48]

6. 1. 관리 및 라이선스

클라우드 파운드리 재단은 2015년 1월, 독립적인 비영리 501(c)(6) 리눅스 재단 협력 프로젝트로 설립되었다.[11] 클라우드 파운드리 개발은 이 재단에 의해 통제된다.[41] 재단 설립 이후, 클라우드 파운드리 소프트웨어(소스 코드 및 모든 관련 상표)는 오픈 소스 소프트웨어 재단에서 관리하도록 이전되었다.[12]

재단은 모든 클라우드 파운드리 지적 재산을 보유하는 중립적인 역할을 한다. 지적 재산이 클라우드 파운드리에 기여되면 재단의 소유가 되며, 이러한 자산은 501(c)(6) 조직을 규율하는 법률에 따라 영리 단체로 이전될 수 없다. 재단은 상표와 커뮤니티의 집합 저작물에 대한 저작권이라는 두 가지 유형의 기여된 지적 재산을 보유하고 있다. 또한 모든 코드 기여를 사용하고 재허가할 수 있는 라이선스를 가지고 있지만, 해당 기여에 대한 저작권을 소유하지는 않는다.[14] 2019년 2월 기준으로, 재단은 65개의 회원을 보유하고 있었다.[13]

소스 코드는 주로 루비, Go, 자바로 작성되었으며[12], 아파치 라이선스 2.0으로 배포된다. 기여는 개인 또는 회사 자격의 클라우드 파운드리 기여자 라이선스에 의해 관리된다. 과거에는 Pivotal Software사의 개인 또는 법인 컨트리뷰터 라이선스 동의가 필요했는데, 이는 저작권 및 특허권 이용/보호를 Pivotal Software사에 제공하는 방식이었다. 이는 VM웨어가 획득하여 Pivotal Software로 이관한 스프링 프레임워크와 유사한 모델이다.

컨테이너 기반 아키텍처로 탄생한 클라우드 파운드리는 OCI, CNI와 같은 다른 프로젝트 및 표준과의 협업을 통해 컨테이너 혁신을 지원하며, 플랫폼이 산업 속도에 맞춰 발전할 수 있도록 한다.

일반적으로, 클라우드 파운드리는 사내에서 VM웨어의 vSphere 가상화 인프라스트럭처 위에 설치되지만, BOSH 사용 시 오픈스택으로의 배포(deployment)는 선택 사항이다.[47] 또한 BOSH-Lite Vagrant VM을 사용하여 버추얼박스AWS에 설치하는 것도 가능하다.[48][30]

지원되는 런타임 및 프레임워크는 다음을 포함한다:[42][43]

언어런타임프레임워크
자바자바 6, 자바 7, 자바 8스프링 프레임워크 3.x, 4.x
루비[44]루비 1.8, 루비 1.9, 루비 2.0, 루비 2.1, 루비 2.2, 루비 1.9.3(J루비 1.7을 통해), 루비 2.0.0(J루비 1.7을 통해), 루비 2.2.2 (J루비 9.0.0.0를 통해)레일즈, Sinatra
Node.jsV8 자바스크립트 엔진 (구글 크롬)Node.js
스칼라Scala 2.x플레이 2.x, 리프트
파이썬[45]2.7.10 buildpack default , 2.7.11, 3.3.5, 3.3.6, 3.4.3, 3.4.4, 3.5.0, 3.5.1파이썬
PHPPHP 5.5, PHP 5.6, PHP 7.0PHP
Go[46]Go 1.1.1, 1.1.2, 1.2.1, 1.2.2, 1.3.2, 1.3.3, 1.4.1, 1.4.2Go


6. 2. 지원 언어 및 프레임워크

컨테이너 기반 아키텍처에서 시작된 클라우드 파운드리는 오픈 컨테이너 이니셔티브(OCI) 및 컨테이너 네트워크 인터페이스(CNI)와 같은 다른 프로젝트 및 표준과의 협력을 통해 컨테이너 혁신을 지원할 수 있다.[41]

빌드팩(Buildpack) 수명 주기를 사용하여 배포할 수 있는 언어 및 프레임워크는 다음과 같다.[17][18][28][29][42][43]

언어프레임워크
자바스프링
루비[19][44]레일스, 시나트라
Node.jsNode.js
스칼라플레이, 리프트
.NET.NET 프레임워크
.NET Core.NET 코어 프레임워크
파이썬[20][45]파이썬
PHPPHP
Go[21][46]Go



빌드팩 수명 주기 외에도 도커 이미지로 패키지된 애플리케이션은 도커 수명 주기를 사용하여 배포할 수 있다.

6. 3. 인프라 지원

컨테이너 기반 아키텍처인 클라우드 파운드리는 오픈 컨테이너 이니셔티브(OCI) 및 컨테이너 네트워크 인터페이스(CNI)와 같은 다른 프로젝트 및 표준과의 협력을 통해 컨테이너 혁신을 지원한다.[16]

빌드팩(Buildpack) 수명 주기를 사용하여 배포할 수 있는 주요 언어 및 프레임워크는 다음과 같다.[17][18]

언어프레임워크
자바스프링
루비[19]레일스, 시나트라
Node.jsNode.js
.NET 프레임워크.NET 프레임워크
.NET Core.NET Core 프레임워크
파이썬[20]파이썬
PHPPHP
Go[21]Go



빌드팩 수명 주기 외에도 도커 이미지로 패키지된 애플리케이션은 도커 수명 주기를 사용하여 배포할 수 있다.

클라우드 파운드리 애플리케이션 런타임은 BOSH 프로젝트의 CPI(Cloud Provider Interface)를 통해 다양한 인프라 환경에 배포될 수 있다.[22] 지원되는 주요 인프라 제공업체는 다음과 같다.



2022년 10월 기준으로 IBM 클라우드에서는 더 이상 사용되지 않는다.[23]

또한, BOSH-Lite Vagrant 가상 머신을 사용하여 버추얼박스나 AWS와 같은 환경에 클라우드 파운드리를 설치하는 것도 가능하다.[24]

참조

[1] 뉴스 The Cloud Foundry Foundation: The Power of a 501(c)(6) {{!}} Cloud Foundry https://www.cloudfou[...] 2016-12-07
[2] 웹사이트 Charlie Dai's Blog http://blogs.forrest[...] 2017-03-03
[3] 간행물 Google's Go Appears on Brazilian Cloud https://www.wired.co[...] 2017-03-03
[4] 간행물 Cloud Foundry Evangelist Escapes VMware's Gravity https://www.wired.co[...] 2017-03-03
[5] 뉴스 SpringSource Acquires Cloud Foundry, Launches New Cloud Platform http://www.eweek.com[...] 2017-03-03
[6] 웹사이트 CloudFoundry attacks Google-style problem with BOSH https://gigaom.com/2[...] 2017-03-03
[7] 웹사이트 Pivotal Announces Pivotal CF Based on CloudFoundry https://www.infoq.co[...] 2017-03-03
[8] 웹사이트 Foundation Positions Cloud Foundry PaaS As Enterprise Standard https://www.enterpri[...] 2017-03-03
[9] 웹사이트 Cloud Foundry Foundation nets 8 new members https://gigaom.com/2[...] 2017-03-03
[10] 뉴스 Open Source PaaS Cloud Foundry Kicks Into High Gear {{!}} Data Center Knowledge http://www.datacente[...] 2017-03-03
[11] 뉴스 Cloud Foundry Foundation Matures--Becomes A Linux Foundation Collaborative Project https://www.forbes.c[...] 2016-12-07
[12] 뉴스 Review: Cloud Foundry brings power and polish to PaaS http://www.javaworld[...] 2016-12-23
[13] 웹사이트 Cloud Foundry Foundation looks east as Alibaba joins as a gold member – TechCrunch https://techcrunch.c[...] 2018-04-18
[14] 뉴스 Open Source Is Going Even More Open—Because It Has To https://www.wired.co[...] 2016-12-23
[15] 뉴스 Open Service Broker API Launches as Industry Standard - Cloud Foundry https://www.cloudfou[...] 2017-02-04
[16] 웹사이트 Cloud Foundry Foundation http://www.infoq.com[...] 2014-11-07
[17] 문서 Build packs http://docs.cloudfou[...] Cloud Foundry
[18] Wiki Build packs https://github.com/c[...] Git hub
[19] 웹사이트 Cloud Foundry ruby-buildpack Release Notes https://github.com/c[...] 2015-08-20
[20] 웹사이트 Cloud Foundry python-buildpack Release Notes https://github.com/c[...] 2016-03-14
[21] 웹사이트 Cloud Foundry go-buildpack Release Notes https://github.com/c[...] 2015-08-20
[22] 웹사이트 Deploying Cloud Foundry on OpenStack http://docs.cloudfou[...] 2014-11-07
[23] 웹사이트 Deprecation of IBM Cloud Foundry. Last updated 2022-10-31 https://cloud.ibm.co[...] 2022-11-29
[24] 문서 Run local https://docs.cloudfo[...] Cloud Foundry 2017-01-12
[25] 뉴스 Cloud Foundry Certified On 7 Public Clouds - InformationWeek http://www.informati[...] 2016-12-23
[26] 웹사이트 Governance By Contribution and the Cloud Foundry Foundation https://blog.pivotal[...] Pivotal Software, Inc. 2015-11-13
[27] 웹사이트 Review: Cloud Foundry brings power and polish to PaaS https://www.infoworl[...] 2020-11-30
[28] URL http://docs.cloudfou[...]
[29] URL https://github.com/c[...]
[30] URL http://docs.cloudfou[...]
[31] URL http://www.centuryli[...]
[32] 웹사이트 Pushing an App {{!}} Cloud Foundry Docs https://docs.cloudfo[...] 2020-11-30
[33] 뉴스 The Cloud Foundry Foundation: The Power of a 501(c)(6) {{!}} Cloud Foundry https://www.cloudfou[...] 2016-12-07
[34] 뉴스 Cloud Foundry Foundation Matures--Becomes A Linux Foundation Collaborative Project http://www.forbes.co[...] 2016-12-07
[35] 뉴스 Review: Cloud Foundry brings power and polish to PaaS http://www.javaworld[...] 2016-12-23
[36] 웹인용 Google Joins Cloud Foundry Foundation as Gold Member {{!}} The Linux Foundation https://www.linuxfou[...] 2016-12-23
[37] 뉴스 Open Source Is Going Even More Open—Because It Has To https://www.wired.co[...] 2016-12-23
[38] 웹인용 Baidu Turns to Open Source to Power Part of Its Empire http://www.wired.com[...] 2013-07
[39] 뉴스 Cloud Foundry Certified On 7 Public Clouds - InformationWeek http://www.informati[...] 2016-12-23
[40] 뉴스 Open Service Broker API Launches as Industry Standard - Cloud Foundry https://www.cloudfou[...] 2016-12-13
[41] 웹인용 Cloud Foundry Foundation http://www.infoq.com[...] 2014-03
[42] documentation Build packs http://docs.cloudfou[...] Cloud Foundry
[43] wiki Build packs https://github.com/c[...] Git hub
[44] 웹인용 Cloud Foundry ruby-buildpack Release Notes https://github.com/c[...]
[45] 웹인용 Cloud Foundry python-buildpack Release Notes https://github.com/c[...]
[46] 웹인용 Cloud Foundry go-buildpack Release Notes https://github.com/c[...]
[47] 웹인용 Deploying Cloud Foundry on OpenStack http://docs.cloudfou[...]
[48] documentation Run local https://docs.cloudfo[...] Cloud Foundry 2017-02-08



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com