ebay ci/cd 아키텍처

scribbling 2019. 3. 21. 11:15

ebay 아키텍처


ebay cI 아키텍처에 대한 좋은 설명이 있다.

# 로컬 개발 환경


• Developer should be able to run the services on his development machine

• There should be isolation between development environments – no shared resources

• Developers shall use the same dependencies (DB version, etc.)

• How

• Running dependencies locally using Docker (databases, services, etc.)

• Use docker-compose files with preconfigured settings (e.g. DB credentials, etc.)

• Custom CLI tool to ease developers’ daily work (automate common tasks)

• Development environment related files are managed in a dedicated git repository

# CI pipeline


• Detailed notifications over email and Slack (where / who / what / …)

• Verbose output during the build

• Pull request validation + GitHub integration (trigger validation job, update the pull request, etc.)

• Use Jenkins Multibranch Pipeline jobs

- Pipeline as code (job configuration should be part of the codebase)

- Auto detects branches (new and deleted)

- Triggered on push (using GitHub webhook)

- Use Jenkins Shared Pipeline Libraries for code reuse (https://github.com/ebay/Jenkins-Pipeline-Utils »)

- Spin-up dependencies using Docker (Jenkins is running on Kubernetes…)

# key

Automate as much as possible

• Keep isolation (developers, environments, build runs, etc.)

• Define test boundaries

• Local Development Environment

• Should be easy and quick to setup, maintain and run

• Should be aligned across all developers

• CI

• Should provide quick feedback on all branches

• Should help protecting important branches

• CD

• Should give high confidence

• Should be auditable

Posted by '김용환'

댓글을 달아 주세요