플랫폼 엔지니어링 툴이란?

URL 복사

플랫폼 엔지니어링 툴은 셀프 서비스 접근 방식을 사용하여 필요할 때 필요한 사항에 액세스함으로써 (내부 및 외부의) 개발 팀이 생산성을 높이는 데 도움이 됩니다. 플랫폼 엔지니어링 툴은 CI/CD(지속적 통합 및 지속적 제공 또는 배포), IaC(코드형 인프라), 컨테이너화, 관측성, 보안, 개발자 셀프 서비스 등의 기능을 지원합니다.

플랫폼 엔지니어링 팀(플랫폼 팀이라고도 함)은 개발자가 다양한 서비스 및 API와 상호작용하는 데 필요한 리소스, 문서, 툴에 대한 셀프 서비스 액세스를 제공하는 개발자 포털을 지원하는 업무를 담당합니다. 또한 플랫폼 팀은 개발자가 애플리케이션을 구축, 배포, 관리할 기반 인프라 역할을 하는 IDP(내부 개발자 플랫폼)를 유지 관리합니다.

플랫폼 엔지니어링 기술은 관련성은 있지만 개발자 툴과 같은 범주가 아닙니다. 플랫폼 엔지니어링 기술과 플랫폼 자체인 IDP는 개발자가 작업을 효율적으로 수행할 수 있도록 일관된 프로세스를 구축하는 데 도움이 됩니다. 개발자 툴은 이러한 기반을 토대로 개발자가 IDP 경험을 개선하고 특정 프로젝트를 수행할 수 있도록 지원합니다.

아래에서는 플랫폼 엔지니어링이 달성하고자 하는 목표와 이러한 목표를 지원하기 위해 사용할 수 있는 기술과 서비스의 종류를 자세히 살펴보겠습니다.

플랫폼 엔지니어링에서는 방대한 양의 기존 기술을 클라우드 네이티브 시대에 맞게 적용해야 합니다. 플랫폼 엔지니어는 소프트웨어 엔지니어링 조직이 셀프 서비스 기능을 사용할 수 있도록 툴체인과 워크플로우를 설계하고 구축합니다. 개발 팀은 몇 분 안에 필요한 기능을 얻고, 제공되는 솔루션이 내부적으로 지원되며, 관찰 가능하고, 조직의 보안 사례를 준수하는지 확인할 수 있습니다.

플랫폼 엔지니어링은 더욱 효율적인 소프트웨어 개발을 위해 작업 문화, 비즈니스 운영, 팀 협업 등을 연결하는 종합적인 접근 방식입니다. 이 방식에서는 소프트웨어 개발자에게 부과된 업무 부담을 인식하고, 개발자가 느끼는 고충을 파악하고 완화하기 위해 노력합니다.

실제로는 어떤 모습일까요? 플랫폼 엔지니어는 조직의 일관성을 유지하면서 유연성을 제공하는 일련의 콘텐츠, 툴, 도큐멘테이션, 템플릿, 워크플로우를 구성합니다. 플랫폼 엔지니어는 개발자가 효과적으로 작업하고 개발자 생산성을 높일 수 있도록 재사용 가능한 공통 툴과 기능을 제공합니다.

IDP는 개발자가 코드를 생성하고 배포하는 데 사용할 수 있는 표준화된 셀프 서비스 툴과 기술 세트입니다. IDP는 개발 프로세스 요소를 통합하고 간소화하여 개발 팀의 업무를 더욱 관리하기 쉽고 효율적이며 협업적으로 만듭니다.

IDP는 플랫폼 엔지니어링을 선택한 결과에 해당합니다. IDP는 강력한 내부 제품으로 제공되는 셀프 서비스 API, 툴, 서비스, 지식, 지원으로 이루어진 기반입니다. 개발 팀은 주요 IDP 사용자인 반면, 플랫폼 엔지니어는 초기 구성, 유지 관리, 지원을 담당합니다. 이를 통해 과거에 누가 만들었는지에 관계없이 조직 전체가 일관된 기술과 리소스를 사용할 수 있습니다. IDP를 제공하는 것은 개발 팀과 운영 팀 간의 더 효율적인 업무 관계를 촉진하는 DevOps 모범 사례를 활성화하고 유지 관리할 수 있는 방법입니다.

