명령적 구성과 선언적 구성을 비교하여 이해
IaC(Infrastructure as Code) 및 CaC(Configuration as Code)를 구현하기 위해 채택할 수 있는 몇 가지 방법이 있습니다.
접근 방식의 기본 방법 두 가지는 다음과 같습니다.
- 선언적(기능적). 선언적 접근 방식은 최종 상태가 무엇이어야 하는지를 명시합니다. 스크립트 또는 정의가 실행되면 최종 상태를 달성해야 하는 방법을 정의하지 않고 완료된 상태를 선언하도록 머신이 초기화되거나 구성됩니다.
- 명령적(절차적). 명령적 접근 방식에서 스크립트는 완료된 상태에 도달하는 단계를 실행하여 머신의 최종 상태에 대한 방법을 명시합니다. 스크립트는 최종 상태가 무엇인지를 정의할 뿐만 아니라 해당 최종 상태를 달성하는 방법도 포함합니다. 또한 for, if-then, 루프 및 행렬과 같은 코딩 개념으로 구성될 수 있습니다.
모범 사례
선언적 접근 방식은 상태를 달성하는 방법의 방법론을 추상화합니다. 따라서 수행 중인 작업을 더 쉽게 읽고 이해할 수 있습니다.
또한 더 쉽게 작성하고 정의할 수 있습니다. 또한 선언적 접근 방식은 원하는 최종 상태와 해당 상태를 달성하는 데 필요한 코딩을 구분합니다.
따라서 특정 접근 방식을 사용하도록 강제하지 않으므로 최적화가 가능합니다.
선언적 접근 방식은 일반적으로 사용 편의성을 주요 목표로 하는 경우에 선호되는 옵션입니다. Azure Resource Manager 템플릿 파일은 선언적 자동화 접근 방식의 예입니다.
명령적 접근 방식은 환경의 변경이 비교적 자주 발생하는 복잡한 시나리오에서 몇 가지 장점이 있을 수 있으며, 코드에서 고려해야 합니다.
사용할 최상의 접근 방식이 무엇인지를 정하는 절대적인 기준은 없으며, 개별 도구를 선언적 또는 명령적 형식으로 사용할 수 있습니다. 사용할 가장 좋은 접근 방식은 요구 사항에 따라 달라집니다.