CI/CD 특강 정리

현톨·2022년 11월 17일
0

서론

  • GitLab은 단순 Git 저장소인가?

소스코드 관리 도구는?

SCM (Source Code Management)

  • CVS -> SVN -> GIT
  • Visual SourceSafe, IBM ClearCase
  • MS TFS, Azure DevOps, AWS CodeCommit

소스코드의 관리가 필요한 이유: 유지보수, 버전관리 등을 수월하게 하기 위함

CVS to SVN to GIT

  • 파일과 디렉터리 별로 버전 관리 -> 프로젝트(릴리즈) 단위 관리
    • 브랜치 관리 등 또한 추가
  • 중앙 집중형 관리 -> 분산 관리

GIT 개념

  • 개발공간
  • 스테이징 공간
  • 로컬 리포
  • 원격 리포

GitHub이란?

  • 협업 공간의 제공
    • 소스 관리(code)
    • 이슈 관리(bug)
    • 협업 관리(collaboration)
      • 프로젝트 관리
      • 팀 관리
      • 이슈 할당/관리

GitLab vs GitHub
gitlab의 출발 모토: 개발에 관한 a to z를 제공

결론
Git: 형상 관리 도구
GitHub: 협업 공간 및 저장소
GitLab: 협업 공간 및 저장소 + 통합 개발 환경

본론

DevOps의 기본 철학: 시스템의 자동화

커밋과 이슈 연통 tip

  • 커밋 로그에 "close #123"또는 "fix #123"추가하면 자동으로 해당 이슈 close 상태로 변경
  • 커밋 패턴은 config/gitlab.yml에서 설정 가능??

개발~테스트~배포의 자동화

소프트웨어의 7가지 특성

  • 비가시성
  • 복잡성
  • 비마모성
  • 복제가능
  • 테스트 및 변경 가능
  • 비제조성
  • 순응성

CI: 지속적 통합 (PLAN->CODE->BUILD->TEST)
CD: 지속적 배포 (DEPOY->OPERATE->MONITOR)

코딩 스타일 분석 툴 (코딩 스탠다드)
python: Pylint, Pyflakes, Flake8
java: Checkstyle, PMD, FindBugs
js: Eslint, Jslint

gitlab의 기능들을 github actions을 통해서도 사용할 수 있다.

ps. 후반엔 실습 따라가기에 급급해서 메모를 할 수 없었지만 gitlab에서 CI를 하는 방법에 대해 배울 수 있었다. 한이음 프로젝트를 진행할 때 제공되는 GitLab을 통해 버전관리를 했었는데, 그동안 CI/CD에 대해 잘 모르다보니 GitLab의 전체 기능의 10퍼센트밖에 사용하지 않았던 것 같다.

profile
기록하는 습관 들이기

0개의 댓글