본문 바로가기
IT/기타

DevOps란? 배포자동화 프로젝트 시작.

by 또용 2019. 6. 29.
728x90
반응형

IT 공부한 내용을 기록하고 기억 할 목적으로 티스토리에 가입했고, 뭐부터 시작할까 고민하던 중 DevOps를 첫 주제로 정했다! 지난 달 회사에서 새로운 소규모 프로젝트를 진행하기로 했다, DevOps의 구현.

우리 팀의 업무에 적합하면서도 필요한 내용을 미니 프로젝트로 진행하기 위해 배포자동화를 주제로 선택했다.

프로젝트 기간 내내 프로젝트 진행 과정을 적어보려고 한다!

 

 

DevOps란?

DevOps는 소프트웨어 개발 방법론 중 하나로, Development + Operation 를 합쳐놓은 말이다. 즉, 개발과 운영의 조화(?)를 위해 등장했다고 볼 수 있다. 개발과 운영이 공존하기 위해서는 속도와 안정성이 모두 필요하다. 개발한 것을 빠르게 반영하는 것과 동시에 장애 없이 운영할 수 있는 환경이 마련되어야 한다. 즉, 개발하고 사용자에게 보여줘야 하는 개발자와 서비스를 안정적으로 운영해야하는 운영자 입장을 동일화(?)하기 위해 필요한 개념이다!

 

이번 미니 프로젝트 참여자들은 대부분 우리 팀 사람들로, 그룹웨어를 운영하는 업무를 담당하고 있기에 매주 빌드/배포를 진행한다. 매주 진행하는 배포를 자동화한다면 업무가 편리해질 뿐 아니라 사람의 실수로 인한 장애도 방지할 수 있을 것이라 생각했다.

실제로 나는.... 배포 과정에서 파일을 옮기려다 더블 클릭을 잘못해 css파일을 몽땅 다른 폴더로 옮겨버린 큰.... 실수를 한적이 있다ㅠㅠ 덕분에 그룹웨어 페이지에 엑박이 난무했고..ㅋㅋㅋㅋㅋㅋㅋ 정말 다시 생각해도 끔찍하다ㅠㅠ

프로그램 개발로 배포 과정을 자동화한다면 내가 한 실수와 같이.. 사람이기에 할 수 있는 실수를 줄일 수 있지 않을까..!!!

 

 

 

DevOps 구현에 앞서 소프트웨어공학 중 아래 두 가지 개념도 알아두면 좋을 것 같다.

 

관련 개념

애자일 방법론 (Agile software development)

애자일 방법론은 프로젝트 생명주기 동안 반복적으로 개발하는 개발 방법을 말한다. 또한 문서를 통한 개발 방법이 아닌 실질적인 코딩을 기반으로 한 방법론이다. 즉, 뚜렷한 개발 계획을 세워서 개발을 하는 것이 아니라 프로토타입을 만들고, 추가하고, 수정하는 작업을 일정 주기 내내 반복하는 개발 방법이다.

 

지속적 통합 (Continuous Integration)

지속적 통합은 DevOps를 검색해보면 따라서 꼭 나오는 개념 중 하나이다. CI, Continuous Integration. 작은 규모의 작업을 빈번하게 적용하는 것이다. 이 개념 역시 애자일 방법론과 비슷하게 한 번에 하나의 프로그램을 완성하는 것이 아니라 개발을 하면서 프로그램의 완성도를 높이는 개념이다. 소프트웨어의 성능 향상과 배포 속도를 높이는 데에 초점을 맞춘 방법이다. 대표적인 CI 툴로는 젠킨스(Jenkins)가 있고, 우리의 미니 프로젝트 역시 젠킨스를 사용할 예정이다.

 

 

배포자동화를 통한 DevOps의 구현은 운영, 개발을 동시에 진행해야 하는 나의 업무에 딱! 들어맞는 주제다.

계속해서 프로젝트 내용을 정리해봐야겠다.

728x90
반응형

댓글