프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.
출처: https://ko.wikipedia.org/wiki/프로비저닝
한마디로 준비단계다.
어떤 서비스가 서비스를 하기 전에,
어떤 개발자가 프로젝트 개발을 시작하기 전에,
프로젝트 특성에 따라서는 개발을 들어가기 전에 해당 서비스의 특성에 맞는 환경 설정을 하는 것.
서비스를 다루기 위해 준비하는 것 이라고 느꼈다.
웹페이지를 서비스하는 프로젝트의 경우, 웹서버, WAS, DB, 언어, 라이브러리 들도 서버에 설치가 되어야 하고.
그렇게 서버에 설치 하기 전에 서버 컴퓨터에 OS도 설치하고... DB, 웹서버들도 다 설정을 해야 한다. 포트포워딩도 해야하고.. 나는 그래서 프로비저닝을 이렇게 서비스를 준비하는 과정이라고 이해했다.
근래에 상당히 큰 비중을 차지하고 있는 가상화 시스템, 클라우드 컴퓨팅 환경 등에서는
시스템 자원을 할당하고 배치 할 일이 많으며 바로바로 사용 할 수 있어야 하는 상황이 많다.
만약 컴퓨터 한대가 추가 될 때마다 동일한 개발 환경을 만들어야 하는데 이러한 개발환경을
매번 만들기엔 너무 리소스가 많이 들고 관리가 힘들어 질 수 있기 때문에 이런 프로비저닝을
자동화 하는 일이 많이 요구되고 있다.
물론, 이러한 프로비저닝을 손 쉽게 해주는 것.
즉, 프로비저닝 리소스를 줄일 뿐만 아니라, 버전등의 형상관리 또한 할 수 있도록 해주는것.
모두가 동일한 환경에서 프로젝트를 진행 할 수 있게 해주는 것들이 많이 있다.
Vagrant
- 가상머신 프로비저닝을 도와준다. Chef, Puppet등으로 소프트웨어 프로비저닝이 가능하다.
- 가상머신 메모리 설정, 쉘 스크립트 실행, 네트워크 설정, 포트포워딩 등..
Chef
- 소프트웨어 프로비저닝이 가능하다.
- APM세팅 등..