출처 : okky.kr
DevOps란 개발과 운영을 하나의 조직에서 같이 수행함을 의미합니다.
전통적인 소프트웨어구축 조직에서는 개발과 운영이 나누어져있고,
개발조직은 정해진 기간에 프로젝트를 완수를 목표를 두고,
운영조직은 소프트웨어의 안정적인 운영에 목표를 두기 때문에 서로 이해가 상충되고
원활한 커뮤니케이션을 방해하기 때문에
개발과 운영을 하나의 조직에서 진행하면 두가지 문제점사이에서 적절한 합의점을 찾을 수 있고
원활한 커뮤니케이션이 진행가능 하다는 것이죠.
그런데 이런 DevOps를 가능하게 해주는 것이 자동화도구와 협업도구들이죠.
각종 자동화 도구와 협업도구의 구축으로 DevOps조직을 운영가능한 거죠.
그런데 현재 업계에서 보통 얘기하는 DevOps팀은 원래의미에서 약간 변질(?)되어서
이런 자동화도구와 협업도구를 구축하고 운영하는 팀을 의미합니다.
=============================================================
개발자들이 개발을 하고 VCS에 push 한다고 그게 어플리케이션으로 서버에 올라가진 않잖아요?
더군다나 개발이 끝났으면 유닛테스트도 진행을 해야하고, lint도 점검해야하고, 정적 코드 분석,
동적 코드 분석 등등 개발팀에서 자리잡힌 프로세스대로 진행을 하게 될겁니다.
근데 그러한 프로세스가 개발과는 다르게 반복적인 업무가 많을 겁니다. 그러한 과정을 자동화 시키는걸
CI 라고 합니다 지속적 통합이죠 한글로는. 이 CI를 통해서 만들어지는 최종 결과물은 배포를 진행시킬 수
있는 애플리케이션일겁니다.
애플리케이션이 준비 되었으니 이제 인프라도 구성이 되어야겠죠. 이미 만들어진 인프라에 애플리케이션을
배포시킬 수도 있고, 새로운 인프라를 구성하여 배포시킬 수도 있죠. 이러한 부분은 인프라팀 혹은 운영팀
에서 자리잡힌 프로세스가 있을거고 그대로 진행이 됩니다. 이러한 것도 당연히 반복적인 부분이 많을거구요. 이러한걸 CD 라고 하는데 지속적 배포, 혹은 지속적 전달이라고 표현합니다
DevOps는 애플리케이션 통합과정과 배포과정에서 생기는 단순반복적인 일들을 CI/CD Pipeline을 통해
자동화 하는 엔지니어입니다. 개발과 운영 사이에 있으니 개발에 관한 전반적인 지식도 필요하고 운영에
관한 전반적인 지식이 필요합니다. 그렇기에 DevOps라는 엔지니어를 따로 두기보다는 개발팀 혹은
운영팀에서 DevOps 직무를 맡길 사람을 차출하여 맡기기도 하죠
'프로그램개발 > IT 트렌드·팁·상식' 카테고리의 다른 글
웹 개발자가 학습해야 할 프로그래밍 언어 5가지 (0) | 2020.11.06 |
---|---|
도메인 지식, 네이티브 지식 (0) | 2020.10.30 |
홈페이지에 사용된 기술을 알고 싶다면? (0) | 2020.10.12 |
또 했어요! 재택근무를 위한 화상회의 솔루션 5종 테스트 (0) | 2020.09.09 |
MS의 함수형 개발 언어 ‘F#’, 버전 5 기능 개발 완료 (0) | 2020.09.07 |