Reference: [인프런] DevOps : Infrastructure as Code with Terraform and AWS 강좌 by 송주영님
완결된 요구사항
이 나올 것이라고 기대하지 않고, 요구사항이 변덕스로운 기획자나 고객의 마음이 당연한 것이라고 생각하기 시작함
- 소프트웨어 개발과 운영, 서비스의 효율적인 환경을 만들기 위해서 노력하는 개발 문화
- 소비자, 사용자들의 서비스 요구사항을 가장 빠르게 단순화하여 대응할 수 있는 신속한 서비스 지원형태, 그리고 그것을 지원하고 유지시켜주는 소프트웨어 개발 문화
- Development / Operations를 합친 말!
- 소비자, 사용자들의 서비스 요구사항을 가장 빠르게 단순화하여 대응할 수 있는 신속한 서비스 지원형태, 그리고 그것을 지원하고 유지시켜주는 소프트웨어 개발 문화
- DevOps는 빠르고, 단순하고, 신속한 서비스 형태를 지향한다
- 그리고 그것을 지원하고 유지시켜주는 소프트웨어 개발 문화를 지향한다
: DevOps를 통해 하나의 문화를 만들어 나간다
- 사람
- 팀, 인원, 가치, 의사소통
- 일 (Task)
- Process, 방법론
- 서비스
- 서비스의 가치, 성격
- 자원
- H/W, S/W, 기술, 도구
- 시간
- 일정, 변경 가능성, 회복 탄력성, 예측
: 자동화를 통해 효율성과 빠른 속도를 지향한다
-
인프라 및 보안
- 클라우드, 네트워크, 접근 제어, 암호화
-
언어 및 도구
- 프로그래밍 및 도구
-
지속적 통합 / 배포
- CI/CD Pipeline 구성 고려
-
모니터링
- 모니터링 시스템 및 장애 대응
: 지표를 측정하여 지속적으로 개선해 나간다
- 변경사항 발생 시 항상 측정
- Application 성능, 개발 속도 모니터링
- 지속적으로 나아지고 있는지, 아닌지 측정
- 의사결정 시 추측 배제
: 공유를 통해 함께 발전해 나간다
- 언제든 접근 가능한 투명한 데이터
- 지식의 공유, Open mind
- 문제 발생시 함께 해결
- 일의 가속도
: 기록을 축적하여 자산을 만들어 나간다
- 효율적으로 1만 시간의 법칙을 이루는 것
위의 DevOps의 5가지 철학을 바탕으로 정리
- 어떤 요구사항을 효율적으로 만족시키기 위하여,
- 일을 자동화하며
- 변경사항 지표들을 측정하고,
- 공유하고,
- 이 모든 결과물들을 지속적으로 축적해 나가는
- 문화를 만들어가는 철학, 방법론, 기술
: 속도와 효율화
- 현대의 서비스 (S/W)는 너무나도 복잡하다
- 기술 발전이 급속도로 이루어지고 있는 시대에서 이를 뒷받침 할 수 있는 개발 속도를 갖추는 것은 상당히 중요하다
- 여기서 말하는 개발 속도는 단순히 프로그래밍을 빠르게 하는 것을 의미하지 않는다
- Product 개발에서 발생하는 모든 과정 (구상, 운영, 개발, 디자인, 출시 등등)의 속도가 모두 중요하다
- 여기서 말하는 개발 속도는 단순히 프로그래밍을 빠르게 하는 것을 의미하지 않는다
- 이 모든 일련의 과정이 빠른 속도와 효율적인 방식을 통해 이루어져야 남들보다 앞서갈 수 있다
- 이러한 관점에서 대부분의 기업에서는 DevOps를 필요로 한다!
- 기술 발전이 급속도로 이루어지고 있는 시대에서 이를 뒷받침 할 수 있는 개발 속도를 갖추는 것은 상당히 중요하다
- 우리는 수많은 복잡한 문제들을 DevOps 철학과 방법론으로 풀어나갈 수 있다!
- 최소 인원으로 개발과 운영이 가능한 환경을 지향한다
- 서비스의 배포와 운영이 자유롭고, 서비스가 매우 신속하고 빠르게 운영된다
- 개발의 배포가 자동화되며, 그에 따라 고품질 서비스를 지향한다
- 잦은 배포를 수행하면서, 잦은 릴리즈를 수행하고,
- 잦은 릴리즈를 통해서 위험을 하향 균등화 시키는 것이 주 목적!
- Agile과 잘 맞는다
DevOps에 대해서 실현하기 위해서 노력하는 행위와 절차라고 볼 수 있다!
- 주요 기능에 집중하고 있는가?
- 품질을 내재화하기 위하여 노력하고 있는가?
- 개발에 필요한 지식을 창출하기 위해서 과학적으로 접근하고 있는가?
- 완벽한 명세서를 만들기 위한 비용보다, 협업을 중시하며 커뮤니케이션 비용을 지출하고 있는가?
- 가능한 한 빨리 개발하기 위해서 시도하고 있는가?
- 사람을 존중하는 개발자 문화를 만들고 있는가?
- 최적화를 위한 방안을 고안하는데 회의나 토론을 아까워하지 않고 있으며, 그것에 대해서 투자를 아낌없이 하고 있는가?