Kubernetes에 애플리케이션 서비스 배포, 1부
Kubernetes 및 클라우드 네이티브 아키텍처의 성장과 함께 발생한 한 가지 변화를 관찰했다면 DevOps 팀과 애플리케이션 소유자가 애플리케이션을 배포, 관리 및 제공하는 방법을 보다 직접적으로 제어하고 있다는 것입니다.
최신 애플리케이션은 프로덕션 환경에서 성공적인 운영을 보장하기 위해 점점 더 정교해지는 “애플리케이션 서비스” 지원 세트의 이점을 누리고 있습니다. 애플리케이션과 지원 서비스 간의 구분이 모호해졌으며 DevOps 엔지니어는 이러한 서비스에 영향을 미치거나 소유해야 한다는 사실을 알게 되었습니다.
몇 가지 구체적인 예를 살펴보겠습니다.
- Canary 및 blue-green 배포 – DevOps 팀은 애플리케이션을 프로덕션 환경으로 푸시하고 때로는 하루에도 여러 번 실행합니다. 로드 밸런서 또는 ADC(Application Delivery Controller)의 트래픽 조정 기능을 적극적으로 사용하여 이전 인스턴스에서 모든 트래픽을 전환하기 전에 소량의 트래픽으로 새 애플리케이션 인스턴스를 검증합니다.
- DevSecOps 파이프라인 – DevOps 팀은 웹 애플리케이션 방화벽(WAF) 규칙 세트와 같은 보안 정책을 CI/CD 파이프라인에 직접 구축하고 있습니다. 정책은 또 다른 애플리케이션 인공물로 처리되며 테스트, 사전 프로덕션 및 프로덕션 환경에 자동으로 배포됩니다. SecOps 팀이 보안 정책을 정의할 수 있지만 DevOps는 프로덕션에 실제 배포를 수행합니다.
이러한 예는 각각 우리가 “애플리케이션 서비스”라고 하는 것과 관련이 있습니다. 즉, 애플리케이션의 기능 요구 사항의 일부는 아니지만 성공적인 작동을 보장하는 데 필요한 기능입니다. 여기에는 확장, 성능 가속 또는 보안을 제공하기 위해 캐싱, 로드 밸런싱, 인증, WAF 및 DoS 조치가 포함될 수 있습니다.
목차
1. NetOps와 DevOps는 모두 애플리케이션 서비스에 관심이 있습니다.
2. 역설적이게도 복제로 인해 운영 효율성이 높아지는 경우가 있습니다.
3. Kubernetes, 지능적으로 애플리케이션 서비스 찾기의 필요성 강조
1. NetOps와 DevOps는 모두 애플리케이션 서비스에 관심이 있습니다.
DevOps의 부상은 여전히 전체 플랫폼과 필요한 애플리케이션 서비스의 운영에 대한 책임을 지고 있는 NetOps 팀의 역할에서 멀어지지 않습니다. 이러한 글로벌 규모의 서비스를 제어해야 하는 NetOps의 필요성은 여전히 중요합니다. 실제로 NetOps와 DevOps 모두 ADC 또는 WAF와 같은 애플리케이션 서비스에 관심이 있는 경우 해당 서비스가 중복되는 경우가 많습니다. 이는 비효율성이 아니라 해당 서비스를 사용할 때 당사자의 다양한 요구와 목표를 반영합니다.
- NetOps 및 SecOps는 기업 인프라의 전반적인 보안, 성능 및 가용성을 담당합니다. 그들의 목표는 안정성, 가동 시간 및 대기 시간과 보안 경계를 설정하는 능력 측면에서 측정됩니다. 그들이 사용하는 도구는 일반적으로 다중 테넌트(많은 응용 프로그램 및 많은 비즈니스 라인의 트래픽 관리), 인프라 중심 및 오래 지속됩니다. 그들이 사용하는 모니터링 및 경고 도구는 유사하게 인프라에 중점을 두고 있습니다.
- DevOps 및 DevSecOps는 연결된 비즈니스 라인이 운영하는 데 필요한 개별 애플리케이션을 담당합니다. 신속하게 반복하고, 새로운 서비스를 쉽게 시장에 출시하고, 변화하는 비즈니스 요구 사항에 대응할 수 있을 때 목표가 달성됩니다. 모든 것이 중단될 것으로 예상되며 불가피하고 예측하지 못한 생산 문제를 신속하게 해결하고 해결할 수 있는 능력에 이어 안정성과 가동 시간이 두 번째로 중요합니다. 그들이 사용하는 도구는 소프트웨어 기반(종종 오픈 소스)이며 구성 파일 및 API를 통해 쉽게 자동화할 수 있으며 필요에 따라 신속하게 배포 및 확장됩니다.
2. 역설적이게도 복제로 인해 운영 효율성이 높아지는 경우가 있습니다.
기능 중복이 비효율이 아닌 이유는 무엇입니까? 간단히 말해서 NetOps와 DevOps는 모두 특정 기능을 사용해야 하지만 목표, 메트릭 및 운영 방식이 매우 다릅니다. 예를 들어 DevOps와 NetOps가 공통 ADC를 공유할 것으로 기대하는 것이 충돌과 고유한 유형의 비효율성을 발생시키는 방법에 대한 수많은 예를 보았습니다.
NetOps 및 운영 팀은 고객에게 더 가까운 인프라의 정문에 위치하는 경향이 있는 글로벌 서비스에 가장 관심을 기울입니다. DevOps 및 애플리케이션 팀은 애플리케이션 코드에 더 가깝게 배포되는 애플리케이션별 서비스에 가장 관심을 기울입니다. 그들의 관심사는 종종 중간에서 겹칩니다.

