클라우드처럼 생각하기

클라우드처럼 생각하기

혁신의 원동력

클라우드 컴퓨팅은 많은 산업을 근본적으로 변화시켰고 소프트웨어를 개발하고 제공하는데 새로운 패러다임을 만들었습니다. 기업과 스타트업은 클라우드 네이티브 기반의 아키텍처에 투자하여 고객에게 보다 안정적이고 탄력적인 서비스를 제공하는 한편 비용 절감으로 혁신에 속도를 내고 있죠.

혁신을 주도하는 원동력은 크게 다음 세가지 입니다
  - 개발팀의 운영 부담 해소
  - 자동화를 통한 팀의 운영 민첩성 극대화
  - 기존의 플랫폼을 확장하는 새로운 방법을 발견하고 개발하는 협업 커뮤니티 구축

이를 모두 결합하면 개발팀이 비즈니스 가치 창출에 집중하고 이를 신속하게 제공할 수 있는 환경을 조성할 수 있습니다. 팀의 운영에 대한 부담을 최소화함으로써 기업은 새로운 솔루션, 신제품을 개발하고, 보다 신속하게 가치를 창출할 수 있는 역량을 확보할 수 있죠.

퍼블릭 클라우드는 이러한 이점을 다 갖추고 있지만 기업들은 프라이빗 인프라를 동일한 기능의 프라이빗 클라우드로 전환하길 원하고 있습니다. 이러한 변화의 핵심은 비용 중심의 관리에서 가치 중심의 혁신으로 전환하고자 하는 데 있죠.

"클라우드처럼 생각하기"란 가치 중심의 서비스 조직 패러다임을 적용하여 고객에게 자동 인프라 관리 서비스를 제공하는 것입니다. 프라이빗 클라우드화 하려는 노력은, 퍼블릭 클라우드를 성공으로 이끈 몇 가지 핵심 원칙을 확인하고 추진함으로써, 기존 데이터 센터에 대한 투자를 활용하여 혁신을 추진하고 가속화할 수 있습니다.

자동화 및 셀프 서비스 보편화

클라우드 환경에서는 소프트웨어 팀이 프로그램만으로 플랫폼을 제어하고 시스템을 자동으로 배포하기 때문에 사람의 개입이 필요 없습니다. 이러한 자동화는 가상 데이터베이스 서비스와 가상 네트워크를 생성하는 단계까지 확장되죠.

이는 리소스를 지정하는 대신 클라우드 인프라의 용량을 관리하는 API에 의해 수행됩니다. 인프라 용량은 별도로 할당된 리소스가 아닌 컴퓨팅 파워의 공유 풀 로 관리되어야 합니다. 소프트웨어 팀이 배포하면 클라우드 공급자 API는 소프트웨어 서비스 활성화 요청을 등록하고 리소스를 자동으로 구성합니다.

개발자환경에서 클라우드 플랫폼으로 흐름

클라우드 공급자 API는 다른 소프트웨어 및 하드웨어 구성을 제어하는 소프트웨어 서비스입니다. 소프트웨어 팀은 API를 사용해 소프트웨어 실행 방식을 정하고, 클라우드 공급자의 소프트웨어는 안정적이고 탄력적인 서비스를 보장합니다. 이러한 API를 통해 "서비스 형태(as a service)"의 패러다임이 구현되고 개발자는 다음과 같은 다양한 종류의 서비스를 개발할 수 있습니다:

  - 자동화된 가상 시스템 배치 (예: EC2 자동 확장 그룹)   - 데이터베이스 (예: 아마존 RDS의 Amazon Aurora)   - 콘텐츠 전송 네트워크 (예: CloudFront)   - 데이터 객체 스토리지 (예: S3)   - 저장된 데이터 쿼리(예: Amazon Athena)   - 경량 “서버리스” 기능 (예: Amazon Lambda) 위의 서비스는 기본 인프라 및 소프트웨어 자동화를 확장한 서비스입니다. 개발자는 클라우드 플랫폼을 통해 API에 접근하여 이러한 서비스를 생성하고 관리합니다. 최종 사용자의 요구에 따라 소프트웨어 서비스에 대한 특정 리소스 투입이 결정되는데, 수요가 급증하면 더 많은 리소스가 자동으로 제공되고 수요가 감소하면 리소스는 회수됩니다. 이때 사람은 관여하지 않고 정책에 따라 관리됩니다.

소프트웨어 팀은 두 가지 목표에만 집중합니다. i) 새로운 기능 및 버그 수정으로 제품을 개선하는 것과 ii) 정책을 조정하여 서비스 품질을 향상시키는 것이죠. 이때 정책의 구체적 목표(서비스 빠른 응답 시간 및 운영 비용 상한선)가 정해집니다. 클라우드 플랫폼은 자체 자동화를 실행하여 해당 정책을 기반으로 서비스를 제공할 수 있도록 리소스 할당을 계획합니다.

