아키텍트: 웹 애플리케이션 개발에 대한 다른 접근 방식

2021년에 서버리스가 주류가 되기 시작했으며 kubernetes는 최고의 엔터프라이즈 네트워크 솔루션으로 부상했으며 React 웹 라이브러리는 가장 많이 찾는 프론트엔드 기술 세트입니다. 한편으로 프론트엔드 개발 세계는 프론트엔드 프레임워크에 대한 기술적 부채 대 규모의 복잡성으로 어려움을 겪고 있습니다. 백엔드 개발 측면에서는 효과적인 애플리케이션을 생성하기 위해 통합이 필요한 서비스의 양과 함께 규모의 복잡성이 있습니다. 이야기에는 확실히 더 많은 것이 있지만 요점은 이 시점에서 풀 스택 개발자가 되는 것이 가장 복잡하다는 것입니다.

이 포스트에서, 나는 당신을 흠칫하게 만들 수 있는 몇 가지 다른 접근 방식을 살펴보고 싶습니다. 반응의 힘이 필요합니까? 내 클라우드 인프라를 관리해야 합니까? 커스텀 CSS를 만들어야 하나요? 내 웹 서버에 기능 이상이 필요합니까? 대체 접근 방식을 살펴볼 가치가 있습니다.

건축가



Architect는 여러 서버 런타임을 지원하는 독단적인 서버리스 프레임워크이지만 이 게시물의 목적을 위해 NodeJS에 중점을 둘 것입니다. Architect는 클라우드 형성의 복잡성, aws의 스키마 언어를 사용하여 명확하고 간결한 선언적 사양으로 압축합니다. 구성 파일을 보면 무슨 일이 일어나고 있는지 정확히 알 수 있습니다.

@app
myapp

@http
get /
post /assets
delete /assets/:id


여기에 세 가지 끝점을 지원하는 서버리스 애플리케이션이 있습니다.
  • get/
  • 게시물/자산
  • /assets/:id 삭제

  • 이 간단한 구성에서 설계자는 서버리스 기능 핸들러 arc init 및 aws 클라우드 형성 스크립트를 생성하여 서버리스 애플리케이션을 배포할 수 있습니다. 아크 배치

    이는 모든 일반 작업을 처리하고 개발자가 응용 프로그램과 관련된 특수 작업에 집중할 수 있는 권한을 부여하는 서버리스에 대한 선언적 접근 방식입니다.

    어떻게 작동합니까?



    arc init를 호출하면 건축가는 다음 디렉터리를 생성합니다.
  • /src/http/get-index
  • /src/http/post-assets
  • /src/http/delete-assets-000id

  • 이러한 각 디렉터리에는 AWS Lambda에 대한 핸들러 함수가 포함된 index.js 파일이 있습니다.

    exports.handler = async function http(req) {
    
      return {
        statusCode: 200,
        headers: ...,
        body: '<h1>Hello World</h1>'
      }
    }
    


    이 함수는 들어오는 http 요청을 나타내는 Request 개체를 제공하고 Response 개체가 반환될 것으로 예상합니다. Response 개체는 선택적인 http 상태 코드 및 http 헤더와 함께 본문을 포함해야 합니다.

    이러한 각 디렉터리는 다른 AWS Lambda 함수로 배포되며 수신 서비스, 로드 밸런서, IP 포트, 웹 프록시 및 웹 서버에 대해 생각할 필요 없이 놀라운 확장성을 제공합니다. 함수를 생성하면 호출되고 응답을 반환합니다.

    공유 라이브러리는 어떻습니까?



    Architect에는 공유 라이브러리 코드를 넣을 수 있는 몇 가지 규칙이 내장되어 있습니다. (각 규칙은 원하는 경우 arc 매니페스트 파일을 통해 구성할 수 있음)
  • src/shared 디렉토리(내용이 모든 람다에 복사됨)
  • src/views 디렉토리(내용이 @http GET 람다에만 복사됨)

  • 람다 함수에 포함할 수 있습니다.

    const template = require('@architect/shared/template')
    
    exports.handler = async function http(req) {
      ...
    }
    


    결과적으로 문제가 명확하게 분리되고 응용 프로그램에 범용 재사용성을 제공합니다.

    로컬 환경에서 실행



    서버리스의 문제 중 하나는 로컬 개발 환경에서 실행할 수 있다는 것입니다. 이것은 아키텍트의 문제가 아닙니다.

    설정 가져오기



    건축가와 설정하는 데 약간의 작업이 필요합니다.

    필요할 것이예요:
  • AWS 계정
  • NodeJS —  https://nodejs.org
  • AWS CLI —  https://aws.amazon.com/cli/

  • 요약



    건축가는 선언적 개념을 활용하여 웹 서버와 같은 도전 과제를 해결하고 AWS 서비스를 활용하여 확장 가능한 기존 접근 방식을 만들었습니다. 아키텍트와 함께 풀어야 할 것이 더 많습니다. 자세한 내용은 https://arc.codes을 확인하십시오.

    좋은 웹페이지 즐겨찾기