DevOps

image

보통의 회사에서는 하나의 서비스를 개발팀과 운영팀 등 팀을 나눠서 서비스를 관리
그러나 이렇게 하나의 서비스를 팀으로 나눠서 관리하다보면 서로 추구하는 목적도 다르고 비효율적이고 의사소통도 쉽지 않을 것
     (예를 들어 개발팀은 계속 새로운 것을 도입하고 개발하고 싶지만, 운영팀은 안정성을 최우선으로 여기는,,,)

그래서 DevOps가 두둥 등장~ !! 한 마디로는 개발자들과 운영자들을 서로 잘 융합시키고 의사소통이 원활하게 될 수 있도록 하는 개발 방법론

조금 전문적으로 말하자면 DevOps는 DEVelopment(개발)와 OPerationS(운영)가 합쳐진 단어, DevOps는 개발 빌드부터 배포까지 자동적으로 해주는 시스템

DevOps는 개발, IT 운영, 품질 엔지니어링, 보안 등 이제껏 서로 단절되었던 역할들이 서로 조율 및 협업하고 개발 빌드부터 배포까지 자동적으로 해주기에 빠르게 제품을 향상시키는 것

DevOps의 역할

  1. CI/CD 관리
    • Continuous Integration :: 지속적 통합
    • Continuous Delivery :: 지속적 배포
  2. CI/CD 스크립트 작성
  3. 성능 평가 및 모니터링
  4. 서버 측 기능에 대한 사양 및 문서 작성
  5. IT 인프라 유지보수 및 관리

DevOps의 이점

  • 속도
    • 개발과 운영 사이를 왔다갔다하는 커뮤니케이션 작업이 사라지기에 속도가 빨라짐
  • 신속한 제공
    • 앞서 말한 속도가 빨라졌기에 프로그램의 배포가 신속하게 제공됨
  • 안정성
    • 지속적 통합, 지속적 전달, 모니터링, 로깅을 통해 안정적인 서비스 품질을 고객에게 제공 가능
  • 확장 가능
    • 커뮤니케이션 등 여러 단계를 거치지 않고 내부에서 지속된 전달과 통합을 이뤄낸다면 버그
  • 협업 강화
    • DevOps 자체가 협업을 중시하는 문화이기에 개발과 운영 간의 협업이 강화되고 협력해 많은 책임을 공유하게 됨
  • 보안
    • 자동화된 규정 준수 정책과 세분화된 제어 및 구성 관리 기술로 보안을 높은 수준으로 유지 가능

DevOps Tool

image

DevOps의 대표적은 Tool을 말하자면

  • 소스 제어 관리 (Source Contril Management, SCM) :: Github
  • 지속적 통합 (Continuous Integration, CI) :: Jenkins
  • 경고 관리 및 모니터링 (Alert Management and Monitoring) :: Nagios
  • 컨테이너 관리 및 오케스트레이션 (Container Management and Orchestration) :: Docker
  • 로그 분석 (Log Analytics) :: Elastic search
  • 분산 모니터링 (Distributed Monitoring) :: Icinga
  • 설정 관리 (Configuration Management) :: Chef

Categories:

Updated:

Leave a comment