////
Search

EKS를 활용한 플랫폼 엔지니어링 적용하기

목차

1. 플랫폼 엔지니어링 이란?

1)클라우드 인프라 구축 방법

클라우드 도입 조직은 다양한 애플리케이션을 클라우드에서 어떻게 구현할지 고민해야 함
중앙에서 전적으로 인프라를 구성하고 관리하느냐 혹은 각 애플리케이션 팀이 각자의 인프라를 만들어 관리하느냐에 대한 방향성임
중앙화된 프로비저닝 모델에서는 인프라 설계, 배포 관련 팀이 주로 중앙 팀에 있음
중앙팀이 자원과 파이프라인을 신속하게 프로비저닝해서 개발 작업을 바로 시작하면 좋겠지만 현실에서는 중앙팀이 업무로 바쁘고 우선순위에 따라 작업을 수행해야 하기 때문에 개발팀은 종종 기다리거나 미리 필요한 것들을 예측해야만 함
중앙화된 대보수 모델에서는 개발팀들이 인프라 및 파이프라인을 정의하고 관리할 수 있는 완전한 소유권과 책임이 부여됨
내부 개발자 플랫폼은 개발자들이 인프라 관리 책임을 덜 애플레이션 개발과 그 고객 만족에 집중할 수 있도록 추상화를 구축하는 것이 핵심임

2)플랫폼의 개념

표준화된 템플릿을 활용하여 새로운 애플리픽션을 빠르게 릴리즈 할 수 있음
거버넌스 및 보안뿐만 아니라 안정성, 확장성도 포괄하는 개념임
플랫폼에서는 추상화된 표준을 내재화하여 기업들이 플랫폼에서 시행되는 애플리케이션들에게 자동화된 방식으로 이를 적용할 수 있음
플랫폼에서 제공하는 가드레일은 애플리케이션이 자율성을 지니면서도 잘못된 구성을 하지 않도록 방지하는 역할을 수행함
플랫폼을 구축하는 것은 일종의 투자가 초기에 필요하지만 한 번 플랫폼이 구축되게 되면 이후 각 애플리케이션들을 배포하거나 온보딩할 때 드는 비용이 매우 적어지고 기업은 규모의 경제를 달성할 수 있게 됨

3)플랫폼의 중요성

플랫폼을 사용하는 개발자의 경험으로부터 시작하는 것이 매우 중요함
플랫폼은 조직의 워크로드를 지원해야만 하고 비즈니스 도메인으로부터 역으로 설계되어야 함
재사용성을 고려하여 모듈식 아키텍처에 적용하고 소프트웨어 템플릿으로 만들어 공통적으로 사용되는 기능을 표준화하여 소프트웨어 개발 과정을 가속화하고 유지보수를 간소화할 수 있음

4)플랫폼 엔지니어링의 개념

플랫폼은 내부의 요구사항을 해결하기 위한 것임
플랫폼을 비용 효율적으로 만들기 위해서는 가장 간단한 방법으로 만들어야 함
플랫폼 엔지니어링은 개발자의 생산성 향상을 시키기 위한 엔지니어링임

2. Amzon EKS 를 활용한 플랫폼 고객 사례

1)Sales Force - HKP 하이퍼포스 쿠버네티스 플랫폼

HKP
먼저 세일즈포스의 내부 플랫폼 하이퍼포스는 아마존 EKS를 기반으로 구축되었습니다.
하이퍼 포스의 컴퓨팅 기반은 '하이퍼포스 쿠버네티스 컴퓨팅'을 줄여서 HKP로 표기합니다.
HKP를 통해서 SalesForce 개발팀은 EKS를 직접 프로비전 할 필요 없이 쿠버 서비스를 사용하여 각 애플리케이션들을 실행할 수 있습니다.
HKP는 개발자 비용을 간소화하며 1천 개 이상 EKS 클러스터에서 멀티 테넌트 환경의 클러스터와 네임스페이스 서비스로 제공하여 격리된 환경을 추상화하여 제공하고 있습니다.

2)Posco - PIPE 포스코 지능형 프로그래밍 환경

PIPE
두 번째 국내 사례로서 포스코가 있습니다. 포스코는 저희 AWS 프로페셔녈 서비스팀과 함께 플랫폼 엔지니어링이 정의된 생산형 AI 기반 개발 플랫폼을 만들고 있습니다.
재미있게도 포스코 인텔리전스 프로그래밍 인베스먼트를PIPE가 되겠는데요.
포스코의 개발자는 PIPE라고 하는 내부 개발자 플랫폼을 이용하여 EKS 트롤링할 수 있을 뿐만 아니라 포스코 표준을 만든 애플리케이션 소프트웨어 테넌트 기반으로 생성하고 이를 EKS 클러스터에서 실행하여 리드 타입을 줄일 수 있습니다.
또한 개발자들은 개발에 이용하는 클라우드 VDI 환경에서 아마존 큐 디벨롭을 이용하여 생성형 AI 기반으로 코드 작성에 도움을 받을 수 있으므로 개발 생산성을 향상시킬 수 있습니다.

