이러한 특징을 DevOps라고 한다.
DevOps에서는 처음에 시스템이 기획되고, 구현되고 테스트-배포되는 과정을 시스템이 종료될 때까지 무한히 반복함으로써 고객이 원하는 최선의 결과물을 만드는 것이 목적이다.
또한 이러한 작업을 통해 고객의 변경되는 요구 사항과 오류, 개선 사항에 대해 기민하게 대처할 수 있다.
이러한 요구사항 반영과 개발된 내용의 잦은 테스트가 전체 일정을 지연시킬 수는 있으나, 본질적인 목적인 고객의 요구 사항을 충족시키며 에러 없이 동작하는 목적에는 부합한다. 클라우드 어플리케이션은 이러한 DevOps 환경에 맞추어 서비스의 구조를 작은 단위로 분할할 수 있게 함으로써 더 자주 통합 및 테스트를 수행하여 배포할 수 있는 구조가 될 수 있다.
가상화는 클라우드 애플리케이션의 핵심적인 요소이다
로컬 환경에서 운영하고 유지해야 했던 시스템은 클라우드 환경으로 이전하여 하드웨어 및 서버 가상화보다 적은 리소스로 가상화 서ㅣㅂ스를 구축할 수 있다.
가상 머신은 시스템이 가지고 있는(호스트 머신) 하드웨어를 쪼개 사용하는 개념으로, 호스트 OS에 많은 부하를 주게 되기 때문에 확장에 한계가 존재한다.
컨테이너 가상화는 호스트와 공통 라이브러리 및 리소스를 공유하여 사용하기 때문에, 각자 필요한 부분에 대해서만 독립적 영역인 컨테이너를 통해 실행한다. 따라서 리소스의 사용량이 적다
12 팩터스는 PaaS 서비스를 제공하는 Heroku라는 개발 회사에서 12가지 항목을 제시하였다.
피보탈이라는 회사에서 12 factors에 3가지를 더하여 15 factors를 정의함