Serverless

5451 단어 번역하다
https://opensource.com/article/18/11/open-source-serverless-platforms

7 개의 오픈 소스 플랫폼부터 서버 없는 컴퓨팅 사용


Serverless computing은 기존의 소프트웨어 개발을 바꾸고 있습니다.이러한 오픈 소스 플랫폼은 당신이 입문하는 데 도움을 줄 것입니다.


최근 서버리스라는 단어가 갈수록 많은 대화에 등장하고 있다.먼저 이 개념과 이와 관련된 몇 가지 것, 예를 들어 서버 계산과 서버 플랫폼이 없다는 것을 이해하자.
Serverless는 FAAS로 자주 사용됩니다.서버리스는 서버가 없다는 게 아니라사실상 서버가 매우 많고 심지어 성능도 매우 강하다. 이것은 공공 클라우드 공급자에게 응용 프로그램을 배치, 운행, 관리하는 서버를 제공한다.
Serverless computing은 신흥 기술로 개발자가 소프트웨어를 구축하고 납품하는 방식을 바꾸었다.그것은 인프라 시설과 코드를 분리하여 개발 과정을 간소화하고 원가를 낮추며 효율을 높인다.저는 Serverless computing과FaaS가 기업 IT의 다음 시대, 클라우드 로컬 서비스와 혼합 클라우드를 정의하는 데 중요한 역할을 할 것이라고 믿습니다.
Serverless 플랫폼은api를 제공하여 사용자가 코드 함수(조작이라고도 부른다)를 실행하고 모든 함수의 결과를 되돌려줍니다.서버 없는 플랫폼은 개발자가 함수 결과를 검색할 수 있도록 HTTPS 터미널도 제공한다.이 단말기들은 다른 함수의 입력으로 사용할 수 있으며, 관련 함수의 트리거 이벤트 (또는 링크) 를 제공할 수 있다.
대부분의 서버less 플랫폼에서 사용자는 함수를 실행하기 전에 함수를 배치하거나 생성합니다.서버리스 플랫폼은 필요할 때 이 함수를 실행하기 위해 필요한 모든 코드를 가지고 있습니다.serverless 함수의 실행은 사용자가 명령을 통해 수동으로 호출할 수도 있고 이벤트 원본으로 촉발할 수도 있습니다. 이 이벤트 원본은cron 작업 경고, 파일 업로드 또는 다른 이벤트에 응답할 때 활성화 함수로 설정됩니다.

