Design and Implementation of a Secure, Scalable and Observable Cloud-Native DevOps Architecture for Microservices Deployment on Microsoft Azure
본 논문은 미용실 예약 마이크로서비스 애플리케이션을 위한 Microsoft Azure 기반의 보안성, 확장성 및 관찰 가능성을 갖춘 클라우드 네이티브 DevOps 아키텍처의 설계와 구현을 제시하며, 코드형 인프라(IaC), 쿠버네티스 오케스트레이션, 자동화된 CI/CD 파이프라인 및 포괄적인 모니터링의 통합이 어떻게 수동 배포를 재현 가능하고 탄력적인 워크플로로 변모시키는지 입증한다.
원본 논문은 CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
현대적인 소프트웨어는 미용실 예약부터 글로벌 공급망 관리까지 모든 것을 구동하고 있지만, 이러한 프로그램이 구축되고 전달되는 방식은 오랫동안 느리고 취약하며 인간의 실수에 취약한 방법에 의존해 왔습니다. 수십 년 동안 개발자들은 종 often 소프트웨어를 작은 변화가 필요할 때마다 매번 다시 빌드하고 재시작해야 하는 하나의 거대한 코드 블록처럼 취급했습니다. 이러한 접근 방식은 실수를 빠르게 수정하거나 전체 시스템이 무너지지 않고도 갑작스러운 사용자 급증을 처리하는 것을 어렵게 만들었습니다. 이를 해결하기 위해 업계는 애플리케이션을 마이크로서비스라고 불리는 작고 독립적인 여러 조각으로 나누는 "클라우드 네이티브" 방식으로 전환했습니다. 이러한 조각들은 자동차 전체를 분해하지 않고도 단일 엔진 부품을 교체하는 것처럼 개별적으로 업데이트하거나, 수정하거나, 규모를 확장할 수 있습니다. 이를 실현하기 위해 팀들은 자동화 도구를 사용하여 이 조각들을 즉각적으로 빌드, 테스트 및 배포하며, 소프트웨어가 전 세계를 위해 애플리케ン이션을 호스팅하는 원격 컴퓨터의 거대한 네트워크인 클라우드에서 안전하고 안정적으로 실행되도록 보장합니다.
최근 연구에서 튀니지의 케프 고등 컴퓨터 과학 연구소의 나데르 암리(Nader Amri), 헬미 제빌리(Helmi Jbili) 및 그 동료들은 사우디아라비아 킹 파이살 대학교의 파트너와 협력하여 이러한 아이디어들을 시험했습니다. 그들은 주요 클라우드 컴퓨팅 플랫폼인 Microsoft Azure에서 미용실 예약 애플리케이션을 실행하기 위한 완전한 자동화 시스템을 설계하고 구축했습니다. 그들의 목표는 복잡한 다중 부품 소프트웨어 시스템이 수동 설정의 필요성을 없애고 실패 위험을 줄이면서 완전히 코드와 자동화를 통해 관리될 수 있음을 증명하는 것이었습니다. 연구팀은 코드를 작성하는 단계부터 최종 애플리케이션을 출시하는 단계까지 모든 단계가 자동으로 진행되는 워크플로우를 만들었습니다. 그들은 텍스트 파일에 필요한 내용을 기술하는 것만으로 가상 네트워크 및 데이터베이스와 같은 필요한 디지털 인프라를 구축하기 위해 Terraform이라는 도구를 사용했습니다. 이를 통해 환경이 매번 정확히 동일하게 생성되도록 보장함으로써 수동 설정에서 흔히 발생하는 불일치를 제거했습니다.
기반이 마련된 후, 연구원들은 미용실 애플리케이션을 컨테이너라고 불리는 작고 자립적인 단위로 패키징했습니다. 이 컨테이너들은 애플리케이션의 각 부분이 실행되는 데 필요한 모든 소프트웨어와 설정을 보유하고 있어 이동 및 복사가 용이합니다. 그런 다음 그들은 애플리케이션의 스마트 관리자 역할을 하는 Azure Kubernetes Service라는 관리형 시스템에 이 컨테이너들을 배포했습니다. 이 관리자는 실행 중인 각 서비스의 적절한 복사본 수를 자동으로 유지하며, 실패한 서비스는 재시작하고 시스템이 바빠지면 더 많은 복사본을 추가합니다. 다운타임 없이 애플리케이션을 업데이트할 수 있도록 하기 위해, 팀은 코드 저장소를 자동화된 파이프라인에 연결했습니다. 개발자가 변경 사항을 저장할 때마다 시스템은 자동으로 소프트웨어의 새 버전을 빌드하고, 테스트하고, 라이브 환경으로 푸시했습니다. 지속적 통합 및 전달(CI/CD)이라고 알려진 이 프로세스는 수 시간이 걸리던 수동 작업을 매끄러운 5분짜리 작업으로 바꾸어 놓았습니다.
연구원들은 단순히 시스템을 구축하는 데 그치지 않고, 실제 상황의 도전 과제들을 처리할 수 있는지 엄격하게 테스트했습니다. 그들은 사용자 정보를 보호하기 위해 모든 데이터가 암호화된 상태로 애플리케이션이 인터넷을 통해 안전하게 접속될 수 있는지 확인했습니다. 그들은 실행 중인 애플리케ка이션의 한 부분을 수동으로 삭제하여, 시스템이 원하는 복사본 수를 유지하기 위해 즉시 이를 재생성하는 것을 관찰함으로써 시스템의 회복 탄력성을 테스트했습니다. 또한, 고객들이 예약을 시도하는 갑작스러운 주문 폭주와 같은 과부하 상황을 시뮬레이션했으며, 컴퓨터 사용량이 80%에 도달했을 때 시스템이 트래픽을 처리하기 위해 서비스 복사본을 자동으로 추가하여 3개의 레플리카까지 확장하는 것을 관찰했습니다. 이러한 테스트 전반에 걸쳐 모니터링 시스템은 애플리케이션의 상태를 면밀히 감시하며, 서비스가 예기치 않게 재시작되거나 사용자가 시스템에 너무 많은 요청을 보내는 등의 이상 징태가 발생할 경우 관리자에게 즉각적인 알림을 보냈습니다.
이 연구의 결과는 안전하고 확장 가능하며 관측 가능한 클라우드 아키텍처가 이론적인 이상이 아니라 실질적인 현실임을 입증합니다. 연구팀은 인프라 자동화, 컨테이너 관리, 지속적 전달을 결합함으로써 수동적이고 오류가 발생하기 쉬운 프로세스를 신뢰할 수 있고 반복 가능한 워크플로우로 변모시킬 수 있다는 것을 발견했습니다. 애플리케이션은 정상적인 사용 중에 응답 시간이 1초 미만으로 유지되며 가용성과 반응성을 유지했으며, 자동화된 시스템은 인간의 개입 없이 수리와 확장을 처리했습니다. 비록 이 연구가 장기적인 운영 환경이 아닌 통제된 검증 환경에서 수행되었지만, 이번 연구 결과는 이 접근 방식이 복잡한 마이크로서비스를 배포하기 위한 견고한 토대를 제공한다는 점을 확인시켜 줍니다. 연구원들은 향후 연구에서 더 발전된 보안 검사 기능을 추가하고, 비용을 더 깊이 있게 측정하며, 훨씬 더 무거운 부하 하에서 시스템을 테스트함으로써 이 결과를 확장할 수 있다고 제안하지만, 핵심적인 성과는 명확합니다. 즉, 소프트웨어가 클라우드에서 원활하게 실행되도록 유지하는 완전 자동화된 자가 치유 시스템을 구축했다는 것입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.