클라우드가 등장하기 전인 오래전에는 애플리케이션 제공 방식이 오늘날과 매우 달랐습니다. 그 이유는 IT가 애플리케이션을 실행하는 서버를 조달하고 프로비저닝하는 속도보다 더 빠르게 움직이는 것은 없었기 때문입니다. 새로운 애플리케이션이나 주요 애플리케이션 업데이트를 계획하는 데는 수개월 또는 수년이 걸렸습니다. 동시에 기업용 애플리케이션은 점점 더 복잡해졌고 추적하고 관리하기 어려운 상호 종속성 목록이 늘어났습니다. 며칠 동안 전체 시스템을 중단시키거나 직장 생활을 끝내는 데이터 유출로 이어질 수 있는 보안 위협이 등장했습니다. 외부의 나쁜 행위자가 없더라도 네트워크(및 이를 지원하는 애플리케이션)를 무너뜨릴 수 있는 변경을 구현할 위험은 복잡성 지수와 함께 계속해서 증가했습니다.
이러한 위험을 관리하고 관리하는 모든 애플리케이션의 안전성과 안정성을 보장하기 위해 네트워크 및 보안 팀은 수동 검토 비중이 크고 일반적으로 각 애플리케이션의 고유한 요구 사항을 충족하도록 설계된 수작업 정책이 포함된 프로세스와 정책을 개발했습니다. 이러한 절차는 번거롭기는 했지만 반드시 병목 현상을 일으키는 것은 아니었습니다. 그들은 종종 조달 과정을 주도했다.
그러다가 클라우드가 등장했습니다. 갑자기 배포 프로세스가 빠르게 움직이는 시스템에 방해가 되는 것처럼 느껴지기 시작했습니다. 거의 같은 시기에 GitHub과 기타 소셜 코딩 플랫폼이 등장하면서 개발자들이 같은 팀 내부이든 오픈소스 프로젝트이든 코드에서 협업하기가 더 쉬워졌습니다. 새로운 애플리케이션 아키텍처는 애플리케이션의 한 부분에서 수행된 작업이 다른 부분과 충돌할 가능성을 줄임으로써 개발자의 효율성을 획기적으로 높였습니다. 충돌은 작업, 재작업 및 지연의 주요 원인입니다. 마이크로서비스와 서비스 메시 아키텍처는 애플리케이션 자체의 부분 간의 종속성을 줄이는 반면, 컨테이너와 서버리스는 기본 인프라에 대한 종속성을 줄여 개별 개발자와 애플리케이션 팀이 원하는 속도에 맞춰 작업할 수 있도록 해줍니다. 이제 개발자들은 몇 달이 아닌 몇 분 만에 애플리케이션을 배포할 수 있습니다. 처음에는 이러한 배포가 개발 및 테스트 프로젝트에만 국한되었지만, 프로덕션 시스템에 더 빠르게 액세스하려는 요구가 빠르게 증가했습니다.
네트워크 관리자와 보안 엔지니어는 개발자와 달리 업무 흐름을 최적화하는 것보다는 비즈니스를 안전하게 유지하는 데 전문적인 경험이 집중되어 있어 어려움을 겪었습니다. 개발자에게는 DevOps 운동으로 알려지게 된 것의 핵심 개념 중 대부분이 이미 본능적이었습니다. 즉, 프로세스 자동화, 시스템 간소화, 시스템 간 종속성 감소, 가능한 경우 재사용 가능한 프로세스와 코드 활용 등이 그것입니다. 반면에 네트워크 관리자와 보안 엔지니어는 장인으로서 훈련을 받았습니다. 업무의 중요성 때문에 모든 신청서를 수동으로 검토하고, 변경 검토 위원회에서 유지 관리하고, 변화하는 상황에 맞춰 수동으로 업데이트할 수 있는 수작업 정책을 통해 관리해야 했습니다.
좋은 소식은 자동화된 배포 프로세스를 이해하는 측면에서 개발자들보다 크게 뒤처졌음에도 불구하고 네트워크 및 보안 팀이 따라잡고 있다는 것입니다 .
전환에 대해 생각하는 좋은 방법은 애플리케이션 팩토리를 상상하는 것입니다. 네트워크 및 보안 전문가는 수작업으로 정책을 작성하거나 수동으로 검토하는 대신 재사용 가능한 정책을 정의한 다음 개발자에게 전달하여 자동화된 배포 파이프라인의 일부로 애플리케이션과 함께 배포해야 합니다.
물론 말하기는 쉽지만 실제로 실행하기는 어렵습니다. 수공예품에서 공장 생산품으로의 전환이 단순히 중장비를 구입하고 근로자를 새로운 역할로 재배치하는 문제가 아니었던 것처럼, 시스템적 접근 방식으로의 전환은 도구와 프로세스뿐만 아니라 사고방식과 문화와도 관련이 있습니다. 변경 검토 위원회와 보안 팀이 가능한 모든 보안 위협 벡터와 성능 위험을 힘들게 조사하는 대신, 잘 설계된 자동화된 애플리케이션 제공 시스템은 장애 도메인을 작게 유지하여 영향을 최소화하고 효과적인 피드백 루프를 구축하여 조기에 감지하고 대응할 수 있도록 합니다. 툴링 및 파이프라인에 대한 결정은 개발자의 자유와 일관된 서비스의 효율성 간의 균형을 맞춰야 합니다. 이상적인 시스템은 개발자가 기능 개발에 영향을 미치는 툴에 대한 결정을 내릴 수 있는 최대한의 자유를 제공하면서도 일관된 멀티 클라우드 지원 인프라 및 보안 서비스 세트를 제공합니다. 애플리케이션 제공 파이프라인의 핵심에 일관된 서비스를 구축하면 기술 부채가 줄어들고 운영 및 규정 준수 효율성이 향상됩니다. 그러면 개발자는 비즈니스에 더 많은 혁신적 가치를 제공하는 데 집중할 수 있게 됩니다.
(아래 이미지를 클릭하여 F5 애플리케이션 팩토리 인포그래픽 전체를 확인하세요.)