App Engine용 출시 체크리스트

소개

Google App Engine은 서비스로서의 플랫폼(PaaS)으로서, Google Cloud Platform에서의 애플리케이션 구축 및 실행 작업을 지원하는 서비스입니다. App Engine 애플리케이션은 구축 및 유지관리가 쉬우며, 트래픽과 데이터 저장소의 요구사항이 변화하더라도 간단하게 확장이 가능합니다. 많은 기업이 Google App Engine에서 성공적으로 애플리케이션을 출시했습니다.

App Engine용 출시 체크리스트에는 Google App Engine에서 상용 애플리케이션을 출시할 때 참고할 수 있는 권장사항이 나와 있습니다. 또한 App Engine을 능숙하게 다룰 수 있는 기업 개발자를 대상으로 제작되었습니다. 여기서 안내하는 내용은 App Engine을 다룬 경험이 적은 상태에서 App Engine 사용 방법을 익히기에는 적합하지 않으므로 신규 사용자는 App Engine 시작하기 가이드부터 살펴보시기 바랍니다.

App Engine용 출시 체크리스트는 4개 섹션으로 나누어져 있습니다.

  • 아키텍처 설계 및 개발
  • 알파 테스트
  • 비공식 출시
  • 최종 출시

이 섹션은 애플리케이션 출시를 준비할 때 권장되는 순서대로 나열되어 있습니다. 가령, 아키텍처 설계 및 개발 체크리스트에는 애플리케이션 개발 주기의 초반에 권장되는 활동이 포함되어 있으므로 먼저 시작해야 합니다. 이와 마찬가지로 비공식 출시 체크리스트에는 출시에 임박한 시점에 권장되는 활동이 포함되어 있습니다. 단, 체크리스트 활동의 정확한 타임라인과 소요 시간은 개발자의 애플리케이션 개발 기간에 따라 각기 다릅니다.

App Engine용 출시 체크리스트는 제품 출시 과정을 원활하게 하고 앱 사용자를 위한 우수한 환경을 조성할 수 있도록 고안되었습니다. Google은 Google App Engine에서 실행되는 모든 기존/신규 애플리케이션에 대해 이러한 체크리스트를 사용할 것을 권장합니다.

아키텍처 설계 및 개발 체크리스트

애플리케이션의 개발 초기 단계에 이 체크리스트를 사용하는 것이 좋습니다. 이 체크리스트는 네 가지 활동 그룹으로 나누어져 있습니다.

  • 소프트웨어 아키텍처 작업
  • Google과의 연락망 구축
  • 프로비저닝
  • 출시 계획 마련 및 예상 트래픽 계산

이러한 체크리스트 활동을 그룹별로 병행하여 진행할 수도 있지만 소프트웨어 아키텍처 관련 작업은 비교적 오랜 시간이 걸리기 때문에 가능하면 조기에 시작하는 것이 좋습니다.

소프트웨어 아키텍처 작업

활동
❑  
규모 확장을 위한 설계 권장사항 문서를 살펴봅니다. 여기에는 부하 상태에서 문제를 초래할 수 있는 App Engine API 안티패턴 사례가 열거되어 있습니다.
❑  
아키텍처 요약을 생성합니다. 여기에는 전반적인 아키텍처 다이어그램, 프로세스 흐름 요약, 상세한 서비스 상호작용 지점을 포함하세요. 또한 각 Google Cloud Platform 서비스가 어떻게 사용될지 나열하고 설명하세요. 실험용 Google API, Cloud Platform 이외의 Google API 및 타사 API의 사용도 포함해야 합니다.
❑  
빌드 및 출시, 구성, 보안 관리 프로세스를 문서화합니다.
❑  
통상적인 백업, 정기적인 유지보수, 재해 복구 프로세스를 문서화합니다. 실제 데이터를 사용해 복원 프로세스를 테스트합니다. 전체 복원에 소요되는 시간을 정하고 재해 복구 프로세스에 반영합니다.
❑  
DevOps 프로세스를 문서화합니다. 특히 지원 시스템을 Google 시스템과 통합해야 하는 경우 이 작업이 필요합니다. 시스템 모니터링 및 경고 프로세스를 문서화하고 정의합니다. DevOps팀은 Google Cloud Console을 익숙하게 사용하고 테스트에 참여해야 합니다. Cloud 상태 대시보드를 모니터링합니다. App Engine 다운타임 알림 그룹을 구독합니다.

Google과의 연락망 구축

활동
❑  
Google과의 긴급 연락망을 구축하고 테스트합니다.
❑  
팀이 Google Cloud Support Center(GCSC)에 익숙해지도록 합니다.
  • 웹과 이메일 연락처 옵션을 구성하고, 전화 지원 프로세스(구매한 서비스 레벨별로 다름)도 설정합니다.
  • 주말과 야간에 테스트해 봅니다.
  • 팀이 Google에게 연락하는 방법을 숙지하고 있는지 확인합니다.

프로비저닝

활동
❑  
개발 환경(예: 개발, 테스트, 프로덕션)별로 Google Cloud Platform 프로젝트를 프로비저닝합니다.
❑  
Google Cloud Platform 결제를 사용 설정하고 비용 모델을 개발합니다. 자세한 내용은 가격 계산기를 참조하세요.
❑  
도메인과 인증서를 프로비저닝합니다. G Suite 관리 콘솔을 사용하여 인증서를 설치합니다. 자세한 내용은 커스텀 도메인용 SSL을 참조하세요.
❑  
필요한 기타 Google 및 타사 서비스가 있다면 프로비저닝합니다. 이 출시 프로세스에 설명된 활동에도 이러한 서비스를 포함해야 합니다.

