주요 컨텐츠로 이동

플랫폼 엔지니어링: 개발자 생산성 향상을 위한 내부 개발자 플랫폼 구축

플랫폼 엔지니어링은 셀프 서비스 도구, 골든 패스, 인지 부하 감소를 통해 개발자 생산성을 높이는 내부 개발자 플랫폼을 구축합니다. 효과적인 IDP를 구축하는 방법을 알아보세요.

Platform Engineering: Building Internal Developer Platforms to Improve Developer Productivity
데이터 + AI 기반Less than a minute

작성자: Databricks 직원

현대의 소프트웨어 엔지니어링 조직은 지속적인 문제에 직면해 있습니다. 개발자들이 코드를 작성하는 시간보다 인프라를 관리하는 데 더 많은 시간을 소비한다는 것입니다. 플랫폼 엔지니어링은 복잡성을 추상화하고 셀프 서비스 기능을 활성화하는 내부 개발자 플랫폼을 생성하여 이러한 문제를 해결하며, 개발 팀이 운영 작업보다는 혁신에 집중할 수 있도록 합니다.

플랫폼 엔지니어링이란 무엇인가요?

플랫폼 엔지니어링은 개발자 경험을 개선하고 소프트웨어 제공을 가속화하는 내부 개발자 플랫폼을 구축하고 유지 관리하는 분야입니다. 플랫폼 엔지니어링 팀은 내부 플랫폼을 제품으로 취급하며, 조직 전체의 엔지니어링 팀의 변화하는 요구를 충족시키기 위해 제품 관리 원칙을 적용합니다.

티켓에 응답하는 기존 IT 운영과 달리, 플랫폼 엔지니어링 팀은 개발자의 요구를 예측하는 셀프 서비스 기능을 선제적으로 설계합니다. 이들은 개발 및 운영 팀과 사용자 조사를 수행하고, 채택률을 측정하며, 제품 팀이 외부 고객에게 서비스를 제공하는 방식과 유사하게 피드백을 기반으로 지속적으로 개선합니다.

내부 개발자 플랫폼 IDP는 개발자와 기본 인프라 사이에 셀프 서비스 계층을 제공하는 기반 역할을 합니다. 이러한 플랫폼은 개발 팀이 모든 기술에 대한 깊은 전문 지식 없이도 애플리케이션을 구축, 테스트 및 배포하는 데 필요한 표준화된 도구, 자동화된 워크플로 및 사전 구성된 구성 요소를 제공합니다.

플랫폼 엔지니어링 vs. DevOps 및 SRE

DevOps는 개발 및 운영 팀 간의 협업 철학을 확립했지만, 플랫폼 엔지니어링은 구체적인 구현을 제공합니다. DevOps는 자동화와 지속적인 통합을 옹호하지만, 플랫폼 엔지니어링은 인프라에 소프트웨어 엔지니어링 원칙을 적용하여 이러한 원칙을 운영하는 실제 시스템을 만듭니다.

사이트 신뢰성 엔지니어링은 시스템 신뢰성과 성능에 중점을 두는 반면, 플랫폼 엔지니어링 팀은 개발자가 처음부터 신뢰할 수 있는 서비스를 구축할 수 있도록 지원합니다. SRE 플랫폼 엔지니어링 개념이 수렴될 때, 플랫폼 팀은 오류 예산과 서비스 수준 목표를 내부 개발자 플랫폼에 직접 통합하여 운영 팀이 문제 해결에서 벗어나 문제를 방지하는 시스템을 구축하도록 전환합니다.

핵심 이점: 인지 부하 감소 및 개발자 경험 향상

인지 부하는 소프트웨어 개발에서 생산성을 저해하는 가장 큰 요인 중 하나입니다. 개발자가 수십 개의 도구, 인프라 패턴 및 배포 프로세스에 대한 정신 모델을 유지해야 할 때 창의적인 문제 해결 능력이 저하됩니다.

플랫폼 엔지니어링은 설계 단계에서 이를 해결합니다. 소프트웨어 엔지니어링 조직의 연구에 따르면 내부 개발자 플랫폼을 통해 인지 부하를 줄이는 것이 개발자 만족도 및 개발자 생산성과 직접적으로 관련이 있습니다. 다음은 실제 결과입니다.

하루 100억 개의 이벤트를 처리하는 한 조직은 내부 개발자 플랫폼 구축에 중점을 둔 플랫폼 엔지니어링 관행을 구현한 후 유지 관리 노력을 70% 줄였습니다. 이전에는 인프라 문제를 해결하는 데 며칠을 보냈던 엔지니어들은 이제 기능 개발에 집중하고 있으며, 신뢰성은 빈번한 오류에서 거의 제로에 가까운 문제로 개선되었습니다.

