brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Oct 02. 2024

AWS-EKS, 플랫폼 엔지니어링 적용-2024

AWS 서밋

무신사 SRE

개발자의 생산성을 향상하면서 관리가 되도록 하는 플랫폼 엔지니어링!

사내 개발자 포털 


무신사는 셀프서비스 지향 아키텍처

소프트웨어 카탈로그로 개발자가 정보를 알 수 있도록 함.

가드레일을 통해 자율성 제공

개발자가 비용 최적화 할 수 있는 환경 제공



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

<2> 무신사의 플랫폼 엔지니어링





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



1


팀 = 소프웨어 개발팀

인프라  = EKS , EC2 , 스토리지, 네트워킹 서비스 사용 중





2

누가 인프라를 관리하느냐?





<2> 플랫폼 엔지니어링 모델은 각각  장단점이 있다.



1

중앙화된 프로비저닝 모델?

배포에 병목이 발생 

다수의 개발팀을 지원하기에 어려움이 있다.




2

탈 중앙화 데브옵스 모델?

개발팀은 자유롭게 설계 결정을 내린다.

민첩성, 유연하다.

보안 취약성이 가장 높다.

개발자에게 권한 책임이 가장 크다.

개발팀에서 클라우드 잘 모를 경우 문제 됨.




3

임베디스 데브옵스 모델?

개발팀에 데브옵스 엔지니어가 있는 경우.

개발팀에 데브옵스 엔지니어가 있을 경우 인력 비용도 고려 필요함.



4

플랫폼이 지원하는 골든 패스 모델?

개발자가 커스터마이징 할 수 있도록 제공하는 경우.

일관성 있는 표준을 제공해야 한다.

최적화된 템플릿을 만들고  내부 시스템으로 개발자에서 서비스로 제공한다.

합리적인 기본값, 가드레일 제공

신속하게 빌딩

애플리케이션팀이 개발에 집중하도록 하는 것이 목적이다.

셀프서비스 API 제공, 도구, 서비스 지식 및 지원을 제공해야 한다. - 자율적으로 기능을 사용할 수 있어야 한다.

개발자의 요구사항을 반영해야 한다.






5

장점?

표준화된 템플릿으로 속도

거버넌스 - 안정성 포함. 자동화된 방식으로 적용. 합리적인 기본사항을 사용. 자율성을 지니면서 관리됨

효율성 = 비용 절감이 됨 , EKS에서 멀티테넌트 사용하면 비용 절감됨. 

플랫폼이 규모의 경제를 달성할 수 있도록 지원하게 된다.






6

고객 사례?


세일즈포스

HKP를 통해 세일즈 포스 개발팀이 사용 중.

클러스터와 네임스페이스를 격리하여 사용 중.




7

posco

생성형 AI 기반으로 만들고 있다.

PIPE 

포스코 개발자 사용 중.  소프트 템플릿 기반으로 사용 중이다.





8

여러분의 조직에 맞는 플랫폼을 만드는 게 중요하다.



플랫폼 만들 때 고려사항??


소유권?    

플랫폼을 누가 소요할 것인지?

소유권과 경계를 정의 

EKS 클러스터를 애플리케이션팀에서 관리?

애플리케이션은 실행만 관리?

애드온, 클러스터 관리는 플랫폼팀?




추상화의 수준?

마이그레이션을 플랫폼팀?

팀마다 원하는 것이 다르다.

데이옵스 파이프 라인만 원하는 팀?

개발자의 자율성을 해치지 않는 선에서 인지부하를 줄이고, 표준을 지키는 추상화 수준에 대한 합의가 조직에 필요하다.


도입?

개발자가 쉽게 사용할 수 있도록 온보딩 문서, 교육 필요



문제 해결?

문제 해결법을 제공해야 한다.




9

플랫폼팀은?

플랫폼을 사용하는 개발자의 경헙으로부터 시작하는 게 중요하다.

아마존의 Working vackward 고려하자.

비즈니스 도메인으로부터 시작하자.

재사용을 고려해 모듈식으로 개발하자.





10




11

플랫폼 엔지니어링 시작???


제품으로 플랫폼을 다루세요

개발자가 사용하는 셀프서비스 제공

템플릿 제공

비용 효율적으로 

우선순위에 따라 점진적으로 개선






<2> 무신사의 플랫폼 엔지니어링




1

다양한 업무로 피로도 증가.

신규 서비스에 대해  새로운 플랫폼 적용으로  인프라 복잡화

인프라 대기 시간 증가 됨




2

플랫폼 엔지니어링도 개발자의 생산성을 향상하기 위한 부분이다.


집중과 선택 = 4가지에 대해 플랫폼 엔지니어링 시도함.



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


복잡한 것을 단순화하는 게 핵심.


2) 추상화 필요.

관심사 분리 = 개발자가 리소스 관리하도록 해주거나,  권한을 분리할 수 있는지?

인그레스 파일 = 여러 서비스 장애 가능성 


3) 비기능 요구사항.






3

서비스 구축 과정 5개?


개발팀에서 개발

SRE 팀이 인프라 생성

방화벽, IAM 정책 제공

CI /CD 파이프 라인으로 배포

서비스에 대한 라우팅 제공 = 고객에서 서비스 제공



인프라 생성 부분에 대해 개발팀에서 셀프서비스가 가능하여 시작함!!!





4

개발자가 셀프서비스로 인프라 생성함.





5

이벤트시 사전 증설 필요함.

셀프서비스 방식으로 운영.


변경 전

깃옵스로 관리하여 깃에 내용을 일일이 넣어줌



변경 후

깃 옵스제거하고  추상화함.

증설 규칙만 넣으면 자동 증설.


마케팅 캘린더에 이벤트만 넣어주면 증설됨.

카펜터로 관리함.




6

무신사는 소프트웨어 카탈로그 진행함.


필요성??

업무에 필요한 정보를 찾는 시간


구축?

Backstage 중심 툴체인 통합함!!!



개발자 생산성 향상 된 점?

명확한 소유권 = 장애 대응 시간 단축

정보 접근성 향상 = 온보딩시간 단축

거버넌스 보장 = 인프라정보 등 모두 연계됨.



8

가드레일 나아진 점?


무신사는 컨트롤 타워를 활용한 샌드박스 환경제공 하고  있음.

가드레일 제공함.

비용이 비싸거나 보안 문제 될 부분은 제외하고 제공함.




9

무신사는 비용 최적화 대시보드 진행함!!!


CUE 자료를 사용함.

아테나와 퀵사이트를 사용함.

개발자는 인프라 비용을 찾을 수 있음.

사용량도 같이 제공함.

데이터 기반으로 제공 = 개발자가 몰랐던 부분 제공됨.

자동으로 비용 절감 되었는지 예상 절감액 가능. 1일 별 데이터 제공함.




감사합니다.

매거진의 이전글 AWS 카펜터로 쿠버네티스 최적화-2024-09
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari