Skip to main content
NetApp Solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

NetApp FlexClone 기술을 사용하여 소프트웨어 개발 가속화

기여자

개요

Kubernetes 클러스터에 배포된 애플리케이션을 클론 복제하는 것은 현재 작업 중인 버전에 영향을 주지 않고 환경을 파트너와 공유하거나 개발 환경에서 새 버전의 코드를 테스트하여 워크플로우를 가속화하려는 개발자에게 매우 유용한 툴입니다. Kubernetes 애플리케이션의 상태 저장 및 애플리케이션 정합성이 보장되는 클론 복제는 NetApp Astra Control에 포함된 주요 기능이며, 애플리케이션의 백업 및 복원 기능도 제공합니다. 이와 더불어, 동일한 스토리지 백엔드를 사용하여 동일한 Kubernetes 클러스터 내에 애플리케이션을 클론 복제하면 Astra Control은 기본적으로 NetApp FlexClone 기술을 사용하여 영구 데이터 볼륨을 복제하므로 프로세스의 속도를 크게 높일 수 있습니다. 이 프로세스를 가속화하면 복제된 환경이 프로비저닝되고 몇 분 만에 사용할 수 있으므로 개발자가 테스트 또는 개발 환경을 다시 배포하는 데 비해 잠시 멈춰 작업을 다시 시작할 수 있습니다. 편의를 위해 NetApp Astra Control에서 제공되는 모든 기능을 API로 호출할 수 있으며, 이 API를 통해 Ansible과 같은 자동화 프레임워크와 쉽게 통합할 수 있습니다. 따라서 복제 절차를 시작하기 위해 플레이북이나 역할에서 약간의 변경만 필요하기 때문에 환경을 훨씬 빠르게 스테이징할 수 있습니다.

NetApp FlexClone 기술이란 무엇입니까?

NetApp FlexClone 기술은 NetApp FlexVol의 쓰기 가능한 시점 스냅샷 기반 복사본입니다. 이러한 데이터는 거의 즉각적으로 프로비저닝되고 소스 볼륨의 모든 데이터를 포함하며 새 볼륨의 데이터가 소스에서 전환되기 전까지 추가 스토리지 공간을 사용하지 않습니다. 여러 데이터 복사본이 스테이징 목적으로 유용하고 스토리지 시스템에 이러한 볼륨 프로비저닝을 위한 리소스가 제한적인 경우, 이러한 리소스는 개발 또는 템플릿 기반 환경에서 주로 사용됩니다. 데이터를 여러 번 복사해야 하는 기존 스토리지 시스템과 비교하여 상당한 스토리지 공간과 시간을 소모하는 NetApp FlexClone 기술은 스토리지에 따른 작업을 가속화합니다.

FlexClone 이미지

NetApp FlexClone 기술에 대한 자세한 내용은 의 페이지를 참조하십시오 "NetApp 문서".

필수 구성 요소

  1. Red Hat OpenShift 4.6.8+, Rancher 2.5+ 또는 Kubernetes 1.19+와 같은 지원되는 Kubernetes 배포

  2. NetApp Astra Control Center 21.12 이상

  3. NetApp Astra Trident를 통해 스토리지 백엔드가 구성된 NetApp ONTAP 시스템입니다.

  4. Ansible 2.9 이상

  5. NetApp Astra Control에서 관리 대상 애플리케이션으로 클론 복제하려는 환경을 위한 템플릿입니다.

사용 사례 소개

이 사용 사례에서는 다음과 같은 워크플로를 시각화합니다.

