DevOps 라이프사이클이란?

DevOps는 능동적인 작업 프랙티스와 생산성 툴을 결합하여 소프트웨어 개발 과정을 간소화합니다. 이 과정을 구현하려면 DevOps 라이프사이클의 7가지 단계를 이해해야 합니다. 관련 내용을 아래에서 자세히 알아보세요.

DevOps 라이프사이클의 7가지 단계

DevOps 라이프사이클은 소프트웨어 개발 프로세스의 시작부터 끝까지 그 모든 과정을 안내하는 7가지 지속적인 개발 단계로 나뉩니다. DevOps를 이해하려면 라이프사이클의 각 단계, 그리고 단계별 프로세스와 요구 사항을 파악해야 합니다.

전구 통합

지속적인 개발과 제공

소프트웨어 개발은 계획과 코딩으로 시작됩니다. DevOps에서 소프트웨어 개발은 지속적인 개선을 목표로 하는 주기적 제공 프로세스를 통해 이루어집니다.

핵심적인애자일 가치를 바탕으로 하는 DevOps는 정기적이며 빈번한 소프트웨어 릴리스를 장려합니다. 이를 달성하기 위한 표준 방식은 코드의 통합과 배포를 자동화하는 CI/CD(지속적 통합/지속적 배포)라는 프로세스를 사용하는 것입니다.

프리 프로덕션이든, 포스트 프로덕션이든, 개발 과정 내내 팀에서는 피드백을 활용하여 문제를 식별하고 계획 중인 솔루션에 대한 가설을 수립합니다.

DevOps 라이프사이클의 계획 단계가 끝나면 프로덕션 과정을 계속 진행한다는 목표하에 소스 코드와 에셋 제작이 시작됩니다. 이때 어떤 코딩 언어를 사용하든지 소스 코드 관리 툴을 사용하여 코드 베이스를 유지 관리하는 것이 중요합니다.

CI(지속적 통합)

CI(지속적 통합)는 개발자가 하루에 여러 번 코드를 공유 저장소에 통합하도록 요구하는 개발 방식입니다. 통합 후에 각 체크인 또는 브랜치가 자동화된 빌드를 통해 검증되므로 팀에서 문제를 조기에 감지할 수 있으며, 이를 통해 메인 코드 브랜치를 언제든지 실행 가능하며 프로덕션에 사용할 수 있는 상태로 유지합니다.

CI는 드물게 이루어지는 대규모 변경 작업보다는 반복적으로 이루어지는 소규모 변경 작업을 지원하는 데 적합합니다. CI를 활용하면 팀에서 코드 빌드, 테스트, 병합, 공유 저장소로의 체크인에 필요한 워크플로를 자동화함으로써 확장할 수 있습니다.

CI의 궁극적인 목표는 더 좋은 코드를 더 빠르게 제공하는 것입니다. 소규모로 이루어지는 잦은 변경에 자동화를 적용하면 팀에서 버그를 더욱 빠르게 찾고 해결할 수 있으며, 새로운 업데이트를 검증하고 릴리스하는 데 소요되는 시간을 줄일 수 있습니다.

지속적인 테스트

지속적인 테스트는 CI와 밀접한 관련이 있습니다. CI/CD 파이프라인에서는 수작업 코드 확인 대신 자동화된 테스트를 활용합니다. 이 방법을 통해 릴리스 전에 배포 항목이 뛰어난 품질을 유지하고 게임에 심각한 오류를 일으키지 않도록 합니다. 

DevOps에서는 수작업 프로세스를 최대한 제거하려고 합니다. 수작업이 많아질수록 번거로운 프로세스도 늘어나며 결과적으로 시간이 더 낭비되고 오류가 발생할 가능성도 높아집니다. DevOps 지속적인 테스트 툴의 목표는 단순히 버그를 발견하는 데 그치지 않습니다. 이 단계의 진정한 목표는 더 복잡하며 시간이 많이 소요되는 프로덕션 단계에서 패치나 핫픽스를 통해 해결할 필요 없이 그 이전 단계에서 최대한 빠르게 버그를 찾아내는 것입니다. 

자동화된 테스트는 빌드 릴리스와 프로덕션 전에 설정됩니다. 팀에서는 자동화된 테스트가 완료된 이후 프로덕션 전에 최종 단계로 수동 검토를 진행할 수 있습니다.

지속적인 모니터링

지속적인 모니터링은 DevOps 라이프사이클이 제대로 유지 관리되고 있는지 확인하는 역할을 하며, 이 단계의 최종 목표는 탁월한 사용자 경험을 제공하는 것입니다. 수집된 정보를 사용하여 소프트웨어 업데이트와 사용 현황을 면밀하게 트래킹하며, 이를 통해 소프트웨어가 올바르게 실행되는지 확인합니다.

지속적인 모니터링 단계에서 팀의 목표는 시스템 오류를 가능한 한 빠르게 감지하여 해결하는 것입니다. 이 과정에는 자동화된 오류 트래킹이 반드시 필요합니다. 자동화를 통해 전반적인 소프트웨어 성능, 사용자의 동작, 개발 인프라 안정성 등의 다른 영역도 확인할 수 있습니다.

DevOps 팀은 자동화를 감독하는 것 외에도 파이프라인의 모든 요소가 보안 기준을 준수하도록 보장해야 합니다. 릴리스 관리에 대한 수동 처리도 이 단계에서 이루어집니다.

