[번역] Evolving Towards Infrastructure-as-Code

출처 : https://blogs.vmware.com/management/2020/01/evolving-towards-infrastructure-as-code.html

지난 2년 동안 IT 운영은 인프라스트럭처를 발전시키기 위한 여정에 들어갔다. 이것은 그 사업의 증가하는 수요에 보조를 맞추기 위해 필요하다. 특히 개발자들은 현재 인프라 자원을 소비할 때 "온 디맨드" 경험을 요구하고 있다.

이것은 대부분의 IT 운영 팀에게 너무 자주 도전이다. 대부분은 서비스형 인프라(IaaS)를 제공하기 위한 첫 걸음을 내디뎠지만, 여전히 개발자들이 요구하는 경험을 제공하지 못하고 있다. 이를 제공하기 위해서는 IT 운영이 인프라 관리 및 운영 방식을 재고해야 한다.

IaC(Infrastructure as Code)로 전환

새로운 애플리케이션과 기능을 제공하기 위해, 개발자들은 수년간 새로운 방법론, 즉 Agile로 이동했다. 오늘날 기업 고객 내 개발자들 사이에서 신속한 변화를 위한 소프트웨어 개발이 탄력을 받고 있다. 이러한 새로운 소프트웨어 구축 및 제공 방식의 주요 결과 중 하나는 코드 릴리스에 있으며, 이 애플리케이션 구축은 더 자주 발생할 수 있다.

전통적으로 생산에 투입되는 새로운 애플리케이션 구축은 1년 또는 반년마다 한 번씩 이루어진다. 애자일 소프트웨어 개발로 옮겨감에 따라 코드는 매월, 하루 또는 때로는 매 시간마다 공개된다. 그러나 이는 기반구조(infrastructure), 특히 기반구조 소비에도 영향을 미친다.

인프라와 IT 운영은 인프라 내에서 그리고 그들이 실행 중인 애플리케이션에서 변화하는 빈도를 처리할 수 있어야 한다. 장애물이 되기 보다는 무언가를 바꾸는 것이 쉬워야 하며, 소비자(즉, 개발자)가 자신의 일을 하지 못하도록 제약해야 한다.

이를 실현하기 위해, 많은 기업 고객들은 "Infrastructure as Code" (IaC)라고 불리는 방법론을 향해 나아가고 있다. IaC의 목표는 인프라의 프로비저닝과 유지보수를 최대한 자동화하는 것이다. 이를 달성하기 위해서는 인프라의 모든 구성요소가 일반적으로 수동으로 수행하는 단계를 자동화할 때 다룰 수 있는 애플리케이션 프로그래밍 인터페이스(A.k.a. API)를 제공해야 한다. 인터페이스는 가급적 산업 표준 및/또는 개방형 형식에 따라 표준화되는 것이 바람직하다.

기반구조 구성요소를 프로그래밍 방식으로 다룰 수 있게 되면 기반 구조가 소비자의 요구에 "코딩"될 수 있게 된다. 즉, 인프라가 애플리케이션인 것처럼 유사한 방식으로 관리될 수 있다.

이를 통해 IT 운영 팀은 인프라를 "프로그래밍"할 수 있어야 하며, 개발자와 같은 유사한 방법론을 채택해야 한다. 버전은 그들의 변화를 제어하고 생산에 들어가기 전에 새로운 변화를 철저히 테스트해야 한다.

기본적으로 우리가 보고 있는 것은 IT 운영 팀이 그들의 소비자, 즉 개발자와 애플리케이션 운영자가 요구하는 빠른 변화의 속도를 따라잡기 위해 인프라를 관리하고 유지하기 위해 민첩한 방법론을 적용해야 한다는 것이다.

신속한 변화를 위한 인프라

그러기 위해서는 그러한 요구에 쉽게 적응할 수 있는 인프라가 필요하다. 그래서, 우리는 현재 어떻게 인프라를 운영하는지 다시 생각해 볼 필요가 있다. 그러기 위해서는 쉽고 빠르게 변화를 조정할 수 있는 인프라가 필요하다.

우리는 수동 구성과 관리에서 벗어나야 한다. 우리는 인프라 문제를 마치 애플리케이션처럼 해결할 수 있어야 한다: 인프라를 코드처럼 관리할 수 있어야 한다.

그러한 인프라의 특성을 정의해야 한다면 다음과 같은 것이 필요할 것이다.

  • 선언적, 프로그래밍 가능한 인터페이스(API)
  • 쉽게 반복할 수 있는 기능으로 쉽게 구성 가져오기 및 내보내기
  • 새로운 인프라 기능의 버전 제어 및 단계적 구축
  • 자원 소비 요구를 즉시 충족시킬 수 있다.
  • 프라이빗, 하이브리드 및 퍼블릭 클라우드 리소스 전반에 걸쳐 관리

