본문 바로가기
개발/기타

DevOps란

by 궁즉변 변즉통 통즉구 2022. 3. 1.
반응형

DevOps

  • 개발(Dev)과 운영(Ops)의 합성어
  • 개발자와 운영자 간의 소통, 협업, 통합을 강조하는 개발문화, 방법론, 프로세스, 도구 등을 의미
  • 개발조직과 운영조직 간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적

DevOps 도입 배경

It's not my code, it's your machines!
  • 일반적으로 SW를 개발하는 팀과 개발된 서비스를 운영하는 운영팀으로 나누어지게 되는데, 이 개발팀과 운영팀 간의 프로세스, 도구의 차이, 서로 다른 목적 등으로 빈번한 충돌이 발생한다. 이런 문제를 근본적으로 해결을 위해서는 시스템과 프로그램 도입 이외에, 개발팀과 운영팀의 협업,소통,통합 그리고 문화적 개선 등 다양한 노력이 필요(DevOps).
    - Development: 빠르게 변하는 경쟁 환경에 대응이 목적, 새로운 것과 신기술을 적용하여 시스템에 적용하기를 원함
    - Operations: 고객에 안정적이고 신뢰할 수 있는 서비스 제공이 목적, 변화는 항상 불안정성을 내포하고 있어 운영자들에게 적
  • Agile 개발방법론이 도입되면서 더 빨라진 배포, 더 비번해진 빌드, 새로운 요구 조건에 대한 빠른 개발과 응대 등으로 개발팀에 많은 변화를 가져옴. 하지만 이 변화는 운영팀에게는 더 많은 부하와 운영적인 문제점을 촉발하여 개발팀과 운영팀 간의 충돌과 이슈가 발생함. 이에 대한 개선의 요구로 빌드,배포,테스틑 등 개발과 운영의 전반적인 주기에 자동화 필요(DevOps)
[ Agile 개발 원칙 ]
1. 우리의 최우선 순위는 가치있는 소프트웨어를 일찍, 그리고 지속적으로 전달해서 고객을 만족시키는 것이다
2. 비록 개발의 후반부일지라도 요구사항 변경을 환영하라. 애자일 프로세스들은 변화를 활용해 고객의 경쟁력에 도움이 되게 한다.
3. 작동하는 소프트웨어를 자주 전달하라. 2주에서 2개월 간격으로 하되, 더 짧은 기간을 선호하라
4. 비즈니스 쪽의 사람들과 개발자들은 프로젝트 전체에 걸쳐 날마다 함께 일해야 한다.
5. 동기가 부여된 개인을 중심으로 프로젝트를 구성하라. 그들이 필요로 하는 환경과 지원을 주고 그들이 일을 끝내리라고 신뢰하라.
6. 개발팀, 개발팀 내부에서 정보를 전달하는 가장 효율적이고 효과적인 방법은 면대면 대화이다.
7. 작동하는 소프트웨어가 진척의 주된 척도이다.
8. 애자일 프로세스들은 지속 가능한 개발을 장려한다. 스폰서, 개발자, 사용자는 일정한 속도를 계속 유지할 수 있어야 한다.
9. 기술적 탁월성과 좋은 설계에 대한 지속적 관심이 민첩성을 높인다.
10. 단순성 즉, 안 하는 일의 양을 최대화하는 기술이 필수적이다.
11. 최고의 아키텍처, 요구사항, 설계는 스스로 조직된 팀에서 나온다.
12. 팀은 정기적으로 어떻게 더 효과적이 될지 숙고하고, 이에 따라 팀의 행동을 조율하고 조정한다.

 

DevOps 구성요소

1. 문화적 구성요소

  • 개발자, 운영자간의 상호 배려 및 존중
  • 자유로운 토론 환경 만들기
  • 남 탓하지 않기(책임 공유)
  • '완료'되었다고 책임 회피하지 않기(성공과 실패는 개발/운영 양쪽 모두 책임)

출처: 아마존 웹 서비스로 시작하는 데브옵스

 

2. 기술적 구성요소

  • 어플리케이션 및 어플리케이션 실행 환경 모두 코드 기반 관리
  • 버전 관리
  • 빌드/배포 자동화를 통해 조금씩 자주 배포 실행
  • 빠른 장애 대응

출처: 아마존 웹 서비스로 시작하는 데브옵스

한번에 많은 것을 투자해서 DevOps를 도입할 수도 있지만 작은 규모부터 점진적으로 도입 및 적용을 해보면서 검증하고 확대해 나가는 것이 좋을 것 같다.

반응형

댓글