본문 바로가기

DevOps

[DevOps] IaC (Infrastructure as Code)

우선, DevOps 기반 형성과 함께 성장한 Iac(Infrastructure as Code)를 먼저 알아보겠습니다.

DevOps의 린프라 코드화는 서버, 스토리지, 네트워크 등 인프라에 대한 설정을 수행하는

인프라 구성 관리(Provisioning) 도구에 의해서 발전했습니다.

 

서버의 프로비저닝은 다음과 같이 3개의 영역으로 분류됩니다.

(conferences.oreilly.com/velocity/velocity-mar2010/public/schedule/detail/14180)

 

Provisioning Toolchain: Velocity Online Conference March 2010 - O'Reilly Conferences, March 17 Online Conference

Lee likes using technology to automate businesses. He got an appreciation for this early in his career at Fisher Controls implementing distributed control systems technology in power, pharmaceutical, food, chemical, hydro-carbon, and other heavy industries

conferences.oreilly.com

https://cdn.oreillystatic.com/en/assets/1/event/48/Provisioning%20Toolchain%20Presentation.pdf

 

Bootstrapping

가상 머신 생성이나, OS 설치를 담당합니다.

현재는 가상 머신이나 Docker 같은 컨테이너가 많이 쓰이고, 가상 머신의 템플릿이나 도커 이미지 등을 이용하여

한 번 만들어놓은 이미지를 바탕으로 변경 작업을 하는 경우가 많아졌습니다.

따라서 인프라 담당자의 담당 영역도 하드웨어보다는 소프트웨어에 점점 가까워지고 있는 등

Bootstrapping을 이용한 작업이 많이 줄어들고 있습니다.

 

Configuration

OS, 미들웨어의 설정을 담당합니다.

Bootstrapping이 완료된 서버에 대한 IS 설정 변경이나 미들웨어의 설정 적용 등을 지칭합니다.

 

Orchestraion

개발 결과물을 복수의 서버로 일괄 Deploy하듯이 여러 대에 동일한 설정을 하는 작업입니다.

 

 

Infrastructure as Code

IaC는 인프라의 코드화를 지칭하며, 앞서 이야기한 인프라 구성 관리 도구에 의한 설정의 코드화, 구성 정보화 전체를 지칭합니다.

인프라 관리 도구 중 Configuration 도구는 직접 실제 기기에 설정을 하는 대신,

서버나 미들웨어의 구성 정보와 설정 정보를 정의 파일에 기재하고 도구를 이용하여 정의 파일대로 설정을 수행합니다.

 

이처럼 IaC는 인프라 구성과 설정의 구성 정보화에 의해서 소프트웨어의 영역으로 전환되고,

인프라의 구성과 설정에 있어서도 소프트웨어 개발 방법을 적용하는 것이 가능해집니다.

또한 인프라를 코드로 표현한다고 하여도, 코드화를 위한 고도의 프로그래밍 지식까지 필요하지는 않습니다.

 

DevOps에 있어서 개발자가 인프라 운용에 대해서 소프트웨어의 지식을 이용하여 이해하고,

혹은 직접 설정을 변경할 수 있게 되는 IaC는 매우 중요한 사고방식입니다.

'DevOps' 카테고리의 다른 글

[DevOps] DevOps란? (2/2)  (0) 2020.07.08
[DevOps] DevOps란? (1/2)  (0) 2020.06.29