ConnecTo
2022/11/28
codevil
2022. 11. 28. 17:06
DevOps = Development + operations
개발과 운영의 함성어
Dev : Plan - Code - Build - Test
Ops : Release - Deploy - Operate - Monitor
Cross Functional Team : 개발과 운영을 한팀으로 묶어 프로세스의 자동, 단일화
CI/CD Tool 이용하여 Build, Test, Deploy 자동화
장점
- 커뮤니케이션 리소스 개선
- 개발, 배포 속도가 빨라짐
- 프로세스 간소화
- 짧은 릴리즈 주기
CI/CD
Continuous Integration
Build ⇒ Test ⇒ Merge
Continuous Delivery
Automatically Release to Repository
Continuous Development
Automatically Deploy To Production
CI(Continuous Integration)
- 자동화된 프로세스
- 코드 변경사항의 정기적 빌드, 테스트 병합 자동화
- 장점
- 빠른 디버깅
- 코드 품질 개선
- 검증 및 릴리즈 시간 단축
CD(Continuous Delivery(or Deployment))
- Continuous Delivery: 공유 저장소로 자동 Release(Test ⇒Staging)
- Continuous Deployment: Production Level까지 자동 Deploy(Test -> Staging -> Production)
- MSA(MicroService Architecture) + Agile 일 경우, 사용자에게 최대한 빠른 시간안에 Production 제공 필요
CI/CD는 해야하는 업무가 많을 수록 효율적으로 만들어 준다.
Issue & PR Templates
- configuration file을 만들어 issue와 PR 내용의 template 지정 가능
- .github/ISSUE_TEMPLATE/*.md 에 template 생성 가능
- Settings - Features_Set up templates 에서 손쉽게 생성 가능
- .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
github actions
- github에서 공식 제공하는 CI/CD Tools
- 개발 workflow 자동
Workflow
- Job들로 구성. Event에 의해 트리거되는 자동화된 프로세스
- 최상위 개념
- YAML으로 작성되며, .github/workflows에 저장
Don't reinvent the wheel
- CI/CD 파이프라인은 그 절차와 각 단계에서의 할 일이 정해져 있는 편
- 이미 만들어진 것에 커스터마이즈 하는 것이 CI/CD 스크립트 짜는 시간을 개발에 투입 가능