운영 측면에서 애플리케이션 구성

모든 소프트웨어 응용 프로그램에는 약간의 설정이 있을 것이다.이 글은 조작의 측면에서 볼 때, 그것의 도전과 그것을 더욱 잘 관리하는 방법에 관한 것이다.

Operations here simply means the process of running a software application in any environment like Dev, Test, UAT, Prod, etc.


우선, 여기서 토론하는 것이 어떤 배치인지, 그리고 도전이 무엇인지 알아보자.

문제


구성은 소프트웨어를 수정하지 않고 다음 두 가지 기능을 제공합니다.
  • 행동을 바꾸는 능력
  • 외부 입력을 제공하여 같은 소프트웨어가 서로 다른 환경에서 작동하거나 데이터베이스 연결 설정과 같은 서로 다른 속성을 사용하여 데이터베이스의 다른 실례에서 작동하도록 한다.
  • 구성 가능성은 복잡성을 증가시켰지만 변화에 신속하게 적응해야 한다. 특히 소프트웨어 제품에서 소프트웨어 제품은 서로 다른 유형의 환경에서 서로 다른 용례를 만족시켜야 한다.구성 가능성은 이러한 수요를 신속하게 만족시킬 수 있는 능력을 제공한다.
    구성에는 다음과 같은 두 가지 유형이 있습니다.
  • 최종 사용자가 설정한 설정
  • 운영 팀
  • 에 의해 구성
    #1 일반적으로 엔드 유저가 적절하게 기록하고 관리#2는 다음과 같은 몇 가지 문제가 있습니다.
  • 개발 과정에서 개발자들은 항상 설정을 추가한다. 그들은 어떤 정확한 값이어야 하는지 잘 알고 있지만 조작팀/인원은 이 점을 하지 않았거나 하지 못했다.
  • 솔루션이 증가함에 따라 구성의 수량도 증가하고 있으며 새로운 환경을 구축하려면 매우 어려워진다.사람들은 항상 이런 상황을 겪는다. 팀 중 한두 명만 새로운 환경에서 소프트웨어를 실제로 설치할 수 있다.이것은 소프트웨어 제품의 심각한 병목일 수 있으며 고객에게 신속하게 제품을 제공하는 능력을 떨어뜨릴 수 있다.
  • Biller 조직의 간단한 파일 프로세서를 예로 들어 보겠습니다.파일 프로세서는 계산서 조직을 대표하여 지불을 받는 파트너가 업로드하는 일일 거래 파일을 처리하고 계산서 조직에 거래 상세 정보를 제공하여 계산서 조직이 지불을 반영하기 위해 시스템을 업데이트할 수 있도록 한다.

    파일 프로세서에서 다음을 수행합니다.
  • FTP 파일 공유에서 파일 읽기
  • 데이터베이스 업데이트
  • 원본 파일을 아카이브에 저장하고 성공적으로 처리하며 파일 처리가 실패하고 실패하며 각 파일이 처리하는 로그를 네트워크 공유의 로그 디렉터리에 저장합니다.
  • 두 가지 모드로 실행할 수 있습니다. (a) 파일의 모든 항목을 하나의 사무 처리로 설정할 수 있습니다. 실패할 항목은 실패한 항목에 쓰지만, 전체 파일을 하나의 사무 처리로 유지합니다. 즉, 전체 파일을 성공적으로 처리하거나 전체 파일을 실패로 표시합니다.
  • 필요한 구성 매개 변수를 살펴보겠습니다.
  • 데이터베이스 연결 설정
  • FTP 공유 액세스 설정
  • 아카이브, 성공, 실패 및 로그 공유 경로
  • 거래 모델을 제어하는 표지 - 파일 또는 프로젝트
  • 이것은 모든 환경과 모든 합작 파트너 중에서 설정해야 하며, 실제 시스템에서 이러한 작업이 많이 있을 것이다.

    완화 조치


    구성 가능성은 유익하고 필수적이기 때문에 위에서 논의한 문제를 완전히 없앨 수는 없지만, 아래에서 보듯이 더 쉽게 관리할 수 있는 방법이 있습니다. 이것은 상세한 목록이 아닙니다.

    로깅 구성


    각 매개변수를 구성 파일 자체에 기록하거나 데이터베이스에 열을 추가합니다 (데이터베이스에 저장된 경우).
    구성 파일은 다음과 같이 예제를 계속합니다.
    # USE: Control transaction mode of the processing.
    # EXPECTED VALUE:
    #  ITEM - Consider each item as one transaction
    #  FILE - Consider entire file to be one transaction
    app.transaction-mode: ITEM
    #
    # USE: Store original files after processing
    # EXPECTED VALUE: Full path to the directory
    app.archive-path: <some path>
    #
    # USE: Store failed files after processing
    # EXPECTED VALUE: Full path to the directory
    app.failed-path: <some path>
    
    이것은 코드 심사 과정의 일부분으로 코드 심사 과정에서 충분한 문서가 없는 새로운 설정은 받아들여지지 않는다.
    이것은 설정값이 필요한 곳에서 무엇을 해야 하는지 누구나 잘 알 수 있도록 보장할 것이다.

    구성 우선 순위 지정


    많은 프레임워크는 구성에 우선순위를 두어 필요한 구성 템플릿 코드 양을 줄입니다. 모든 MVC 프레임워크는 이러한 모드를 따릅니다.이것은 응용 프로그램 설정에도 적용된다.
    위의 예제에서는 구성의 수를 줄일 수 있습니다.
    # USE: Control transaction mode of the processing. Set if you want to change Default.
    # EXPECTED VALUE:
    #  ITEM - Consider each item as one transaction
    #  FILE - Consider entire file to be one transaction
    # DEFAULT: ITEM.
    # app.transaction-mode: ITEM
    #
    # USE: Store output files after processing. Program will create Archive, Success, Failed and Log directory under this path.
    # EXPECTED VALUE: Full path to the directory
    app.output-path: <some path>
    
    감소는 다음 두 가지 관례 때문입니다.
  • 설정하지 않으면 기본 거래 모델이 프로젝트라고 가정합니다.따라서 기본값을 변경하려면 매개 변수를 설정하기만 하면 됩니다.일반적인 예상 값에 따라 기본값을 정할 수 있습니다.
  • 네 개의 디렉터리 경로를 선택하지 않고 루트 경로를 선택한 다음 항상 그 아래에 디렉터리를 만듭니다. Archive, Success, Failed, Log.이것은 약간의 유연성을 낮출 수 있지만 유지 보수성을 높일 수 있다.
  • 오류 감지 스크립트 / 도구


    응용 프로그램이 100s 또는 1000s 데스크톱에서 실행되고 (또는 간단하게 말하면 서버든 데스크톱이든) 이 시스템에 상주하도록 설정하면 문제를 해결하기 어려울 것입니다. 이 시스템에 접근할 수 없고 모든 설정 참수가 정확한지 확인할 수 없기 때문입니다.구성을 스캔하고 문제를 강조 표시할 수 있는 스크립트나 유틸리티가 있으면 작업에 큰 도움이 됩니다.

    AWS has a service named AWS Config which can be configured to monitor compliance to a desired configuration of your environment. It will highlight if it detects any violation from the desired state e.g., it is configured to monitor that only port 443 should be open on EC2 Instances so it will raise an alert if it finds some other port open on the server.


    컨테이너화 배치 중 배치


    용기는 프로그램이 설치된 이미지부터 시작합니다.현재 설정이 응용 프로그램과 함께 이미지에 포함되면 환경이나 설정 변경마다 이미지가 필요합니다.
    따라서 구성은 외부화되어야 합니다.흔히 볼 수 있는 패턴은 설정을 저장소,vault,공유 저장소 등에 저장하고 용기에 환경 변수를 설정하여 저장소에 응용 프로그램 접근 파라미터를 제공하는 것이다.

    단일 페이지 응용 프로그램의 구성


    동적 구성은 SPA에서 간단하지 않습니다. 예를 들어, 특정 환경에서 일부 기능을 전환하려면 SPA를 구축할 때 사용하는 API 노드가 아니라 동적으로 사용해야 합니다.
    SPA가 번들로 묶여 있고 로그인 페이지에서 참조되기 때문입니다.브라우저는 서버에서 번들 파일을 읽어들이고 실행하여 SPA를 로드하고 주기를 시작합니다.따라서 SPA는 완전히 클라이언트(즉 브라우저)에서 실행되며 서버나 데스크톱에 설치된 프로그램처럼 설정을 주입할 수 없습니다.
    이것article은 각도 측정에서의 문제와 가능한 해결 방안을 설명했다.

    결론


    관건은 고도의 설정 가능한 소프트웨어를 실행하는 것도 도전일 수 있다는 것이다. 설정 가능성은 자산이 아니라 부담이 될 수 있다.관리 설정도 설계와 개발 기간의 표준이어야 한다.

    좋은 웹페이지 즐겨찾기