문제 공간 정의
내부 개발자 플랫폼을 정의하려면 먼저 가장 얇은 실행 가능한 플랫폼(TVP)을 정의해야 합니다. TVP는 클래식 제품 관리에서 MVP(최소 실행 가능한 제품)에 대한 아이디어의 변형입니다.
TVP의 일부가 되어야 하는 작업을 파악하는 좋은 방법은 플랫폼 엔지니어링 기능 모델을 사용하여 조직의 플랫폼 엔지니어링 사례를 평가하는 것입니다. 플랫폼 엔지니어링 기능 모델은 조직의 현재 플랫폼 엔지니어링 강점을 확인하고 미래를 위한 목표를 설정할 수 있습니다.
이 다이어그램은 개발자 플랫폼이 시간이 지남에 따라 어떻게 진화할 수 있는지에 대한 생각을 지향하는 데 도움이 될 수 있습니다. 조직의 주요 문제로 인해 기존 투자 또는 조직의 요구 사항으로 인해 여기에 설명된 내용에서 벗어날 수 있습니다. 조직에서 필요로 하지 않는 한 다음 단계로 이동할 필요가 없습니다.
처음부터 시작하는 경우 이 시퀀스는 일반적인 진행률을 나타냅니다. 초기 단계에서는 필요한 기능의 검색, 축소 래핑된 제품의 핏 갭 분석, 최소한의 수의 도구 또는 플랫폼 기능 만들기에 집중합니다. 다음으로, 크기를 조정하면 재사용 가능성과 재사용 가능한 자산으로 미리 정의된 포장된 경로를 안내하는 데 집중할 수 있습니다. 마지막으로, 애플리케이션을 더 쉽게 빌드하고 유지 관리할 수 있도록 소비자와 유사한 디지털 스토어 모델로 전환합니다. 제품 사고방식을 따라야 하므로 끝까지 점프하지 않는 것이 좋으며 특정 여정은 다양합니다. 이러한 최종 단계는 일반적인 의미에서 축소 래핑된 제품과 가장 유사하지만 출발점이 아닌 대상입니다.
플랫폼 엔지니어링 항목 영역
이 항목의 크기를 고려할 때 플랫폼 엔지니어링에 대해 내부적으로 이야기하는 방법을 다음 네 가지 항목 영역으로 나누는 것이 좋습니다.
엔지니어링 시스템: GitHub, Azure DevOps 및 기타 개발자 도구 및 서비스와 같은 DevOps 제품군의 큐레이팅된 조합입니다. CI/CD 또는 패키지 관리와 같은 중요한 DevOps 도구 및 서비스 외에도 이 영역에는 클라우드 기반 코딩 환경, 코드 스캐너 및 리터, GitHub Copilot와 같은 AI 도우미와 같은 코딩 프로세스 중에 직접 사용되는 기능도 포함됩니다.
애플리케이션 플랫폼: 조직에서 비즈니스 가치를 제공하는 데 사용하려는 각 앱 스택(애플리케이션, 앱 모델, 언어 클래스)을 대상으로 하는 큐레이팅된 서비스 선택(예: IaaS, PaaS 및 관찰성)입니다. 여기에는 전체에서 사용되는 일반적인 서비스와 함께 앱 스택 특정 서비스의 혼합이 포함됩니다. 애플리케이션 플랫폼의 예로는 Azure Container Apps, 스토리지용 Cosmos DB, 비밀용 Azure Key Vault, ID 및 역할 기반 액세스 제어, 준수 및 감사에 대한 Azure Policy, Grafana를 통한 관찰성 및 관련 네트워크 토폴로지 등이 있습니다.
애플리케이션 템플릿: 올바른 시작을 캡슐화하고 지정된 애플리케이션 플랫폼, 언어 및 엔지니어링 시스템 집합에 대한 올바른 지침을 유지하는 잘 정의된 조직 생성 빠른 시작 템플릿 집합입니다. 다른 중앙 집중식 템플릿을 참조하고 시작 코드, API 및 SDK 참조, CI/CD 파이프라인, 도구 구성 등을 제공할 수 있습니다.
개발자 셀프 서비스 기능: 이는 플랫폼 엔지니어링 노력의 접착제입니다. 이는 API, 오케스트레이터, 카탈로그, 템플릿 및 사용자 환경의 조합으로, 개발자의 수고를 줄이고 개발 팀이 셀프 서비스하고 보다 자율적일 수 있도록 설계된 동시에 이전 세 영역의 선택 및 지침/거버넌스를 준수합니다.
엔지니어링 시스템, 애플리케이션 플랫폼, 애플리케이션 템플릿 및 개발자 셀프 서비스 기능을 통합하면 플랫폼 엔지니어링 전략의 초석이 됩니다. DevOps 도구, 클라우드 서비스 및 셀프 서비스 기능을 결합하여 조직은 개발자의 수고를 크게 줄이고 생산성을 향상시키며 거버넌스 표준을 준수할 수 있습니다.