3. 플랫폼 구현 패턴

1)고려사항

2)플랫폼 디자인 패턴

개발팀에서 해당 서비스를 개발을 하고 SR팀이 해당 서비스에 대한 인프라를 구축하게 됨
이후에 해당 서비스에 필요한 방화벽과 IAM 등 정책 등의 권한을 부여하게 됨
CI/CD 파이프라인을 통해서 서비스를 빌드하고 테스트한 다음에 배포를 하게 됨
문제가 없다고 판단되면 서비스에 대한 라우팅 처리를 하게되며 실제로 고객에게 해당 상품을 제공함

3)소프트웨어 카탈로그 구축

소프트웨어 카탈로그는 회사의 모든 소프트웨어에 대한 정보를 카탈로그처럼 한 곳에 모아놓는 곳임
관리할 서비스들이 점점 많아지면서 업무를 처리하기 위해서 필요한 정보를 찾는 시간이 배로 걸리는 경우가 자주 발생함
소프트웨어 카탈로그를 통해서 소프트웨어 카탈로그를 제일 먼저 구축해서 이런 상황을 해소를 하고 싶었고 앞으로 구축된 플랫폼들에 계속 이러한 정보들이 필요할 텐데 이때 중복 수집을 방지하고 카탈로그에 있는 정보를 많이 활용해서 빠르게 신규 플랫폼 구축 속도를 더 더욱 가속화

4. 무신사의 플랫폼 엔지니어링 전략과 사례

1)무신사가 플랫폼 엔지니어링을 시작한 이유

2)무신사의 플랫폼 엔지니어링 방향성

3)셀프 서비스 지향 아키텍처란?

셀프 서비스를 만들기 어렵다고 판단을 해서 인프라에 맞는 셀프 서비스를 만들기보다는 셀프 서비스에 용이한 인프라를 먼저 만들고 그 다음에 셀프 서비스를 만들고 싶었음
셀프 서비스는 기본적으로 복잡한 것을 아주 단순하게 만들어서 개발자들이 셀프 서비스 가능한 수준으로 부하를 줄이는 것이 핵심임
셀프 서비스를 셀프 서비스 채택을 좀 더 용이하기 위한 전략으로 보시면 됨

4)서비스 구축 과정

개발팀에서 해당 서비스를 개발을 하고 SR팀이 해당 서비스에 대한 인프라를 구축하게 됨
이후에 해당 서비스에 필요한 방화벽과 IAM등 정책 등의 권한을 부여하게 됨
CI/CD 파이프라인을 통해서 서비스를 빌드하고 테스트한 다음에 배포를 하게 됨
문제가 없다고 판단이 되면은 서비스에 대한 라우팅 처리를 하고 실제로 고객에게 해당 상품을 제공함

5)소프트웨어 카탈로그

소프트웨어 카탈로그는 회사의 모든 소프트웨어에 대한 정보를 카탈로그처럼 한 곳에 모아놓는 곳임
관리할 서비스들이 점점 많아지면서 업무를 처리하기 위해서 필요한 정보를 찾는 시간이 배로 걸리는 경우가 자주 발생함
소프트웨어 카탈로그를 통해서 소프트웨어 카탈로그를 제일 먼저 구축해서 이런 상황을 해소를 하고 싶었고 앞으로 구축된 플랫폼들에 계속 이러한 정보들이 필요할 텐데 이때 중복 수집을 방지하고 카탈로그에 있는 정보를 많이 활용해서 빠르게 신규 플랫폼 구축 속도를 더 더욱 가속화시키고 싶음

6)가드레일

가드레일을 인지하는 것만으로도 사고 발생률을 낮출 수 있고 사고가 나더라도 더 큰 사고가 나는 것을 막을 수 있는 효과가 있음
무신사에서는 개발자가 자유롭게 인프라를 생성할 수 있는 샌드박스 계정이 있음
무신사에서는 개발자에게 비용 정보를 얼마나 잘 전달하느냐가 프로젝트 성과를 좌우할 정도로 굉장히 중요하다는 것을 깨달음

7)FinOps

개발자들이 비용 절감을 해주더라도 실제로 절감액을 파악하기 위해서는 기존에는 개발자분들이 직접 SR 등을 활용을 해서 전후 비용을 파악한 다음에 절감액을 직접 계산을 해야 되는데, 비용 대시보드에서는 작업 전과 후 기간만 입력을 하면 자동으로 그 기간 동안의 일별 비용을 계산을 해줘서 얼마나 비용이 절감되는지 좀 더 쉽게 계산이 가능함

8)마치며 - What's Next?

플랫폼 엔지니어링은 개발자 전반의 생산성을 향상시키면서도 우리가 추구하는 미래로 한걸음 더 다가갈 수 있는 기회를 제공함
또한 플랫폼 엔지니어링에 AI를 적극적으로 도입해
—> 장애나 이슈 발생시, 상황에 맞는 문서 및 빠른 해결책을 구성된 플랫폼 에서 조회 가능
서비스별 장애 영향도 파악 등 실무 적용 가능
(실무 적용 사례)