인포그랩은 최근 실무자를 위한 DevOps 교육 서비스인 ‘DevOps Expert Labs’를 선보였는데요. DevOps Expert Labs에서는 난이도와 프로그래밍 언어/플랫폼에 따라 다양한 러닝 패스(커리큘럼)를 운영합니다. DevOps 실험실, DevOps 기초, DevOps 플랫폼 구축, DevOps 소프트웨어 개발, DevOps 파이프라인 등이 그 예인데요. 인포그랩은 이 가운데 ‘DevOps 플랫폼 구축’ 러닝 패스를 주제로 지난 10월 16~20일 분당 서현 동네소셜라운지에서 DevOps Expert Labs의 첫번째 워크숍을 진행했습니다. 5일 동안 열린 워크숍에는 CJ올리브네트웍스(3명)와 두산 디지털이노베이션(2명) 실무자들이 참여했고요. DevOps Expert Labs의 메인 강사인 제가 DevOps 플랫폼 구축 방법을 교육했습니다.
인포그랩은 지난 6개월 동안 DevOps Expert Labs를 개발하고, 출시를 준비했습니다. 이번 워크숍은 고객사를 대상으로 처음 진행한 DevOps Expert Labs 워크숍이었기에 회사로서 의미가 컸는데요. 저는 이전에도 워크숍을 여러 차례 진행한 경험이 있지만 이번 워크숍은 그 어느 때보다 기대되고, 긴장감도 느꼈습니다. 이 글에서는 DevOps Expert Labs 특징과 러닝패스, 서비스 업데이트 내용을 살펴보고요. 워크숍 준비 과정과 진행 방식, 고객 피드백 내용을 공유하려고 합니다.
DevOps Expert Labs 소개
DevOps Expert Labs는 현업에서 DevOps 실무를 수행하는 엔지니어의 눈높이에 맞춘 핸즈온(실제 손으로 조작) 방식의 DevOps 교육 서비스입 니다. 그동안 인포그랩은 다양한 기업과 기관에서 DevOps 컨설팅을 수행하고, DevOps 플랫폼을 구축했는데요. 저희는 이러한 경험과 노하우를 바탕으로 DevOps Expert Labs의 교육 콘텐츠를 직접 제작했습니다.
기존 국내외 DevOps 교육 서비스는 초급, 중급 수준의 프로그래밍 강의를 주로 공급하는데요. DevOps Expert Labs는 기존 DevOps 교육 서비스의 이러한 한계를 극복하기 위해 출시됐습니다. 이 서비스는 SaaS(Software-as-a-service) 플랫폼으로, 초급~전문가 난이도를 두루 아우르는 DevOps 교육 콘텐츠를 제공합니다.
DevOps Expert Labs는 현업 실무자들이 전문 DevOps 엔지니어로 성장하도록 지원하는데요. 이를 위해 DevOps 전문 지식과 역량을 키우고, 엔지니어링 성숙도를 높이는 데 도움이 되는 교육 콘텐츠와 코칭 서비스를 제공합니다.
DevOps Expert Labs의 교육 진행 방식은 이렇습니다. 러닝 패스를 토대로, DevOps 워크숍을 오프라인에서 실시하는데요. 참가 인원은 46명으로, 워크숍은 25일 동안 진행합니다. 이밖에 DevOps Expert Labs의 특징은 다음과 같습니다.
- DevOps Expert Labs는 Google Codelabs 스타일로 만들었습니다. 이는 실습형 콘텐츠를 활용해 학습하는 환경을 제공하고요. 이로써 학습자가 집중해서 실습을 하나씩 완료하도록 지원합니다.
- 슬라이드와 동영상을 사용하는 수동적인 단방향 학습 방법과 달리, DevOps Expert Labs에서는 학습자가 단계별 미션을 수행하면서 DevOps 기술을 익히고, 플랫폼을 구축할 수 있습니다. 학습자는 이러한 방식으로 실제 DevOps 엔지니어의 업무 수행 방식을 경험할 수 있습니다.
- DevOps Expert Labs는 난이도와 주제에 따라 다양한 러닝 패스로 구성되어 있습니다. 따라서 학습자가 방향을 잃지 않고 단계별로 체계적으로 학습할 수 있습니다.
- DevOps Expert Labs는 핸즈온 방식의 실습 중심 교육으로 진행돼, DevOps 팀의 엔지니어링 시행착오를 획기적으로 줄이는 데 도움이 됩니다.
- 학습자는 수강 과정에서 최신 DevOps 구축 레퍼런스와 인포그랩의 풍부한 DevOps 구축 경험, 노하우를 얻을 수 있습니다.
- 학습자는 DevOps 전문 코치가 이끄는 워크숍에 참여하면서 실전 경험을 빠르게 쌓을 수 있습니다.
- DevOps Expert Labs 콘텐츠는 SaaS 형으로 제공되기에, 워크숍 이후에도 온라인에서 이용할 수 있습니다.
Google Codelabs 웹사이트는 개발자를 위한 학습 리소스를 담았습니다. Codelabs는 다양한 주제와 기술 관련 실습을 제공하여 개발자가 실제 프로젝트에 적용하는 기술 역량을 향상하도록 돕습니다.
‘DevOps 기초’ 러닝 패스

