Kubernetes 기반 최신 CI 환경 구축 엔지니어의 요구에 부응하면서 관리 부담도 감소
LINE 대규모 개발 시스템을 지원하는 CI/CD
LINE은 일본에서 9천만 명이 사용하는 커뮤니케이션 앱 “LINE”(2021년 12월 기준)을 시작으로 뉴스, 결제, 만화 등 다양한 서비스를 제공합니다. 서비스 개발 시스템은 거대하며 일일 빌드 횟수는 4,500~6,000회에 이릅니다.
그러한 LINE에서는 CI/CD가 시스템 개발의 생산성 향상에 필수적이라 여기고 있습니다. 최대한 외부 소스에 의존하지 않고 자체적으로 애플리케이션을 개발하여, 전사적 보안 정책을 충족해야 한다는 요구 사항에 따라 CircleCI Server의 On-Premise 버전을 다년간 사용하고 있습니다. 개별 개발팀/개발자는 기존에 도입했던 다른 CI 툴과 함께 용도나 목적에 맞게 선택할 수 있습니다. 또한 CD 분야에서는 사내에서 자체 툴을 개발하여 활동하고 있습니다.
“서비스 릴리스를 가속화하는 것 외에도 개발 시스템이 커질수록 개인의 기술에 의존하지 않고 인적 오류를 줄이는 것이 더 중요합니다. CI/CD는 이러한 목표를 달성하는 데 필수적입니다.” 라고 LINE사의 기타무라 마사히로 씨는 말합니다.
CircleCI를 도입한 가장 큰 이유는 관리성이 좋기 때문입니다. 여러 테스트 작업의 파이프라인을 YAML에서 간단하게 설정하고, 소스 코드와 동일한 리포지토리에서 관리할 수 있습니다. 이를 통해, 이후의 CI 설정 변경이나 풀 리퀘스트 등을 더 쉽게 리뷰할 수 있습니다. 또한 과거 변경 이력을 즉시 참조할 수 있다는 점도 높이 평가되고 있습니다.
한편 활용성을 더욱 확대하기 위해서 이루고 싶은 요청도 있었습니다.
예를 들어 OS를 환경에 의존하지 않도록 하는 것입니다. 지금까지 기업에서 사용하던 CircleCI Server version 2 는 iOS 앱 개발에 필수적인 macOS에서는 빌드할 수 없었습니다. 또한 일부 엔지니어들은 구성을 패키징하고 재사용할 수 있게 만드는 “CircleCI Orbs”를 사용하기를 원했습니다. “당시 이 기능들은 클라우드 버전(CircleCI Cloud)에서만 구현되어 있어서 우리 회사에서는 사용할 수 없었습니다. 따라서 별도의 환경에서 iOS 앱을 테스트해야 했습니다.”라고 기타무라 씨는 언급했습니다.
CircleCI의 전폭적인 지원 아래 새로운 버전으로 이행
새롭게 출시된 CircleCI Server version 3는 시스템 아키텍처를 Kubernetes 기반으로 완전히 개편하여 클라우드 버전과 동일하게 만들었습니다. 이에 따라 클라우드 버전과 같은 속도로 다양한 기능을 구현할 수 있습니다. 이 정보를 알게된 LINE에서는 CircleCI Server를 새로운 버전으로 업그레이드하기로 하였습니다.
기타무라씨는 “CircleCI에서 릴리스한 최신 기능을 클라우드와 동시에 사용할 수 있다는 것은 엔지니어에게 큰 메리트라고 느꼈습니다.”라고 설명합니다.
운영관리 측면에서도 메리트가 있다고 판단했습니다. LINE에서는 사내 별도 시스템에서도 Kubernetes 사용을 적극적으로 추진하고 있습니다. 프라이빗 클라우드 환경에서 Kubernetes 클러스터를 구축하고 필요에 따라 사용할 수 있도록 하는 “Kubernetes as a Service”를 구현합니다. 이러한 환경을 바탕으로 사용자에게 신속한 서비스 제공을 구현하고 있습니다.
“한편, 기존에는 이들 환경과 CircleCI Server 환경이 다르기 때문에, 관리자는 운영을 위해 특수한 작업을 해야 했습니다. CircleCI Server를 업그레이드하면 동일한 Kubernetes가 기반이 되어 같은 방식으로 관리할 수 있을 거라고 생각했습니다.” (기타무라 씨)
업그레이드를 위해 이행 절차 및 소요 시간 확인과 CircleCI Server version 3에 대한 검증 환경을 구축하고 세심한 점검을 진행하였습니다. 다양한 작동 패턴을 테스트하고 동작을 확인한 후, 그 결과를 문서로 정리하여 프로덕션의 이행 작업을 수행하였다고 합니다.
또한 CircleCI의 서포트팀이 이 프로세스에 도움이 되었습니다. “다양한 문의 사항에 대해서 이메일과 원격 미팅을 통해 바로 정확한 답변을 해주셨습니다. 프로덕션 이행 당일에도 CircleCI 엔지니어는 문제가 발생할 경우에 대비하여 원격으로 대기했습니다. 그 결과, 큰 문제 없이 작업을 완료할 수 있었고, 매우 안심하고 작업을 진행할 수 있었습니다.”라고 키타무라 씨는 강조합니다.
엔지니어의 요구에 부응하는 CI 환경 실현
그래서 LINE에서는 CircleCI Server version 3을 사용하기 시작했습니다. 엔지니어가 요청한 macOS 빌드 및 CircleCI Orbs 사용이 모두 가능해졌습니다. 그 결과, 더욱 다양한 개발 현장의 요구에 부응할 수 있는 CI 시스템이 구현되었습니다.
“특히 엔지니어들이 CircleCI Orbs를 사용하기 시작한 것 같습니다. 또한 이전에는 Jenkins로 진행하던 macOS 기반의 빌드 작업을 Circle CI로 진행하는 엔지니어도 있습니다.” 라고 키타무라씨는 소개합니다.
시스템의 스케일 아웃도 단순해졌습니다. 기존에는 “테스트 작업 파이프라인 수 늘리기”와 같은 스케일 아웃을 수행할 때 여러 작업이 필요했고 준비하는데 며칠에서 일주일이 소요되었습니다. 이제 Kubernetes 클러스터 및 기업 네트워크에서 유연한 스케일링이 가능해졌습니다. 키타무라 씨는 “앞으로 테스트 워크로드가 증가하더라도 1~2시간 이내에 처리할 수 있을 것입니다.”라고 말합니다.
또한 CircleCI Server version 2와 version 3의 아키텍처가 크게 다르다는 이유로 일부 기업에서는 도입/업그레이드에 대해 걱정할 수 있습니다. 게다가 Kubernetes를 운영하기 위해서는 컨테이너와 같은 기술에 대한 이해도 필요합니다. “그러나 반대로 이는 “최신” 아키텍처를 시스템에 통합할 수 있는 절호의 기회입니다. 소개한 바와 같이 CircleCI의 우호적인 지원이 도입을 뒷받침하고 있으므로 너무 걱정할 필요는 없습니다.”라고 키타무라씨는 말합니다.
이외에도 CircleCI Serversion 3에서는 워크플로우 일정 실행 및 매트릭스 작업과 같은 최신 기능을 최대한 활용할 수 있습니다. LINE 비즈니스는 크게 향상된 CI/CD 환경을 통해 사용자 만족도를 높이는 서비스를 제공하고자 합니다.
LINE 주식회사 소개
공식 HP : https://linepluscorp.com/
커뮤니케이션 앱 “LINE”을 기반으로 커뮤니케이션, 콘텐츠, 엔터테인먼트 등 다양한 모바일 서비스 개발, 운영, 광고사업을 하고 있습니다. 또한 핀테크와 AI 사업도 진행할 예정입니다. “CLOSING THE DISTANCE”를 미션으로 전세계 사람들, 사람과 정보 및 서비스 사이의 거리를 단축하는 것을 목표로 합니다.