TECHARTNOMAD TECHARTFLOW.IO

TECH.ART.FLOW.IO

[번역]CI/CD 파이프라인이란 무엇일까요?

jplee 2023. 11. 27. 00:31

역자의 말.
꽤 오랜 역사를 갖고 있는 전통적인 게임개발사들에는 이러한 CI/CD 와 DEVOPS 에 대한 이해가 충분히 있을것이라고 생각합니다. 제가 본격적으로 이러한 CI/CD 와 DevOps 팀이 얼마나 중요한지 깊게 이해하게 된 것은 불과 몇 년이 되지 않습니다. 2016년 넷이즈에서.. 그리고 2019년 거인네트워크에서 많은 것을 배웠습니다. 왜... 한국에 있을 때는 배우지 못했을까요? 2015년 이전에는 주로 미술팀과 관련 된 업무에 치우친 일들을 많이 했기 때문일 수도 있으며 라이브러리 관리팀이나 엔진팀 또는 클라이언트팀과의 기민한 업무의 비중이 작았기 때문일 겁니다. 아마도 제 생각에는 그것이 큰 이유였던 것 같습니다. 최근에는 엔진 소스코드를 수정하는 일들을 많이 하게 되는데 이 과정에서도 다양한 불편함들이 느껴지는 것과 스타트업 기업의 컨설팅을 하는 과정에서도 느끼게 되는데요... 이유가 무엇일까... 라는 생각에 빠져들게 만들더군요. 포트나이트의 CI/CD 전략은 매우 엄격하고 생산적입니다. 다음에 그것에 대해서도 자료를 번역해서 올려보겠습니다. 그 전에 관련 CI/CD 가 무엇인지 정도는 알고 갈 필요가 있을 것 같습니다. 기회를 비러 CicleCI 의 테크블로그 글을 빌려 시작을 해 볼까 합니다. 또한 이 글을 보는 스타트업 개발사 대표님들께서 지금 당장 CTO 를 찾아가서 왜 우리는 이것을 안하는지 빨리 물어보고 견고하지 않거나 없다면 어서 빨리 그것을 구성하라고 닥달 하시길 바랍니다.
원문.

 

What is a CI/CD pipeline?

A CI/CD pipeline is the full set of processes that run when you trigger work on your projects. Pipelines encompass your workflows, which coordinate your jobs, and this is all defined in your project configuration file.

circleci.com


 
파이프라인 소개
CI/CD 파이프라인은 자동화된 소프트웨어 개발의 가장 기본적인 구성 요소입니다. 이 용어는 컴퓨터 과학의 다양한 측면을 설명하는 데 사용되어 왔지만, CircleCI와 대부분의 데브옵스 업계에서는 지속적 통합(CI)과 관련된 동작 및 프로세스의 광범위한 적용을 설명하기 위해 "파이프라인"이라는 용어를 사용합니다.

역자 주: CI 는 Continuous Integration 그리고 CD 는 Countinous Deploy 를 뜻 합니다. 즉 지속적 통합 그리고 지속적 배포를 가리키고있습니다.

CI( Continuous Integration )는 배포된 코드의 품질이 손상되지 않도록 보장하면서 개발 속도를 높이는 소프트웨어 개발 전략입니다. 개발자는 CI 도구를 사용하여 하루에 여러 번, 때로는 작은 단위로 코드를 지속적으로 커밋하고 공유 리포지토리와 병합하기 전에 자동으로 빌드 및 테스트합니다. 최신 소프트웨어 배포 파이프라인은 비즈니스 요구사항에 따라 애플리케이션을 빌드, 테스트 및 배포할 수 있습니다.

읽는 것보다 보는 것을 선호하시나요? 이 동영상에서는 지속적 통합, 배포의 기본 사항과 CI/CD 파이프라인을 통한 성공의 열쇠에 대해 알아보세요:

CI/CD 101 동영상을 보려면 클릭하세요.

CI/CD 파이프라인이란 무엇인가요?
CI/CD 파이프라인은 프로젝트에서 작업을 트리거할 때 실행되는 전체 프로세스 집합입니다. 파이프라인은 작업을 조정하는 워크플로우를 포함하며, 이 모든 것은 프로젝트 구성 파일에 정의되어 있습니다.
지속적 통합(CI)과 지속적 배포(CD)
지속적 통합은 소프트웨어의 빌드 및 테스트를 자동화합니다. 지속적 배포는 이러한 자동화를 확장한 것으로, Test Suit 를 통과하는 모든 코드 커밋 후에 소프트웨어를 배포할 수 있습니다. 가장 성공적인 개발팀은 소프트웨어를 자주 배포합니다. 자세한 내용은 지속적 통합(CI)과 지속적 배포(CD) 비교 페이지를 참조하세요.

 

CircleCI

Continuous integration enables developers to continually commit code in small increments, automatically building and testing the code before merging it with the shared repository.

circleci.com



CI/CD 파이프라인의 구성 요소

지속적 통합은 소프트웨어 빌드 및 테스트를 자동화합니다. 지속적 배포는 이러한 자동화를 확장한 것으로, Test suit 를 통과하는 모든 코드 커밋 후에 소프트웨어를 배포할 수 있습니다.

빌드 단계 
빌드 단계에서는 여러 개발 팀이 각자의 시스템에서 개발한 코드를 공유 리포지토리에 기여합니다. 이 과정은 간단해 보이지만 금방 복잡해집니다. 버전 관리 외에도 개발자 환경과 프로덕션 환경의 미묘한 차이, 툴링, 코드 품질 등의 문제가 발생할 수 있습니다. 빌드 프로세스를 파이프라인에 포함하면 개발자의 기여를 자동화하고 소프트웨어 품질과 환경을 표준화할 수 있는 도구를 제공한다는 이점이 있습니다.

