홈페이지 Enterprise 클라우드 네이티브 전환 및 난기류 방지

클라우드 네이티브 전환 및 난기류 방지

by 게스트 작성자

Docker, Google 및 기존 및 신규 플레이어의 급성장하는 에코시스템이 주도하는 컨테이너화 및 클라우드 네이티브 운동에 대해 논의하는 XNUMX개의 기사 시리즈 중 첫 번째 기사에 오신 것을 환영합니다. 이 시리즈에서 우리는 조직이 더 잘 탐색할 수 있도록 돕기 위한 노력의 일환으로 이 새롭고 흥미로운 공간을 정의하고 논의합니다. 이 첫 번째 기사는 "클라우드 네이티브" 및 일부 관련 이동 부분을 정의하는 데 중점을 두지만 향후 기사에서는 네트워킹, 스토리지 및 컨테이너 오케스트레이션과 관련된 중요한 계층 및 관련 문제를 살펴보고 보다 완전한 보기를 제공할 것입니다. 하지만 먼저 시작하겠습니다. 처음.


Docker, Google 및 기존 및 신규 플레이어의 급성장하는 에코시스템이 주도하는 컨테이너화 및 클라우드 네이티브 운동에 대해 논의하는 XNUMX개의 기사 시리즈 중 첫 번째 기사에 오신 것을 환영합니다. 이 시리즈에서 우리는 조직이 더 잘 탐색할 수 있도록 돕기 위한 노력의 일환으로 이 새롭고 흥미로운 공간을 정의하고 논의합니다. 이 첫 번째 기사는 "클라우드 네이티브" 및 일부 관련 이동 부분을 정의하는 데 중점을 두지만 향후 기사에서는 네트워킹, 스토리지 및 컨테이너 오케스트레이션과 관련된 중요한 계층 및 관련 문제를 살펴보고 보다 완전한 보기를 제공할 것입니다. 하지만 먼저 시작하겠습니다. 처음.

초기에는 각각 FreeBSD Jails 및 Solaris Zones라는 기능을 갖춘 현대적인 컨테이너화 기술로 간주되는 기술에 대한 훌륭한 토대를 마련한 Free BSD 및 Solaris가 있었습니다. Google은 Linux 커널에 cgroup을 추가하여 컨테이너를 Linux로 가져오는 데 도움을 주었습니다. 네임스페이스 및 chroot와 결합하여 기술적인 토대를 마련했습니다. Docker는 컨테이너 이미지에 대한 쉬운 워크플로를 생성하고 쉬운 개발자 경험에 중점을 두어 컨테이너에 더 쉽게 액세스할 수 있도록 했습니다.

아마도 공간을 정의하는 가장 좋은 방법은 몇 가지 기본적인 질문에 답하고 일부 게스트 전문가에게 답변을 받는 것입니다. (더 자격이 있는 다른 사람들에게 작업을 어떻게 오프로드하는지 보십시오!?)

컨테이너 란?
게스트 기고자 Cameron Brunner, Navops 수석 설계자

컨테이너를 사용하면 애플리케이션을 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 안정적으로 이동할 수 있습니다. 이는 개발자의 노트북에서 QA 환경, 온프레미스 또는 클라우드의 프로덕션에 이르기까지 다양할 수 있습니다. 컨테이너에서 실행되는 애플리케이션의 소프트웨어 스택 종속성(예: 운영 체제 또는 기타 소프트웨어 구성 요소 및 라이브러리)은 대부분 컨테이너 내부에 내장되어 기본 IT 환경의 세부 정보와 분리되어 실행될 수 있습니다. 컨테이너는 원래 운영 체제에서 실행되는 애플리케이션 간에 격리를 제공하도록 설계되었습니다. 컨테이너 내의 코드 실행을 다른 활동 및 해당 시스템/운영 체제에서 실행 중인 다른 컨테이너와 격리하는 데 도움이 되는 리소스 제어 및 경계 분리의 조합을 제공합니다. 컨테이너는 cgroup 및 네임스페이스와 같은 운영 체제 기능을 활용하여 이러한 격리를 달성합니다. 

Docker는 무엇입니까?

Docker는 회사이자 컨테이너의 상용/오픈 소스 구현입니다. 컨테이너는 FreeBSD Jails(2000) 및 Solaris Zones(2004)와 같은 초기 구현과 함께 Docker 이전에 오랫동안 사용되어 왔으며 Docker는 생성 및 실행 프로세스를 크게 단순화하여 컨테이너를 대중에게 유용하게 만드는 놀라운 작업을 수행했습니다. Docker는 빠르게 사실상의 표준 컨테이너 형식이 되고 있지만 회사는 Linux Foundation에서 OCI(Open Container Initiative)를 만들어 개방성과 협업을 향한 움직임을 더욱 발전시켰습니다. OCI는 많은 업계 참가자를 포함하고 있으며 컨테이너 형식 및 실행 시간에 대한 업계 표준을 위해 노력하고 있습니다. (www.opencontainers.org/ 참조)

그렇다면 클라우드 네이티브 컴퓨팅이란 무엇입니까?
게스트 기여자 Joe Beda, Google Compute Engine 및 Kubernetes의 설립자이자 기여자

클라우드 네이티브는 규모에 맞게 애플리케이션을 구축하고 관리하는 새로운 방식 중 하나입니다. 근본적으로 Cloud Native는 자동화 및 아키텍처를 활용하여 복잡성을 관리하고 속도를 높일 수 있도록 팀, 문화 및 기술을 구성하고 있습니다.

