클라우드 네이티브 되기: 웹 표준과 오픈 소스 소프트웨어가 애플리케이션 개발을 혁신하는 방법
클라우드 데이터 관리, 블록체인, 사이버 보안, 인터넷 자유에 대한 의견. Solix Technologies, Inc. 및 Minds, Inc.의 회장.
멀티클라우드 상호 운용성을 통해 소프트웨어 애플리케이션을 프라이빗 및 퍼블릭 클라우드에서 원활하게 실행하고 액세스할 수 있습니다. 오늘날 조직은 멀티클라우드 환경에 의존하여 비용과 복잡성을 줄이면서 인프라 투자를 최적화하는 동시에 가용성, 보안 또는 제어에 절대 타협하지 않습니다. 결과적으로 엔터프라이즈 애플리케이션 포트폴리오는 이제 다양한 공급업체에서 제공하는 클라우드 아키텍처와 온프레미스 환경에서 풀스택 이식성이 필요합니다.
오픈 소스로 구동
클라우드 네이티브 소프트웨어는 월드 와이드 웹 컨소시엄(W3C)에서 정립한 오픈 소스 표준을 기반으로 하기 때문에 멀티클라우드 배포에 이상적인 플랫폼을 제공합니다 . 디지털 전환 에는 실시간 이벤트 기반 데이터 수집이 필수적이며, W3C의 "원 웹(One Web)" 비전은 모든 데이터가 모든 애플리케이션과 함께 모든 W3C 표준을 준수 하는 클라우드 환경 에서 실행될 수 있는 이상적인 아키텍처를 제시합니다.
모바일 및 IoT 기기(예: 대화형 텔레비전 시스템, 음성 응답 시스템, 키오스크, 심지어 냉장고)는 방대한 데이터 및 서비스 웹에서 데이터를 수집하고 보고하는 엄청난 범위의 기기 중 하나입니다. W3C 아키텍처와 표준을 통해 누구나, 어디에서나 다른 사람과 정보를 처리하고 공유할 수 있습니다.
표준 설정: 신뢰할 수 있는 시스템 구축
하지만 어떻게 그런 시스템에 신뢰를 설계할 수 있을까요? 규칙은 무엇일까요? 그리고 나쁜 행위자가 그저 자신의 규칙에 따라 행동하지 않는다는 것을 어떻게 확신할 수 있을까요? 좋은 소식은 W3C가 대중적 채택을 통해 신뢰를 키울 수 있는 개방형 표준과 프로토콜을 제공했다는 것입니다. W3C는 멀티 클라우드 환경에서 모든 것을 투명하게 연결하는 무료 오픈 소스 소프트웨어 아키텍처를 구축함으로써 글로벌 규모로 신뢰를 구축합니다.
오픈소스 소프트웨어는 기본적으로 코드가 투명하고 누구나 읽고 검토할 수 있기 때문에 광고된 대로 작동합니다. 사용 및 재사용을 통해 오픈소스 소프트웨어와 표준은 문서화된 대로 수행되도록 검증, 심사 및 테스트됩니다. 소스 코드가 검사에서 숨겨지고 저작권법으로 보호되는 독점 소프트웨어 시스템은 이와 동일한 주장을 할 수 없습니다.
클라우드 네이티브가 되기 위한 핵심 기술: REST, NoSQL 및 마이크로서비스
개발자들은 복잡한 소프트웨어 시스템을 만들고 조립하는 더 간단한 방법을 끊임없이 모색합니다. REST( Representational State Transfer )는 모든 클라우드 네이티브 소프트웨어 애플리케이션의 핵심을 이루는 개방형 표준 아키텍처 스타일입니다. REST는 널리 알려지고 이해하기 쉬워 인터넷 소프트웨어 개발의 기반이 되었습니다. REST의 파생 프로토콜로는 HTTPS(Hypertext Transfer Protocol Secure), URL(Uniform Resource Identifier), 그리고 아파치 웹 서버의 오픈 소스 프로토콜 등이 있습니다.
REST는 일반성의 소프트웨어 엔지니어링 원칙에 의존합니다. 즉, 아무것도 단 하나의 특정 사례에 국한되지 않으며 REST는 네트워크의 모든 요소 간에 균일한 인터페이스를 구축합니다. 각 요소는 더 큰 시스템의 "무상태" 구성 요소로, 소프트웨어 개발을 크게 단순화하고 상호 작용 및 이벤트에 대한 가시성을 개선합니다.
NoSQL 데이터베이스 (‘Not Only SQL’의 약자)는 클라우드 네이티브 애플리케이션의 핵심에서 흔히 찾아볼 수 있습니다. 데이터 기반의 실시간 사용 사례에 점점 더 많이 활용되는 NoSQL 데이터베이스는 분산 노드 전반에 걸쳐 수평 확장이 가능한 간소화된 설계를 제공합니다. 정형 데이터, 비정형 데이터, 반정형 데이터를 포함한 모든 유형의 데이터를 저장하고 검색할 수 있기 때문에 다양한 워크로드에 적합합니다.
NoSQL 데이터 구조는 관계형 데이터베이스 및 단순 파일 시스템과 구별되며 일반적으로 열 저장소, 문서 저장소 또는 그래프 저장소로 정의됩니다. 어떤 경우에는 NoSQL 작업이 기존 데이터 저장소보다 더 빠르게 수행되고 다른 경우에는 그렇지 않습니다. 사용할 NoSQL 스타일을 선택하는 것은 사용 사례 요구 사항에 따라 달라집니다. 관계형 구조의 표준 설계에서 벗어나면 데이터 과학자는 데이터를 더 잘 설명하고 더 강력한 데이터 통찰력을 얻을 수 있습니다.
마이크로서비스는 RESTful 웹 서비스의 아키텍처 프레임워크 입니다 . 애플리케이션을 서로 통신하고 자율적으로 작동하는 핵심 객체 지향 기능으로 분해함으로써, 마이크로서비스 아키텍처는 중요한 인프라 장애가 발생하더라도 계속 작동하는 분산되고 느슨하게 결합된 컴퓨팅 환경을 구축합니다. 하나의 구성 요소에 오류가 발생하거나 문제가 생기더라도 전체 애플리케이션을 중단할 필요가 없습니다.
마이크로서비스는 표준화되어 있고 구현이 간편하며 소프트웨어 엔지니어링 및 시스템 통합을 크게 단순화할 수 있습니다. 데이터 저장소와 같은 서비스는 애플리케이션 기능과 분리될 수 있으며, 마이크로서비스는 애플리케이션 프로그래밍 인터페이스 (API)를 사용하여 통신하므로 개발자는 원하는 도구를 선택할 수 있습니다.
쿠버네티스: 게임 체인저
소프트웨어 컨테이너는 클라우드 네이티브 애플리케이션을 개발, 배포 및 관리하는 방식을 혁신했습니다. 마이크로서비스 및 API와 마찬가지로 컨테이너는 시스템의 나머지 부분과 분리되어 있지만 컨테이너에는 기능을 실행하고 수행하는 데 필요한 모든 파일이 포함되어 있습니다. 컨테이너는 이식 가능하고 일관적이기 때문에 운영 및 프로덕션 관리가 간소화되어 개발자가 소프트웨어 개발 수명 주기를 더 잘 제어할 수 있습니다.
컨테이너 기반 아키텍처 에서는 소프트웨어 서비스가 개별적으로 패키징되어 물리적 또는 가상 머신 클러스터에 배포됩니다. 컨테이너 오케스트레이션은 컨테이너 클러스터를 "파드"로 구성하고 컴퓨팅 리소스를 스케줄링하여 데이터 기반 애플리케이션을 배포, 확장 및 네트워크화합니다. Kubernetes는 컨테이너 "파드"를 대규모로 배포하고 관리할 수 있도록 지원하는 오픈 소스 프로젝트입니다. Kubernetes는 온 프레미스, 퍼블릭, 프라이빗 또는 하이브리드 클라우드 환경을 포함한 모든 곳에서 실행될 수 있습니다.
클라우드 네이티브가 되면 모든 조직이 멀티 클라우드 환경에서 상호 운용되는 애플리케이션을 구축할 수 있습니다. 소프트웨어 개발자는 엄청나게 어려운 작업이 훨씬 덜 복잡해져서 기뻐합니다. W3C의 "One Web" 비전과 무료 및 오픈 소스 표준 덕분에 모든 클라우드가 동일한 방식으로 실행되고 안전하고 보안적으로 상호 운용될 수 있습니다.
