본문으로 건너뛰기

플랫폼 엔지니어링

· 약 4분

플랫폼 엔지니어링 개념

  • 다양한 애플리케이션과 서비스의 효율적 개발, 운영, 관리, 배포를 위해 공통된 플랫폼을 설계, 구축, 유지하는 엔지니어링 분야
  • 개발 효율성 증대, 일관된 품질 확보, 공통된 플랫폼으로 시스템 유지보수 용이, 자동화로 인한 비용 절감

플랫폼 엔지니어링 구성도, 구성요소, 적용방안

플랫폼 엔지니어링 구성도

  • 개발/운영 간 필요 컴포넌트를 자동화, 지원, 관제하여 개발자생산성 향상

플랫폼 엔지니어링 구성요소

구분내용비고
개발자 도구코드 리포지토리, 테스트 자동화 도구Git, Jenkins
CI/CD 파이프라인빌드 자동화, 배포 자동화Jenkins, GitLab
모니터링 및 로깅모니터링 대시보드, 로그 분석Prometheus, ELK
인프라 관리클라우드 인프라, 온프레미스 인프라AWS, GCP, Azure

플랫폼 엔지니어링 적용방안

구분내용비고
공공공공 데이터와 서비스를 통합 관리하여 효율성 증대데이터 통합 및 관리 효율성 향상
금융데이터 암호화와 접근 제어를 통한 보안 강화금융 데이터 보호
민간모듈화된 아키텍처로 다양한 비즈니스 요구 대응유연한 비즈니스 확장

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

구분플랫폼 엔지니어링DevOps
범위전사적 DevOps 확장, 플랫폼 기반 개발 지원개발 및 운영 자동화, CI/CD 중심
목표개발자의 생산성 극대화, 일관된 SW 제공SDLC 주기 단축, 배포 자동화
역할플랫폼 팀이 개발자에게 표준화된 개발 환경 제공DevOps 팀이 개발 및 운영을 자동화하고 협업 주도
구성 요소개발자 포털, IDP, 셀프서비스 도구CI/CD, IaC, 모니터링, 컨테이너 오케스트레이션
초점DX 개선, 재사용 가능한 플랫폼 제공자동화 및 협업, 지속적인 통합 및 배포
자동화 수준개발자가 쉽게 인프라, 배포, 모니터링을 사용할 수 있도록 자동화배포 및 운영을 자동화하여 지속적인 딜리버리 실현

플랫폼 엔지니어링시 고려사항

  • 개발자가 아닌 조직 구성원이 쉽게 데이터를 확인하고, 사용할 수 있는 FaaS, Jupyter Notebook 인터페이스 제공