BLOG

Hygieia와 Capital One의 DevOps 여정
작성일: 2018-04-16

Capital One은 수백만 개의 계좌를 가지고 있는 최고의 디지털 은행이지만, 우리의 DNA는 다른 많은 금융 기관들과는 다릅니다. 여러 LOB에 걸쳐 팀을 운영하는 Capital One 시니어 엔지니어링 책임자로서, 저는 어떻게 우리가 자체 소프트웨어를 구축하고, 퍼블릭 클라우드에 연결하고, 오픈 소스를 만들고, DevOps 를 구축하며 지속적으로 전달하는 것이 우리를 어떻게 차별화시켰는지 보았습니다.

 

첫날부터 우리는 디지털 은행이 아닌 기술 기업으로 변모시켜 차별화시키기 위한 여정을 계속해 왔습니다. 이 여정의 중요한 부분은 Devops와 Continuous Delivery에 대한 접근 방식이었습니다. 다음과 같은 세가지 요인으로 인해 Devops의 프로세스가 개발되었습니다.

 

* 조기시작: 우리는 우리의 여정을 약 5년 전에 시작했습니다. 그 당시에 우리는DevOps를 채택한 가장 큰 규모의 “비 유니콘“기업들 중 한곳이었습니다. 이를 통해 우리는 게임에서 앞서 나갈 수 있게 되어, 프로세스를 유기적으로 개발하고 관리할 수 있는 시간을 갖게 되었습니다.

*지도력이 프로세스를 추진했음: 많은 기업들이 리더십이 완전하게 발휘되지 않아 Devops에 애를 먹고 있었습니다. 우리의 경우는 조금 반대였었죠. 우리의 지도력은 과정에서 우리 팀을 첫날부터 전적으로 지지하면서, 모든 패러다임에 영향을 미쳤습니다.

*우리의 엔지니어 역량:  당사에는 우수한 엔지니어링 사례와 소프트웨어 엔지니어가 많습니다. 우리 회사의 기술 팀은 대부분이 인소싱 형태이기 때문에 외주를 많이 주는 회사보다 더 큰 장점이 있습니다.

 

 

지속적 제공과 불안한 릴리스의 해소

5년 전, 우리가 많은 개발 작업을 시작했을 때, 우리의 목표는 소프트웨어를 출시하는 것뿐만 아니라, 좋은 소프트웨어를 만들어 내는 것이었습니다. 우리는 그 목표를 달성하기 위한 중요한 부분으로서 지속적인 제공을 목표로 삼았습니다. 성공으로 가는 우리의 길의 중요한 요인은 우리의 “불안한 릴리스 해소”에 대한 접근 방식입니다. 코드가 생산되는 것에 대해 많은 두려움이 있을 수 있습니다. 코드를 만든 개발자들은 코드가 깨졌을 경우, 코드를 고치려고 위에 올려 놓으면 두려움을 느낄 수 있습니다. 제품 관리자는 프로덕션 서버를 전복하고 파괴하는 코드를 제공하는 것에 대해 두려움을 느낄 수 있습니다. 고위 지도자들은 피크 시간이나 낮에 특정 업무에 필수적인 서비스를 방해하는 것에 대해 두려움을 느낄 수 있죠.

 

Capital One에는 그런 무서운 사고 방식에서 벗어나기 위해 우리가 해온 많은 것들이 있습니다. 이들 중 많은 것은 우리의 배송 파이프라인에 견제와 균형을 제공하기 위한 테스트 자동화, 블루 그린 배치, 그리고 다른 기술들과 관련이 있습니다. 우리는 배송 팀이 아무런 두려움 없이 업무시간에 생산에 투입되기를 바랍니다. 이러한 딜리버리 중 일부가 실패할 경우 운영 상자의 비활성 영역을 사용하여 트래픽을 제어하고 있기 때문에 괜찮다는 사실을 알려 주기 위해 이를 알려주는 것입니다. 이 방법을 사용하면 원할 때마다 프로덕션 환경에 구축할 수 있으며, 실패할 경우 신속하게 두려움 없이 복구할 수 있으므로 괜찮습니다.

 

Hygieia 와 지속적 제공

지속적 제공 소프트웨어 딜리버리 파이프라인을 구축하려면 파이프라인 관리를 어렵게 만드는 많은 도구를 사용해야 합니다. “소프트웨어를 어디서 구할 수 있습니까?” “올바르게 만들었습니까?” “올바르게 테스트 했습니까?” “어느 테스트가 통과 되었습니까? 어떤 테스트가 실패했는지, 어떤 보안 검사가 괜찮습니까?” 제품 관리자, 품질 보증 담당자 또는 수석 리더 인 경우에도 코드가 파이프라인에 있는 곳을 알아야 합니다. 파이프라인의 상태를 이해하려면 상태가 어떤지, 문제가 무엇인지, 병목 현상이 무엇인지 파악해야 합니다. 그리고 이 모든 다른 정보는 각 도구에서 매우 상세하게 사용할 수 있지만 함께 볼 수있는 단일 시점은 없습니다.

 

