서버 없는 인프라스트럭처 맵을 생성하는 방법 및 이유

6441 단어 tutorialawsserverless
지난주에 나는 회사의 기술 지원팀에 우리가 개발하고 있는 신제품을 소개하는 소개 수업을 했다.
신제품은 우리가 이전에 구축한 다른 제품과는 완전히 다르다. 기술 창고, 프로그래밍 언어, 배치 방법은 다르다고 할 수 있다.
지원 엔지니어는 저장소의 구조를 탐색할 때 "배치할 때 어떤 모습인지 보여주는 그래프가 있습니까?"라고 물었습니다.
나는 1분 동안 이 문제를 생각했다. 나는 약 30개의 다른 도표로 응용 프로그램의 서로 다른 구조 부분을 묘사했지만 실제 배치된 내용을 묘사한 도표는 많지 않았다.
만약 내가 그것들을 가지고 있다면 그것들은 틀림없이 신선하지 않을 것이다.
도표를 구축하는 데 시간이 많이 걸릴 수 있습니다. 특히 구축 infrastructure diagram 시에.기초 구조도는 마이크로 서비스나 응용 프로그램에 포함된 모든 내용을 설명해야 한다.시간의 추이에 따라 도표는 코드의 발전에 따라 발전해야 한다.
서비스 수준별 요약을 제공하므로 기술 지원 팀에게 매우 유용합니다.그것은 다른 사람들이 더욱 쉽게 일을 완성하도록 도와줄 수 있다.
하지만 이것은 유지해야 할 부담일 수도 있다.규모가 방대한 마이크로서비스에서는 인프라스트럭처 맵에 포함된 내용과 포함되지 않은 내용을 추적할 수 없습니다.
그래서 나는 두뇌 폭풍을 일으키기 시작했다.더 쉬운 방법이 있어야 한다.
나는 항상 밀어automation.어리석은 실수를 저지르지 않도록 인위적인 요인을 최대한 줄여라.만약 내가 자동으로 기초 구조도를 구축할 수 있는 방법이 있다면, 우리는 항상 최신 규범을 가지고 있으며, 이것은 개발자의 업무량을 증가시키지 않을 것이다.
사실이 증명하듯이, 너는 할 수 있다!CI 파이프라인에 추가하는 것은 비교적 간단하고 배치된 것을 쉽게 설명할 수 있다serverless application.CI 파이프라인에 간단한 내용을 추가하면 저장소 자술 파일에 기초 구조도를 표시하고 구축할 때마다 업데이트할 수 있습니다.

소스 오픈 패키지


