블로그

데이터 경로에서의 제어 대 실행

로리 맥비티 썸네일
로리 맥비티
2020년 4월 27일 게시

예전에는 앱을 제공하는 앱 서비스가 직선적이고 좁은 데이터 경로를 형성했습니다. 모든 앱은 기본적으로 동일한 네트워크상의 동일한 서비스 세트를 이용했습니다. 이러한 구조적 단순성 덕분에 단일 제어 지점과 단일 실행 지점을 결합하기가 쉽습니다. 이로 인해 ADC(애플리케이션 전송 컨트롤러)가 부상하게 되었습니다. 이를 통해 앱 트래픽을 형성, 조정, 확장 및 보호할 수 있으며, 이 모든 작업이 한곳에서 가능합니다. 제어와 실행을 결합하여 운영팀에 모든 종류의 정책을 시행하고 실행할 수 있는 데이터 경로의 전략적 지점을 제공합니다.

클라우드의 등장과 컨테이너의 지속적인 도입으로 인해 이러한 데이터 경로가 중단되었습니다. 이제 앱이 제공되는 데에는 여러 가지, 때로는 동적인 데이터 경로가 있습니다. 단일 전략적 통제 실행 지점은 더 이상 운영상 또는 구조적으로 실행 가능하지 않은 경우가 많습니다.

하지만 실행이 서로 다른 앱 서비스에 위임된 경우에도 통합된 제어 지점이 더 이상 가능하지 않다는 것은 아닙니다.

데이터 경로에서 앱 서비스를 작동(배포, 구성, 관리)할 수 있는 제어 지점을 최소화하는 것이 중요합니다. 여러 개의 제어 지점 사용을 장려하면 필연적으로 앱 사용자에게 문제를 일으키는 상충되는 정책이 발생합니다. 문제 해결은 점점 더 복잡해지고 시간이 많이 걸리며, 이로 인해 사용자의 분노와 불안이 커집니다. 안타깝게도, 도구의 확산은 이미 다양한 앱 포트폴리오클라우드 네이티브 아키텍처를 추가하는 작업을 관리하는 사람들 사이에서 흔한 불만입니다.

2020년 앱 서비스 현황 조사를 통해 앱 서비스 운영에 대한 주요 책임이 운영 부서에 있다는 사실을 알고 있지만, 운영 부서만 앱 서비스를 운영하는 것은 아닙니다. DevOps, NetOps, SecOps는 모두 온프레미스와 퍼블릭 클라우드에서 앱 서비스를 운영하는 데 투자됩니다. 

앱 서비스 역할 책임

그들을 구분하는 가장 큰 요소는 그들이 담당하는 앱 서비스의 구체적인 기능입니다.

DevOps는 안정성, 성능 및 앱별 정책을 담당하는 주요 기업입니다. 반면, NetOps는 그 이름에 걸맞게 네트워크 속성에 더 중점을 둡니다. 인프라 관점에서 앱 서비스를 유지 관리하는 것은 대개 NetOps입니다. 물론 SecOps는 인프라와 앱과 관련된 보안과 관련이 있습니다.

하지만 업무의 구분이 있다고 해서 예술을 연습하는 데 사용하는 도구도 별도로 있어야 한다는 것은 아닙니다. 오늘날 CI/CD와 지속적인 배포 파이프라인이 서로 다른 툴셋을 기반으로 구축되었다는 증거가 많이 있습니다. Jenkins와 git 저장소는 CI/CD 파이프라인을 지배하는 반면, Ansible과 Python은 지속적인 배포 측면에서 선택된 도구입니다. 대부분의 결정은 매일 도구를 사용해야 하는 다양한 구성원의 작업 방식에 맞게 도구 세트를 일치시키는 데 달려 있습니다.

따라서 정책 일관성을 개선하고 문제 해결 속도를 높이며 도구 확산으로 인한 복잡성과 비용을 없애는 단일 도구가 등장한다면 데이터 경로에 있는 앱 서비스의 모든 주요 구성 요소가 해당 도구 세트를 활용하여 해당 임무를 수행할 수 있도록 보장하는 적절한 인터페이스가 있어야 합니다.

이는 앱 서비스 자체의 전반적인 보안과 안정성에 중요합니다. 통합된 제어 지점을 유지함으로써 조직은 변경 사항을 추적하고 이해할 수 있다는 확신을 가질 수 있습니다. 변경 불가능한 구현은 아니지만 단일 도구에서 제어를 중앙화하여 그러한 관행에 한 걸음 더 다가갔습니다. 

이러한 도구의 예로는 NGINX Controller가 있습니다.  

NGINX 컨트롤러

예상한 대로 다양한 앱 서비스(분석, API 관리, 보안, 서비스 메시)를 모두 중앙에서 제어할 수 있으며, 운영과 실행은 분산됩니다.

어떠한 환경에서든 잘못된 구성이나 구성 충돌로 인한 잠재적인 문제를 완화하기 위해 데이터 경로 구성 요소(앱 서비스)와 상호 작용하는 데 허용되는 도구의 수를 줄이는 것이 중요합니다. 최신 멀티 클라우드 환경에서는 데이터 경로를 구성하는 앱 서비스가 기하급수적으로 증가하면서 발생하는 복잡성 때문에 제어를 중앙에서 관리하는 것이 더욱 중요합니다. 

예산을 소유한 사람들에게 더 매력적인 점은 자동화를 통해 반복적이고 수동적인 활동을 없애고 그에 따른 운영 비용을 줄일 수 있다는 것입니다.

단일 도구로 제어를 통합하는 것이 한 가지 방법입니다.