출시 계획 마련 및 예상 트래픽 계산

활동
❑  
전체 솔루션과 모든 하위 구성요소를 포괄하는 예상 트래픽을 계산합니다.
❑  
출시 계획을 세우고 출시 과정에서 믿고 따를 수 있는 소스로 유지합니다. 이 계획은 모든 기타 필수 프로세스와 문서를 참조해야 합니다.
❑  
테스트 계획을 세웁니다. 프로덕션 서비스에 코드를 배포한 후 테스트를 수행하는 절차를 항상 포함하세요. 테스트를 반복합니다. 최대한 많은 테스트를 수행하고 가능한 한 많은 사용자와 프로세스를 포함합니다.
❑  
부하 테스트 계획을 세웁니다. 해외 출시, 내부 테스트를 위해 매번 Google Cloud Platform 프로젝트를 '재설정'하는 절차가 필요할 수 있습니다(예: Cloud Datastore 항목 삭제). 제품 사용을 위해 사용자 등록이 필요한 경우 신규 사용자 가입 흐름에 대한 부하 테스트를 수행합니다.
❑  
할당량 분석을 완료합니다. 할당량을 확인하고 할당량 세부정보를 모니터링한 후, 할당량 조정을 요청하려면 GCSC를 통해 지원 티켓을 제출합니다.
❑  
앱 통계(자바 | Python)를 사용하여 애플리케이션의 (RPC) 성능 프로파일링을 개선합니다. 필요에 따라 이 성능을 활성화 또는 비활성화할 수 있는 기능도 포함하세요.

알파 테스트 체크리스트

코드가 거의 완성되었고 개발 중인 애플리케이션에 대한 초기 통계 자료를 확인하려면 알파 테스트 체크리스트를 사용하세요.

활동
❑  
최신 App Engine SDK 버전 및 출시 노트를 사용합니다. 최신 App Engine 버전은 Developer Console App Engine 대시보드에 나와 있습니다.
❑  
예상 트래픽을 수정합니다.
❑  
현재 애플리케이션 로그를 바탕으로 출시 계획을 수정합니다.
❑  
예상 트래픽을 바탕으로 할당량 분석을 수정하고, 할당량 조정을 요청하려면 지원 티켓을 제출합니다.
❑  
내 솔루션과 Google Cloud Platform 모두에 지속적인 변화가 일어나는 만큼 부하 테스트를 최소 1번 이상 추가로 실시합니다.
❑  
배포 스크립트 및 테스트 과정을 단계별로 작성합니다. 빌드 및 출시 프로세스를 문서화하여 감사 및 재현이 가능하고 종합적인 가이드를 갖추는 것을 목표로 삼습니다.
❑  
시스템 모니터링 및 경고가 충분하고 효과적인지 검증합니다.
❑  
중요한 중단 발생 상황을 시뮬레이션하고 재해 복구 프로세스를 테스트합니다. 가능한 한 많은 사용자와 프로세스를 포함하여 테스트합니다.
❑  
데이터 센터 장애, 서비스 장애, 데이터 손상을 비롯해 발생 가능성이 낮은 기타 이벤트를 시뮬레이션합니다. 예상치 못한 이벤트가 대규모로 발생할 경우에 대비합니다.
❑  
빌드 및 출시 오류를 시뮬레이션합니다. 효과적인 롤백이 가능한가요? 프로세스가 문서화되고 있나요?
❑  
구성 관리 오류를 시뮬레이션합니다. 이 오류가 발생할 수 있었던 이유는 무엇인가요? 이 허점은 어떻게 보완할 수 있나요? 이러한 장애 파악 및 해결에 소요되는 시간을 단축할 수 있는 방법은 무엇일까요?
❑  
모든 요소를 여러 번 테스트합니다. 테스트에 관여한 담당자와 컴퓨터를 기록해 두면 오류 및 문서화되지 않는 활동이 발생하는 위치를 파악할 수 있습니다.

비공식 출시 체크리스트

애플리케이션의 상용 출시에 앞서 출시할 준비가 되었는지 테스트하기 위해 비공식 출시 체크리스트 활동을 사용하는 것이 좋습니다.

활동
❑  
배포 스크립트를 살펴봅니다. 오류 및 누락된 내용이 있으면 수정합니다. 배포를 위해 필요한 모든 단계를 문서화합니다. 앱 통계(자바 | Python) 플래그를 테스트합니다.
❑  
예상 트래픽을 1.5~2배로 늘려 부하 테스트를 수행합니다.
❑  
발생하는 모든 문제를 분류하고 해결합니다. 비용 모델을 실제 비용과 비교해 검토합니다. 운영 비용이 지출 한도를 초과하지 않는지 확인합니다. 필요에 따라 비용 모델을 수정합니다.
❑  
비용 절감 방안을 결정하고 검증합니다.

최종 출시 체크리스트

출시 전, 도중, 직후에 최종 출시 체크리스트를 사용하세요.

활동
❑  
배포 스크립트를 살펴봅니다. 발생하는 문제를 문서화하고 해결합니다.
❑  
필요한 경우 발생하는 문제를 분류하고 해결하는 업무에 모든 팀원을 투입할 수 있는지 확인합니다.
❑  
App Engine의 지출 한도를 지나치게 보수적으로 설정하지 않도록 유의하세요. 지출 한도를 초과하면 앱의 사용이 중단됩니다. 자세한 내용은 지출 한도를 참조하세요.
❑  
출시 후에는 그간 얻은 교훈을 잘 정리하고 모든 관련 문서와 절차를 업데이트합니다. 이제 지속적인 개선 작업에 집중하세요.