배포 자동화에 대해서

최정석·2022년 8월 8일
0
post-thumbnail

✅ 배포 자동화

  • 배포 자동화가 필요한 이유
    • 먼저 수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약됩니다.
    • 휴먼 에러(Human Error)를 방지할 수 있습니다.
      여기서 휴먼 에러란 사람이 수동적으로 배포 과정을 진행하는 중에 생기는 실수들을 뜻합니다. 그 전에 했던 배포 과정과 비교하여 특정 과정을 생략하거나 다르게 진행하여 오류가 발생하는 것이 휴먼 에러의 예로 볼 수 있습니다.
  • 배포 자동화 파이프라인
    1. Source 단계 : 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업을 수행합니다.
    2. Build 단계 : Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공합니다. 또한 Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행합니다.
    3. Deploy 단계 : Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행합니다.

✅ 지속적 통합 (CI; continuous intergration)

  • CI는 지속적 통합(continuous integration)의 약자로, 팀 구성원이 각자의 작업을 자주 통합하는 소프트웨어 개발 방식입니다.
  • CI 단계
    1. Code : 개발자가 코드를 코드 저장소에 Push한다.
    2. Build : 코드 저장소로부터 코드를 가져와서 유닛 테스트 후 빌드한다.
    3. Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인한다.
  • 지속적 통합은 모든 코드 변화를 하나의 리포지토리에서 관리하는 것 부터 시작합니다.
    모든 개발팀이 코드의 변화를 확인할 수 있기 때문에, 투명하게 문제점을 파악할 수 있습니다.
    그리고 잦은 풀 리퀘스트(pull request)와 머지(merge)로 코드를 자주 통합합니다.

✅ 지속적 배포

  • 지속적 배포는 지속적 통합 과정이 원활하게 끝나면 바로 고객에게 배포하는 것입니다.
  • 지속적 배포 과정
    1. Release : 릴리즈 단계에서는 빌드까지 모두 준비가 되었고, 어떤 기능이 개발되었는지 비즈니스 관계자들과 이야기를 나누는 단계입니다. 어떤 기능을 넣을지, 해당 릴리즈는 배포를 할지 말지 결정하는 단계로 여러 의사결정이 이루어집니다.
    2. Deploy : 실제 배포합니다.
    3. Operation : 배포된 소프트웨어를 실제 운용하는 과정입니다. 해당 과정에서 고객의 피드백을 충분히 받아 기획에 반영합니다.
  • 지속적 배포의 가장 흔한 사례가 Github Page입니다. 지정해둔 디렉터리에 정해진 방식에 따라 잘 커밋하기만 하면, Github Page가 알아서 해당 index.html 파일과 해당 디렉터리에 있는 파일을 잘 번들링해서 Github Page 서버에 업로드합니다.

"하루에 1000번 배포하는 조직 되기" 를 읽으며

출처 : 뱅크샐러드 블로그 https://blog.banksalad.com/tech/become-an-organization-that-deploys-1000-times-a-day/

뱅크 샐러드는 더 좋은 사용자 경험을 위해서 Cross Teams, Cross Repositories 라는 개발 문화를 추구합니다.

이는 체계를 가지고 있고 한 명의 개발자는 하나의 작은 조직에 속해있지만, 사용자 경험을 개선하기 위해서라면 본인의 팀 외에도 여러 팀의 여러 Repository의 코드를 직접 수정할 수 있어야 하고 이렇게 팀, 언어, 프레임워크, 비즈니스 도메인 등 제한 없이 기여하고 개선하고 코드 오너에게 리뷰 받으며 자신의 한계를 깨고 동반 성장을 할 수 있는 문화를 뜻한다고 합니다.

뱅크샐러드는 하루에 1,000번 배포하는 조직이 되기 위하여 배포 과정을 개선하고 새로운 배포 시스템을 구축했습니다. 새로운 배포 시스템의 도입을 통해 현재는 예전보다 하루에 무려 4배나 많은 배포가 일어나고 있습니다.

왜 이러한 시도를 하는 것일까요?

실리콘밸리의 벤처 캐피털은 테크 기업에 투자를 고려할 때 그 기업이 확장 가능한 기술 역량을 보유하고 있는지 판단합니다. 이때 판단에 활용되는 지표 중 하나가 바로 하루에 발생하는 배포 수입니다. 더 잦은 배포는 더 많은 비즈니스 요구의 충족을 뜻하고 이는 사용자에게 더 많은 가치를 더 빠르게 전달할 수 있다는 것을 의미하기 때문입니다.

0개의 댓글