다음 7개의 소스 오픈 플랫폼은 서버리스 컴퓨팅을 제공한다


 

  • Apache OpenWhisk는 서버가 없는 소스 클라우드 플랫폼으로 모든 규모의 이벤트 응답에서 코드를 실행할 수 있습니다.Scala 언어로 작성되었습니다.프레임워크는 HTTP 요청과 같은 트리거 이벤트에 응답하고 JavaScript 또는 Swift 코드 세션을 실행합니다
  • Fission은 서버리스 컴퓨팅 프레임워크로 개발자가 Kubernetes를 사용하여 함수를 구축할 수 있도록 한다.프로그래머가 모든 프로그래밍 언어로 함수를 작성하고 HTTP 요청과 같은 이벤트 트리거와 매핑할 수 있도록 합니다
  • IronFunctions는 기존의 서비스와 Docker를 통합하여 마이크로서비스를 제공하는 서버리스 컴퓨팅 프레임워크이다.그는 개발자에게 Go 언어로 함수를 작성하라고 요구했다
  • Fn Project는 컨테이너 로컬화 서버 플랫폼으로 어디서나 클라우드에서 또는 로컬에서 실행할 수 있습니다.그것은 사용하기 쉽고 모든 프로그래밍 언어를 지원하며 높은 확장성과 고성능을 가지고 있다
  • OpenLambda는 아파치가 권한을 부여한 Linux 기반 용기로 Go로 서버less 컴퓨팅 프로젝트를 작성합니다.OpenLambda의 주요 목표는 새로운 서버리스 컴퓨팅 방법을 탐색하는 것입니다
  • Kubeless는kubernets의 원생 서버less 프레임워크로 세분화된 코드를 배치할 수 있으며 밑바닥 인프라를 걱정할 필요가 없습니다.Kubernetes 리소스를 활용하여 자동 줌, API 라우팅, 모니터링, 장애 복구 등의 기능을 제공합니다
  • OpenFaas는 Docker와 Kubernetes를 이용하여 서버리스 기능을 구축하는 프레임워크로 metrics에 일류의 지원을 제공한다.모든 프로그램을 함수로 묶어서 템플릿 코드를 반복해서 작성할 필요가 없이 일련의 웹 이벤트를 사용할 수 있습니다

  • Kubernetes는 서버리스와 마이크로서비스를 관리하는 가장 유행하는 플랫폼으로 세분화된 배치 모델을 사용하여 작업 부하를 더욱 빠르고 쉽게 처리할 수 있다.Knative 서비스를 사용하면 Kubernetes에서 서버가 없는 응용 프로그램과 함수를 구축하고 배치할 수 있으며 Istio를 사용하여 고급 장면을 확장하고 지원할 수 있습니다. 예를 들어 다음과 같습니다.
  • 서버 없는 용기를 신속하게 배치합니다
  • 자동으로 용량을 확대하거나 0으로 축소한다
  • Istio 구성 요소의 루트와 네트워크 프로그래밍
  • 코드와 설정된 실시간 스냅샷

  • Knative 소자 초점 거리는 로컬 클라우드에서 응용 프로그램을 구축하고 실행하는 방법을 해결하는 데 도움이 됩니다.예를 들어 운행행 서비스를 이벤트 생태계에 귀속시키고 배치 기간의 루트와 데이터 관리, 수요에 따라 자동으로 확장하고 작업 부하의 크기를 조정한다.Istio는 개방적인 플랫폼으로 마이크로서비스를 효과적으로 연결하고 보호할 수 있으며 여러 역할의 상호작용을 고려하는 구조를 설계한다. 이는 개발상, 운영자와 플랫폼 공급자를 포함한다.
    예를 들어 Knative 서비스를 사용하여 로컬 Minishift 플랫폼에 서버 부하가 없는 JavaScript를 배치할 수 있습니다. 코드 세션은 다음과 같습니다.
    ## Dockerfile
    
    FROM bucharestgold/centos7-s2i-nodejs:10.x
    
    WORKDIR /opt/app-root/src
    
    COPY package*.json ./
    
    RUN npm install
    
    COPY . .
    
    EXPOSE 8080 3000
    
    CMD ["npm", "start"]
    
    
    
    
    
    ## package.json
    
    {
    
      "name": "greeter",
    
      "version": "0.0.1",
    
      "private": true,
    
      "scripts": {
    
        "start": "node app.js"
    
      },
    
      "dependencies": {
    
        "express": "~4.16.0"
    
      }
    
    }
    
    
    
    ## app.js
    
    var express = require("express");
    
    var app = express();
    
    
    
    var msg = (process.env.MESSAGE_PREFIX || "") + "NodeJs::Knative on OpenShift";
    
    
    
    app.get("/", function(req, res, next) {
    
      res.status(200).send(msg);
    
    });
    
    
    
    app.listen(8080, function() {
    
      console.log("App started in port 8080");
    
    });
    
    
    
    ## service.yaml
    
    apiVersion: serving.knative.dev/v1alpha1
    
    kind: Service
    
    metadata:
    
      name: greeter
    
    spec:
    
      configuration:
    
        revisionTemplate:
    
          spec:
    
            container:
    
              image: dev.local/greeter:0.0.1-SNAPSHOT

     
    로컬 Kubernetes 플랫폼에서 Node를 구축합니다.js 서버less 응용 프로그램을 설치하고 서비스를 배치하기 전에 Knative, Istio, Knative 구성 요소를 미리 설치해야 합니다.
    1. 다음 명령을 사용하여 Docker 데몬에 연결합니다.
    (minishift docker-env) && eval(minishift oc-env)

    2. Jib 명령을 사용하여 serverless 응용 프로그램 컨테이너 이미지를 구축합니다.
    ./mvnw -DskipTests clean compile jib:dockerBuild
    

    3. 把serverless服务Minishift部署到您的Kubernetes集群:

    kubectl apply -f service.yaml

    결어


    위의 예는 로컬 클라우드 플랫폼 (예를 들어 Kubernetes, Knative 서비스, Istio) 을 사용하여 서버 없는 응용 프로그램을 개발하는 방법을 보여 준다.
    /article/18/11/open-source-serverless-platforms

    좋은 웹페이지 즐겨찾기