CNCF 가 발표한 클라우드 기본 1.0 에 따르면 클라우드 기본 기술에는 주로 컨테이너, 마이크로서비스, 서비스 그리드, 불변 인프라 및 선언적 API 가 포함됩니다.
컨테이너 기술
용기 기술과 구름 원생질은 한 쌍의 나선형과 같다. 용기 기술은 구름 원생질을 낳고, 구름 원생질 생태는 용기 기술의 발전을 촉진시켰다. 2065 438+03 Docker 기술의 탄생부터 20 15 클라우드 원생 분야 중량급 연맹 CNCF 설립까지 역사의 우연이 아니라 역사의 필연이다. 컨테이너는 클라우드 원시의 핵심 기술 중 하나로, 20 13 탄생 이후 업계의 관심 중 하나였습니다.
20 13 이전에 클라우드 컴퓨팅 업계는 클라우드의 올바른 개방 자세에 대해 걱정했습니다. PaaS (platform as a service) 는 매우 유망한 방향인 것 같습니다. Fotango 가 2006 년 발표한 쌀자 서비스는 PaaS 업계의 원조라고 할 수 있으며, 사용료와 서버리스, API 구성 및 서비스 등 전형적인 클라우드 기본 특성을 갖추고 있습니다. 2008 년 구글은 구글 앱 엔진 (GAE) 을 출시했습니다. 2065 438+0 1 Pivotal 이 발표한 클라우드 포드.
이러한 초기 PaaS 플랫폼은 클라우드 원생 생태 분야에서 매우 유용한 탐구를 하여 클라우드 원생 생태계의 건강한 발전을 촉진시켰다. 그러나 이러한 초기 탐색 기술은 큰 업계 추세를 형성하지 않고 특정 분야에만 국한되어 있습니다. Docker 가 오픈할 때까지 사람들은 꿈처럼 깨어나지 않았다. 방향이 잘못된 것이 아니라 배포 전달 수단을 적용하는 것이 좋지 않았다.
Docker 미러 컨테이너는 패키지, 배포 및 운영을 위한 새로운 메커니즘을 적용하는 진정한 핵심 혁신을 미러링합니다. 컨테이너 이미지는 코드, 종속 라이브러리, 툴, 리소스 파일, 메타 정보 등 애플리케이션 운영 환경을 운영 체제 릴리스와는 별도로 변경 불가능한 패키지로 패키지화합니다.
컨테이너 이미지는 전체 컨테이너가 실행되는 환경을 패키징하고 컨테이너를 실행하는 서버의 운영 체제에 의존하지 않으므로 "한 번의 구축, 어디에서나 실행" 할 수 있습니다. 컨테이너 이미지가 구축되면 읽기 전용이 되어 불변 인프라의 일부가 됩니다.
마이크로서비스
마이크로서비스 아키텍처는 단일 아키텍처에 비해 서로 다른 아키텍처 스타일에 속합니다. 마이크로서비스 아키텍처에서 서비스는 독립적으로 배포할 수 있는 단일 소프트웨어 구성 요소로서 유용한 기능을 구현합니다. 서비스 API 는 내부 구현을 캡슐화합니다. 단일 아키텍처와 달리 개발자는 서비스의 API 를 우회하여 서비스 내부의 방법 및 데이터에 직접 액세스할 수 없습니다. 따라서 마이크로 서비스 아키텍처는 애플리케이션을 모듈화하도록 강요합니다.
마이크로서비스 아키텍처의 핵심 특징은 서비스 간의 느슨한 결합이다. 서비스 간의 상호 작용은 클라이언트에 영향을 주지 않고 구현 방법을 수정할 수 있도록 서비스 구현 세부 사항을 캡슐화하는 API 에 의해 수행됩니다.
마이크로서비스 아키텍처는 비즈니스 서비스의 세분성에 따라 대형 시스템을 분할하며 각 서비스는 독립적으로 개발, 테스트, 검증 및 배포할 수 있습니다. 분해 후 이점은 다음과 같습니다.
대규모의 복잡한 어플리케이션의 지속적인 제공 및 배포를 지원합니다.
각 서비스는 상대적으로 작으며 유지 관리가 용이합니다.
서비스는 독립적으로 배포할 수 있습니다.
서비스는 독립적으로 확장할 수 있습니다.
마이크로서비스 아키텍처는 팀 자치를 실현할 수 있다.
새로운 기술을 시험하고 채택하기가 더 쉽다.
내결함성이 향상됩니다
서비스 그리드
서비스 그리드는 서비스 간의 통신을 처리하고 마이크로서비스 간의 신뢰할 수 있는 요청 전송을 담당하는 특수 인프라 계층입니다. 서비스 그리드는 일반적으로 응용 프로그램 자체를 알 필요 없이 응용 프로그램 코드와 함께 배포되는 경량 네트워크 에이전트 세트로 구현됩니다.
규모와 복잡성이 증가함에 따라 서비스 그리드에는 서비스 검색, 로드 밸런싱, 장애 복구, 지표 수집 및 모니터링 등 점점 더 많은 기능이 포함되어 있으며, 일반적으로 A/B 테스트, 카나리아 출시, 제한 흐름, 액세스 제어, 엔드 투 엔드 인증과 같은 보다 복잡한 운영 및 유지 보수 요구 사항이 있습니다.
서비스 그리드에는 다음과 같은 특성이 있습니다.
응용 프로그램 간 통신을 위한 중간 계층
경량 네트워크 에이전트
응용 프로그램이 민감하지 않습니다
분리 애플리케이션 재시도/시간 초과, 모니터링, 추적 및 서비스 검색.
한 마디로 서비스 그리드가 무엇인지 설명하면 응용 프로그램 간 또는 마이크로서비스 간 TCP/IP 와 비교하여 서비스 간 네트워크 액세스, 제한, 융합 및 모니터링을 담당할 수 있습니다. 일반적으로 쓰기 애플리케이션은 TCP/IP 계층 (예: HTTP 프로토콜을 통한 RESTful 애플리케이션) 에 신경 쓸 필요가 없으며, Spring Cloud 및 OSS 와 같은 원래 애플리케이션이나 다른 프레임워크를 통해 구현된 서비스 간의 연결도 필요하지 않습니다. 이제 서비스 그리드에 맡기기만 하면 됩니다. 마이크로서비스 애플리케이션 개발을 크게 용이하게 할 수 있습니다.
변하지 않는 인프라
하나의 워크로드 (예: 컨테이너, 가상 시스템 등). ) 일단 배포되면 수정되지 않습니다. 업데이트, 복구 또는 수정이 필요한 것이 있을 경우 기존 워크로드를 신규 및 검증된 워크로드로 교체하기만 하면 됩니다.
불변 인프라의 역할은 주로 시스템의 안정성에 나타난다. 기존 응용 프로그램이 사용자 전용 서버에 배포되면 서버 시스템은 운영 체제를 업그레이드하거나 새 응용 프로그램을 설치하는 등 충돌이 발생할 수 있으며, 이로 인해 사용자 시스템 환경의 변화에 따라 응용 프로그램이 지속적으로 업그레이드될 수 있습니다. 중간에 새로운 문제가 계속 발생합니다. 불변 인프라는 이러한 모든 문제를 피합니다. 클라우드 기본 애플리케이션은 불변 인프라에 배치되므로 변경 문제가 없습니다.
선언적 API
선언적 API 는 명령 기반 API 보다 고급 인터페이스 설계 방법입니다. 간단히 말해서, 명령형 API 는 사용자에게 무엇을 할 수 있는 기능을 제공하고, 선언식 API 는 사용자에게 무엇을 할 수 있는 기능을 제공합니다.
선언적 API 는 명령 기반 API 보다 고급 인터페이스입니다. 예를 들어, 우리는 조리기가 제공하는 인터페이스가 기름, 조미료, 재료, 화재, 작은 불이라면 명령식 API 입니다.
조리기가 제공하는 인터페이스가 서비스궁파지딩과 위샹러우러우쓰 서비스라면 선언식 API 입니다. 선언적 API 의 일반적인 예는 데이터베이스에서 제공하는 SQL 인터페이스입니다. 데이터베이스에 필요한 데이터만 알려주면 됩니다. 이 데이터를 얻는 방법에 대해서는 데이터베이스가 단계적으로 진행됩니다.