2017-04-27 4 views
1

도커가 CI/CD에 얼마나 정확하게 들어 있는지 궁금합니다. 컨테이너의 도움으로 의존성/환경보다는 코드에 집중할 수 있다는 것을 알고 있습니다. 그러나 일단 코드를 체크인하면 TeamCity, Jenkins 또는 Bamboo와 같은 도구가 통합 빌드, 통합 테스트/유닛 테스트 및 동일한 Docker 컨테이너 이미지를 실행할 예상 서버 (승인 후)를 처리 할 것으로 기대할 수 있습니다. 내장 된 코드. 그러나 Docker는 CI/CD주기에 있지 않습니다. 서버에서 실행될 때 작동합니다. 그렇다면 DevOps에 대한 기사 중 하나를 나열한 기사를 보는 이유는 무엇입니까? 나는 DevNps 전문가가 아니므로 깨달을 수 있습니다.DevOps vs Docker

답변

3

Docker는 DevOps 엔지니어, 개발자 운영자 또는 사용자가 원하는 모든 도구에 사용할 수있는 또 다른 도구입니다. Docker는 Docker 엔진이 설치된 곳 어디에서나 실행할 수있는 단일 단위 (컨테이너)에 코드 및 코드 종속성을 캡슐화합니다. 왜 이것이 유용한가요? 여러 가지 이유로; CI/CD의 관점에서 엔지니어는 코드에서 구성을 분리하고 종속성 관리 등을 수행하는 데 소요되는 시간을 줄이며 확장 할 수 있습니다 (물론 다른 도구를 사용하여). 목록은 계속됩니다.

예 : 만약 하나의 코드 저장소가 있다면, 빌드 스크립트에서 특정 환경 의존성을 끌어 와서 동일한 환경에서 동일한 환경에서 동일한 기능을하는 컨테이너를 만들 수 있습니다. 환경 특정 인증서 및 구성 파일 세트를 포함 할 수 있습니다.

다른 예 : 빌드 서버가 여러 개있는 경우 CI/CD 파이프 라인에서 사용할 수있는 여러 가지 유틸리티 Docker 컨테이너를 만들 수 있습니다 무대에서 무언가를하기 위해 컨테이너를 당겨 특정 작업. 이제 빌드 서버에 대한 유일한 종속성이 Docker Engine이됩니다. 그리고 다른 유틸리티 컨테이너에 의해 수행되는 다른 조작과 독립적으로 이러한 유틸리티 컨테이너를 변경, 추가, 수정할 수 있습니다.

그런 말을 모두 들었을 때 CI/CD 파이프 라인에서 Docker를 활용하는 것이 정말 중요합니다. Docker가 무엇인지, Docker가 할 수있는 일은 "CI/CD에서 Docker를 사용하는 방법"가이드보다 중요하다고 생각합니다. 거기에 몇 가지 일반적인 패턴이 있지만, 그것은 모두 당신이 해결하려고하는 문제 (들)로 이어지고 특정 패턴은 특정 유스 케이스에 적용되지 않을 수 있습니다.

4

Docker는 "코드로 구성"이라는 개념을 용이하게합니다. 내 저장소에 체크인되는 사용자 지정 구성 파일과 함께 필요한 모든 프레임 워크가있는 특정 기본 이미지를 지정하는 Dockerfile을 작성할 수 있습니다. 그런 다음 Dockerfile을 사용하여 해당 이미지를 빌드하고 도커 레지스트리로 밀어 넣은 다음 대상 호스트에게 최신 이미지를 가져온 다음 이미지를 실행하도록 알려줍니다. 필자는 Linux 만 설치된 대상 호스트를 사용하여이 모든 작업을 자동으로 수행 할 수 있습니다.

이것은 Docker가 CI/CD에 기여할 수있는 방법을 보여주는 간단한 시나리오입니다.

+0

좋은 설명 감사합니다, 요점! –

0

도커는 응용 프로그램을 작성하는 데 유용합니다. 종속성이 다른 여러 응용 프로그램이있는 경우 필요한 종속성이있는 고정 컨테이너에 모든 것을 작성하여 CI 시스템에 많은 의존성과 충돌을 피할 수 있습니다. 장래에 확장 할 필요가 있다면 CI 도구 (젠킨 노예와 같은)를 실행하는 다른 컴퓨터와 도커 설치가 필요합니다.

마이크로 서비스를 사용할 때 이것은 매우 중요합니다. 한 응용 프로그램은 이전 버전의 프레임 워크에 의존 할 수 있지만 다른 응용 프로그램은 새로운 버전을 필요로합니다. 용기는 문제가되지 않습니다.

0

Docker는 우리가 모두 지옥 문제에서 매트릭스를 알고있는 것을 제거하여 환경을 컨테이너 기술과 독립적으로 만듭니다. 오픈 소스 프로젝트 Docker는 컨테이너 작업 흐름을 단순화하여 게임을 변경 시켰습니다. 이로 인해 개발에서 생산까지의 소프트웨어 제공주기의 모든 단계에서 컨테이너를 사용하게되어 많은 즐거움을 얻었습니다.

Docker 이미지 작성, Docker 레지스트리에 대한 이미지 및 종속성 관리, 오케스트레이션 플랫폼 배포 등이 모두 컨테이너에 관한 것이 아니라 CI/CD 프로세스에 모두 포함됩니다.

관련 문제