간혹 내부 개발자 포털과 내부 개발자 플랫폼을 혼동하는 경우가 있습니다. 이 둘의 차이점은 개발자 포털은 내부 개발자 플랫폼의 프론트엔드 역할을 할 수 있으며, 애플리케이션 플랫폼을 추가하여 기능적 깊이와 확장성을 더한다는 점입니다.

Backstage는 개발자 플랫폼을 위한 가장 잘 알려진 오픈소스 프로젝트 중 하나로, Spotify의 엔지니어가 만들고 나중에 CNCF(Cloud Native Computing Foundation)에 기부했습니다. Backstage는 Red Hat® Developer Hub의 기반을 형성합니다. Red Hat Developer Hub는 기업 고객을 위한 통합 및 지원과 함께 개발자 플랫폼 구축을 위한 지원 및 의견 제시 프레임워크를 제공합니다.

내부 개발자 플랫폼에 대해 자세히 알아보기

CI/CD 툴은 팀이 개발, 배포, 테스트를 자동화하도록 지원합니다. 특히 통합(CI) 측면을 다루는 툴도 있고, 개발 및 배포(CD)를 관리하는 툴도 있으며, 지속적인 테스트 또는 관련 기능에 특화된 툴도 있습니다. 이러한 툴 중 다수는 플랫폼 엔지니어링 접근 방식의 일부로 IDP에 통합할 수 있습니다.

잘 알려진 오픈소스 CI/CD 툴은 다양하며 다음은 그 일부에 해당합니다.

  • Argo CD: GitOps 사례에 부합하는 선언적인 지속적 제공 툴로, 쿠버네티스를 위한 툴입니다. 클러스터에 필요한 리소스를 제공하는 데 독립 실행형 툴로 사용하거나 CI/CD 워크플로우의 일부로 사용할 수 있습니다.
  • Red Hat OpenShift® GitOps: Argo CD를 기반으로 구축되었습니다.
  • Tekton: 표준 클라우드 네이티브 CI/CD 경험과 컨테이너를 제공하는 쿠버네티스 플랫폼을 위한 CI/CD 프레임워크입니다.
  • Red Hat OpenShift Pipelines: Tekton 프레임워크를 기반으로 구축되었습니다.
  • Jenkins: 크고 작은 규모의 CI 및 CD 프로세스를 처리할 수 있는 자동화 툴입니다.
  • Spinnaker: 멀티클라우드 환경을 위해 설계된 CD 플랫폼입니다.
  • GoCD: 모델링 및 시각화에 중점을 둔 CI/CD 서버입니다.
  • Concourse: 지속적인 프로세스에 적합한 자동화 툴입니다.
  • Screwdriver: CD용으로 설계된 빌드 플랫폼입니다.

또한 다양한 벤더가 제공하는 관리형 CI/CD 툴도 있습니다. 올바른 CI/CD 툴을 선택하면 팀이 여러 플랫폼에서 애플리케이션의 구축, 테스트, 배포를 자동화하는 데 도움이 될 수 있습니다. 

CI/CD에 대해 자세히 알아보기

IaC는 인프라 관리에 대한 접근 방식입니다. 관리자는 이러한 접근 방식을 통해 서버와 가상 머신을 포함한 인프라의 관리와 프로비저닝을 자동화할 수 있습니다. 자동화된 셀프 서비스 인프라에 대한 이러한 지원은 플랫폼 엔지니어링의 목표와 일치합니다.

IaC로 작업할 때는 구성 파일을 사용하여 인프라 사양을 정의합니다. 따라서 환경을 일관되게 프로비저닝하기 더 쉽습니다. IaC를 사용하면 조직 전반에 걸쳐 구성을 편집하고 배포하며, 문서화되지 않은 애드혹 변경을 방지할 수 있습니다.