또 다른 회사는 서버리스 컴퓨팅이 인프라 오버헤드를 제거하는 것과 유사하게 플랫폼 엔지니어링을 활용하여 컴퓨팅 관리를 추상화함으로써 지연 시간을 3-5배 개선했습니다. 이전에는 10분이 걸렸던 작업이 이제 2-3분 안에 완료되어 플랫폼 팀과 개발 팀 모두에게 더 빠른 피드백 루프를 제공합니다.

골든 패스는 개발자 셀프 서비스를 지원합니다

골든 패스는 플랫폼 엔지니어링이 일반적인 소프트웨어 개발 작업을 위해 생성하는 큐레이션된 사전 승인된 접근 방식을 나타냅니다. 플랫폼 엔지니어링 팀은 개발자에게 너무 많은 옵션을 제공하는 대신, 고급 사용 사례에 대한 유연성을 유지하면서 개발자를 성공으로 자연스럽게 안내하는 골든 패스를 설계합니다.

데이터 집약적인 애플리케이션의 경우, 골든 패스에는 데이터 수집, 데이터 거버넌스가 내장된 변환, 배포 자동화를 위한 표준화된 패턴이 포함될 수 있습니다. 한 조직은 개발자가 원하는 변환을 설명하고 플랫폼이 오케스트레이션, 최적화 및 오류 관리를 자동으로 처리하는 데이터 파이프라인 개발을 위한 선언적 프레임워크를 구축하여 이 접근 방식을 입증했습니다.

결과는 골든 패스의 효과를 입증했습니다. 개발 팀은 사용자 지정 구현에 비해 선언적 접근 방식을 사용하여 파이프라인을 30% 더 빠르게 구축했으며, 내부 개발자 플랫폼이 운영 복잡성을 처리했기 때문에 유지 관리 노력이 70% 감소했습니다. 이를 통해 품질 또는 보안 및 규정 준수 표준을 희생하지 않고 셀프 서비스 기능을 사용할 수 있었습니다.

내부 개발자 플랫폼 구축: 전략 및 구현

성공적인 플랫폼 엔지니어링 이니셔티브는 기술 선택이 아닌 명확한 전략으로 시작됩니다. 도구를 선택하거나 코드를 작성하기 전에 플랫폼 엔지니어링 팀은 누구에게 서비스를 제공하는지, 어떤 문제를 해결해야 하는지, 성공을 어떻게 측정할 것인지 이해해야 합니다.

개발자 페르소나 및 높은 영향력의 워크플로로 시작하세요

소프트웨어 엔지니어링 조직 내의 다양한 역할은 내부 개발자 플랫폼에 대한 고유한 요구 사항을 가지고 있습니다. 프론트엔드 엔지니어는 백엔드 개발자보다 다른 셀프 서비스 기능이 필요하며, 데이터 과학자는 애플리케이션 개발자가 전혀 사용하지 않는 전문 도구가 필요합니다. 플랫폼 엔지니어링 팀은 이러한 페르소나를 매핑하고 일반적인 문제점을 파악하기 위해 사용자 조사를 수행해야 합니다.

다음 기준을 충족하는 워크플로를 찾으십시오. 빈도가 높음(개발자가 매일 수행), 노력이 많이 듦(자동화될 수 있는 수동 단계), 위험이 높음(실수로 인해 보안 위험 발생), 변동성이 높음(다른 팀이 동일한 문제를 다르게 해결). 플랫폼 엔지니어링을 구현하는 조직은 일반적으로 이러한 패턴을 먼저 우선시하여 최소한의 범위로 최대의 가치를 제공합니다.

플랫폼을 제품으로 취급하세요

가장 성공적인 플랫폼 엔지니어링 팀은 제품 마인드셋을 채택합니다. 이들은 인프라를 구축하는 것이 아니라, 내부 고객이 삶을 더 좋게 만들기 때문에 자발적으로 선택하는 제품을 구축합니다. 이는 플랫폼 팀이 사용자 인터뷰를 수행하고, 채택률을 측정하며, 개발 팀이 지지자가 되었을 때 축하한다는 것을 의미합니다.

플랫폼 개발에 소프트웨어 엔지니어링 원칙을 적용하면 내부 플랫폼 자체가 유지 관리 가능하고 확장 가능하게 유지됩니다. 플랫폼 엔지니어링 코드는 자동화된 테스트, 지속적인 통합 파이프라인 및 제품 코드에 적용되는 것과 동일한 품질 표준을 가져야 합니다. 플랫폼을 위한 제품 관리자를 배치한 조직은 플랫폼 방향이 엔지니어링 직관만으로 오는 조직보다 훨씬 높은 채택률을 보고합니다.