이러한 플랫폼 기능은 "Infrastructure as Code"의 방법론을 채택하는 것을 가능하게 한다. 이러한 새로운 운영 관리 방식은 소비자가 요구하는 새로운 서비스를 쉽게 개발할 수 있게 할 것이다. 일반적으로 이들은 개발자와 Lines of Business(LoB)이다.

새로운 인프라 리소스의 가치를 보다 빠른 속도로 제공하는 진정한 "Agile Infrastructure" 제공한다.

VMware 제품을 발전시켜 고객이 민첩해질 수 있도록 지원

VMware는 이러한 가치 창출 시간을 더욱 빠르게 실현하고 실현할 수 있는 툴을 제공하고 있으며, "Agile Infrastructure"를 구성하는 데 도움이 될 수 있는 툴을 제공한다.

도구는 그 자체로는 Infrastructure as Code로의 성공적인 이동을 보장하지 않는다. 이것은 또한 사람들과 그것을 향해 나아가기 위해 과정과 관련된 새로운 작업 방식과의 조율이 필요하다. 그러나 이러한 설명을 염두에 두고 구축되고 설계된 툴, 즉 다중 클라우드와 애플리케이션 포커스가 핵심에 내장된 인프라 개발을 목표로 하는 툴셋을 갖는 것이 도움이 된다.

이것이 바로 VMware가 새로운 vRealize Automation(Cloud) 릴리즈를 만든 것이다. vRealize Automation(Cloud)을 통해 고객의 IT 운영 부서에서 클라우드 전반에 걸쳐 자동화를 통해 필요한 솔루션 및 서비스를 보다 신속하게 제공 SaaS 또는 다운로드 가능한 어플라이언스를 통해 배포가 매우 간편하며, 이러한 어플라이언스는 모두 SaaS를 사용하기 시작한 후 가치 창출 시간을 단축할 수 있다.

vRealize Automation(Cloud)은 각각 API, 코드 또는 사용자 인터페이스 상호 작용을 통해 사용할 수 있는 (새로운) 클라우드 서비스를 제공하는 데 기여하는 3가지 솔루션 중 하나이다.

  1. Cloud Assembly: 클라우드 전반에 걸쳐 Blueprint를 정의, 구축 및 관리하기 위한 자동화 툴 애플리케이션 및 인프라 리소스를 모델링(클라우드 제한 없음)할 수 있는 기능을 사용자에게 제공한다. Cloud Assembly는 퍼블릭 및 프라이빗 클라우드 엔드포인트에 걸쳐 구축하기 위한 "가드 레일"을 정의하기 위한 정책 기반 거버넌스 모델을 제공한다.
  2. Service Broker : 소비자에게 포털로서 제공하는 중앙 서비스 집적기 이것은 웹 UI나 API를 통해 소비될 수 있다. 도구는 자신이 관리하는 서비스의 다양한 측면에 대한 정책을 정의할 수 있는 기능을 제공한다.
  3. Code Stream : 연속 공급 파이프라인을 모델링하는 서비스. 이것은 새로운 애플리케이션 코드를 생산에 도입하기 위한 진입점을 제공한다. 주로 클라우드 어셈블리에서 생성되거나 서비스 브로커에 의해 관리되는 서비스를 활용하는 지속적인 구축 부분에 초점을 맞춘다.

Infrastructure as Code의 약속 이행

인프라(Infrastructure-as-Code) 방법론으로 이동하고 이를 성공시키는 데 도움이 되는 툴을 채택함으로써 비즈니스의 민첩성을 높이는 데 도움이 되는 결과를 도출해야 한다.

소비 관점에서 IT 운영은 보다 민첩하고 다음과 같은 결과를 촉진할 수 있어야 한다.

  • 온디맨드 리소스: 소비자는 제한 없이 언제든지 온디맨드 방식으로 인프라를 소비할 수 있어야 한다.
  • 프로그래밍 가능한 상호작용: API 또는 명령줄을 통해 모든 것을 프로그래밍할 수 있어야 한다.
  • 다중 클라우드, 다중 애플리케이션 프레임워크: 모든 유형의 인프라, VM 또는 컨테이너를 모든 유형의 프라이빗, 하이브리드 또는 퍼블릭 클라우드에 구현할 수 있다.

따라서 vRealize Automation(Cloud)으로 마무리하기 위해 VMware는 고객이 쉽게 Infrastructure-as-Code로 전환할 수 있도록 지원하며, 다시 말하지만, 그것은 기술뿐만이 아니라, 그 과정을 실행하고, 거기에 도달하기 위해 사람들의 기술을 발전시킬 필요가 있다. 그러나 vRealize Automation(Cloud)을 사용하면 Infrastructure as Code)라는 목표를 달성하기가 훨씬 쉬워진다.