저희 인포그랩은 3~4월에 여러 교육을 진행하면서 바쁜 두 달을 지냈는 데요, 그중에서 지난 3월 11일에 CJ 올리브네트웍스에서 진행했던 GitLab CI/CD 교육에 대해서 소개하겠습니다.
다른 교육들과 비교해서 가장 인상이 깊었던 점은 수강생분들이 직접 관심을 갖고 교육에 신청하셨다는 것입니다. 대부분 개발자 출신이시거나 개발업무랑 연관이 있으셔서 기술에 대한 이해 수준이 높으셨습니다. 강의에 앞서 간단한 아이스브레이킹으로 자기소개와 함께 수강생분들의 교육을 들으러 온 목적을 들어봤습니다. 대부분 Jenkins + SVN으로 CI/CD를 수행하고 계시는데 요즘 DevOps로 툴로 급부상 하고있는 GitLab으로 CI/CD 하는 것이 궁금하셔서 찾아오셨다고 했습니다. 교육은 성공적으로 마무리되었고 많은 관심만큼이나 많은 질문을 받았습니다.
지금부터 CJ 올리브네트웍스에서 진행한 교육 커리큘럼과 내용에 대해서 간략하게 소개해 드리도록 하겠습니다.
교육 과정
교육 과정은 크게 다음과 같이 진행하였습니다.
- GitLab 소개
- Git 실습
- GitLab 기본 기능 실습
- GitLab CI/CD 실습
GitLab 소개
GitLab DevOps 전체 라이프사이클을 위한 단일 애플리케이션입니다. 기존 툴들을 이용하여 DevOps를 구축하기 시도한다면 많은 툴을 통합해야 하지만 GitLab을 사용해서 DevOps를 도입하게 되면 그만큼 비용을 줄일 수 있고 관리 포인트들을 줄일 수 있습니다. 이러한 이유로 해외의 많은 기업뿐만 아니라 국내에서도 많이 도입하고 있는 추세입니다.
Git 실습
GitLab은 앞서 말씀드렸다시피 DevOps 전체 라이프사이클을 커버하지만, Git 레파지토리를 중심으로 버전 관리를 하는 것으로부터 시작됩니다. 그렇기 때문에 GitLab의 기본이 되는 Git에 대해서 알아봐야겠죠. Git은 분산 버전 관리 시스템의 대표로 리눅스의 아버지 리누스 토르발스(Linus Benedict Torvalds)에 의해서 만들어졌습니다.
본 과정에서는 로컬 레파지토리에서 브랜치(branch)를 통한 커밋(commit), 머지(merge)를 통해 Git의 핵심 기능을 배우고 git 실무의 80~90%를 커버하는 명령어를 익힙니다.
GitLab 기본기능 실습
GitLab에는 정말 많은 기능이 있습니다. 그렇기 때문에 하루 과정에서는 이 많은 기능을 모두 다룰 수 없습니다. 이번 과정에서는 DevOps에 포커스를 맞춰 머지 요청(Merge Request)를 중심으로 GitLab 핵심 기능들을 익힐 수 있습니다.
GitLab CI/CD 실습
마지막으로 이번 교육과정의 하이라이트입니다. 사실 이 교육을 하게 된 이유이기도 하죠. 원래는 교육담당자분께서 교육에서 CI/CD를 중심의 강의를 원하셨지만, 사실 앞선 교육과정 흐름을 만들어 내지 못하면 수강생분들이 이해하기 쉽지 않습니다. DevOps는 기술이 아니라 문화이고 CI/CD는 그중 하나이니까요. 이 섹션에서는 GitLab의 Runner 설정부터 CI 기본 설정, 그리고 다양한 GitLab CI/CD 파이프라인 예시를 볼 수 있습니다.
최근 교육에는 여러분의 파이프라인 이해를 위해 직접 파이프라인을 설계하는 실습 과정도 포함하고 있습니다.
맺음말
항상 교육이나 DevOps 컨설팅을 나가면 저도 느끼는 바가 많습니다. 이번 교육 또한 현업에서 CI/CD를 구축하는 데 어떠한 어려움이 있고 시도가 있었는지 알 수 있었습니다. CJ 올리브네트웍스뿐만 아니라 저희 인포그랩을 찾아주신 대부분 고객의 핵심적인 질문은 항상 어떻게 우리 문화에 맞게 DevOps를 구축할 수 있는지입니다.
저희 인포그랩에서는 이러한 고민을 노하우를 통해 쉽게 DevOps를 구축할 수 있게 지원해드리고 있습니다.
여러분들도 시대 흐름에 맞춰 자사의 맞춤 DevOps를 구축하십시오.