지속적인 피드백

지속적인 피드백을 구현하려면 내부 팀과 사용자로부터 소프트웨어 성능에 대한 정보를 수집하는 피드백 루프를 마련해야 합니다. 피드백 루프가 확보되면 피드백을 DevOps 팀과 공유하여 제품 관련 반복 작업의 지침으로 삼을 수 있습니다. 설문조사, 설문지, 포커스 그룹, 소셜 미디어, 포럼 등 다양한 출처를 활용할 수 있습니다.

이 프로세스의 관건은 소프트웨어가 올바르게 작동하는지 확인하는 것뿐만 아니라 전반적인 고객 만족도를 측정하여 비즈니스 전략의 지침으로 삼아 가능한 최고의 성과를 이끌어 내는 것입니다. 지속적인 피드백은 제품 로드맵의 방향을 설정하고 잠재 고객의 바람, 요구, 기대를 충족하는 데 도움을 얻을 목적으로 사용되어야 합니다.

지속적인 배포

지속적인 배포는 자동화 사이클을 완료하고 배포 프로세스에서 인력 개입을 최소화하거나 제거한다는 점에서 지속적 통합과 일맥상통합니다. 자동화된 DevOps 툴이 소스 코드 업데이트를 모니터링하여 코드가 테스트 단계를 통과하면 프로덕션 환경에 자동으로 배포하므로 팀은 시간을 절약하고 사용자 만족도를 향상할 수 있습니다.

지속적인 배포는 자동화를 통해 사용자의 피드백 루프를 가속화합니다. 메서드를 별도의 릴리스로 배포할 수 있으며, 새 기능을 테스트하고 피드백을 구하기 위해 릴리스를 사용자로부터 숨기거나(다크 릴리스) 특정 사용자에게만 적용할 수 있습니다(기능 토글 또는 스위치 활용).

코드가 작은 배치 단위로 릴리스되므로 대규모 코드 변경으로 인한 리스크가 적으며, 자동화 덕분에 이 모든 과정에서의 작업량이 최소화됩니다.

지속적인 운영

지속적인 운영의 목표는 다운타임을 최소화하고 사용자의 불만을 초래하는 서비스 중단을 방지하는 것입니다. 이 DevOps 라이프사이클 단계에서는 애플리케이션과 환경의 안정성과 성능을 최적화하는 데 중점을 둡니다. 또한 지속적인 개발의 계획 단계에 버그 리포트와 개선 사항 관련 사용자 피드백을 제공하여 DevOps 라이프사이클의 루프를 완성합니다.

팀과 사용자 간의 지속적인 협업을 통해 이 단계에서는 DevOps 파이프라인을 거쳐 버그, 피드백, 보안 문제를 지속적으로 전달하고, 평가하고, 반복적으로 작업할 수 있습니다.

완벽한 워크플로

이 짧은 동영상에서는 Unity Plastic SCM 팀이 강력한 소스 코드 관리 툴을 사용하여 전략적 DevOps 툴체인을 실행하는 방법을 선보입니다. 이 툴체인은 DevOps 라이프사이클 내에서 원활한 워크플로를 실현하는 데 있어 핵심적인 역할을 합니다.

관련 자료

리소스를 더 살펴보고 DevOps 툴과 프로세스 구현 시 얻을 수 있는 이점에 대해 알아보세요.

버전 관리 시스템이란?

소스 코드 관련 변경 사항을 추적하고 관리하는 일은 중요합니다. 다양한 유형의 버전 관리 시스템 유형을 통해 어떻게 코드 무결성을 유지할 수 있는지 알아보세요.

DevOps의 이점

DevOps 방식을 구현하면 개발 파이프라인을 간소화하고 팀과 사용자의 만족도를 향상할 수 있습니다. DevOps를 사용하면 어떤 도움이 되는지 알아보세요.

DevOps 원칙

모든 게임 스튜디오에서는 제작 시간을 단축하면서 시간의 압박으로부터 해방되고자 하며, DevOps는 이를 실현하는 최적의 방법입니다. DevOps 방법론의 핵심 원칙을 알아보고 시작하세요.

DevOps 전자책

4가지 필수 DevOps 프랙티스

게임 개발과 관련된 기본적인 DevOps 원칙 및 프로세스에 대해 알아보고 유니티의 솔루션 포트폴리오를 사용하는 스튜디오의 성공담을 들어 보세요.

버전 관리 및 프로젝트 구성 베스트 프랙티스

이 전자책에서는 Plastic SCM 팀으로부터 완벽한 워크플로를 구현하여 더욱 뛰어난 소프트웨어 개발자로 거듭나고 버전 관리를 통달하는 방법에 대한 정보를 얻을 수 있습니다.

버그 제거, 오류 포착, 플레이어의 게임 이탈 방지

Halfbrick이 어떻게 Backtrace와 Helpshift를 사용하여 심각한 게임 오류를 사전에 감지하고 플레이어들로부터 신뢰를 얻고 있는지 알아보세요.

Unity로 DevOps 라이프사이클 최적화

DevOps 라이프사이클은 버전 관리에서 시작됩니다. 유니티의 DevOps 솔루션으로 CI(지속적 통합)와 지속적인 개발을 구현하세요.

Unity에서는 최적의 웹사이트 경험을 제공하기 위해 쿠키를 사용합니다. 자세한 내용은 쿠키 정책 페이지를 참조하세요.

확인