DevOps 라이프사이클의 7단계
DevOps 라이프사이클이란 무엇인가요? DevOps 라이프사이클은 소프트웨어 개발 프로세스를 처음부터 끝까지 안내하는 7가지의 지속적인 개발 단계로 나뉩니다. DevOps를 이해하려면 수명 주기의 각 단계와 각 단계의 프로세스 및 요구 사항을 아는 것이 중요합니다.
소프트웨어 개발은 계획과 코딩으로 시작됩니다. 데브옵스에서는 지속적인 개선을 목표로 정기적인 배포 프로세스를 통해 이를 수행합니다.
애자일의 핵심 가치를 기반으로 하는 DevOps는 정기적이고 빈번한 소프트웨어 릴리스를 장려합니다. 이를 달성하는 표준 방법은 코드의 통합 및 배포를 자동화하는 것인데, 이를 연속 통합/연속 배포(CI/CD)라고 합니다.
프리 프로덕션이든 포스트 프로덕션이든 개발 전반에 걸쳐 팀은 피드백을 활용하여 문제를 파악하고 계획에 대한 해결책을 가설합니다.
DevOps 라이프사이클의 계획 단계에 따라 소스 코드 및 자산 생성은 프로덕션을 계속 진행한다는 목표에서 시작됩니다. 어떤 코딩 언어를 사용하든 소스 코드 관리 도구를 사용하여 코드베이스를 유지 관리하는 것이 우선 순위입니다.
지속적 통합(CI) 은 개발자가 하루에 여러 번 공유 리포지토리에 코드를 통합해야 하는 개발 관행입니다. 그런 다음 각 체크인 또는 브랜치는 자동화된 빌드를 통해 검증되므로 팀은 문제를 조기에 발견하여 메인 코드 브랜치가 항상 실행 가능하고 프로덕션에 사용할 수 있도록 할 수 있습니다.
CI는 소수의 대규모 변경보다는 많은 소규모의 반복적인 변경을 지원하도록 설계되었습니다. 코드 빌드, 테스트, 병합, 공유 리포지토리 체크인을 위한 자동화된 워크플로를 통해 팀이 확장할 수 있도록 도와줍니다.
지속적 통합의 궁극적인 목표는 더 나은 코드를 더 빠르게 제공하는 것입니다. 자동화와 함께 변경 빈도를 줄임으로써 팀은 버그를 더 빨리 발견하고 해결할 수 있으며 새 업데이트를 검증하고 릴리스하는 데 소요되는 시간을 줄일 수 있습니다.
지속적인 테스트는 지속적인 통합과 밀접한 관련이 있습니다. CI/CD 파이프라인은 수동 코드 유효성 검사가 아닌 자동화된 테스트에 의존합니다. 이는 배포되는 콘텐츠의 품질이 우수하고 출시 전에 게임을 중단시키는 오류가 발생하지 않도록 하기 위한 것입니다.
DevOps는 가능한 한 많은 수동 프로세스를 제거하는 데 의존합니다. 수동적이고 지루한 프로세스가 많을수록 더 많은 시간이 낭비되고 오류가 발생할 가능성이 커집니다. 지속적인 테스트 DevOps 도구의 목표는 단순히 버그를 발견하는 것이 아니라 가능한 한 빨리 발견하여 훨씬 더 복잡하고 시간이 많이 소요되는 패치나 핫픽스를 통해 프로덕션 단계에서 해결할 필요가 없도록 하는 것입니다.
자동화된 테스트는 빌드 릴리스 전과 프로덕션 전에도 설정됩니다. 팀은 프로덕션 전과 자동화된 테스트가 완료된 후 마지막 단계로 수동 검토를 삽입할 수 있습니다.
지속적인 모니터링은 훌륭한 사용자 경험을 제공한다는 최종 목표와 함께 DevOps 수명 주기가 잘 유지되도록 보장합니다. 소프트웨어 업데이트와 사용량을 면밀히 추적하여 수집한 인사이트를 소프트웨어가 올바르게 실행되도록 하는 데 활용합니다.
지속적인 모니터링 단계에서 팀은 가능한 한 빨리 시스템 오류를 감지하고 해결하려고 노력합니다. 여기에는 자동화된 오류 추적이 필수적입니다. 자동화를 통해 전반적인 소프트웨어 성능, 사용자 행동, 개발 인프라 안정성 등과 같은 다른 영역에 대한 가시성도 확보할 수 있습니다.
DevOps 팀은 자동화를 감독하는 것 외에도 파이프라인의 모든 측면이 보안 표준을 준수하는지 확인할 책임이 있습니다. 릴리스 관리의 수동 처리도 이 단계에서 이루어집니다.
지속적인 피드백을 위해서는 내부 팀과 사용자로부터 소프트웨어 성능에 대한 인사이트를 수집할 수 있는 피드백 루프를 구현해야 합니다. 그런 다음 피드백을 DevOps 팀과 공유하여 제품 반복을 안내합니다. 출처에는 설문조사, 설문지, 포커스 그룹, 소셜 미디어, 포럼 등이 포함될 수 있습니다.
이 프로세스는 소프트웨어가 올바르게 작동하는지 확인하는 것뿐만 아니라 전반적인 고객 만족도를 측정하여 비즈니스 전략을 수립하고 최상의 결과를 보장하는 데에도 도움이 됩니다. 지속적인 피드백을 통해 제품 로드맵을 조정하고 오디언스의 요구, 필요, 기대에 부응할 수 있도록 해야 합니다.
지속적 배포는 자동화 주기를 완료하고 배포 프로세스에서 사람의 개입을 최소화하거나 제거함으로써 지속적 통합과 함께 작동합니다. 자동화된 DevOps 도구는 소스 코드 업데이트를 모니터링하고 테스트 단계를 통과하면 프로덕션 환경에 자동으로 배포하여 시간을 절약하고 사용자 만족도를 향상시킵니다.
지속적인 배포는 자동화를 통해 사용자와의 피드백 루프를 가속화합니다. 또한 사용자에게 숨기거나(다크 릴리스) 특정 사용자가 새로운 기능을 테스트하고 피드백을 요청할 수 있도록(기능 토글 또는 스위치) 릴리스에 대한 배포를 분리하여 배포할 수도 있습니다.
코드가 소규모 배치로 릴리스되므로 대규모 코드 변경으로 인한 위험을 최소화할 수 있으며, 자동화를 통해 최소한의 노력으로 작업을 수행할 수 있습니다.
지속적인 운영은 다운타임을 최소화하고 사용자의 불편한 서비스 중단을 방지하는 것을 목표로 합니다. DevOps 라이프사이클의 이 단계에서는 안정성과 성능을 위해 애플리케이션과 환경을 최적화하는 데 중점을 둡니다. 또한 지속적인 개발의 계획 단계에 버그 보고서와 개선 사항에 대한 사용자 피드백을 제공하여 DevOps 라이프사이클의 고리를 완성합니다.
팀 간 및 사용자와의 지속적인 협업을 통해 버그, 피드백 및 보안 문제를 DevOps 파이프라인을 통해 지속적으로 전달, 평가 및 반복할 수 있습니다.
완벽한 워크플로
이 짧은 동영상에서 Unity 버전 관리 팀(구 Plastic SCM)은 강력한 소스 코드 관리 툴이 어떻게 DevOps 수명 주기 내에서 원활한 워크플로를 달성하는 데 중요한 역할을 하는 전략적 DevOps 툴체인을 실행할 수 있는지 보여 줍니다.
소스 코드의 변경 사항을 추적하고 관리하는 것은 필수입니다. 다양한 유형의 버전 관리 시스템이 코드의 무결성을 유지하는 데 어떻게 도움이 되는지 알아보세요.
DevOps 방식을 구현하면 개발 파이프라인을 간소화하고 팀과 사용자의 만족도를 향상할 수 있습니다. DevOps를 사용하면 어떤 도움이 되는지 알아보세요.
모든 게임 스튜디오에서는 제작 시간을 단축하면서 시간의 압박으로부터 해방되고자 하며, DevOps는 이를 실현하는 최적의 방법입니다. DevOps 방법론의 핵심 원칙을 알아보고 시작하세요.
게임 개발을 위한 기본적인 데브옵스 원칙과 프로세스에 대해 알아보고, 유니티의 솔루션 포트폴리오를 통해 성공을 거둔 스튜디오의 이야기를 들어보세요.
이 전자책에서 완벽한 워크플로를 구현하여 더 나은 소프트웨어 개발자가 되고 버전 관리를 마스터하는 방법에 대한 유니티 버전 관리 팀의 인사이트를 확인하세요.
Halfbrick이 백트레이스와 헬프시프트를 사용하여 게임을 중단시키는 오류를 사전에 감지하고 플레이어가 게임을 계속 플레이할 수 있도록 하는 방법을 알아보세요.
DevOps 라이프사이클은 버전 관리에서 시작됩니다. 유니티의 데브옵스 솔루션으로 지속적인 통합과 개발을 구현하세요.