IaC에는 서버 자동화 및 구성 관리 툴이 사용됩니다. IaC 접근 방식에 부합하는 몇 가지 일반적인 IT 자동화 툴로는 Red Hat Ansible® Automation Platform, Terraform, Chef, Puppet, Salt 등이 있습니다.

IaC에 대해 자세히 알아보기

컨테이너 툴은 플랫폼 엔지니어의 툴박스에서 중요한 부분을 차지합니다.

컨테이너는 실행에 필요한 모든 파일을 포함하여 전체 런타임 환경에서 애플리케이션을 패키지화하고 분리합니다. 따라서 컨테이너화된 애플리케이션은 다양한 환경과 인프라 전반에 걸쳐 배포되는 모든 위치에서 일관되게 실행됩니다. 컨테이너는 대규모 애플리케이션을 소규모의 독립적이고 느슨하게 결합된 마이크로서비스 모음으로 나누는 방법인 클라우드 네이티브 개발의 기반이 됩니다.

컨테이너 작업을 더 쉽게 만들어주는 다양한 오픈소스 툴이 나와 있습니다. 개발자는 컨테이너를 구축하고 배포하는 데 DockerPodman과 같은 툴을 사용할 수 있으며, 두 툴 모두 OCI(Open Container Initiative) 표준을 지원합니다.

운영 팀은 컨테이너를 대규모로 관리하기 위해 오픈소스 쿠버네티스 프로젝트와 같은 컨테이너 오케스트레이션 플랫폼을 활용합니다. 컨테이너 오케스트레이션은 컨테이너 라이프사이클 전반에 걸쳐 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화합니다.

쿠버네티스 플랫폼은 다양한 공급자를 통해 제공됩니다. Red Hat OpenShift는 쿠버네티스를 기반으로 하여 구축된 엔터프라이즈 애플리케이션 플랫폼입니다. 플랫폼 엔지니어는 Red Hat OpenShift를 Red Hat OpenShift Developer Hub와 같은 IDP와 통합하여 개발자 플랫폼을 제공할 수 있습니다.

모니터링과 관측성은 플랫폼 엔지니어링에 중요하며, 팀은 이를 통해 시스템이나 애플리케이션의 상태를 더 잘 이해하기 위해 출력, 로그, 성능 메트릭을 검토할 수 있습니다. 이러한 가시성은 개발자와 관리자가 복잡한 애플리케이션과 인프라의 신뢰성, 성능, 보안을 개선하는 데 도움이 됩니다.

관측성은 모니터링의 개념이 확장된 것으로, 문제의 근본 원인 파악과 예측 및 전망이 포함됩니다. 관측성 툴과 기술은 선택의 폭이 넓으며, 팀은 팀에 가장 적합한 방식으로 자체 관측성 시스템을 구성할 수 있습니다.

관측성에서 일반적으로 사용되는 오픈소스 툴로는 Grafana, Jaeger, OpenTelemetry, Prometheus 등이 있습니다. Red Hat OpenShift Observability는 OpenTelemetry 표준을 사용하여 Red Hat OpenShift와 함께 작동하도록 구축된 관측성 툴 세트입니다.

관측성에 대해 자세히 알아보기

보안에 대한 우려가 높아지면서 현대적인 소프트웨어 개발에서는 SDLC(소프트웨어 개발 라이프사이클)의 각 단계에서 보안을 다루는 '시프트 레프트(Shift Left)' 전략을 채택하고 있습니다. 이제 보안은 배포 전 마지막 점검 단계가 아닌, 프로젝트 시작 단계부터 시작됩니다.

플랫폼 엔지니어는 개발자가 SDLC 전반에 걸쳐 보안 가드레일을 따르도록 지원합니다. 이러한 단계에는 코드를 보호하고, 데이터 유출을 방지하고, 정책 컴플라이언스를 시행하고, 품질을 보증하기 위해 CI/CD 파이프라인에 자동화된 점검 및 테스트가 포함될 수 있습니다.

