Drone CI
드론(Drone) 은 도커에서 빌드되고 구글 고(Go)로 작성된 지속적인 통합 플랫폼이다. 드론 프로젝트는 현재 적용 가능한 기술의 문제점을 개선하기 위해 성장했으며, 개발 환경을 설정하는 작업을 처리한다.
드론은 자동화된 테스팅과 지속적인 배포에 관한 간단한 접근 방식을 제공한다. 사용자의 목적에 부합하는 도커 이미지를 선택해서 깃허트(GitHub)에 연결하고 커밋하면 된다. 드론은 독립형 테스팅 환경을 공급하기 위해 도커 컨테이너를 사용하며, 기존 방식처럼 서버 관리를 해야 한다는 부담 없이 스택을 통해 모든 프로젝트를 완벽하게 제어한다. 드론 커뮤니티에는 100명의 기여자가 있으며, 모바일 앱 개발과 엔터프라이즈에 적용하게 될 날을 희망하고 있다.
Architecture
Drone has a very simple client and server-based architecture, it is composed of three things:
- Drone server
- Drone agents (called runners)
- Drone pipeline configuration file (on each git repository)
The following diagram depicts its architecture with more detail:
| |
Features
The following is a list of the main Drone features:
- Drone은 Go 언어로 작성되었고 모든 구성 요소가 Docker 컨테이너로 실행되기 때문에 매우 가볍습니다. 덕분에 Drone을 다양한 플랫폼이나 클라우드 환경에 단 몇 분 만에 쉽게 배포할 수 있습니다.
- 기본적으로 각 파이프라인 단계는 런타임에 자동으로 다운로드되는 격리된 Docker 컨테이너 내에서 실행됩니다.
- 또한 Drone은 Jenkins와 같은 다른 CI/CD 제품에 비해 학습 곡선이 매우 낮습니다.
- 이러한 폭넓은 플랫폼 지원을 통해 단일 제품으로 기존 클라우드 배포부터 IoT, 네이티브 Windows 또는 Mac 빌드에 이르기까지 다양한 사용 사례 시나리오에 활용할 수 있습니다.
단점
- SCM 플랫폼이 드론 서버의 웹훅에 접근할 수 있도록 드론 서버는 인터넷을 통해 접근 가능해야 합니다.
- 드론에는 약 100개의 플러그인이 있지만, 이는 젠킨스와 같은 다른 제품에서 사용할 수 있는 플러그인 수에 비하면 훨씬 적습니다.
- 이 도구는 Git SCM 플랫폼만 지원하지만, 최신 프로젝트에서는 문제가 되지 않을 것입니다.
- Drone 서버 인스턴스는 한 번에 하나의 Git SCM 플랫폼에만 액세스할 수 있습니다. 여러 플랫폼을 사용하는 경우 SCM 플랫폼당 하나씩, 여러 개의 Drone 서버를 인스턴스화해야 합니다.
See also
- CI/CD
- GitHub Actions
- CircleCI
- Woodpecker CI - Apache 2에서 독점 라이센스로 변경되어 버린 Drone의 0.8 버전을 포크하여 수정한 것
- Argo CD