본문 바로가기
IT 잡소리

Amazon의 운영 효율성 – Operational Excellence (2-2) 개발 도구

by 이제시작 2021. 8. 14.
반응형

2. 자동 개발 및 배치 도구


새로운 개발 툴을 만들 때 어떻게 합니까? 도구가 필요한 개발 팀에 액세스하고, 도구가 필요한 개발 팀에 액세스하고, 기능 목록을 작성합니다. 또한 기술적인 어려움에 따라 흥미로운 내용을 추가할 수 있습니다.

수집과 측정은 필요한 데이터로서 중요합니다. 개발팀의 요구는 그들이 상상하는 모든 것을 만들어내야 할지도 모른다. (고객은 이것이 필요한지 확신하지 못합니다.)

"데이터가 없는 이론은 큰 실수가 아니라 사실에 맞는 이론이 아니라 사실을 왜곡하기 시작하는 이론이라고 생각합니다." - 아서 코난 도일 경

아마존은 데이터를 기반으로 의사결정을 하는 회사입니다. 따라서 데이터를 수집하고 이를 바탕으로 의사결정을 하기 위해서는 두 가지 리더십 원칙(LP)이 필수적입니다.

딥 다이빙

리더들은 모든 데이터에 대해 회의적이며, 모든 분야의 세부 사항을 지속적으로 파악하고 감시할 것입니다.

최대 설치 표준
리더는 항상 높은 목표를 가지고 있습니다. 많은 사람들이 기준이 너무 높다고 생각할지도 모른다. 그러나 리더는 품질 좋은 제품, 서비스 및 프로세스를 팀에게 제공하기 위해 계속해서 표준을 높입니다. 리더는 지속적으로 단점을 검토하고 해결합니다.

아마존은 이러한 리더십 원칙을 바탕으로 소프트웨어 개발 프로세스를 팀 세분화 데이터로 측정했습니다. 그 결과 코드 서약부터 배포까지 서비스당 평균 16일이 걸렸다. 전자 메일 및 티켓팅을 비롯한 여러 작업 그룹이 이미 수동으로 배포했습니다. 각 팀의 개발자가 대부분 배치 과정을 기다리고 있다는 얘기다.

아마존의 문제는 개발자들이 기다리지 않고 전 과정을 자동화할 수 있다는 것이다. 저는 이를 통해 문화 발전과 도구 개발이 밀접한 관련이 있다는 것을 배웠습니다. 아마존은 그 문제에 대한 깊이 있는 이해와 그것에 대한 증거를 자료로 요구하는 진술을 내놓지 못할 수도 있다.

건설 및 배치 – 브라질 및 아폴로
아마존은 팀 개발자들이 빌드 명령을 실행하는 데 시간을 낭비하지 않도록 브라질이라는 이름의 중앙 집중식 마스터 시스템을 만들었다. 브라질의 주요 기능은 컴파일, 버전 제어, 의존성 제어입니다.반복성.일련의 명령을 실행할 때 브라질은 개체를 만들고 배포하기 위한 리소스 풀을 제공합니다. 

브라질 공예품을 보급하기 위해 각 개발팀이 아폴로호를 개발했다. 아폴로는 단계적으로 개별 서버에 소프트웨어 객체를 배치할 수 있습니다. 개발자가 서버 배포 작업을 하나만 정의하면 해당 작업은 서버 호스트에 자동으로 배포됩니다. 따라서 개발자는 테스트, 스테이징 또는 프로덕션 환경에 애플리케이션을 배포할 때 다른 호스트에 로그인하거나 명령을 실행할 필요가 없습니다. 이러한 자동화된 구축을 통해 각 서비스 팀은 고객에게 새로운 기능을 신속하게 제공할 수 있습니다.

오늘날 아마존의 개발팀은 아폴로도를 광범위하게 사용하면서 큰 진전을 보이고 있습니다. 예를 들어 상태 점검 롤업 업데이트를 사용하면 업그레이드 중에도 응용 프로그램을 계속 사용할 수 있습니다. 또한 서버 그룹이 서로 다른 데이터 센터에 분산될 때 여러 호스트를 각 위치에 동시에 배치할 수 있습니다. 이러한 기능을 사용하면 배포 중에 애플리케이션 서비스 로드를 분산하고 장애가 발생하는 곳마다 서비스 가용성을 유지할 수 있습니다.아폴로는 각 피사체를 추적한다.모든 작업을 수행할 때 컴퓨터의 배포 상태를 확인하고 정보를 수집하여 배포 중에 발생할 수 있는 문제를 해결합니다.