기타 플랫폼 엔지니어링 보안 툴은 암호 관리(비밀번호, 클라이언트 구성 파일, 리포지토리 자격 증명 등의 관리)와 API 키 관리를 비롯한 API 보안에 도움이 됩니다.

Red Hat은 소프트웨어 보안을 지원하는 일련의 툴과 서비스를 제공합니다.

Red Hat Trusted Software Supply Chain은 Red Hat Trusted Profile Analyzer, Red Hat Trusted Application Pipeline, Red Hat Trusted Artifact Signer를 포함하여 취약점을 줄이고 보안 정책을 시행하는 데 도움이 되는 솔루션 제품군을 통합합니다.

쿠버네티스 배포의 경우, Red Hat Advanced Cluster Security for Kubernetes는 여러 플랫폼에서 컨테이너화된 워크로드를 보호하여 팀이 취약점을 식별하여 해결하고 보안 정책을 시행할 수 있도록 지원합니다.

CI/CD 보안에 대해 자세히 알아보기

플랫폼 엔지니어는 Red Hat에서 목표에 적합한 다양한 솔루션을 확인할 수 있습니다. Red Hat의 제품과 서비스는 유기적으로 작동하여 팀 생산성을 높입니다. 또한 셀프 서비스를 확장하고, 온보딩을 가속화하고, 반복적인 태스크를 줄입니다.

Red Hat OpenShift는 엔터프라이즈 애플리케이션 플랫폼으로, 개발자는 온프레미스, 클라우드, 엣지 등 배포 위치에 상관없이 다양한 애플리케이션을 작업할 때 원하는 툴을 사용할 수 있습니다.

Red Hat Developer Hub는 소프트웨어 개발 프로세스 전반에서 효율성과 협업을 촉진합니다. 통합된 개방형 플랫폼을 제공하는 동시에 개발 팀의 업무 부담과 고충을 덜어줍니다. 또한 Red Hat Developer Hub에서 IDP를 사용하여 개발 프로세스 요소를 통합하고 워크플로우를 간소화하고 내부 협업을 촉진할 수 있습니다.

Red Hat Trusted Software Supply Chain을 사용하면 팀이 소프트웨어 팩토리에서 처음부터 구성 요소, 프로세스, 사례에 보안을 통합하는 데 도움이 됩니다.

허브

Red Hat Developer Hub 비즈니스 솔루션

개발자 포털을 구축하기 위한 백스테이지 기반의 오픈 엔터프라이즈 플랫폼으로, 개발 프로세스 요소들을 시각적으로 통합합니다.

플랫폼 엔지니어를 위한 Red Hat OpenShift

Red Hat OpenShift는 플랫폼 엔지니어링 팀에 내부 개발자 플랫폼을 효과적으로 구축하고 관리하는 데 필요한 툴을 제공합니다.

추가 자료

소프트웨어 개발의 골든 경로(Golden Path)란?

골든 경로란 조직 내에서 일치된 의견을 바탕으로 문서로 잘 정리되어 지원되는 소프트웨어 빌드 및 배포 방식을 말합니다.

플랫폼 엔지니어링과 DevOps 비교

플랫폼 엔지니어링과 DevOps 간에 어떤 차이점이 있는지 알아보고 목표에 부합하는 접근 방식을 찾아보세요.

플랫폼 엔지니어를 위한 Red Hat OpenShift

Red Hat OpenShift는 플랫폼 엔지니어링 팀에 내부 개발자 플랫폼을 효과적으로 구축하고 관리하는 데 필요한 툴을 제공합니다.

Platform engineering 리소스

주요 제품

  • Red Hat Developer Hub

    개발 프로세스 요소를 시각적으로 통합하는 개발자 포털 구축을 위한 Backstage 기반 오픈 엔터프라이즈 플랫폼입니다.