클라우드 기술은 운영상의 제약을 완화시킴으로써 혁신을 가능하게 합니다. 소프트웨어 팀은 배포 및 운영에 대해 신경 쓰는 시간이 줄어들기 때문에 개발 및 배포 속도가 빨라지게 되고 클라우드 플랫폼은 개발자가 원하는 결과를 자동화할 수 있도록 돕기 때문에 운영상의 복잡성을 제거합니다. 개발자는 새로운 서비스를 쉽게 개발할 수 있고 잦은 배포에 따른 비용을 줄여 자유로운 기술 혁신이 가능하죠.

다음편에서는 쿠버네티스(Kubernetes)를 통한 자동화와 인프라 설계로 위에 언급한 역량이 어떻게 구현되는지 간략하게 설명하겠습니다.

멀티테넌시, 서비스 품질 이네이블러

아마존은 클라우드 혁신에 선도적인 역할을 했습니다. 활용도가 낮은 데이터 센터의 인프라를 유료 고객에게 공유하면 훨씬 더 많은 가치를 창출할 것이라는 점을 발견했기 때문이죠. 이는 동일한 성능 요구 사항을 가진 워크로드는 없다는 것을 의미합니다. 즉, 서로 다른 두 명의 고객이 동일한 소프트웨어를 사용하더라도 시간 별 활동 동향에 따라 다른 요구 사항을 나타낸다는 것이죠. 일반적인 단일 하드웨어 플랫폼을 최적으로 활용하려면 여러 워크로드에서 용량을 공유하여(멀티테넌시) 균형 잡힌 성능 요구가 필요합니다.

클라우드 플랫폼은 멀티테넌시를 통해 고객에게 최적의 서비스를 제공합니다. 마이크로 서비스와 같은 클라우드 네이티브 소프트웨어 아키텍처를 적용하여 고객의 워크로드를 여러 시스템에 분산시킴으로써 장애의 영향을 줄이고 최종 사용자 요구에 맞게 자동으로 확장할 수 있습니다. 이러한 마이크로 서비스는 일반적으로 시스템의 전체 용량을 요구하지 않습니다. 따라서 싱글 테넌트 (single-tenant) 할당을 적용하는 것은 낭비입니다. 싱글 테넌트 애플리케이션은 여전히 지원되지만 이는 활용률을 제한하고 다중 워크로드의 활용을 방해합니다.

클라우드 플랫폼 자동화 및 클라우드 네이티브 소프트웨어는 모두 장애에 대비해 설계되었기 때문에 둘 다 자동으로 장애를 복구할 수 있습니다. 인프라 장애가 발생하면 클라우드 플랫폼은 소프트웨어 워크로드를 새 장비에 다시 스케줄링하고 네트워킹 및 기타 리소스를 자동으로 재구성하여 서비스 작업을 복원합니다. 클라우드-네이티브 소프트웨어 팀은 자체 복구가 가능하도록 제품을 설계하여 소프트웨어가 새 시스템 (자동으로)으로 이동하더라도 작동이 정상적으로 재개됩니다.

Surge Capacity로 자동 서비스 복구 방법

멀티테넌트 워크로드와 적절한 격리를 통해 인프라에 대한 투자를 보다 다양하게 활용할 수 있고, 최종 사용자에게 더 나은 서비스 품질을 제공할 수 있습니다. 이 모든 것이 API의 자동화로 관리되기 때문에 소프트웨어 팀은 우수한 성능을 기대할 수 있고 소프트웨어의 가치를 창출하는 데 집중할 수 있습니다.

다음편에서는 서비스형 함수, 쿠버네티스 내 마이크로 서비스 구현 및 멀티테넌트 격리 모델을 포함한 클라우드-네이티브 소프트웨어에 대한 몇 가지 디자인 패턴을 설명하겠습니다.

커뮤니티 협력: 혁신의 샘

클라우드 공급자는 고객이 게시하는 설계 및 작업 프로그램을 통해 각 플랫폼 기능을 확장하는데 큰 도움을 받습니다. 이러한 지식과 혁신은 오픈 소스 및 기타 커뮤니티 포럼에서 자유롭게 공유됩니다. 커뮤니티에서 나오는 아이디어들은 클라우드 제공 업체가 새로운 가치를 창출하고 새로운 시장을 개척할 수 있는 서비스를 개발하도록 영감을 줍니다.

이러한 공동 혁신은 클라우드 플랫폼이 각각 개별적으로 균일하고 보편적인 API를 구축했기 때문에 가능합니다. 구축된 API는 링구아 프랑카(lingua franca)를 제공하여 모든 개발자가 자체적으로 파생 자동화에 대한 아이디어를 구현할 수 있도록 합니다. 이러한 API를 문서화하고 공개하면 개발자 커뮤니티는 독자적으로 혁신할 수 있으며 클라우드 공급자가 상상하지 못한 적용 사례들을 지원할 수 있습니다.