필요에 따라 각 팀에 적합한 도구를 제공하여 운영 효율성을 높일 수 있습니다. 예를 들어, F5의 BIG‑IP ADC 인프라는 NetOps의 요구 사항을 매우 효과적으로 충족하며 수년간의 제품 개발을 통해 해당 목적에 맞게 개선되었습니다. NGINX의 소프트웨어 ADC는 CI/CD 파이프라인을 통해 쉽게 배포 및 자동화되는 소프트웨어 폼 팩터로서 DevOps 사용자의 요구를 매우 잘 충족합니다.
각 애플리케이션 서비스에 대한 소유권과 책임의 신중한 배치는 운영 효율성 구축의 핵심입니다. 예를 들어 두 계층의 ADC 또는 로드 밸런서를 배포하는 경우:
- NetOps는 모든 네트워크 트래픽을 관리하고, 보안 정책을 적용하고, 라우팅을 최적화하고, 인프라의 상태와 성능을 모니터링할 수 있습니다. 안정적이고 전문적으로 관리되는 구성은 변경으로 인한 위험을 최소화하고 가동 시간의 기회를 최대화합니다. 데이터 센터의 정문에 배치하면 NetOps는 모든 트래픽이 통과해야 하는 안전한 관리 경계를 생성할 수 있습니다.
- DevOps 팀은 애플리케이션별 ADC를 완전히 제어할 수 있으므로 애플리케이션 및 운영 프로세스에 맞게 ADC 구성을 최적화하고 조정할 수 있습니다. 앱을 캐시 및 가속화하고 상태 확인, 시간 초과 및 오류 처리를 최적화하는 데 필요한 매개변수를 미세 조정할 수 있습니다. 동일한 인프라에서 실행되는 관련 없는 다른 서비스를 중단할 염려 없이 blue-green 및 기타 배포를 안전하게 운영할 수 있습니다.
인프라의 정문과 애플리케이션에 가까운 두 곳에서 ADC 기능을 찾으면 비즈니스가 의존하는 서비스를 배포 및 운영하는 방법의 효율성을 향상시키는 전문화 및 제어가 가능합니다.
3. Kubernetes, 지능적으로 애플리케이션 서비스 찾기의 필요성 강조
기업은 DevOps 중심의 디지털 혁신 이니셔티브의 일환으로 놀라운 속도로 Kubernetes를 채택하고 있습니다. Kubernetes는 DevOps 엔지니어에게 쉽게 자동화할 수 있고 일관된 런타임을 제공하며 확장성이 뛰어난 애플리케이션 플랫폼을 제공합니다.
전통적으로 데이터 센터의 정문에 있던 많은 애플리케이션 서비스를 Kubernetes에서 배포하거나 자동화할 수 있습니다. 이는 DevOps 팀이 프로덕션 환경에서 애플리케이션 운영을 관리하는 데 관여하는 것을 더욱 강조하고 중요한 애플리케이션 서비스를 배포할 방법과 위치를 고려할 때 더 많은 옵션을 소개합니다.

이 가이드의 2부에서는 Kubernetes에서 실행되는 애플리케이션을 위한 WAF와 같은 서비스 배포에 대한 몇 가지 잘 확립된 사례를 살펴봅니다. 다양한 옵션 간의 절충점과 최상의 결정을 내리는 데 도움이 되는 가장 중요한 기준을 고려할 것입니다.
댓글을 달려면 로그인해야 합니다.