컨테이너 및 컨테이너 관리는 종종 "클라우드 네이티브" 사고의 일부이지만 Netflix와 같은 조직은 이 사고를 VM 및 VM 이미지에 적용한 것으로 유명합니다. 또한 이러한 사고 전환의 이점을 실현하기 위해 클라우드에서 실행할 필요가 없습니다. 온프레미스에 애플리케이션을 배포하는 동안 애플리케이션과 팀을 보다 쉽게 ​​관리할 수 있습니다.

클라우드 네이티브가 무엇인지에 대한 엄격하고 빠른 규칙은 없습니다. 그러나 떠오르는 몇 가지 주제가 있습니다.

  • DevOps 및 Ops 자동화: 애플리케이션 개발자 모자를 쓴 엔지니어는 프로덕션에서 애플리케이션이 안정적으로 실행될 수 있도록 하는 데 적극적인 역할을 합니다. 마찬가지로 운영 역할을 수행하는 사람들은 경험이 개발에 다시 반영되도록 합니다. 자동화는 많은 움직이는 조각을 관리하는 데 핵심입니다.
  • 컨테이너: 컨테이너는 테스트하고 검증할 수 있는 배포 가능한 빌드 아티팩트를 만드는 편리한 방법을 제공합니다. 이렇게 하면 배포를 예측할 수 있습니다.
  • 컴퓨팅 클러스터: API 기반 컴퓨팅 클러스터 및 스케줄링 시스템을 통해 소수의 엔지니어가 많은 워크로드를 관리할 수 있습니다. 그 외에도 사용률을 높이기 위해 이러한 워크로드를 노드에 효율적으로 묶을 수 있습니다. 마지막으로 잘 실행되는 클러스터는 애플리케이션 팀의 운영 부담을 줄여줍니다.
  • 마이크로서비스: 마이크로서비스는 개발 팀이 빠르고 민첩할 수 있도록 애플리케이션을 더 작은 배포 가능한 단위로 분할합니다. 이러한 아이디어는 반드시 새로운 것은 아니지만 확장 가능한 관리를 가능하게 하는 도구와 함께 적용되고 있습니다. 이에 대해서는 아래에서 더 자세히 설명하겠습니다.
  • 깊은 가시성: 클라우드 네이티브는 서비스 실행 방식에 대한 더 깊은 통찰력을 의미합니다. 분산 추적, 로그 수집 및 인덱싱, 심층 애플리케이션 모니터링은 모두 애플리케이션 내부에서 실제로 발생하는 상황을 조명하는 데 도움이 됩니다.

마이크로 서비스 기반 아키텍처란 무엇입니까?
게스트 기여자 Joe Beda, Google Compute Engine 및 Kubernetes의 설립자이자 기여자

마이크로서비스는 아주 오랫동안 존재해 온 개념의 새로운 이름입니다. 기본적으로 큰 애플리케이션을 독립적으로 개발하고 관리할 수 있도록 더 작은 조각으로 나누는 방법입니다. 여기에서 몇 가지 주요 측면을 살펴보겠습니다.

  • 강력하고 명확한 인터페이스. 서비스 간의 긴밀한 결합은 피해야 합니다. 문서화되고 버전이 지정된 인터페이스는 해당 계약을 강화하고 이러한 서비스의 소비자와 생산자 모두에게 어느 정도의 자유를 유지하는 데 도움이 됩니다.
  • 독립적으로 배포되고 관리됩니다. 다른 모든 서비스와 동기화하지 않고 단일 마이크로 서비스를 업데이트할 수 있어야 합니다. 마이크로서비스 버전을 쉽게 롤백할 수 있는 것도 바람직합니다. 즉, 배포되는 바이너리는 API 및 모든 데이터 스키마 측면에서 포워드 및 백워드 호환이 가능해야 합니다. 이를 통해 적절한 운영팀과 개발팀 간의 협력 및 커뮤니케이션 메커니즘을 테스트할 수 있습니다.
  • 탄력성 내장. 마이크로서비스는 독립적인 탄력성을 갖도록 구축되고 테스트되어야 합니다. 서비스를 사용하는 코드는 사용된 서비스가 다운되거나 오작동하는 경우 작업을 계속하고 합당한 조치를 취하도록 노력해야 합니다. 마찬가지로 제공되는 모든 서비스는 예상치 못한 로드 및 잘못된 입력과 관련하여 어느 정도 방어해야 합니다.
  • 마이크로서비스는 기술보다 사람에 관한 것입니다. 소규모 팀은 더 민첩합니다. Jeff Bezos는 피자 2판으로 배불리 먹일 수 있도록 회의와 팀을 충분히 작게 유지할 것을 제안한 것으로 유명합니다. 큰 프로젝트를 일련의 소규모 팀으로 구성한 다음 비켜서면 해당 팀은 프로젝트의 해당 부분을 융합하고 소유할 수 있습니다.

클라우드 네이티브 스택의 중요한 계층에 대해 논의할 다음 기사를 기대합니다.

Rob Lalonde는 나밥. 그는 CNCF(Cloud Native Computing Foundation), OCI(Open Container Initiative) 및 Linux Foundation을 비롯한 다양한 오픈 소스 재단에 적극적으로 참여하고 있습니다. Rob은 여러 성공적인 첨단 기술 회사 및 신생 기업에서 임원직을 역임했습니다. 그는 York University의 Schulich School of Business에서 MBA 과정을 마쳤으며 Laurentian University에서 컴퓨터 과학 학위를 받았습니다.

이 이야기에 대해 토론하기

StorageReview 뉴스레터 신청