아폴로는 클라우드 환경에서 일반적으로 사용되는 사용자 지정 AMI(Amazon Linux Images)를 배포하기 시작합니다. 이러한 사용자 지정 이미지는 필수 구성 요소를 포함한 표준 운영 체제 환경에 함께 배포할 수 있으며 쉽게 표준화할 수 있습니다. 아폴로도에 대한 자세한 내용은 베르너 보겔스 블로그 포스트를 참조하십시오.

사용자 정의 배포 설정 - 파이프라인

자동 구축과 배치만으로는 모든 문제를 해결할 수 없습니다. 건설과 배치는 더 큰 프로세스의 일부입니다. 개발자가 소스 코드를 제출할 때 시작된 프로덕션 환경의 변경 사항을 성공적으로 세분화하기 위해서는 몇 가지 단계가 필요합니다.각 팀은 다른 팀입니다.

파이프라인 도구는 워크플로우 전반에 걸쳐 모델을 지속적으로 배치하는 시스템으로, 개발자가 수동 개입 없이 전체 프로세스를 자동화할 수 있도록 지원합니다. 물론 모든 것이 완전히 자동화된 것은 아닙니다. 또한 주요 시스템 팀의 수동 승인과 같은 작업을 파이프라인에 통합하여 팀의 가장 편리한 단계를 자동화 및 구성할 수 있습니다.

파이프 샘플
아마존의 파이프라인 도구를 통해 도식화된 샘플을 배포하는 과정입니다.
위의 예에서 패키지는 버전입니다.패키지로 제작하고 감마 단계에서 컴플라이언스를 확인한 후 생산 단계로 들어갑니다. 각 화살표는 다음 단계로 진행하기 전에 검증 게이트 역할을 합니다.

초기 파이프라인 시스템은 소수의 그룹을 위한 시범사업으로 개발돼 시범사업 종료 시점에 코드부터 배치까지의 총 시간을 90% 단축했다. 파이프라인 시스템의 성공으로 다른 아마존 서비스 팀들은 자연스럽게 배포 프로세스를 파이프라인으로 마이그레이션하기 시작했습니다. 이렇게 하면 자체 시작 프로세스를 가진 팀이 모든 사용자가 사용하는 표준 방법에 통합할 수 있습니다.

파이프라인 마이그레이션을 통해 전체 구축 프로세스를 간소화하고 각 서비스 팀이 공용 로그 기록 및 모니터링과 같은 다른 시스템과 긴밀하게 통합할 수 있습니다.

 

3. 엔터프라이즈 도구의 적용 및 표준화


브라질, 아폴로, 파이프라인과 같은 공통 개발 툴은 아마존과 고객 모두에게 매우 유익하며 각 서비스 팀의 제공 주기를 단축합니다. 많은 소프트웨어 기능이 단순하고 빠르며, 수천 개의 마이크로 서비스 팀이 2014년에 연간 5천만 번 이상 도입했습니다. 2019년 수억 부까지 확대됐다.

가장 중요한 것은 이러한 툴이 소프트웨어 배포를 가속화하는 동시에 광범위하게 사용되고 있기 때문에 구현 프로세스의 일관성, 표준화 및 간소화를 통해 장애 위험을 크게 줄일 수 있다는 점입니다. 그 결과 뛰어난 경영진의 본질인 고객 경험이 크게 개선되었습니다.

공동 개발 도구의 자율성을 제공하고 고객 중심의 사고를 통해 효율성과 표준화를 실현하는 것이 중요합니다.

일관성, 표준화 및 단순화를 달성하기 위해 Amazon과 같은 사내 개발 툴을 "넓게" 채택하는 방법은 무엇입니까? 아마존이 프로세스 또는 메커니즘이라고 부르는 다음 글은 이 질문에 대한 답을 자세히 설명합니다.

반응형

댓글