수년간 제어 평면의 프로그래밍은 API에 의해 주도되어 왔습니다. F5에서는 iControl을 의미합니다. iControl은 처음에는 SOAP 인터페이스로, 이후에는 REST로 제공되었으며, 이름에서 알 수 있듯이 NetOps에 BIG-IP 구성의 모든 측면을 제어할 수 있는 기능을 제공했습니다.
그 방법은 사라지지 않을 겁니다. API는 많은 조직이 애플리케이션 서비스 배포를 관리하는 데 필요한 세부적인 제어 기능을 제공합니다. 또한 파트너 및 새로운 환경과의 통합 노력에도 중요합니다.
하지만 이는 API가 BIG-IP 운영을 자동화하는 "유일한 진정한 방법"이라는 의미는 아닙니다. 실제로, 애플리케이션과 애플리케이션 서비스를 배포하는 데 보다 지속적인 접근 방식을 채택하려는 움직임 속에서 대안적인 방법이 생겨났습니다. 이 방법은 선언적 방식으로, 구성의 최종 상태를 운영자가 설명하고 구현에 대한 책임을 대상 시스템에 오프로드합니다.
선언적 구성 방식을 채택하는 데는 여러 가지 이유가 있지만, 그 중 가장 중요한 이유는 코드로서의 인프라와 지속적인 배포와 같은 DevOps 접근 방식과 일치하기 때문입니다. F5 AS3의 목표는 API에 대한 의존도를 낮추고 완전 자동화된 지속적인 배포 파이프라인을 구현하는 능력을 높이는 선언적 인터페이스를 제공하는 것입니다. 실제로 용어에서 암시하는 것처럼 코드로부터 인프라를 구축하는 것은 아니므로 이를 코드로서의 구성이라고 부르는 것이 더 적절합니다.
AS3는 JSON 키-값 쌍을 사용하여 BIG-IP 구성을 설명하는 선언적 형식입니다. 가상 IP에서 가상 서버까지, 필요한 멤버, 풀, 노드까지 AS3는 구성을 설명하는 간단하고 읽기 쉬운 형식을 제공합니다. 구성을 완료하면 BIG-IP로 전송하기만 하면 됩니다. AS3 확장 프로그램이 이를 수락하고 필요한 명령을 실행하여 완벽하게 작동하는 BIG-IP 구성으로 전환합니다.
AS3 선언으로 bigip.conf 에 있는 VIP 및 풀 설명의 샘플 번역:
bigip.conf |
AS3 선언 |
ltm 가상 /Common/serviceMain { 대상 /Common/10.0.1.10:80 ip 프로토콜 tcp 마스크 255.255.255.255 풀 /Common/web_pool 소스 0.0.0.0/0 변환 주소 사용 가능 변환 포트 사용 가능 } ltm 풀 /Common/web_pool { 멤버 { /Common/192.0.1.10:80 { 주소 192.0.1.10 } /Common/192.0.1.11:80 { 주소 192.0.1.11 } } 모니터 /Common/http } |
"serviceMain": { "class": "서비스_HTTP", "가상 주소": [ "10.0.1.10" ], "풀": "웹 풀" } "웹 풀": { "클래스": "풀", "모니터": [ "http" ], "멤버": [ { "servicePort": 80, "서버 주소": [ "192.0.1.10", "192.0.1.11" ] } ] } |
이런 방식으로 BIG-IP 구성을 기술할 수 있는 기능을 통해 운영자는 코드 접근 방식으로 구성을 채택하여 애플리케이션 서비스를 배포할 수 있습니다. 저장소를 활용하면 배포를 위해 AS3 구성을 자동으로 가져올 수 있습니다. 자동화 활용 외에도 저장소는 구성을 버전화하고 관리하며 구성에 문제가 있는 경우 신속하게 롤백할 수 있는 보다 현대적이고 통합 친화적인 방식을 제공합니다.
예를 들어 GitHub의 Webhook 기능을 사용하면 새롭거나 업데이트된 AS3 구성을 커밋하면 자동으로 배포를 시작할 수 있습니다. 이를 위해서는 새로운 서비스 정의(AS3)가 커밋되었다는 알림을 기다리는 Webhook 서버가 필요합니다. 이러한 알림은 이벤트에 대한 정보를 담고 있는 JSON 객체인 후크 형태로 제공됩니다. Webhook 서버는 수신 후 후크를 구문 분석하고 GitHub에서 참조된 AS3를 검색하여 구성 프로세스를 시작합니다.
GitHub에서 AS3 최신 버전을 다운로드 할 수 있습니다. AS3 확장을 배포하는 방법에 대한 문서와 AS3 구성의 예는 여기에서 확인할 수 있습니다 .
웹훅 프로토타입은 CTO 사무실의 개발자 옹호자인 네이선 피어스 가 개발했습니다. CI/CD 및 원격 측정 파이프라인과 BIG-IP를 통합하는 더 많은 프로토타입과 사례를 보려면 GitHub에서 Nathan 과 F5 Networks를 팔로우하세요.