Cloud Foundry란? <hr>

VM웨어에서 출시한 Open PaaS로 어플리케이션의 배포, 운영을 간소화하기 위해 설계한 플랫폼.
개발자들에게 폭넓은 런타임, 프레임워크, 백엔드서비스를 선택할 수 있는 자유를 제공. 사용자가 NodeJs, JAVA, Python 등 다양한 개발 프레임워크를 선택하여 개발할 수 있음


PaaS란? <hr>

PaaS는 개발자를 위한 일련의 서비스로, 개발자들이 기반 인프라스트럭처에 대해 신경 쓰지 않고 앱을 개발하고 테스트할 수 있게 해준다. 개발자들은 앱을 개발해 내놓는 과정에서 서버, 스토리지, 백업 프로비저닝에 대해 걱정하고 싶어하지 않는다. 그저 코드를 작성하고 앱을 테스트하고 출시한 후 지속적으로 버그를 수정하는 데 전념하고 싶어한다. 서버 설비와 관련된 모든 백엔드 작업은 자동으로, 개발자가 인지하지 못하는 사이에 백그라운드에서 이루어져야 하는데, PaaS의 역할이 바로 그것이다.

  • SaaS : 제품 자체 ( 내가 사용하고자 하는 제품이 이미 클라우드 위에 존재한다면 그냥 가져다가 쓰기)
  • PaaS : 제품 개발 환경(만들고자 하는 제품이 없다면 제품을 만들 환경을 제공 받아 그 위에 코드를 직접 짜서 제품 개발, 서버,스토리지 등의 개발 환경에 대한 부분을 크게 고민하지 않아도 됨)
  • IaaS : 서버를 운영하기 위한 자원을 커스터 마이징 하여 PaaS 환경을 조금 더 나의 WorkLoad에 맞게 커스터마이징 가능


프로비저닝이란? <hr>

어떤 종류의 서비스든 사용자의 요구에 맞게 시스템 자체를 제공 하는 것을 프로비저닝이라고 하며 제공해줄 수 있는 것은 인프라 자원이나 서비스, 또는 장비가 될 수도 있다.
“프로비저닝은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.”


미들웨어란? <hr>

클라이언트(사용자) 프로그램과 서버 프로그램 사이에 존재하면서 클라이언트와 서버간에 연결을 유지/관리하면서, 클라이언트의 작업 처리요구를 서버에 전달하는 일을 한다. 클라이언트와 서버의 통신은 물론 다중 클라이언트에 대한 부하분산, 트랜잭션 처리, 보안 등 다양한 역할을 담당한다.
예를들어, 10대의 컴퓨터의 트랜잭션을 처리할 수 있는 서버의 경우 특정 이벤트시 100~200대 컴퓨터의 트랜잭션이 들어오게 되면 서버가 다운될 수 있다. 하지만 서버와 클라이언트 사이에 미들웨어를 두고 부하분산 기능을 수행하도록 하면 추가적인 서버 설치 없이도 서버의 다운을 막을 수 있고, 적절한 트랜잭션을 처리할 수 있다.