본문 바로가기

PRODUCT/Cloud

OpenShift기반 DevOps/MSA 구축 Part 1.

클라우드 전환은 IT 조직의 역할과 기능도 바꿉니다. 클라우드 전환 수준이 높아질수록 운영과 개발의 책임과 역할이 지금과 아주 다릅니다. 많은 조직이 궁극의 목표로 삼는 것은 개발자가 일일이 운영자에게 인프라 관련 각종 요청과 문의를 하지 않고 스스로 할 수 있는 작업의 범위를 넓히는 것입니다. 흔히 말하는 PaaS 환경에서 개발자들이 셀프서비스 방식으로 빠르고 효율적으로 자신의 프로젝트를 추진할 수 있는 환경을 제공하는 것이 목표죠. 운영자 역시 역할과 책임이 달라지는데, 이 역시 목표로 삼는 것은 비슷합니다.

 

운영자는 복잡하게 분산된 하이브리드 멀티 클라우드 환경에서 각종 자원과 서비스를 일관성 있는 기준과 방법으로 관리하는 것이 중장기 목표입니다. 이를 흔히 소프트웨어 정의 기반 인프라를 코드를 이용해 다룬다는 IaC(Infrastructure as Code)라고 표현하죠. 이런 식의 책임과 역할 변화는 운영과 개발이 각각 따로 하지 않습니다. DevOps라는 큰 틀 안에서 서로 유기적으로 책임과 역할을 조정하게 되죠. , 현재 시점의 CI/CD 파이프라인을 클라우드 친화적으로 바꾸어 가는 여정을 통해 DevOps 체계를 갖추게 되고 운영과 개발은 유기적으로 협력하며 민첩한 엔터프라이즈를 만들게 됩니다. 이번 포스팅에서는 OpenShift 기반으로 클라우드 전환을 추진 중인 조직이 현행 CI/CD를 어떻게 하이브리드 멀티 클라우드 환경을 위한 DevOps로 발전 시켜 나아갈 것인지를 간단히 소개하겠습니다.

 

CI/CD + OpenShift

 

컨테이너 전환을 통한 애플리케이션 현대화는 과거 인프라 가상화처럼 시스템만 옮기면 끝나는 일이 아닙니다. 클라우드 네이티브라는 목표를 향해 가는 시작임을 잊지 말아야 합니다. 따라서 컨테이너 전환과 함께 개발, 배포, 운영 방식의 변화가 동반되어야 합니다. 조직은 현행 CI/CD를 유지하면서 OpenShift 기반 컨테이너 전환에 대응할 수 있습니다.

 

물론 이는 기존 방식을 고수하라는 것이 아닙니다. 클라우드 네이티브 방식에 맞는 DevOps 체계로 CI/CD 파이프라인을 점진적으로 개선하는 과정을 OpenShift 환경에서 하라는 말입니다. 여정은 크게 현재 CI/CD OpenShift 기반으로 수행하는 것에서 출발해, 하이브리드 방식으로 Jenkins 인프라를 운영하는 방식으로 나아가는 쪽을 생각해 있습니다. 조직 규모가 크다면 Jenkins 서비스 방식으로 사용하는 것까지 고려할 있습니다.

먼저 기존 CI/CD OpenShift에 연계하는 것을 알아보겠습니다. OpenShift 플랫폼 환경에서 Jenkins 서버를 운영하는 것은 편리합니다. OpenShift 플랫폼은 RedHat UBI(Universal Base Image)를 기반으로 하는 Jenkins 컨테이너 이미지를 제공합니다. 이 이미지는 S2I(Source-to-Image)를 통해 사용자 정의를 할 수 있습니다. 참고로 인증의 경우 OpenShift 로그인 플러그인에서 제공하는 OAuth  또는 Jenkins에서 제공하는 표준 인증을 적용할 수 있습니다.

기존 CI/CD 환경을 OpenShift로 옮긴 후 조직의 클라우드 여정에 맞춰 각자 가고자 하는 쪽으로 DevOps로 가는 길을 개척할 수 있습니다. 보통 Jenkins를 엔진으로 활용해 클라우드 네이티브 CI/CD로 진화해 나아갑니다. , 여러 부서와 다양한 프로젝트별로 각각 Jenkins 기반 CI/CD 파이프라인을 구축해 운영하는 멀티 테넌트 환경을 머릿속에 그려 볼 수 있습니다. 참고로 OpenShift Container Storage 4를 사용해 OpenShift 환경에 Jekins를 배포하면 멀티 테넌트 환경을 더 안정적이고 효율적으로 관리할 수 있습니다. 이는 소프트웨어 정의 기반 스토리지를 기반으로 단일 OpenShfit 클러스터에 많은 수의 Jenkins 서버를 더 빠르고 효율적으로 실행하는 데 있어 매우 유용한 접근입니다.

한편, 클라우드 네이티브 CI/CD 파이프라인으로 진화하는 데 있어 최근 관심을 끌고 있는 도구가 있습니다. 바로 OpenShfit GitOps입니다. OpenShfit GitOpsArgo CD 등의 도구를 통해 운영과 개발 조직이 클러스터 구성과 애플리케이션 제공을 위한 워크플로우를 구현할 수 있도록 돕습니다. 달리 말하면 사내를 넘어 하이브리드, 멀티 클라우드 환경까지 애플리케이션 배포 대상이 확산되면서 다중 클러스터 환경에서 애플리케이션을 원활히 배포하고 운영할 수 있도록 돕는 기능입니다.

 

OpenShfit GitOps를 적용하면 운영과 개발 조직은 OpenShift Kubernetes 클러스터 구성과 애플리케이션 배포 상태를 Git 저장소와 간편히 동기화할 수 있습니다. 따라서 어떤 환경에 배포하건 애플리케이션 배포 관련 투명한 가시성과 추적성을 확보할 수 있습니다. 이처럼 하이브리드 멀티 클라우드 시대에 적합한 기능을 제공하다 보니 개발, 운영 커뮤니티의 관심이 매우 높습니다. 이에 레드햇은 커뮤니티의 의견을 반영하여 4.7 버전에 OpenShift GitOps 포함하였습니다.

이상으로 현행 CI/CD를 어떻게 하이브리드 멀티 클라우드 환경을 위한 DevOps로 발전시킬 수 있는 방안을 알아보았습니다. 다음 포스팅에서는 미들웨어 측면에서 클라우드 여정을 살펴보겠습니다

 

 

*이 외에도 락플레이스의 최신 뉴스레터 소식(2021~) 을 받아보고 싶으시다면? *

락플레이스 뉴스레터 구독하기 click

 

*락플레이스 1:1 문의 바로가기*

 1:1 문의 바로가기 click

 

 락플레이스는 2005년에 출범하여 대한민국 리눅스의 역사와 성장을 함께 해온 오픈소스 전문 기업으로 국내 최다 엔지니어, 국내 최고 기술력, 국내외 유수기업 컨설팅의 풍부한 경험과 탄탄한 기술력으로 고객의 성공적인 오픈소스 플랫폼 구축과 응용 프로그램 전체 범위의 서비스를 제공하고 있습니다. 락플레이스는 레드햇코리아로부터 Elite Business Associate/Advanced Business Parter/채널 어워드 한국  파트너/FY15 champion 등을 수상 파트너며, Microsoft Microsoft Cloud Solution Partner(CSP)로서 함께하고 있습니다