caffeine-library / release-everything

'Release의 모든 것'을 읽는 스터디
3 stars 0 forks source link

[keyword] 13장 - 배치 고려 설계 #37

Closed leejaeseung closed 7 months ago

leejaeseung commented 7 months ago

주제

'13장 - 배치 고려 설계'을 읽고 내용을 요약하거나,
중요✨ 하다고 생각하는 키워드 및 관련 설명을 코멘트로 달아주세요

연관 챕터

36


@caffeine-library/readers-release-everything

leejaeseung commented 7 months ago

12 장은 내용이 별로 없고.. 인간 배치 시절의 썰을 들려주었네요 ㅎㅎ 개발자란 게을러야 한다. 라는 명언이 생각나는 장이었습니다. 개발을 하면서 가장 잘 짰던 코드를 돌이켜보면 "진짜 이렇게까지 짜야되나?" 라는 생각을 하고 필요없는 코드를 제거해나갔을 때 가장 깔끔한 코드가 나왔던 것 같네요 (읽기 귀찮고 읽을 필요없는 코드들을 줄여나가는..?)

13 장 - 배치 고려 설계

12 장에서의 배치는 알고 있던 손으로 돌리는 수동 배치 job 이었는데, 13 장에서의 배치는 배포를 의미하는 것 같아 생각해보니 옛날에는 배포를 수동 배치 혹은 스크립트로 했고, 현재는 자동화 파이프라인을 적용한 배치를 통해 배포가 이뤄지는 거니 결국 배치라는 단어로 설명이 되는 것 같습니다.

13.3 자동 배치

불변 폐기 기능 인프라 - 언제 실행해도 같은 결과를 내놓는 불변 인프라를 만들고, 매번 새롭게 만드는게 가장 안전하다. (컴퓨터를 포맷할 때 가장 깔끔한 것처럼)

인프라 외적으로, 개발을 할 때도 위 개념은 상당히 도움이 되는 것 같습니다. 특정 객체에 대한 상태를 계속 관리하며 이전 상태로 되돌리는 건 상태에 따른 여러 유효성 검증 로직이 생기기 마련인데 간단하게 객체를 삭제/생성 함으로써 객체의 일관성을 유지할 수 있습니다.

13.4 지속적 배치

부분적인 변경이어도 전체 배치를 수행하라.

안정성보단 빠른 배포가 우선이라면, 코드가 master 브랜치에 머지되는 순간 운영 배포가 이뤄질 수도 있을 듯 (하지만 과연 쓸까?) 하지만 운영 배포는 대부분이 수동으로 진행하지 않을까 싶네요. 개발자 혹은 다른 부서가 진행하는 등

13.5.1 관계형 데이터베이스 스키마

관계형 데이터베이스의 스키마 변경은 대부분 서비스의 중단을 불러일으킨다. 데이터베이스의 컬럼을 수정하는 모든 동작은 하위호환성을 매우 중요하게 생각해야 한다.

실제로 코드를 머지하던 중 nullable 을 not null 로 바꾸었는데 2년 전에 존재하던 데이터를 불러올 때 오류가 났던 경험이 떠올랐습니다..

13.5.2 스키마 없는 데이터베이스

점진 작업 후 일괄 처리

최신 버전, 구 버전을 처리할 수 있는 코드를 모두 만들고 구 버전 문서를 최신 버전으로 업데이트하는 방식이다. 코드가 버전 별로 생기지 않고 마이그레이션이 끝난 후 구 버전 코드를 제거할 수 있어 노력이 적게 든다.

다만 구 버전 코드의 제거가 신속히 이뤄지지 않으면 레거시 코드가 될 가능성이 있을 것 같은데요. (구 버전을 최신 버전으로 마이그레이션하는 코드만으로 마이그레이션을 수행하는 것으로 이해하였습니다) 수동으로 데이터를 마이그레이션하고 구 버전 코드를 빠르게 제거하는 방법이 실제로는 더 깔끔했던 것 같더라구요

emiling commented 7 months ago

13.1 반려 동물과 가축

다른 기기에 의해 만들어졌기 때문에 운영자가 절대 직접 관리하지 않는 기기도 있다. 이는 관리 해야할 구성이 많아지고 우리를 도와 구성을 관리할 도구도 더 많아진다는 의미이다. 이런 복잡성을 수용한다면 그 보상으로 배치 작업 때문에 가동을 중단해야 하는 시간을 점차 줄일 수 있게 된다 (p.333)

시스템 점검 시간

도구를 어떤 맥락에서 무엇을 위해 사용하려는 것인지 파악할 수 있게 된다 (p.334)

13.3 자동 배치

13.4 지속적 배치 (Continuous Deployment)

kth990303 commented 7 months ago

유진님 키워드 발표는 24.03.24(일) 에 진행하기