워크플로 이미지
  1. 사용자가 Ansible 플레이북을 실행하여 새로운 스테이징 환경을 구축합니다.

  2. Ansible은 URI-API 모듈을 사용하여 Astra Control을 호출하여 클론 생성 작업을 실행합니다.

  3. Astra Control은 미리 프로비저닝된 템플릿 환경에서 클론 생성 작업을 실행하여 새로운 관리 애플리케이션을 생성합니다.

    참고 이 환경은 개발 중인 단일 독립 실행형 애플리케이션이거나 Jenkins CI/CD 파이프라인과 같은 전체 개발 환경일 수 있습니다.
  4. 그런 다음 사용자는 Gitea와 같은 온라인 저장소에서 해당 코드의 버전을 복제된 개발 환경으로 가져옵니다.

  5. 새로운 버전의 애플리케이션은 NetApp Astra Control에서 구축 및 관리합니다.

    참고 이 두 프로세스는 모두 자동화할 수 있습니다.
  6. 사용자는 이 복제 환경에서 새 코드를 개발할 수 있습니다.

  7. 사용자가 개발 작업에 만족하면 코드를 호스팅된 저장소로 다시 푸시할 수 있습니다.

여기서 제시하는 사용 사례는 복제할 특정 환경 또는 애플리케이션에 대한 골드 템플릿이 있는지 여부에 따라 달라집니다. 저희 환경에서는 Wordpress 배포, Magento 배포, DevTools이라는 제목의 Gitea가 있는 Jenkins CI/CD 환경 등 세 개의 템플릿을 만들었습니다.

템플릿 이미지

각 환경은 NetApp Astra Control을 통해 관리되며, NetApp Astra Trident가 제공하는 NFS 백엔드와 함께 NetApp ONTAP 스토리지 시스템에 현재 저장된 영구 볼륨이 있습니다.

사용 사례 검증

  1. 클론 복제 역할 및 애플리케이션 업데이트 플레이북을 포함하는 NetApp 솔루션 엔지니어링 팀에서 제공하는 Ansible 툴킷을 복제하십시오.

    [netapp-user@rhel7 ~]$ git clone https://github.com/NetApp-Automation/na_astra_control_suite.git
    [netapp-user@rhel7 ~]$ cd na_astra_control_suite
  2. VAR/CLONE_VAR.Lyml을 편집하여 Astra Control 환경에 맞는 글로벌 가치를 입력합니다.

    astra_control_fqdn: astra-control-center.example.com
    astra_control_account_id: "xxxx-xxxx-xxxx-xxxx-xxxx"
    astra_control_api_token: "xxxxx"
    참고 입력해야 하는 글로벌 환경 값은 API 액세스 메뉴 아래의 NetApp Astra Control의 사용자 프로필 아이콘 아래에서 확인할 수 있습니다.
    API 액세스 이미지
  3. 글로벌 변수가 완료된 경우 복제할 특정 애플리케이션의 값을 선택할 수 있습니다. devtools 환경을 Alan-devtools라고 하는 개인 환경으로 복제하려면 다음을 수행합니다.

    clone_details:
      - clone_name: alan-devtools
        destination_namespace: alan-dev-namespace
        source_cluster_name: ocp-vmware2
        destination_cluster_name: ocp-vmware2
        source_application_name: devtools-template
    참고 클론 복제 프로세스에서 NetApp FlexClone 기술을 활용하려면 'rc-cluster'와 'dest-cluster'가 동일해야 합니다.
  4. 이제 플레이북을 실행하여 애플리케이션을 복제할 수 있습니다.

    [netapp-user@rhel7 na_astra_control_suite]$ ansible-playbook -K clone_app_playbook.yml]
    참고 기록된 Playbook은 루트 사용자 또는 sudo 프로세스를 통해 "-K" 인수를 전달하여 에스컬레이션할 수 있는 사람이 실행해야 합니다.
  5. Playbook의 실행이 완료되면 복제된 애플리케이션이 Astra Control Center 콘솔에서 사용 가능한 것으로 표시됩니다.

    복제된 앱 이미지
  6. 그런 다음, 사용자가 애플리케이션이 배포된 Kubernetes 환경에 로그인하여 애플리케이션이 새 IP 주소로 표시되는지 확인하고 개발 작업을 시작할 수 있습니다.

이 사용 사례 데모와 응용 프로그램 업그레이드 예제는 를 참조하십시오 "여기".