플랫폼 엔지니어링이란?
플랫폼 엔지니어링은 생산성, 애플리케이션 주기, 시장 출시 시간을 개선하는 데 중점을 둔 소프트웨어 개발의 한 분야입니다. 플랫폼 엔지니어링의 핵심 목표는 개발 팀에 영향을 미치는 고충을 파악하고 내부 개발자 플랫폼(IDP)을 통해 재사용 가능한 공동 툴과 기능을 제공함으로써 그러한 고충을 완화하는 것입니다.
플랫폼 엔지니어링은 기업 문화와 생산성을 개선하고 수익성을 개선하기 위한 종합적인 접근 방식으로 간주해야 합니다. 비즈니스 관점에서 플랫폼 엔지니어링 프로그램은 애플리케이션의 시장 출시 시간을 단축하고, 운영을 최적화하고, 애플리케이션의 개발, 배포, 유지 및 관리의 효율성을 개선합니다. 문화적 관점에서는 팀 간 협업을 개선하고, 개발자가 가장 중요한 작업에 집중하는 데 필요한 툴과 지원을 제공하여 업무 부담을 완화하는 것을 목표로 합니다.
플랫폼 엔지니어링의 역할
플랫폼 엔지니어링은 일관성과 효율성을 높여 조직에 긍정적인 영향을 미칩니다. 또한 팀 간 협업과 효율성을 강화하여 새로운 팀원이 업무에 빠르게 적응할 수 있게 해줍니다. 플랫폼 엔지니어링은 특정 직무일 수도 있고 개인들로 구성된 그룹이 하나의 팀 이니셔티브로 수행하는 규칙이나 방법론일 수 있습니다.
플랫폼 엔지니어링의 핵심은 개발자 생산성을 저해하고 애플리케이션 라이프사이클의 장애 요소가 될 수 있는 관리 태스크에 소요되는 시간을 줄이는 것입니다.
플랫폼 엔지니어의 개발자 지원 방식
플랫폼 엔지니어와 플랫폼 엔지니어링 팀은 인프라를 관리하고, 개발자의 요구 사항에 부합하도록 설계된 워크플로우(이른바 '최적의 경로')를 통해 개발자를 지원하는 툴 세트를 개발합니다.
플랫폼 엔지니어가 엄선하는 맞춤형 툴 및 프로세스 세트는 셀프 서비스 기능과 자동화된 인프라를 통해 소프트웨어 개발자를 지원하며, 조직의 고유한 요구 사항에 부합하도록 설계됩니다. 이처럼 적응성이 강화되면 개발자는 획일적인 솔루션의 제약 없이 자신의 프로젝트 요구 사항에 가장 적합한 툴로 작업할 수 있습니다. 그뿐만 아니라, 새로운 기술 역량을 확보하고 불필요한 작업을 수행할 필요가 줄어들기 때문에 개발자는 본래 업무인 코딩에 집중할 수 있습니다.
또한 플랫폼 엔지니어링 팀은 강력한 거버넌스 프레임워크를 마련하여 모든 환경에서 리소스, 보안, 컴플라이언스에 대한 제어 권한을 유지할 수 있습니다. 그러면 성능 모니터링, 비용 추적, 잠재적 위험이나 취약점 식별 등을 더욱 직접적으로 수행하는 장점도 누릴 수 있습니다.
플랫폼 엔지니어링의 무대 뒤 재생 시간: 2:31
애플리케이션 플랫폼이란?
내부 개발자 플랫폼이란?
내부 개발자 플랫폼(IDP)은 개발자가 애플리케이션 라이프사이클 전체에서 코드를 개발, 배포, 유지 관리하는 데 필요한 셀프 서비스 툴과 기술의 표준화된 세트입니다. IDP에 통합된 툴체인은 개발자에게 더 긍정적이고 생산적인 워크플로우를 지원하고 보안 및 확장성과 같은 요소에 초점을 맞춰 궁극적으로 기업이 더 많은 고객 가치를 창출하는 데 도움이 됩니다.
플랫폼 엔지니어링과 DevOps 비교
DevOps는 조직이 개발과 IT 운영 기능을 반복적인 워크플로우로 통합하기 위해 사용하는 소프트웨어 개발 방식입니다. 반면 플랫폼 엔지니어링의 주요 목적은 그러한 워크플로우를 지원하는 내부 플랫폼 및 툴을 개발하는 것입니다.
플랫폼 엔지니어링을 통해 조직 내 여러 개발 팀이 사용할 수 있는 일련의 표준화된 툴, 지식, 서비스 및 프로세스를 구축할 수 있습니다. 개발 팀은 엄선된 플랫폼을 사용하여 구성 요소를 빌드, 배포, 운영 및 지원하고, 플랫폼 팀은 플랫폼 구성 요소를 빌드, 배포, 운영 및 지원할 수 있습니다.
DevOps 사례에서는 개발자가 직접 소프트웨어를 찾아 학습, 배포, 관리하도록 권장하여 프로덕션 단계에서 소프트웨어에 대한 인사이트와 제어 권한을 더 많이 확보할 수 있었습니다.
DevOps와 지속적 제공을 도입한 결과, 파이프라인과 툴체인이 늘어났고, '보안을 초기에 통합(Shifting Left)'(애플리케이션을 개발하고 유지 관리할 때 워크플로우의 각 단계를 보호하는 방법을 완벽하게 이해)해야 한다는 부담까지 추가되어 개발자는 자신이 빌드하는 애플리케이션과 관련된 점점 더 많은 난제를 파악해야 하는 책임을 안게 되었습니다.
이러한 자율성은 결국 개인과 조직 모두에 도움이 되지 않는 책임과 인지 부하로 이어질 수 있습니다.
반면, 플랫폼 엔지니어링은 사용자 여정을 중심으로 공감대를 형성할 수 있게 하여 애플리케이션 제공을 자동화하고, 협업과 소통을 개선하고, 오류를 줄이고, 보안 및 컴플라이언스를 강화하고, 효율성을 향상하고, 무엇보다 가장 필요한 부분에 개발자의 역량을 다시 투입하는 효과적인 방법을 찾아 DevOps 기반의 전략을 도출할 수 있습니다.
플랫폼 엔지니어링의 개발자 지원 방식
플랫폼 엔지니어링은 개발자의 인프라 관리 부담을 덜어줍니다. 이는 특히 하이브리드 및 멀티클라우드 환경에서 필수적입니다.
전통적으로, 요구 사항을 해결하기 위한 툴을 찾거나 그러한 툴을 처음부터 개발하는 것이 개발자의 역할이었습니다. 이전에는 기술의 기본 버전(iteration)을 더 많이 사용해 이러한 직무 기대치를 충족할 수 있었으나, 엔터프라이즈급 조직에서 일하는 오늘날 개발자들에게는 비즈니스 성장에 따라 사용자를 지원하고 효과적으로 확장하는 일이 점점 복잡하고 분산된 작업이 되었습니다.
플랫폼 엔지니어는 개발자 경험에서 발생하는 마찰을 적극적으로 찾고 그러한 마찰을 제거하거나 완화할 수 있는 툴과 기술을 엄선해 효과적인 IDP를 개발합니다. 최소화된 접근 방식으로 시작해 개발 팀에 유익하다고 판단되는 툴만 통합하세요. 그런 다음 개발 팀의 요구 사항에 따라 향상할 수 있는 기능을 점진적으로 확장하고, 그 과정에서 피드백을 받아보세요.
플랫폼 엔지니어와 사이트 신뢰성 엔지니어(SRE) 비교
사이트 신뢰성 엔지니어(SRE)는 기본 IT 인프라스트럭쳐를 관리하며, SRE 팀은 인프라 무결성을 보장하고 가동 시간을 유지하기 위한 프로세스와 자동화를 개발합니다. SRE와 플랫폼 엔지니어는 공통된 목표를 갖고 있지만, SRE는 소프트웨어의 성능, 신뢰성, 확장에 초점을 두는 반면 플랫폼 엔지니어링은 개발자 경험 향상을 목표로 하는 시스템에 초점을 맞춥니다.
플랫폼 엔지니어링과 사이트 신뢰성 엔지니어링의 공통 분모는 시스템을 개발하고 유지 관리한다는 것입니다. 두 개념의 차이점은 각 사례가 강조하는 부분이 다르다는 데 있습니다.
플랫폼 엔지니어링의 주요 과제
플랫폼 엔지니어링은 플랫폼을 하나의 제품으로 보고 내부 개발자를 고객으로 대할 때만 성공할 수 있습니다. 조직이 플랫폼 엔지니어링을 내부 개발자를 위해 구축한 제품이 아닌 엄격한 IT 의무 사항으로 취급할 때, 플랫폼 엔지니어링 도입은 가장 자주 실패하게 됩니다. 엔지니어링 팀이 개발자의 실제 고충을 파악하지 못한 채 내부 개발자 플랫폼(IDP)을 구축한다면 개발자는 개발 속도를 유지하기 위해 해당 플랫폼을 우회할 가능성이 큽니다.
마찬가지로 조직은 플랫폼을 필요보다 부족하게 설계하거나 지나치게 복잡하게 설계할 수 있습니다. 플랫폼 엔지니어링은 개발자 포털 UI(예: Backstage)를 구축하는 것만을 의미하지 않습니다. 셀프 서비스가 실질적인 의미를 가지려면 더 깊은 수준의 인프라 자동화와 오케스트레이션이 필요합니다. 반대로, 앞으로 발생할 수 있는 모든 활용 사례에 대비해 플랫폼을 과도하게 설계하면 복잡성이 많이 증가하고 사용법을 익히기도 어려워집니다.
또한 플랫폼 팀은 단편화된 툴링과 엔터프라이즈 환경의 복잡성을 간소화된 자동화 워크플로우로 통합해야 하는 막대한 기술적 과제에 직면해 있습니다. 애플리케이션 개발자가 이러한 복잡성을 직접 다루지 않도록 하려면 지속적인 추상화와 유지 관리가 필요하며, 리소스가 부족한 팀에는 이 작업이 금세 큰 부담이 될 수 있습니다.
이러한 장애물을 극복하기 위해, 성공적인 조직은 철저한 '제품 중심 관점'으로 전환하여 하나의 시급한 엔지니어링 병목 현상을 먼저 해결하는 최소 기능 플랫폼(Thinnest Viable Platform, TVP)을 출시합니다. 또한 피드백을 적극적으로 제공하는 개발자 파일럿 그룹과 협력해 초기 워크플로우를 설계함으로써 엔지니어가 자발적으로 선택해 사용하는 원활한 셀프 서비스 '최적의 경로'를 만듭니다. 채택을 강요하는 대신 플랫폼 사용이 가장 쉬운 선택이 되도록 하고, 내부에서 자연스럽게 입증된 성공 사례를 바탕으로 엔터프라이즈 전반에 인프라 자동화를 점진적으로 확장합니다.
플랫폼 엔지니어링에서 Red Hat의 역할
Red Hat® OpenShift®와 Red Hat Advanced Developer Suite는 전체 소프트웨어 개발 라이프사이클을 위한 통합 플랫폼 엔지니어링 솔루션을 제공합니다. Red Hat OpenShift는 프로덕션 환경에서 애플리케이션을 배포, 관리, 확장할 수 있는 강력한 기반을 제공하며, Red Hat Advanced Developer Suite는 개발자 생산성을 향상하고 위험성을 줄이며 AI 기반 개발을 지원하도록 플랫폼 팀의 역량을 강화해 즉각적인 운영 효율성의 향상과 장기적인 트랜스포메이션을 동시에 지원합니다. Red Hat Advanced Developer Suite는 Red Hat OpenShift에 내부 개발자 포털과 신뢰할 수 있는 소프트웨어 공급망을 추가하여 통합 내부 개발자 플랫폼(IDP)을 제공합니다.
AI 시대의 플랫폼 엔지니어링 현황
이 세부 정보에서는 일루미너스(Illuminas)에서 진행한 AI 시대의 플랫폼 엔지니어링 현황 설문조사에 대해 종합적으로 검토한 내용을 제공합니다. 세부 정보를 살펴보세요.