엔터프라이즈 프라이빗 클라우드에 API (링구아 프랑카)를 적용하면 각 사업 조직에서 자체 제품 및 비즈니스 프로세스를 위한 공통 플랫폼을 확장할 수 있습니다. 이러한 정보가 나머지 기업들에게 공개되면 지식 공유 커뮤니티가 형성됩니다. 이를 통해 새로운 혁신을 신속하게 개발하고 고객에게 더 빨리 제공할 수 있습니다.

다음 편에서는 오픈 소스의 혁신적인 힘과 삼성 SDS 내에서 협력을 촉진하기 위한 구체적인 계획에 대해 설명하겠습니다.

쿠버네티스를 기반으로

클라우드 네이티브 컴퓨팅 팀과 HybridStack은 다음의 원칙에 기반을 두고 프로젝트를 추진하고 있으며, 쿠버네티스는 이를 구현하기 위한 기술적 토대입니다.

- 쿠버네티스 커뮤니티는 여러 기업 및 많은 스타트업에 의해 혁신되고 있고 오픈 소스 확장 및 워크플로 도구를 신속하게 개발함으로써 혁신을 이어나가고 있습니다.
- 쿠버네티스 API는 원하는 워크 로드의 기술 모델을 기반으로 구축되어, 개발자가 공통 언어로 애플리케이션을 지정할 수 있기 때문에 새로운 아키텍처 및 워크플로에 대해서도 쉽게 확장할 수 있습니다.
- 쿠버네티스는 인증서 기반 사용자 관리, SSO 통합을 통해 중요한 멀티테넌트 관리 기능을 제공하며, 확장 기능으로 멀티테넌트 워크 로드를 강력하게 격리합니다.
- 대부분의 클라우드 공급 업체들이 쿠버네티스 플랫폼을 개발하였고 쿠버네티스 아키텍처는 프라이빗 데이터 센터 인프라를 통합할 수 있도록 확장됩니다.

쿠버네티스를 기반으로 구축된 삼성 SDS HybridStack은 삼성의 팀을 혁신하기 위한 클라우드 플랫폼이 될 것입니다.



▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

Sam Briesemeister Engineering Manager 외 2명
Sam Briesemeister Engineering Manager 외 2명 클라우드 전문가
삼성SDS 미주연구소(SDSRA)

공동저자 : Sam Briesemeister Engineering Manager & David Watson Sr.Staff Software Engineer & Matthew Farina Sr.Staff Software Engineer

샘 브리슈마이스터(Sam Briesemeister)는 CNCT(Cloud Native Computing Team) 엔지니어링 매니저입니다.
샘은 2017년 삼성SDS 클라우드 네이티브 컴퓨팅 팀에 합류하였습니다. 소프트웨어 팀과 협력하여 쿠버네티스를 통한 혁신을 주도하는데 주력하였고 클라우드 기술팀과 10년 이상 협력하여 제품을 더 빠르게 개발하고 프로세스 및 고객 경험을 향상시켰습니다. 샘은 현재 오픈 소스 혁신 문화를 형성하는데 심혈을 기울이고 있습니다.

데이비드 왓슨(David Watson)은 CNCT 선임 소프트웨어 엔지니어입니다.
데이비드는 IBM에서 클러스터 파일 시스템 (GPFS)을 개발하였고 수많은 대형 고성능 컴퓨팅 (High Performance Computing, HPC) 시스템 관리를 설계 및 자동화하는 업무를 맡았습니다. 또, 아마존에서 AWS의 전 세계 클라우드 인프라의 하드웨어 성능 및 안정성을 모니터링, 예측 분석 및 시각화하는 작업을 수행했습니다. 그는 현재 삼성에서 쿠버네티스를 기반으로 클라우드 네이티브 애플리케이션의 새로운 동작을 관리하기 위한 오픈 소스 도구 및 프로세스를 개발하고 있습니다.

매튜 파리나(Matthew Farina)는 CNCT 선임 소프트웨어 엔지니어입니다.
매튜는 삼성 SDS의 클라우드 네이티브 컴퓨팅 팀에서 클라우드 네이티브 애플리케이션 업무를 담당하고 있습니다. 그는 작가이자 연설가로서, 오픈 소스에 대한 글을 정기적으로 기고하고 있고 여러 오픈 소스 프로젝트 관리자이자 쿠버네티스 커뮤니티의 리더입니다. 삼성에 합류하기 전에 Advanced Technology Group의 Hewlett-Packard 연구개발팀에서 근무하며 HPE OneSphere 솔루션 프로젝트를 이끌었고 25 년 넘게 소프트웨어 개발에 주력해 오고 있습니다.

구독하기

인사이트 리포트 소식을 메일로 받아보세요