SAM, CDK 또는 CloudFormation 템플릿에서 도표를 만들기 위해 cfn-dia라는 소스 패키지를 사용합니다.
이 패키지는 완전히 정의된 템플릿을 옮겨다니며 모든 AWS 자원을 식별하고 모든 발견 내용을 포함하는 도표를 만들 것입니다.CI 자동화를 위해 두 단계를 수행합니다.
  • 드로잉을 생성합니다.io 그림
  • 도표
  • 에서 png 생성
    cfn dia 패키지는 추첨을 구성합니다.자동으로 IO 그래프를 그립니다.그림% 1개의 캡션을 편집했습니다.이러한 전환을 촉진하기 위해서, 우리는 draw.io-export 라는 소스 오픈 프로그램을 사용할 것이다.
    추첨하다.io 패키지를 내보내는 데 시간이 걸립니다.drawio 파일을 png으로 변환합니다.png이 생기면 자술 파일에 쉽게 추가하고 이미지 교체를 통해 업데이트할 수 있습니다.
    이 과정은 모든 구성 요소를 자원 형식과 이름으로 표시하는 아름다운 마이크로 서비스 그림을 보여 줍니다.

    CI 파이핑 업데이트


    이 문서에서는 이미 어떤 CI 파이프를 사용하고 있다고 가정합니다.만약 네가 아니었다면, 이것은 아마도 시작된 하루였을 것이다!나는 이미 해냈다set one up in AWS in 5 minutes and 58 seconds.
    자동화 도표 생성의 첫 번째 단계는 구축 이미지를 업데이트하는 것이다.이것은 선택할 수 있지만 강력히 추천합니다.
    cfn 지름 및 시트 설치를 방지합니다.io에서 구축을 실행할 때마다 구축 이미지에 이 패키지를 설치하는 것이 중요합니다.
    구축 이미지를 제어할 수 없거나, 실행할 때마다 패키지를 설치하는 것에 관심이 없으면, 이 전제 변경 없이 계속할 수 있습니다.우리가 작성한 구축 스크립트에서 작은 업데이트가 처리될 것입니다.만약 당신이 정말로 그것을 갱신하고 싶다면 Docker has some instructions 당신은 따라갈 수 있습니다.
    파이핑에 추가해야 하는 구성 스크립트는 다음과 같습니다.
    cfn-dia draw.io -t template.yaml -c -o diagrams/diagram.drawio 
    drawio diagrams/diagram.drawio -o diagrams/diagram.png
    git add -u
    git commit -m "[skip ci] Updating infrastructure diagram with latest changes."
    git push
    
    첫 번째 명령은 드로잉을 구성하는 것입니다.저장소의 템플릿 파일에서 온io 도표입니다.템플릿에 차트에 포함하지 않으려는 자원 유형이 포함되어 있는 경우 -e 명령을 사용하여 제외할 유형을 지정할 수 있습니다.예를 들어, 트랜잭션 정책을 차트에 표시하지 않으려면 다음과 같이 명령을 업데이트할 수 있습니다.
    cfn-dia draw.io -t template.yaml -c -o diagrams/diagram.drawio -e AWS::IAM::ManagedPolicy
    
    스크립트의 다음 명령은drawio 그림을 png으로 변환하고 diagrams 폴더에 추가합니다.
    마지막으로, 우리는 자동으로 업데이트된 파일을 원본 코드 관리에 추가할 것입니다.제출 메시지에 짧은 말[skip ci]이 포함되어 있음을 주의하십시오.제출 메시지에 이 단어를 포함하면 구축이 다시 터치되지 않도록 하고 무한 구축 순환에 들어가지 않도록 합니다.!
    주의 - 구축 이미지cfn-diadraw.io-export를 설치하지 않으려면 이 구축 스크립트를 업데이트해야 합니다.처음에 npm install -g cfn-dianpm install -g draw.io-export를 포함한다.

    읽어보기 파일 업데이트


    현재 그래프와 알고 있는 디렉터리가 저장되어 있습니다. 저장소의 자술 파일을 업데이트해서 포함할 수 있습니다.다음은 로컬 이미지를 표시하는 방법을 보여 주는 자술한 예입니다.
    # My Example Microservice
    
    ## Description
    This is an example README for **Gopher Holes Unlimited** - a fake business but real API that tracks two things:
    1. Gophers
    2. Holes
    
    ## Infrastructure
    ![Infrastructure Diagram](/diagrams/diagram.png)
    
    *Resources currently deployed in Production. This diagram was automatically generated in the CI pipeline*
    
    ## Source
    If you want to check out the source, please visit our [GitHub page](https://github.com/allenheltondev/gopher-holes-unlimited)
    
    읽어보기 파일이 저장소의 파일을 가리키면 차트가 업데이트될 때마다 자동으로 변경 내용이 반영됩니다.그래서 구축이 실행될 때마다 도표가 업데이트되고 자술 파일도 업데이트됩니다!

    선택 사항


    drawio 파일을 사용하지 않기 때문에 .gitignore 에 추가할 수 있습니다.이것은 그것이 환매 협의에 포함되지 않은 부품이 아니라는 것을 확보할 것이다.
    또한 CI 파이프가 아닌 수동으로 그래프를 구축하기를 원한다면 문제가 없습니다.package.jsonformy repo에 구축 스크립트를 추가했습니다. 이렇게 하면 제가 현재 구축한 내용을 신속하게 볼 수 있도록 필요에 따라 구축할 수 있습니다.
    "scripts": {
        "diagram": "cfn-dia draw.io -t template.yaml -o diagrams/diagram.drawio -c && drawio diagrams/diagram.drawio -o diagrams/diagram.png"
    }
    
    package.json에 포함된 스크립트를 사용하면 npm run diagram 명령을 실행하여 기초 구조도를 구축하고 다이어그램 폴더에 수동으로 추가할 수 있습니다.

    결론


    인프라스트럭처 다이어그램은 어플리케이션에 관심을 가진 모든 엔지니어에게 도움이 됩니다.환매 협의가 시각적으로 포함된 내용을 보면 게임 규칙을 바꿀 수 있다.
    SAM 및 CloudFormation 템플릿은 수천 줄로 구성될 수 있습니다.파이프를 구축하는 데 자동적으로 도표를 만드는 것보다 더 좋은 가시화 방법이 어디 있겠습니까?
    나는 이것이 당신이 구축하고 있는 내용을 설명하고 그것을 필요로 하는 모든 사람에게 유용한 문서를 제공하는 데 도움이 되기를 바랍니다.
    행운을 빕니다!

    좋은 웹페이지 즐겨찾기