플랫폼 엔지니어링 툴이란?
플랫폼 엔지니어링 툴은 내부 및 외부 개발 팀이 셀프 서비스 방식을 통해 필요한 기능을 필요한 시점에 사용하여 생산성을 개선하도록 지원합니다. 플랫폼 엔지니어링 툴은 지속적 통합 및 지속적 제공(CI/CD), 코드형 인프라(IaC), 컨테이너화, 관측성, 보안, 개발자 셀프 서비스 등 다양한 기능을 지원합니다.
플랫폼 엔지니어링 팀(플랫폼 팀이라고도 함)은 개발자가 다양한 서비스 및 API와 상호 작용하는 데 필요한 리소스, 도큐멘테이션 및 툴에 대한 셀프 서비스 액세스를 제공하는 개발자 포털을 지원합니다. 이뿐만 아니라 플랫폼 팀은 개발자가 애플리케이션을 빌드, 배포, 관리하는 데 필요한 기본 인프라인 내부 개발자 플랫폼(IDP)을 유지 관리할 수 있습니다.
플랫폼 엔지니어링 기술은 개발자 툴과 관련이 있지만 같은 범주에 속하지는 않습니다. 플랫폼 엔지니어링 기술과 플랫폼인 IDP는 개발자의 개발 효율성을 높이기 위한 일관된 프로세스를 구축하는 데 도움이 됩니다. 개발자 툴은 이러한 기반을 토대로 개발자가 IDP 경험을 향상하고 특정 프로젝트를 완수하도록 지원합니다.
지금부터는 플랫폼 엔지니어링의 목표는 무엇이고 이러한 목표를 지원하기 위해 사용할 수 있는 기술과 서비스에는 어떠한 것들이 있는지 자세히 살펴보겠습니다.
플랫폼 엔지니어링의 목표
플랫폼 엔지니어링은 클라우드 네이티브 시대의 수많은 기존 기술에서 비롯되는 복잡성을 해결하는 것을 목표로 합니다. 플랫폼 엔지니어는 소프트웨어 엔지니어링 조직을 위한 셀프 서비스 기능을 지원하기 위해 툴체인과 워크플로우를 설계 및 구축합니다. 개발 팀은 필요한 기능을 몇 분 만에 확보하고, 내부적으로 지원되고 관측 가능한 솔루션을 이용하며, 조직의 보안 사례를 준수할 수 있습니다.
플랫폼 엔지니어링은 더욱 효율적인 소프트웨어 개발을 위해 업무 문화, 비즈니스 운영, 팀 협업 등을 연결하는 종합적인 접근 방식으로, 소프트웨어 개발자의 업무 부담을 인지하며, 개발자의 고충을 확인해 완화하는 것을 목표로 합니다.
그렇다면 플랫폼 엔지니어링은 실제로 어떻게 적용될까요? 플랫폼 엔지니어는 유연성을 제공하는 동시에 조직의 일관성을 유지하는 콘텐츠, 툴, 도큐멘테이션, 템플릿, 워크플로우 등의 컬렉션을 구성합니다. 또한 개발자가 효과적으로 작업할 수 있도록 돕고 개발자 생산성을 향상하는 재사용 가능한 공통 툴 및 기능을 제공합니다.
AI 시대의 플랫폼 엔지니어링 현황
내부 개발자 플랫폼(IDP)이란?
IDP는 개발자가 코드를 생성하고 배포할 수 있는 표준화된 셀프 서비스 툴 및 기술 세트입니다. IDP는 개발 프로세스 요소를 통합하고 간소화하여 개발 팀의 업무를 더욱 관리하기 쉽고 효율적이며 협업적으로 만듭니다.
플랫폼 엔지니어링에서 IDP는 선택할 수 있습니다. IDP는 셀프 서비스 API, 툴 및 서비스, 지식, 지원의 기반으로, 매력적인 내부 제품으로 구성됩니다. IDP는 개발 팀에서 주로 사용하지만 초기 구성, 유지 관리 및 지원은 플랫폼 엔지니어가 담당합니다. 따라서 과거에 누가 개발했느냐에 상관없이 전체 조직이 통합 기술 및 리소스 세트를 사용할 수 있습니다. IDP를 제공하면 개발 팀과 운영 팀 간의 효율적인 업무 관계를 촉진하는 DevOps 모범 사례를 지원하고 유지할 수 있습니다.
내부 개발자 포털과 내부 개발자 플랫폼이라는 용어가 혼동되어 사용될 때가 있으나 개발자 포털은 내부 개발자 플랫폼의 프론트엔드 역할을 하여 기능적 깊이와 확장성을 위해 애플리케이션 플랫폼을 추가할 수 있다는 점에서 다릅니다.
개발자 플랫폼을 위한 오픈소스 프로젝트 중 가장 잘 알려진 프로젝트로는 Spotify 엔지니어들이 개발하여 이후 Cloud Native Computing Foundation(CNCF)에 기부한 Backstage가 있습니다. Backstage는 Red Hat® Developer Hub의 기반을 구성합니다. Red Hat Developer Hub는 엔터프라이즈 고객을 위한 통합 및 지원을 통해 개발자 플랫폼 구축을 위한 자체적으로 지원되는 프레임워크를 제공합니다.
CI/CD 툴이란?
CI/CD 툴은 팀이 개발, 배포, 테스트를 자동화하도록 지원합니다. 특히 통합(CI) 측면을 다루는 툴도 있고, 개발 및 배포(CD)를 관리하는 툴도 있으며, 지속적인 테스트 또는 관련 기능에 특화된 툴도 있습니다. 이러한 툴의 상당수가 플랫폼 엔지니어링 방식의 일환으로 IDP에 통합될 수 있습니다.
다양한 오픈소스 CI/CD 툴들이 잘 알려져 있으며, 다음은 그중 일부입니다.
- Argo CD는 쿠버네티스를 위한 선언적인 지속적 제공(CD) 툴로, GitOps 사례에 부합합니다. Argo CD는 클러스터에 필요한 리소스를 제공하는 데 독립 실행형 툴로 사용하거나 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 툴을 선택하면 여러 플랫폼 전반에서 애플리케이션의 빌드, 테스트, 배포를 자동화할 수 있습니다.
코드형 인프라(IaC) 툴이란?
IaC는 인프라 관리에 대한 접근 방식입니다. 관리자는 IaC를 통해 서버, 가상 머신 등이 포함된 인프라의 관리와 프로비저닝을 자동화할 수 있습니다. 자동화된 셀프 서비스 인프라에 대한 이러한 방식의 지원은 플랫폼 엔지니어링의 목표에 부합합니다.
IaC를 통해 작업할 경우 구성 파일을 사용해 인프라 사양을 정의할 수 있습니다. 따라서 환경을 일관성 있게 프로비저닝하기가 더 쉽습니다. 또한 IaC를 채택하면 구성을 전사적으로 수정하고 배포할 수 있으며 문서화되지 않은 임시적인 변경을 방지할 수 있습니다.
IaC에서는 서버 자동화 및 구성 관리 툴을 활용합니다. IaC 접근 방식에 부합하는 일반적인 IT 자동화 툴로는 Red Hat Ansible® Automation Platform, Terraform, Chef, Puppet, Salt 등이 있습니다.
컨테이너 툴과 쿠버네티스란?
컨테이너 툴은 플랫폼 엔지니어의 툴박스에서 중요한 구성 요소 중 하나입니다.
컨테이너는 실행에 필요한 모든 파일을 포함하여 전체 실행(runtime) 환경에서 애플리케이션을 패키징하고 분리합니다. 그 결과 컨테이너화된 애플리케이션은 다양한 환경과 인프라 전반에서 배포된 위치에 상관없이 일관되게 실행됩니다. 컨테이너는 대규모 애플리케이션을 탄력적으로 결합된 소규모의 독립적인 마이크로서비스의 컬렉션들로 나누는 방법인 클라우드 네이티브 개발의 기본에 해당하는 기술입니다.
다양한 오픈소스 툴들을 통해 컨테이너 작업이 더욱 용이해집니다. 컨테이너의 구축 및 배포 시 개발자는 Docker와 Podman과 같은 툴을 사용할 수 있습니다. 이 두 가지 툴 모두 Open Container Initiative(OCI) 표준을 지원합니다.
그리고 규모에 맞는 컨테이너 관리를 위해 운영 팀은 오픈소스 쿠버네티스 프로젝트와 같은 컨테이너 오케스트레이션 플랫폼을 활용할 수 있습니다. 컨테이너 오케스트레이션은 컨테이너 라이프사이클 전반에 걸쳐 컨테이너의 배포, 관리, 확장 및 네트워킹을 자동화합니다.
다양한 공급업체들이 쿠버네티스 플랫폼을 제공합니다. 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 Advanced Developer Suite, Red Hat Trusted Artifact Signer 등 취약점을 줄이고 보안 정책을 시행하는 데 도움이 되는 다양한 솔루션들이 모두 포함되어 있습니다.
- Red Hat Trusted Profile Analyzer는 SBOM(Software Bill of Materials) 관리를 지원하는 동시에 출처를 신뢰할 수 있는 CVE와 보안 권고를 상호 참조합니다. 또한 Graph for Understanding Artifact Composition(GUAC), Trustification, Exhort 등 오픈소스 프로젝트의 기술을 포함합니다.
- Sigstore 프로젝트 기반의 Red Hat Trusted Artifact Signer는 컨테이너 이미지, 바이너리, 문서 등과 같은 소프트웨어 아티팩트의 암호화 서명과 검증을 간소화합니다. 또한 Cosign 프로젝트와 Fulcio 프로젝트의 기술을 포함하고, Hashicorp Vault, Google/Azure, AWS KMS 등 다른 키 관리 시스템과의 완전한 통합을 지원합니다.
- Red Hat Advanced Developer Suite는 소프트웨어 아티팩트에 대한 엔드 투 엔드 출처 트랙킹을 제공합니다.
쿠버네티스 배포의 경우 Red Hat Advanced Cluster Security for Kubernetes가 여러 플랫폼 전반에서 컨테이너화된 워크로드를 보호하며 팀이 취약점을 식별 및 해결하고 보안 정책을 시행하도록 돕습니다.
플랫폼 엔지니어링에 Red Hat을 선택해야 하는 이유
플랫폼 엔지니어는 자신의 목표에 부합하는 다양한 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 비즈니스 솔루션
개발자 포털을 구축하기 위한 백스테이지 기반의 오픈 엔터프라이즈 플랫폼으로, 개발 프로세스 요소들을 시각적으로 통합합니다.