AKS용 플랫폼 자동화 및 DevOps

클라우드 네이티브 구문인 Kubernetes에는 배포 및 작업에 대한 클라우드 네이티브 접근 방식이 필요합니다. Azure 및 Kubernetes는 풍부하고 잘 설계된 API가 있는 확장 가능한 개방형 플랫폼으로, 전체 범위에서 자동화할 수 있는 기회와 기능을 제공합니다. 자동화 및 일반적인 DevOps 모범 사례에 의존하여 DevOps 및 고도로 자동화된 접근 방식을 계획합니다.

디자인 고려 사항

AKS 플랫폼 자동화 및 DevOps에 대한 몇 가지 디자인 고려 사항은 다음과 같습니다.

  • 엔지니어링 및 자동화 접근 방식을 결정할 때 Azure 서비스 제한 사항과 CI/CD(연속 통합 및 지속적인 업데이트) 환경을 고려합니다. 또 다른 예제는 GitHub 사용량 제한을 참조하세요.

  • 개발, 테스트, Q&A 및 프로덕션 환경에 대한 액세스를 보호하고 보호할 때 CI/CD 관점에서 보안 옵션을 고려합니다. 배포는 자동으로 수행되므로 그에 따라 액세스 제어를 매핑합니다.

  • 잘 정의된 규칙과 접두사 및 접미사를 사용하여 배포된 모든 리소스를 고유하게 식별하는 것이 좋습니다. 이러한 명명 규칙은 서로의 옆에 솔루션을 배포하는 동안 충돌을 방지하고 전반적인 팀 민첩성 및 처리량을 개선합니다.

  • 일반 및 DRP(Disaster Recovery Plan) 체제에서 솔루션을 엔지니어링, 업데이트하고 배포하는 데 지원되는 워크플로를 인벤토리화합니다. 이러한 워크플로에 따라 파이프라인을 매핑하여 친숙함과 생산성을 극대화하는 것이 좋습니다.

    고려해야 할 몇 가지 예제 시나리오 및 파이프라인은 다음과 같습니다.

    • 클러스터 배포, 패치 및 업그레이드
    • 애플리케이션 배포 및 업그레이드
    • 추가 기능 배포 및 유지 관리
    • 재해 복구를 위한 장애 조치(failover)
    • 파란색-녹색 배포
    • 카나리아 환경 유지 관리
  • 서비스 메시를 사용하여 워크로드에 더 많은 보안, 암호화 및 로그 기능을 추가하는 것이 좋습니다.

  • 배포 및 관련 아티팩트 추적을 통해 DevOps 환경을 지원하기 위해 구독, 태그 지정 및 레이블과 같은 다른 리소스를 배포하는 것이 좋습니다.

  • 가축 대 애완 동물 패러다임 변화의 영향을 고려합니다. Kubernetes의 Pod 및 기타 측면은 임시로 사용되며 그에 따라 자동화 및 파이프라인 인프라를 조정합니다. IP 주소 또는 기타 리소스를 고정하거나 영구적으로 사용하지 마세요.

디자인 권장 사항

AKS 플랫폼 자동화 및 DevOps에 대한 몇 가지 디자인 권장 사항은 다음과 같습니다.

  • 파이프라인 또는 작업을 사용하여 다음을 수행합니다.

    • 팀 전체에서 적용된 사례를 최대화합니다.
    • 휠을 재창조하는 부담을 상당 부분 제거합니다.
    • 전반적인 품질 및 민첩성에 대한 예측 가능성 및 인사이트를 제공합니다.
  • 트리거 기반 및 예약된 파이프라인을 사용하여 초기 및 자주 배포합니다. 트리거 기반 파이프라인은 변경 내용이 적절한 유효성 검사를 거치도록 보장하고 예약된 파이프라인은 변경 환경에서 동작을 관리합니다.

  • 애플리케이션 배포와 인프라 배포를 구분합니다. 핵심 인프라는 애플리케이션보다 덜 변경됩니다. 각 배포 유형을 별도의 흐름 및 파이프라인으로 처리합니다.

  • 클라우드 네이티브 옵션을 사용하여 배포합니다. 코드 제공 인프라(Infrastructure as code)를 사용하여 컨트롤 플레인을 포함한 인프라를 배포하고 HelmKubernetes의 운영자 패턴을 사용하여 Kubernetes 네이티브 구성 요소를 배포하고 유지 관리합니다.

  • GitOps를 사용하여 애플리케이션을 배포하고 유지 관리합니다. GitOps는 Git 리포지토리를 단일 소스로 사용하여 구성 드리프트를 방지하고 롤백 및 관련 절차 중에 생산성과 안정성을 높입니다.

  • Pod 관리 ID비밀 저장소 CSI 드라이버용 Azure Key Vault 공급자를 사용하여 비밀, 인증서 및 연결 문자열을 보호합니다.

  • 하드 코드된 구성 항목 및 설정을 방지하여 배포 동시성을 최대화하기 위해 노력합니다.

  • 인프라 및 애플리케이션 관련 배포에서 잘 알려진 규칙을 사용합니다. Kubernetes용 Azure Policy 추가 기능과 결합된 허용 컨트롤러를 사용하여 다른 정의된 정책 간에 규칙의 유효성을 검사하고 적용합니다.

  • 다음과 같이 왼쪽 시프트를 일관되게 수용합니다.

    • 보안, 파이프라인의 컨테이너 검색과 같은 취약성 검사 도구를 추가하여
    • 정책, 정책을 코드로 사용하고 허용 컨트롤러를 통해 클라우드 네이티브 방식으로 정책을 적용하여
  • 모든 실패, 오류 또는 중단을 전체 솔루션 품질을 자동화하고 개선할 수 있는 기회로 처리합니다. 이 접근 방식을 왼쪽 시프트 및 SRE(사이트 안정성 엔지니어링) 프레임워크에 통합합니다.