[기고] 데브옵스, 어떻게 시작할 것인가

전문가 칼럼입력 :2022/08/02 18:12

현태호 깃랩코리아 지사장
현태호 깃랩 코리아 지사장

지금까지 다양한 경력을 쌓아왔더라도 데브옵스(DevOps) 팀에 새로 합류했거나 익숙하지 않은 사람이라면 새롭게 배워야 할 점들이 많을 것이다. 데브옵스를 완벽히 습득하기 위해서는 완전히 새로운 사고방식을 기반으로 기술과 프로세스, 업무 단계를 파악하고 이해해야 한다.

데브옵스를 배우는 이유는 무엇이고 어디서부터 시작할까? 데브옵스 전문가에 대한 수요가 폭발적으로 증가하고, 이런 직업의 연봉이 상승하면서 대다수 데브옵스 초보자들은 무엇을 먼저 배워야 할지 고민하게 된다. 하지만 걱정하지 않아도 된다. 깃랩이 도울 수 있다.

데브옵스를 위해 배워야 할 항목들은 상당히 많다. 데브옵스가 무엇인지, 데브옵스 라이프사이클 단계는 어떠한지, 데브옵스를 위한 협업 문화는 어떻게 배워야 하는지 등 이를 처음 접하는 사람들이 어디서부터 시작해야 하고, 무엇을 파악해야 하는지 살펴보도록 하자.

과거 소프트웨어 개발을 위한 툴과 워크플로우는 복잡하고 일관되지 않았다. 대다수 프로젝트 또는 팀 모두는 사일로(Silo) 형태로 작업을 조정하거나 성공사례를 공유하기 어려웠다. 이로 인해 배포에 병목현상이 발생하고 팀의 시간과 비용을 소모가 늘어나는 불합리하고, 비효율적인 프로세스가 이어졌으며 많은 어려움을 불러일으켰다.

데브옵스는 개발과 배포를 단순화하며 전체 프로세스를 보다 효율적으로 만들 수 있는 방법이다. 데브옵스를 사용하면, 이전에는 서로 고립되었던 팀, 툴, 워크 플로우를 하나의 소프트웨어 개발 에코시스템에 통합할 수 있다. 하나의 에코시스템을 통해 팀은 보다 효율적이면서도 안전하게 공동으로 계획을 수립하고, 개발을 진행하며, 서비스를 제공할 수 있다.

또한 데브옵스는 자동화와 시프트 레프트(Shift Left) 보안을 중심으로 성공사례를 반복, 측정할 수 있도록 만든다. 이를 통해 개발주기를 단축하며, 새로운 기능을 설계하고 제품 출시까지 걸리는 시간을 줄일 수 있다.

데브옵스는 이렇게 팀워크를 개선하고 효율성을 높여 보다 민첩하게 소프트웨어를 제공해 회사 전체의 애자일(Agile) 문화를 향상할 수 있다. 데브옵스는 기업들이 주요 고객의 요구에 빠르게 응답하고, 시장 변화에 대응할 수 있게 해준다. 또한 경쟁 우위를 유지할 수 있도록 신속하게 비즈니스를 전환하고 조정할 수 있도록 돕는다.

협업은 데브옵스의 핵심 원칙이다. 데브옵스는 팀원들이 아이디어를 공유하고, 상호 협력을 장려하는 협업 문화를 기반으로 구축됐다. 이는 단순한 일회성 제안이나 한두 번의 미팅을 통해 이뤄지지 않는다.

데브옵스를 배운다고 생각할 때 프로그래밍 언어나 보안, CI/CD 기능에 중점을 두는 경우가 많다. 이런 스킬과 기술도 중요하지만 협업에 대한 관점을 무시하면 안 된다. 데브옵스는 의사소통을 비롯해 새로운 것을 만들고 문제를 해결하는 협업에 중점을 두고 있는 시스템이다. 데브옵스 전문가는 보안, 마케팅을 비롯한 다른 부서나 고위 경영진과 협력해야 한다. 모두 같은 방향으로 나아가도록 한다.

2021년 글로벌 데브섹옵스(DevSecOps) 설문조사에 따르면, 조사 대상자들은 일관되게 의사소통과 협업 능력이 미래 직업의 핵심 요소라고 응답했다.

데브옵스는 계획, 개발에서 배포, 모니터링, 피드백에 이르기까지 프로세스 이동에 따른 명확한 플로우를 가지고 있다. 먼저 빌드, 테스트, 배포 3가지 기본 단계가 있다. 이런 기본 단계에는 소프트웨어를 효율적이고, 안정적이며, 신속하고 민첩하게 생성하는 데 도움이 되는 9개의 세부 단계들이 포함됐다.

1.계획은 코드가 한 줄이라도 작성되기 전에 발생하는 모든 것에 초점을 둔다.

2.생성은 설계 및 개발과 관련된 것이다.

3.검증은 코드의 품질을 확인한다.

4.애플리케이션 및 의존성 패키징, 컨테이너 관리 및 산출물 구현은 일관된 소프트웨어 공급망을 유지한다.

5.릴리스 또는 배포는 반복이 가능한 시점에 코드 업데이트를 운영환경으로 이동하는 것이다.

6.구성은 애플리케이션 환경을 생성, 관리 및 유지하는 데 중점을 둔다.

7.모니터링은 소프트웨어 및 네트워크 상태를 확인하는 것이다.

8.보호는 모든 애플리케이션과 해당 환경을 안전하게 유지하는 것이다.

9.관리는 전체 소프트웨어 개발 라이프사이클을 관리하고, 권한 및 프로세스를 제어한다.

보안은 데브옵스 라이프사이클 단계로 분류되지 않는다. 모든 단계에 걸쳐 적용되기 때문에 단일 단계라 할 수 없다는 것이다. 시프트 레프트는 소프트웨어에 보안을 통합하기 위해 빌드 프로세스가 끝날 때까지 기다릴 필요가 없다.

초기 계획 단계부터 보안을 고려해 처음부터 모든 과정이 끝날 때까지 계속 보안에 집중함으로써 문제를 방지하거나 발견하고, 해결할 수 있는 더 많은 기회를 얻을 수 있다. 시프트 레프트는 개발 중인 코드가 의도한 대로 기능하는지 확인하고, 취약점 또는 컴플라이언스 문제를 탐지하여 수정할 수 있다.

CI/CD는 지속적인 통합(Continuous Integration)과 지속적인 서비스 제공(Continuous Delivery)을 의미한다. 지속적인 개발 방법론에 성공 사례를 결합해 개발 라이프사이클 초기에 취약점과 오류를 포착하는 데 중점을 두고 있다.

관련기사

이는 운영환경에 배포되는 모든 코드가 개발 중인 소프트웨어에 대해 데브옵스 팀이 설정한 표준을 준수하도록 보장한다. 이를 통해 빌드, 테스트, 배포를 자동화하고, 프로젝트는 물론이며 개발팀과 운영팀을 연결할 수 있다.

CI/CD는 증분식 코드 변경을 안정적으로 빈번하게 수행해 기업들이 하루에 여러 번 소프트웨어를 자동으로 제공할 수 있도록 지원하는 데브옵스 플랫폼의 중요한 요소이다. CI/CD는 소프트웨어 업데이트를 운영환경으로 빠르고 효율적으로 배포해 기업들이 고객의 요구에 더욱 신속하게 대응할 수 있도록 해주는 데브옵스 팀과 전체 비즈니스를 위한 매우 중요한 기능이다.

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.