배경
다운 타임 제로 배포를 구현하려는 팀에서 일하고 있습니다. 이를 달성하기 위해 블루 / 그린 배포 전략을 사용할 계획입니다. 제가 연구를 수행하면서 실현하고있는 것 중 하나는 데이터베이스를 변경하기가 얼마나 복잡하다는 것입니다. 열 이름을 바꾸는 것과 같은 간단한 작업은 완료 될 때까지 3 번의 전체 릴리스주기를 수행 할 수 있습니다 !
변경 사항을 여러 번 배포하면 전체 릴리스를 수행하면 인적 오류가 발생할 가능성이 높습니다. 링크 된 기사에서 2 개의 릴리스에는 코드 변경이 필요하고 3 개의 릴리스에는 데이터베이스 마이그레이션이 필요합니다.
내가 찾고있는 것
현재 무언가를 기억하고 싶다면 이슈 관리 시스템에서 티켓을 생성 할 수 있습니다.이 티켓은 혼란을 유발할뿐만 아니라 경영진에 의해 나중에 스프린트 또는 백 로그로 이동할 수 있습니다. 또는 TODO 주석을 작성할 수 있습니다.이 주석은 완전히 잊혀 질 것입니다.
내가 찾고있는 것은 TODO 주석에 마감 기한이있을 수있는 방법이며,이 마감 기한이 만료되면 Continuous Integration 시스템 (현재 결정되지 않은)이 빌드를 거부합니다.
예를 들어 열의 이름을 바꾸면 초기 마이그레이션을 만든 다음 TODO 주석 두 개를 사용하여 나머지 두 마이그레이션을 만들 수 있습니다.
// TODO by v55: Create migration to move constraints to new column, remove references to old column in app
// TODO by v56: Create migration to drop old column
이것은 구현하기가 상당히 간단 해 보이지만 바퀴를 다시 발명하고 싶지 않기 때문에 이와 같은 것이 이미 존재하는지 궁금합니다.
추가 생각
롤링 배포 및 블루 / 그린 배포가 최선의 방법으로 간주되므로 XY 문제로 어려움을 겪고있는 것 같습니다. 데이터베이스 업데이트를 덜 고통스럽게 만드는 솔루션을 찾을 수없는 것은 이상한 것 같습니다. 내가 틀린 것을 완전히보고 있다고 생각되면 의견을 남겨주세요! 즉, 내가 준 데이터베이스 예제는 단지 하나의 예이며 마감 날짜가있는 TODO 주석은 다른 상황에서도 유용 할 것이라고 생각합니다. 따라서이 특정 상황에 접근하더라도 잘못되고 있습니다. 실제 질문도. 감사!
편집 : 나는 이것이 도움이 될 수있는 또 다른 상황을 생각했습니다. 기능 토글을 사용하여 준비가되었을 때 앱의 일부를 켜면 정리해야합니다. 그렇지 않으면 토글 부채 가 생길 수 있습니다 . 마감일이있는 주석은이를 기억하는 좋은 방법이 될 수 있습니다.
TODO <Bug#>:
다른 구성 요소의 문제에 대한 해결 방법을 추적 하는 데 사용 됩니다. 해당 구성 요소 중 하나에서 버그가 해결되면 관련 해결 방법을 쉽게 찾아서 해결할 수 있습니다. 이슈 트래커를 대체하지 않으므로 유지 관리가 더 쉽습니다.