테스트 단계 
너무 자주 개발 팀은 배포 단계로 바로 이동합니다. 테스트 단계는 CI/CD의 주요 이점이 빛을 발하는 곳이기 때문에 이는 실수입니다. 테스트는 복잡하고 반복적인 프로세스로, CI/CD 파이프라인이 자동화하는 데 도움을 줍니다.

자동화된 지속적 통합 파이프라인에서 함께 사용할 수 있는 여러 가지 유형의 테스트가 있습니다. 단위 테스트와 통합 테스트를 결합하여 최대한의 테스트 커버리지를 제공할 수 있습니다. 또한 테스트는 소프트웨어 성능에 대한 중요한 데이터를 제공하여 코드에 즉시 다시 통합할 수 있습니다. 테스트의 결과는 버그가 점점 더 줄어드는 고품질 소프트웨어입니다.

배포 단계 
배포 단계에서는 프로덕션 또는 기타 환경으로 소프트웨어 릴리스를 오케스트레이션할 수 있습니다. 일정에 따라 코드를 배포하고, 모든 고객 또는 일부 그룹에만 소프트웨어를 롤아웃하고, 문제가 발생하면 릴리스를 롤백하도록 파이프라인을 구성할 수 있습니다. 고객에게 업데이트된 소프트웨어를 제공하기 위한 최선의 전략이 무엇인지 결정할 수 있습니다. 이 모든 것을 CI/CD 파이프라인의 일부로 자동화할 수 있습니다.
 

CI 파이프라인 구성하기 

지속적 통합의 관건은 구성입니다. CI 파이프라인은 구성 파일에서 가장 높은 수준의 오케스트레이션입니다.

역자 주.
오케스트레이션 이란 여러 개의 컴퓨터 시스템, 애플리케이션 및/또는 서비스를 조율하고 관리하는 것으로, 여러 개의 작업을 함께 연결하여 크기가 큰 워크플로나 프로세스를 실행하는 방식을 취합니다.

CI 워크플로를 사용하면 작업을 개별적으로 실행하고 문제를 해결할 수 있으므로 실패한 빌드를 실시간으로 확인할 수 있습니다. 워크플로에서 하나의 작업이 실패하면 전체 세트를 다시 실행하지 않고 해당 작업만 다시 실행할 수 있습니다.

CI Jobs

작업(Job)은 단일 단위로 실행되는 단계의 모음이며, 워크플로는 해당 작업 집합과 실행 순서를 정의하는 규칙 집합입니다.

Configuration steps

작업 내에서 단계는 단일 키-값 쌍의 목록입니다. 키는 단계의 유형을 나타내며 값은 구성 맵 또는 문자열일 수 있습니다. 단계가 실행인 경우 실행할 명령을 문자열 값으로 지정할 수 있습니다.

CircleCI 의 CI/CD 피처들 

CircleCI에서 파이프라인을 통해 코드를 빌드할 때 만나게 되는 몇 가지 기능은 여러 리소스 클래스, 병렬 테스트 분할, 오브, 매트릭스 작업, 환경 변수/컨텍스트 및 승인 사용입니다.

리소스 클래스: CircleCI는 각 작업에 대해 CPU 및 RAM 리소스를 최적화할 수 있는 다양한 리소스 클래스를 제공합니다.

병렬 테스트 분할: 시간을 단축하려면 테스트를 여러 개의 개별 컨테이너에 분산하여 병렬로 실행하세요.

오브: 오브는 반복되는 구성을 한 줄의 코드로 압축하는 재사용 가능한 YAML 구성 패키지입니다.

매트릭스 작업: 매트릭스 작업을 사용하면 매개변수화된 작업을 다른 인수를 사용하여 여러 번 실행할 수 있습니다.

매개변수: 파이프라인 변수, 환경 변수 및 컨텍스트는 사용자가 데이터를 저장 및 재사용하고 민감한 정보를 보호할 수 있는 매개변수입니다.

승인: 작업을 진행하기 전에 수동 승인을 기다리도록 워크플로를 프로그래밍할 수 있습니다. 리포지토리에 푸시 액세스 권한이 있는 사람은 누구나 작업을 승인하여 워크플로우를 계속 진행할 수 있습니다.

CircleCI에서 파이프라인으로 빌드 시작하기

지속적 통합을 처음 사용하는 경우, 파이프라인의   기능을 이해하면 CI의 진정한 가치를 이해하는 데 도움이 됩니다. 자세히 알아보려면 CircleCI 리소스 페이지를 참조하세요. 시작하려면 문서를 확인하세요.

역자의 마치는 말.

TEAM CITY 와 CircleCI 를 비교하면서 최근 컨설팅하고 있는 게임테일즈에 CI/CD를 구축하는 첫 번째 업무를 테크니컬 아트쪽에서 진행할 때 이것들을 프로모트 해야하는데요... 함께 지속적으로 살펴보기로 해요.

 

엮인 글.

 

[번역]언리얼 엔진 TeamCity 빌드 환경설정

언리얼 엔진 TeamCity 빌드 환경설정 - Edward Beazer Blog (thedigitalsages.com) Unreal Engine TeamCity build configuration - Edward Beazer Blog My current TeamCity build configuration is a bit dated since I’ve paused on game development to work

techartnomad.tistory.com