운영 가드레일 구현

보안 및 규정 준수 요구 사항은 수동 검토 프로세스에 의존하는 대신 내부 개발자 플랫폼에 직접 통합되어야 합니다. 가드레일이 문제를 감지하면 개발자를 규정 준수 대안으로 안내하는 명확한 피드백을 제공합니다. 목표는 개발자를 차단하는 것이 아니라 조직 경계 내에서 성공하도록 돕는 것입니다.

포괄적인 내부 개발자 플랫폼을 구축하는 조직은 변경 실패율이 30-50% 감소하는 것을 확인합니다. 골든 패스에 모범 사례를 인코딩함으로써 플랫폼 엔지니어링은 어떤 개발 및 운영 팀이 코드를 배포하든 모든 배포가 품질 표준을 충족하도록 보장합니다. 이 "시프트 레프트" 보안 접근 방식은 수정 비용이 가장 저렴할 때 문제를 조기에 발견합니다.

5X 리더

Gartner®: Databricks 클라우드 데이터베이스 리더

플랫폼 엔지니어링 팀: 역할 및 책임

효과적인 플랫폼 엔지니어링은 명확한 책임을 가진 전담 팀을 필요로 합니다. 이러한 플랫폼 팀은 기존 인프라 그룹과 다르게 운영되며, 내부 고객에게 서비스를 제공하기 위해 제품 관리 원칙을 적용합니다.

플랫폼 엔지니어는 인프라를 구축 및 유지 관리하고, 자동화 도구를 개발하며, 기본 인프라가 안정적으로 확장되도록 보장하는 데 중점을 둡니다. 제품 관리자는 개발자 요구를 플랫폼 기능으로 변환하고 비즈니스 가치를 기반으로 기능을 우선순위화합니다. 개발자 경험 엔지니어는 API 설계, 명령줄 인터페이스 구축 및 플랫폼 기능을 검색 가능하게 만드는 설명서 생성에 특화되어 있습니다.

성공적인 플랫폼과 실패한 인프라 프로젝트를 구분하는 한 가지 핵심 원칙은 플랫폼 엔지니어링 팀이 여러 개발 팀이 소비하는 기능을 구축한다는 것입니다. 단 하나의 팀만 기능을 사용한다면, 해당 기능은 내부 개발자 플랫폼보다는 해당 팀의 코드베이스에 속할 가능성이 높습니다.

플랫폼 엔지니어링 성공 측정

효과적인 플랫폼 엔지니어링에는 측정가 필요합니다. 메트릭이 없으면 플랫폼 엔지니어링 팀은 가치를 입증하거나, 개선 사항의 우선순위를 정하거나, 변경 사항이 개발자 생산성에 도움이 되는지 해가 되는지 알 수 없습니다. 선도적인 소프트웨어 엔지니어링 조직은 배포 빈도, 변경 리드 타임, 변경 실패율 및 복구 평균 시간을 측정합니다.

포괄적인 내부 개발자 플랫폼을 구현하는 조직은 배포 빈도가 5-10배 증가하고 리드 타임이 몇 주에서 몇 시간으로 단축되었다고 보고합니다. 한 통신 회사는 환경 프로비저닝, 테스트 실행 및 배포 프로세스를 자동화하여 플랫폼 엔지니어링을 통해 리드 타임을 단축했습니다. 이는 코드가 수동 개입을 기다리며 지연되는 것을 제거했습니다.

개발자 만족도 또한 중요합니다. 플랫폼이 생산성에 미치는 영향, 개발자가 가장 가치 있게 생각하는 기능, 그리고 어떤 기능이 필요한지에 대해 분기별 설문 조사를 실시하세요. 놀랍게도 플랫폼 팀의 29.6%는 성공 여부를 전혀 측정하지 않아, 우선순위 결정에 도움이 되고 조직 리더십에 플랫폼 엔지니어링의 가치를 입증할 수 있는 중요한 피드백을 놓치고 있습니다.

기술 고려 사항 및 일반적인 과제

플랫폼 엔지니어링은 상당한 가치를 제공하지만, 내부 개발자 플랫폼을 구현하는 데에는 조직이 신중하게 탐색해야 하는 과제가 있습니다. 플랫폼 이니셔티브의 거의 절반(47.4%)이 연간 예산 0달러에서 100만 달러 사이에서 운영되지만, 플랫폼을 전략적 투자로 취급하는 조직은 플랫폼이 성숙 단계에 도달하면 일반적으로 연간 200만~500만 달러를 할당합니다.

