DevOps
DevOps

보통의 회사에서는 하나의 서비스를 개발팀과 운영팀 등 팀을 나눠서 서비스를 관리
그러나 이렇게 하나의 서비스를 팀으로 나눠서 관리하다보면 서로 추구하는 목적도 다르고 비효율적이고 의사소통도 쉽지 않을 것
(예를 들어 개발팀은 계속 새로운 것을 도입하고 개발하고 싶지만, 운영팀은 안정성을 최우선으로 여기는,,,)
그래서 DevOps가 두둥 등장~ !! 한 마디로는 개발자들과 운영자들을 서로 잘 융합시키고 의사소통이 원활하게 될 수 있도록 하는 개발 방법론
조금 전문적으로 말하자면 DevOps는 DEVelopment(개발)와 OPerationS(운영)가 합쳐진 단어, DevOps는 개발 빌드부터 배포까지 자동적으로 해주는 시스템
DevOps는 개발, IT 운영, 품질 엔지니어링, 보안 등 이제껏 서로 단절되었던 역할들이 서로 조율 및 협업하고 개발 빌드부터 배포까지 자동적으로 해주기에 빠르게 제품을 향상시키는 것
DevOps의 역할
- CI/CD 관리
- Continuous Integration :: 지속적 통합
- Continuous Delivery :: 지속적 배포
- CI/CD 스크립트 작성
- 성능 평가 및 모니터링
- 서버 측 기능에 대한 사양 및 문서 작성
- IT 인프라 유지보수 및 관리
DevOps의 이점
- 속도
- 개발과 운영 사이를 왔다갔다하는 커뮤니케이션 작업이 사라지기에 속도가 빨라짐
- 신속한 제공
- 앞서 말한 속도가 빨라졌기에 프로그램의 배포가 신속하게 제공됨
- 안정성
- 지속적 통합, 지속적 전달, 모니터링, 로깅을 통해 안정적인 서비스 품질을 고객에게 제공 가능
- 확장 가능
- 커뮤니케이션 등 여러 단계를 거치지 않고 내부에서 지속된 전달과 통합을 이뤄낸다면 버그
- 협업 강화
- DevOps 자체가 협업을 중시하는 문화이기에 개발과 운영 간의 협업이 강화되고 협력해 많은 책임을 공유하게 됨
- 보안
- 자동화된 규정 준수 정책과 세분화된 제어 및 구성 관리 기술로 보안을 높은 수준으로 유지 가능
DevOps Tool
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
Leave a comment