카오스 미들웨어: Django 애플리케이션의 중단을 시뮬레이션하여 복원력 향상

복원력은 오늘날 소프트웨어의 핵심입니다. 응용 프로그램의 안정성에 기여하고 competitive advantage of your business 에서 중요한 역할을 합니다. 탄력적인 애플리케이션은 시간 초과, 지연 및 잘못된 서비스 응답을 처리하는 소프트웨어 패턴의 강점을 현명하게 활용합니다.

Uwe FriedrichsenDonald Firesmith과 같은 위대한 저자 및 발표자는 탄력적인 소프트웨어 설계에 대한 아이디어와 지식을 공유합니다. 이러한 기사에서는 장애를 극복하고 응용 프로그램 복원력을 멋진 방식으로 개선하는 소프트웨어 패턴을 설명합니다.

그러나 복원력 패턴을 배포하려면 개발자로서 구현을 확인해야 합니다. 검증의 땅을 만지면 일이 어려워 보인다.

카오스 엔지니어링 도구는 가상 머신 중지 또는 Kubernetes 클러스터에서 포드 종료와 같은 기능을 광고합니다. 여기서 "폭발 반경"이 높아집니다. 금요일 오후 2시에 탄력성 디자인 패턴을 탐색할 때 개발자가 예상하는 것보다 높습니다.

여기에서 Chaos Middleware 패키지가 실행됩니다. Cloud Bug Study에서는 버그가 있는 코드, 시간 초과 등의 오류 처리를 소홀히 하면 시스템의 대부분을 사용할 수 없게 된다고 설명합니다.
Chaos Middleware를 사용하면 난기류 조건에서 응용 프로그램을 던질 수 있습니다. 지연된 응답을 시뮬레이션하거나 오류를 발생시킬 수 있습니다. 필요할 때 중단을 활성화하고 특정 URL 경로에서 범위를 좁힙니다. Chaos Middleware는 금요일 오후에도 "폭발 반경"을 최소화하고 응용 프로그램의 복원력을 확인할 수 있는 기회를 제공합니다.

다음 섹션에서는 i) Django 애플리케이션의 설치 및 구성 프로세스 ii) 지연 및 애플리케이션 오류 시뮬레이션을 안내합니다. 시뮬레이션은 HTTP 헤더 요청 또는 Chaos Platform 제어 센터에 의해 활성화됩니다.

설치 및 구성



  • Django 애플리케이션용Chaos Middleware을 설치합니다.

     cd /path/to/your/django-application  # Enter your Django application
     venv/bin/activate  # Active virtual environment
     pip install -U proofdock-chaos-middleware-django
    


  • Django 애플리케이션을 구성합니다.

     # Activate the ``Chaos Middleware`` component by adding 
     # it to the MIDDLEWARE list in your Django settings
     MIDDLEWARE = [
       '..'
       'pdchaos.middleware.contrib.django.django_middleware.DjangoMiddleware',
       '..'
     ]
    
     # Set the Chaos Middleware settings
     CHAOS_MIDDLEWARE = {
       'CHAOS_MIDDLEWARE_APPLICATION_NAME': 'example-application-name',
       'CHAOS_MIDDLEWARE_APPLICATION_ENV': 'example-environment'
     }
    

  • 애플리케이션 시작

  • 지연 시뮬레이션


    x-proofdock-attack 요청 헤더를 설정하여 지연을 트리거합니다. Chaos Middleware는 이 헤더 내부의 모든 값을 감지합니다.

    헤더 값을 {"actions":[{"name":"delay","value":"15"}]} 로 설정합니다. 이 값은 시뮬레이션name과 시뮬레이션value을 초 단위로 설명합니다. 설명된 시뮬레이션은 응답을 15초 지연시킵니다.

    시뮬레이션을 위해 Postman 클라이언트를 사용하여 HTTP 요청을 시각화합니다.


    지연 시뮬레이션

    오류 시뮬레이션


    x-proofdock-attack 요청 헤더를 설정하여 예외를 발생시킵니다.

    헤더 값을 {"actions":[{"name":"fault","value":"Exception"}]} 로 설정합니다. 이 값은 시뮬레이션name 및 해당 시뮬레이션value을 발생할 예외의 정규화된 이름으로 설명합니다. 시뮬레이션은 Exception 를 올릴 것입니다.


    오류 시뮬레이션

    Azure DevOps 사용자를 위한 제어 센터



    이러한 공격을 제어하는 ​​보다 매력적인 방법은 Proofdock Chaos Platform 에서 제공하는 제어 센터를 사용하는 것입니다. Chaos Platform는 카오스 엔지니어링 기능으로 Azure DevOps를 확장합니다. 제어 센터를 사용하면 그래픽 사용자 인터페이스를 통해 애플리케이션 공격을 제어하고 애플리케이션이 구성된 공격을 캐시할 수 있습니다. Chaos Platform 에 관심이 있을 때 docs 을 확인하십시오.


    Azure DevOps의 제어 센터

    고맙습니다



    즐거운 시간을 보내시고 복원력에 대한 새로운 측면을 배우셨기를 바랍니다.

    우리는 독일에 위치한 소프트웨어 기술 회사Proofdock로 엔지니어가 보다 탄력적이고 안정적인 소프트웨어 제품을 구축할 수 있도록 지원합니다. Microsoft Azure용 Chaos Platform을 확인하고 시스템을 탐색하십시오.

    참조


  • GitHub에서 소스 코드를 확인하십시오.
  • Read the docs
  • Chaos Platform 설치
  • 좋은 웹페이지 즐겨찾기