플랫폼이 대규모 엔지니어링 팀에 서비스를 제공할 때 투자 수익률은 이러한 비용을 정당화합니다. 한 회사는 내부 개발자 플랫폼이 매일 1,000시간 이상의 컴퓨팅 시간을 절약하는 동시에 배포 시간을 65~80% 단축하여 상당한 초기 투자에도 불구하고 6개월 이내에 ROI를 제공했다고 계산했습니다.

Terraform과 같은 Infrastructure as Code 도구는 프로비저닝을 위한 클라우드에 구애받지 않는 접근 방식을 제공하며, Kubernetes는 플랫폼 엔지니어링에서 컨테이너 오케스트레이션의 사실상 표준이 되었습니다. 데이터 집약적인 워크로드의 경우, 조직은 데이터 레이크의 확장성과 데이터 웨어하우스의 안정성을 결합하는 레이크하우스 아키텍처를 활용하며, 이는 브론즈, 실버, 골드 계층에 걸쳐 데이터를 구성하기 위한 메달리온 아키텍처와 같은 프레임워크에 의해 지원됩니다.

채택 및 지속적인 개선

기술적 우수성보다 채택이 더 중요합니다. 아무리 잘 설계된 내부 개발자 플랫폼이라도 개발팀이 사용하지 않으면 가치가 없습니다. 플랫폼 엔지니어링 팀은 변경 관리, 초기 개발자 챔피언 참여, 정기적인 데모 및 워크숍 실행, 구조화된 피드백 수집에 투자해야 합니다.

강력한 개발자 지원 프로그램을 갖춘 조직은 문서에만 의존하는 조직의 20~30%에 비해 12개월 이내에 60~80%의 플랫폼 채택률을 보고합니다. 개발팀이 문제점과 기능 요청을 공유하는 월간 플랫폼 검토를 예약하세요. 개발자가 문제를 보고하거나 개선 사항을 제안할 수 있는 접근 가능한 채널을 만드세요. 개발자가 실제로 사용하는 플랫폼 기능과 무시되는 기능을 추적하세요. 사용량 데이터는 무엇이 효과가 있고 무엇이 개선이 필요한지를 보여줍니다.

자주 묻는 질문

플랫폼 엔지니어링이란 무엇인가요?

플랫폼 엔지니어링은 개발팀에 셀프 서비스 기능을 제공하는 내부 개발자 플랫폼을 구축하고 유지 관리하는 분야입니다. 플랫폼 엔지니어링 팀은 인프라에 소프트웨어 엔지니어링 원칙을 적용하여 개발자 생산성을 향상시키고 소프트웨어 제공를 가속화하는 표준화된 도구, 워크플로 및 자동화를 만듭니다. 개발자가 인프라를 직접 관리하는 대신, 플랫폼 엔지니어링은 운영 복잡성을 자동으로 처리하는 추상화 계층을 만듭니다.

플랫폼 엔지니어링은 DevOps와 같은 것인가요?

아니요, 플랫폼 엔지니어는 DevOps와 같지 않지만 관련이 있습니다. DevOps는 개발 및 운영 팀 간의 협업을 강조하는 철학적 접근 방식을 나타냅니다. 플랫폼 엔지니어링은 DevOps 원칙을 구현하여 DevOps 관행을 대규모로 지원하는 실제 시스템, 즉 내부 개발자 플랫폼을 구축합니다. DevOps가 "무엇"과 "왜"를 정의하는 반면, 플랫폼 엔지니어링은 구체적인 도구와 워크플로를 통해 "어떻게"를 제공합니다.

플랫폼 엔지니어링은 좋은 역할인가요?

플랫폼 엔지니어는 조직 규모에서 개발자 경험을 개선하는 데 관심 있는 엔지니어에게 훌륭한 역할입니다. 이 직책은 인프라 전문 지식과 소프트웨어 엔지니어링을 결합하여 수백 또는 수천 명의 개발자가 매일 사용하는 시스템을 구축함으로써 대규모 영향을 미칠 수 있습니다. 플랫폼 엔지니어링 팀은 동료의 생산성을 어떻게 향상시키는지 직접 볼 수 있기 때문에 높은 직무 만족도를 보고합니다. 업계 동향은 조직이 소프트웨어 개발을 계속 확장함에 따라 플랫폼 엔지니어링이 중요하게 유지될 것을 시사합니다.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요