ebay 아키텍처
https://rnd.ebay.co.il/cwsd.php?Z3AuPTQ0Pg/NTQ/R0w-TEAocWx6bChfZmB-bmB2f3VmbXN2PGRhdA.pdf
ebay cI 아키텍처에 대한 좋은 설명이 있다.
# 로컬 개발 환경
Requirements
• 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
How
• 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
'scribbling' 카테고리의 다른 글
kafka connector가 지원하는 connector 플러그인 (0) | 2019.03.21 |
---|---|
ebay에서 jenkins 대신 drone을 ci/cd 솔루션으로 사용 중이라고 한다 (0) | 2019.03.21 |
debezium을 이용한 CDC 사용할 때 mysql쪽 설정 내용 (0) | 2019.03.20 |
펌 - 참조할만한 kubernetes ci/cd (0) | 2019.03.11 |
Proxy 테스트 코드 (0) | 2019.03.07 |