단순하게 유지하세요.

완료됨
아키텍처 디자인, 애플리케이션 코드 및 운영을 과도하게 엔지니어링하지 않습니다.

가장 신뢰할 수 있는 솔루션은 무엇을 추가하는 것보다 무엇을 제거하는가에 따라 결정되는 경우가 많습니다. 단순성은 제어를 위한 노출 영역을 줄여 비효율성과 잠재적인 잘못된 구성 또는 예기치 못한 상호 작용이 최소화되도록 합니다. 반면, 지나친 간소화는 단일 실패 지점을 초래할 수 있습니다. 균형 잡힌 방식을 유지합니다.

예제 시나리오

Contoso Travel은 인기 있는 웹 기반 여행 앱을 보유한 소규모 스타트업 회사를 인수하여 통합하고 있습니다. 이 앱의 인기는 호텔 체인과 항공사와 막대한 할인을 협상하는 사업 모델과 소셜 미디어를 사용하여 강렬하고 고도로 타겟팅된 마케팅 캠페인을 수행하기 때문입니다.

기존 버전의 스타트업 제품은 Node.js로 개발되었으며, 온-프레미스 데이터 센터와 AWS 간에 호스트되는 VM에서 실행됩니다.

워크로드 구성 요소 최소화

대상 비즈니스 가치를 달성하는 데 도움이 되는 경우에만 아키텍처에 구성 요소를 추가합니다. 중요 경로를 간소하게 유지합니다.

비즈니스 요구 사항에 맞게 디자인하면 구현 및 관리가 쉬운 간단한 솔루션을 얻을 수 있습니다. 각 구성 요소가 심각한 고장 지점이 될 수 있으므로 너무 많은 중요 구성 요소를 포함하지 않도록 합니다.

Contoso의 과제

  • 새로 인수한 애플리케이션의 구성 요소 중 하나는 사용자가 예약을 한 후 웹 사이트에서 직접 피드백을 수집하는 기능을 제공합니다. 대부분 사용자는 이 기능을 그냥 건너뛰기 때문에 이 기능은 거의 사용되지 않습니다. 회사의 소셜 미디어 계정을 통해 작동하는 사용자 피드백 루프 메커니즘이 강력하게 구축되어 있으며, 이는 마케팅 사용자 상호 작용에 많이 사용됩니다. 이 메커니즘은 웹 사이트의 피드백 함수보다 훨씬 더 자주 사용됩니다.

접근 방식 및 결과 적용

  • Contoso Travel 브랜드 버전의 앱을 처음 릴리스하면서, 해당 팀은 워크로드에서 웹 사이트 피드백 구성 요소를 제거하기로 결정했습니다.
  • 코드베이스가 작을수록 유지 관리 비용과 운영 비용이 낮아집니다. 그리고 이 경우에는 비즈니스 요구 사항에 아무런 영향이 없습니다.

소프트웨어 개발 수명 주기 표준화

코드 구현, 배포 및 프로세스에 대한 표준을 수립하고 문서화합니다. 자동화된 유효성 검사를 사용하여 해당 표준을 적용할 수 있는 기회를 파악합니다.

표준은 일관성을 제공하고 사람의 실수를 최소화합니다. 표준 명명 규칙 및 코드 스타일 가이드와 같은 방식은 품질을 유지하고 문제 해결 중에 자산을 쉽게 식별하는 데 도움이 될 수 있습니다.

Contoso의 과제

  • 스타트업의 개발팀에는 정의된 개발 및 프로세스 표준이 많지 않습니다. 기능이 겹치는 라이브러리가 많이 사용되고 있고, 코딩 스타일이 적용되지 않으며, 릴리스 파이프라인에는 자동화된 테스트를 사용하는 공식 릴리스 게이트가 없습니다.
  • Contoso 워크로드 팀은 스타일의 일관성이 부족하고 라이브러리와 디자인 패턴의 사용도 일관되지 않아 새로운 코드베이스의 유지 관리 비용이 너무 높다는 것을 알게되었습니다.
  • 운영 환경에서 주요 업데이트를 적용한 후에는 인시던트가 자주 발생하며, 때로는 업데이트를 롤백하거나 배포 중에 핫픽스를 적용해야 할 때도 있습니다. 이러한 형식의 배포 문제가 자주 발생하기 때문에 팀은 프로덕션에 업데이트를 출시할 때 전체 지원 모델을 사용해야 합니다. 더욱 심각한 것은 이러한 빈번한 문제로 인해 사용자 환경이 좋지 않아 Contoso의 평판이 저하되고 있다는 점입니다.

접근 방식 및 결과 적용

  • 새로운 앱에 대한 지원을 맡은 팀은 코딩 스타일을 강제로 적용하고, 공통적인 라이브러리와 디자인 패턴으로 표준화하고, 자동화된 테스트를 기반으로 하는 릴리스 게이트 사용을 공식화하여 일관성을 높이기 위해 활동합니다.
  • 이러한 변경 내용이 구현되는 동안 워크로드 팀은 표준 문서화 요구 사항을 준수합니다. 도입된 모든 새로운 도구, 디자인 패턴, 스타일은 철저히 문서화되어 팀이 향후 워크로드를 보다 효율적으로 이해하고 관리할 수 있도록 합니다. 이제 팀은 코드 검토를 수행할 때 표준의 편차를 더 쉽게 식별할 수 있습니다.

운영 및 개발 부담 최소화

비즈니스 대상을 효과적으로 달성하는 데 도움이 되는 플랫폼 제공 기능과 미리 빌드된 자산을 활용합니다.

이런 방식은 개발 시간을 최소화합니다. 또한 비슷한 워크로드에 사용된 검증된 사례를 활용할 수 있습니다.

Contoso의 과제

  • Contoso Travel 브랜딩으로 처음 릴리스되는 경우, Node.js 솔루션은 VM에서 App Services로 마이그레이션되어 해당 서비스가 제공하는 다양한 네이티브 안정성 기능을 활용할 수 있습니다.
  • VM에 배포된 버전에는 계측에 필요한 상당량의 사용자 지정 코드가 포함되어 있습니다.

접근 방식 및 결과 적용

  • App Services로의 초기 마이그레이션 중에 팀은 App Services에서 App Insights 자동 계측을 구현하여 모든 사용자 지정 계측 코드를 제거할 수 있었습니다.
  • 이 팀은 자동 크기 조정, Key Vault 통합, 영역 중복도와 같은 여러 가지 다른 네이티브 App Service 함수도 활용할 수 있습니다.