이러한 단일 관점 때문에 우리는 오픈 소스 개발 팀 Dashboard 인 Hygieia로 만들려고 한 것입니다. Hygieia는 모든 파이프 라인 도구에서 주요 메트릭을 수집하고 단일 대시 보드 뷰를 통해 데이터를 제공함으로써 파이프라인이 얼마나 좋은지

 

왜 우리가 Hygieia 를 만들었을까요?

DevOps 여행 초기에 세 가지 큰 기둥을 기반으로 전략을 세웠습니다.

 

  • 할 수 있는 모든 것을 자동화하십시오.
  • 모든 것을 바꿔 버리십시오. 즉, 우리의 납품 수명주기의 후반부에 모든 단계를 거치고 앞을 걸어 병목 현상을 신속 처리해야 합니다.
  • 가능한 한 신속하게 파이프라인의 모든 단계에서 이해 관계자에게 피드백을 제공하기 위해, 투명성과 빠른 피드백 루프를 구현하십시오.

 

우리는 이 기능을 개발하는 데 도움이 되는 많은 도구를 살펴 보았지만 필요한 모든 기능을 갖춘 도구를 찾을 수 없었습니다. 우리는 내부의 DevOps Dashboard 도구를 구축하기 시작했고 오픈 소스의 첫 번째 정책에 따라 소스를 공개해야 한다고 결정했습니다.

 

Hygieia는 가능한 많은 병목 현상이 있는 파이프라인에서 많은 도구를 사용하여 제품을 여러 팀이 있는 대기업을 위해 생성하거나 구축했습니다. 이는 업계와 상관없이 대기업의 전형적인 문제입니다. Capital One은 적절한 시기에 적절한 장소에 Hygieia를 두 가지 이유로 설치했습니다.

 

  • 우리는 타겟 고객입니다. DevOps를 사용하는 대기업으로서 우리는 DevOps의 채택 및 확장시 문제점을 느끼고 이해합니다. 이것은 우리에게 성공적인 여정에 대한 좋은 통찰력을 줍니다.
  • 우리는 이와 관련하여 일찍 발을 들였고 다른 조직이 지금 배우고 있는 것을 알았습니다. 우리는 Hygieia dash board에 이러한 학습 내용 중 일부를 우리의 경험을 바탕으로 특정의 객관적인 통계를 표시하여 포함시켰습니다.

 

우리는 다양한 산업 분야에 걸쳐 Hygieia의 채택이 증가하는 것을 목격하고 있습니다. 대기업이 사용자 커뮤니티에 가입함에 따라 추가 “enterprisey”기능에 대한 수요가 증가합니다. 우리의 다음 움직임은 우리의 사용자 커뮤니티와 함께 ​​Executive Dashboard를 만드는 것입니다. 대기업의 경영진은 자신의 데이터에보다 쉽게 ​​액세스하여 이를 사용하여 엔지니어링 팀의 DevOps 작업을 추진할 수 있습니다.

 

우리는 Hygieia 오픈 소스를 유지하기 위해 최선을 다할 것입니다. 협업을 강화하고 대기업을 더 많이 도입하며 Hygieia의 운영체제를 만드는 것이 목표입니다. 우리는 사람들이 코드뿐만 아니라 아이디어와 솔루션을 DevOps 및 Executive Dashboards에 제공하기를 바랍니다.

 

2018년도와 그 이후

2018년, 지금까지도 DevOps 분야로 뛰어 들어야 하는지 이해하려고 노력하는 많은 회사가 여전히 있습니다. 또한 이미 DevOps를 수년간 연습해온 회사는 프로세스를 개선하고 마이크로 서비스서버리스와 같은 새로운 영역으로 프로세스를 확장 할 수 있는 방법을 찾아 내려고 노력하고 있습니다.

 

DevOps는 도구 및 기술 또는 단일 크기의 프로세스에 관한 것이 아니라 빠른 피드백, 투명성 및 혁신에 관한 것입니다. DevOps에서 성공이란 개발자가 두려움 없이 코드를 제작, 배포 할 수 있음을 의미합니다. 프로세스가 멈추지 않고 측정할 최종 제품이 없으므로 거의 성공 기준이 없다고 말할 수 있습니다. 개발 및 지속적인 제공은 지속적인 개선 프로세스입니다. 우리는 단순히 “이봐, 우리는 이제 성공했으니까 집에 가서 파티나 하자!”라고 말할 수는 없습니다. 이것은 코드, 코드 관리를 위해 구축된 도구 및 DevOps 자체의 개념에 똑같이 적용됩니다.

 

원문 URL: https://aws.amazon.com/ko/blogs/opensource/hygieia-capital-one-devops/

** 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.