‘DevOps 기초’ 러닝 패스에서는 DevOps 기본 지식과 DevOps 필수 도구 등을 다룹니다. DevOps Expert Labs에서는 워크숍을 시작하기 며칠 전에 DevOps 기초 러닝 패스의 콘텐츠를 워크숍 참가자(수강생)에게 미리 제공하는데요. 이는 중급 이상 수준인 ‘DevOps 플랫폼 구축’ 러닝 패스를 워크숍에서 다루기 전에 진행하는 절차이기도 합니다. 워크숍 참가자가 DevOps 기초 러닝 패스를 사전 학습하면 DevOps의 기본 지식과 도구 이론을 이해하는 데 도움이 되고요. DevOps 기초 러닝 패스의 다음 단계인 DevOps 플랫폼 구축 러닝 패스의 내용을 더 쉽게 따라갈 수 있습니다.
DevOps 기초 러닝 패스의 구체적인 교육 내용은 다음과 같습니다.

‘DevOps 플랫폼 구축’ 러닝 패스

‘DevOps 플랫폼 구축’ 러닝 패스는 중급 이상 과정인데요. 여기서는 DevOps 플랫폼 인프라와 DevOps 플랫폼 도구셋 구성 방법, DevOps 플랫폼 활용 방법, 옵저버빌리티(Observability) 구축 방법 등을 다룹니다. 앞서 언급한 ‘DevOps 기초’ 러닝 패스를 사전 학습한 뒤, 오프라인 워크숍에서 DevOps 플랫폼 구축 러닝 패스를 주제로 교육하는데요. 이 러닝 패스는 프로덕션 수준으로 준비된 환경, 코드, 설정을 사용하여 ‘제로베이스 상태에서 완성된 DevOps 플랫폼 환경 구축하기’를 목표로 구성했습니다.
DevOps 플랫폼 구축 러닝 패스의 구체적인 교육 내용은 다음과 같습니다.
DevOps 플랫폼 인프라 만들기
- 핸즈온 워크스페이스 구성
AWS Cloud9을 이용하여 DevOps Platform Labs의 실습 환경을 구성하는 방법을 학습합니다. AWS Console에서 Cloud9을 구성하고, EBS 볼륨 조정 및 IAM 권한을 설정하는 방법과 AWS CLI, Terraform, kubectl, Helm 등 도구를 설치하는 방법 등을 설명합니다.
- Terraform으로 AWS EC2 생성
Terraform 기본 정보와 이를 사용하여 AWS EC2 인스턴스를 프로비저닝하는 방법을 학습합니다. AWS VPC, Subnet, Security Group, EC2 리소스를 생성하는 Terraform 코드 작성법, Terraform으로 User data 템플릿 파일을 사용하여 EC2 초기 구성 작업을 실행하는 방법, 변수 사용법, Terraform 명령어를 실행하는 방법 등을 설명합니다.
- Terraform으로 AWS EKS 생성
AWS EKS 기본 정보와 Terraform으로 EKS 클러스터를 프로비저닝하는 방법을 학습합니다. Network, Security Group, EKS Cluster, EKS Add-ons, Node Group을 생성하는 Terraform 코드 작성법, kubeconfig 파일을 생성하고 EKS 클러스터에 접속하는 방법, OpenLens를 설치하는 방법 등을 설명합니다.
플랫폼 기본 도구셋 구성
- Metrics Server, Autoscaler 구축
Kubernetes 클러스터에서 리소스 메트릭을 수집하고 Autoscaler를 활용하여 리소스, 노드 수를 동적으로 확장하는 방법을 학습합니다. Helm 차트로 Kubernetes 클러스터에 Metrics Server, Autoscaler를 배포하는 방법, Metrics Server를 이용하여 클러스터의 메트릭을 수집하고 확인하는 방법, Autoscaler를 사용하여 클러스터 자원 사용량에 따른 리소스와 노드 수를 조정하는 방법 등을 설명합니다.
- Reflector, Sealed Secret 구축
GitOps 워크플로에서 Kubernetes Secret을 암호화하여 관리하고, 네임스페이스 간 Secret을 복사하고 동기화하는 방법을 학습합니다. Helm 차트로 Sealed Secrets, Reflector를 배포하는 방법, Sealed Secrets를 사용하여 Kubernetes Secret을 암호화하는 방법, Reflector를 사용하여 Secret 네임스페이스 간에 복제하고 동기화하는 방법 등을 설명합니다.
- cert-manager 구축
cert-manager는 TLS/SSL 인증서 발급과 갱신을 자동화하는 도구입니다. 이 과정에서는 cert-manager를 배포하고, 인증서를 발급하는 방법을 학습합니다. 구체적으로는 Helm 차트로 Kubernetes 클러스터에 cert-manager를 배포하는 방법, cert-manager가 DNS01 챌린지를 수행할 때 AWS Route 53에 액세스하도록 AWS IAM 정책을 생성하고 설정하는 방법, ClusterIssuer 리소스를 생성하고, Ingress를 사용해 Certificate 리소스를 생성하며, TLS/SSL 인증서를 발급하는 방법 등을 설명합니다.
- NGINX Ingress Controller 구축
NGINX Ingress Controller를 Kubernetes 클러스터에 배포하고 구성하는 방법을 학습합니다. Ingress는 Kubernetes 클러스터 서비스의 외부 액세스를 관리하는 리소스인데요. NGINX Ingress Controller는 이 Ingress가 작동하는 데 필요한 Ingress Controller 중 하나입니다. 이밖에 Helm 차트를 사용하여 NGINX Ingress Controller를 배포하는 방법, NGINX Ingress Controller로 생성된 NLB를 확인하고 DNS에 레코드를 등록하는 방법 등도 설명합니다.
- Argo CD 구축
Argo CD는 선언적 GitOps의 지속적 배포 도구입니다. 이 과정에서는 Argo CD를 Kubernetes 클러스터에 배포하고 구성하는 방법을 학습합니다. 구체적으로는 Argo CD Helm 차트의 구성 정보를 배포 환경에 맞게 설정하는 방법, Helm 차트로 Kubernetes 클러스터에 배포하는 방법, Argo CD 웹 UI에 접속하는 방법 등을 배웁니다.
- MinIO 구축
MinIO는 고성능 AWS S3 호환 오브젝트 스토리지(Object Storage)입니다. 이 과정에서는 MinIO를 구축하기 위해 Helm 차트 Values 파일을 작성하고 Kubernetes 클러스터에 배포하는 방법을 학습합니다. 설정 파일에는 MinIO 서버의 배포 관련 옵션, 컨테이너 실행에 필요한 리소스, 퍼시스턴트 볼륨, Ingress 설정 등이 포함됩니다.
- GitLab 구축
GitLab을 구축하기 위해 Helm 차트 Values 파일을 작성하고 Kubernetes 클러스터에 배포하는 방법을 학습합니다. GitLab 배포 상태 확인, MinIO와 GitLab 웹 접속, 증분 로깅 활성화 등도 다룹니다.
- GitLab Runner 구축
GitLab Runner를 Kubernetes 클러스터에 배포하고 GitLab에 등록하는 방법을 학습합니다. 이 과정에서는 Runner Token을 발급받아 Runner를 등록하고, Helm Repository를 구성하며, Runner Helm 차트 Values 파일을 작성한 다음 배포합니다. 그다음, GitLab에서 ‘Runner가 온라인 상태인지’ 확인합니다.
- GitLab Kubernetes Agent 구축
GitLab Kubernetes Agent는 GitLab 인스턴스와 Kubernetes 클러스터 간에 지속적이고 안전한 연결을 제공하는 서비스입니다. 이 과정에서는 GitLab Kubernetes Agent를 구축하는 방법을 학습합니다. 먼저 GitLab에서 Agent 토큰을 발급하고 Helm Repository를 구성한 뒤, Helm 차트 Values 파일을 작성하여 Agent를 Kubernetes 클러스터에 배포합니다. 그다음, ‘GitLab과 연동되는지’ 확인하고요. 마지막으로, GitLab 그룹과 프로젝트에 액세스 권한을 부여합니다.
- SonarQube 구축
SonarQube는 30개 이상의 프로그래밍 언어에서 버그, 코드 스멜(Code Smell), 보안 취약점 등을 분석하고 보고서를 제공하는 정적 코드 분석 도구입니다. 이 과정에서는 SonarQube를 구축하는 방법을 학습합니다. 먼저 Helm Repo를 추가하고 업데이트한 뒤, Values 파일을 작성하고 SonarQube를 Kubernetes 클러스터에 배포합니다. 마지막으로, 웹 브라우저에서 SonarQube에 접속하여 결과를 확인합니다.
- Sentry 구축
Sentry는 실시간으로 애플리케이션 오류를 추적하고, 모니터링하는 도구입니다. 이 과정에서는 Sentry를 구축하는 방법을 학습합니다. 먼저 Helm Repo를 추가하고 업데이트한 뒤, Values 파일을 작성하고 Sentry를 Kubernetes 클러스터에 배포합니다. 마지막으로, 웹 브라우저에서 Sentry에 접속하여 결과를 확인합니다.
- Vault 구축
HashiCorp Vault는 ID 기반 비밀과 암호화를 관리하는 시스템입니다. Vault Secrets Operator는 CRD(Custom Resource Definitions) 세트를 활용하여 Vault와 Kubernetes 간에 Secret을 동기화하는 Kubernetes Operator입니다. 이 과정에서는 Vault를 구축하고 Kubernetes와 연동하는 방법을 학습합니다. 이밖에 Vault 초기화, Unseal, 웹 접속, Secret Operator를 이용한 연동 방법도 다룹니다.
- Prometheus Stack 구축
Prometheus Stack은 Kubernetes 클러스터에서 Prometheus와 관련 구성 요소의 배포, 관리, 모니터링을 쉽게 하도록 설계된 도구, 구성 모음입니다. 이를 사용하면 대시보드, 알림, 메트릭 조회 등을 구성할 수 있습니다. 이 과정에서는 Kubernetes 환경에서 모니터링 또는 옵저버빌리티를 구성할 수 있는 Prometheus Stack 구축 방법을 학습합니다. 구체적으로는 Helm Repo를 추가하고 업데이트한 뒤, Values 파일을 작성하고 Prometheus Stack을 Kubernetes 클러스터에 배포합니다. 그다음, 웹 브라우저에서 Grafana, Prometheus, Alertmanager에 접속하여 확인합니다. 마지막으로, Grafana에서 Prometheus 데이터 소스를 추가하고 대시보드를 구성합니다.
- Loki 구축
Loki는 수평 확장할 수 있으며 가용성이 높은 다중 테넌트 로그 집계 시스템입니다. 이 시스템은 Prometheus에서 영감을 받아 만들었습니다. Promtail은 Loki를 위해 특별히 제작된 로그 수집기입니다. 이 과정에서는 Kubernetes 클러스터와 애플리케이션의 로그를 수집하고 분석하는 Loki, Promtail 구축 방법을 학습하는데요. MinIO에 로그 데이터를 저장하는 버킷과 액세스 키를 생성하는 방법, Loki와 Promtail을 구성하고 배포하는 방법, 배포 상태를 확인하는 방법, Grafana에서 Loki를 데이터 소스로 추가하는 방법을 설명합니다.
- Tempo 구축
Tempo는 사용하기 쉬운 오픈소스 대규모 분산 추적 백엔드(distributed tracing backend)입니다. 이는 Grafana, Prometheus, Loki와 긴밀하게 통합됩니다. 이 과정에서는 Kubernetes에 분산 추적 시스템인 Tempo를 구축하는 방법을 학습합니다. 먼저 MinIO에 트레이스 데이터를 저장하는 버킷과 액세스 키를 생성합니다. 그다음, Helm Repo를 추가하고 업데이트한 뒤 Values 파일을 작성하며, Tempo를 Kubernetes 클러스터에 배포하고 확인하죠. 마지막으로, Grafana에서 Tempo 데이터 소스를 추가합니다.