Cloud Native란
- “클라우드 네이티브”의 핵심은 애플리케이션을 어떻게 만들고 배포하는지에 있으며 위치는 중요하지 않다.
- 클라우드 서비스를 활용한다는 것은 컨테이너와 같이 민첩하고 확장 가능한 구성 요소를 사용해서 재사용 가능한 개별적인 기능을 제공하는 것을 의미한다. 이러한 기능은 멀티 클라우드와 같은 여러 기술 경계 간에 매끄럽게 통합되므로 제공 팀이 반복 가능한 자동화와 오케스트레이션을 사용해서 빠르게 작업 과정을
반복할 수 있다 - 앤디 맨, Chief Technology Advocate at Splunk
- 신축성(Resiliency)
- 민첩성(Agility)
- 확장 가능성(Scalable)
- 자동화(Automation)
- 무상태(State-less)
DevOps
- 전통적 모델
- 개발과 운영 조직의 분리
- 다른 쪽으로 일을 던진 후에 알아서 처리 하라며 잊어버리는 방식
- DevOps
- You run it, you build it. 만들면 운영까지 - 베르너 보겔스, 아마존 CTO
- 개별 팀은 프로젝트 그룹이 아닌 제품(Product) 그룹에 소속
- 운영과 제품 관리 모두가 포함되는 조직적 구조, 제품 팀은 소프트웨어를 만들고 운영하는 데 필요한 모든 것을 보유
Twelve-Factors (https://12factor.net/ko/)
- 12 Factors
- Heroku 클라우드 플랫폼 창시자들이 정립한 애플리케이션 개발 원칙 중 유익한 것을 모아서 정리한 것
- 탄력적(elastic)이고 이식성 있는(portability) 배포를 위한 베스트 프랙티스(Best Practices)
- 핵심 사상
- 선언적 형식으로 설정을 자동화해서 프로젝트에 새로 참여하는 동료가 적응하는 데 필요한 시간과 비용을 최소화한다.
- 운영체제에 구애받지 않는 투명한 계약을 통해 다양한 실행 환경에서 작동할 수 있도록 이식성을 극대화 한다.
- 현대적인 클라우드 플랫폼 기반 개발을 통해 서버와 시스템 관리에 대한 부담을 줄인다.
- 개발과 운영의 간극을 최소화해서 지속적 배포(continuous deployment)를 가능하게 하고 애자일성을 최대화한다.
- 도구, 아키텍처, 개발 관행을 크게 바꾸지 않아도 서비스 규모 수직적 확장이 가능하다
Twelve Factors - 12가지 제약 조건