5分钟将Node应用部署到SAP云平台Cloud Foundry

5分钟将Node应用部署到SAP云平台Cloud Foundry

阅读这篇blog大约需要5分钟

SAP云平台是SAP为客户提供的PaaS平台,其主要的目标是帮助客户和合作伙伴在最短的时间内开发出创新的云应用。这里是网址:

SAP云平台是完全基于PaaS开源标准平台Cloud Foundry之上的。CloudFoundry是业界的PaaS平台的标准平台,能够帮助开发人员快速部署扩展,无需操心基础架构的问题:

在这里插入图片描述

Test your code, or your users will.

今天主要通过把一个Node.js应用部署到SAP云平台,来感受一下它的强大和方便。

主要包含这些步骤:

  1. 准备工作
  2. 查看SAP CF标准支持的Buildpacks
  3. Node.js应用
  4. 云平台部署配置文件
  5. 部署应用
  6. 测试运行

准备工作

  1. 免费注册一个SAP云平台账号。
    在SAP云平台官网免费注册,具体步骤这里就不重复了。

  2. 安装CloudFoundry命令行工具(CLI)
    CLI的主页下载安装。

查看SAP CF标准支持的Buildpacks

  1. 通过cli登录云平台
cf login

按提示输入云平台trial账户地址,用户名,密码等。

  1. 查看SAP云平台支持的buildpacks:
cf buildpacks

可以看到输出:

Getting buildpacks...

buildpack                 position   enabled   locked   filename                                             stack
staticfile_buildpack      1          true      false    staticfile_buildpack-cached-cflinuxfs3-v1.5.1.zip    cflinuxfs3
java_buildpack            2          true      false    java_buildpack-cached-cflinuxfs3-v4.26.zip           cflinuxfs3
ruby_buildpack            3          true      false    ruby_buildpack-cached-cflinuxfs3-v1.8.2.zip          cflinuxfs3
dotnet_core_buildpack     4          true      false    dotnet-core_buildpack-cached-cflinuxfs3-v2.3.2.zip   cflinuxfs3
nodejs_buildpack          5          true      false    nodejs_buildpack-cached-cflinuxfs3-v1.7.4.zip        cflinuxfs3
go_buildpack              6          true      false    go_buildpack-cached-cflinuxfs3-v1.9.3.zip            cflinuxfs3
python_buildpack          7          true      false    python_buildpack-cached-cflinuxfs3-v1.7.2.zip        cflinuxfs3
php_buildpack             8          true      false    php_buildpack-cached-cflinuxfs3-v4.4.2.zip           cflinuxfs3
binary_buildpack          9          true      false    binary_buildpack-cached-cflinuxfs3-v1.0.35.zip       cflinuxfs3
nginx_buildpack           10         true      false    nginx_buildpack-cached-cflinuxfs3-v1.1.1.zip         cflinuxfs3
r_buildpack               11         true      false    r_buildpack-cached-cflinuxfs3-v1.1.0.zip             cflinuxfs3
sap_java_buildpack        12         true      false    sap_java_buildpack-v1.21.0.zip
sap_java_buildpack_1_21   13         true      false    sap_java_buildpack-v1.21.0.zip
sap_java_buildpack_1_20   14         true      false    sap_java_buildpack-v1.20.1.zip
sap_java_buildpack_1_19   15         true      false    sap_java_buildpack-v1.19.0.zip

Node.js应用

创建一个简单Node应用:

  1. 初始化:
node init -y
touch server.js

2.创建server.js:

const http = require('http');
const url = require('url');

const PORT = process.env.PORT || 3000;

http.createServer(
    (req, res) => {
        const urlP = url.parse(req.url, true);
        
        res.writeHead(200, {'Content-Type': 'text/plain'});

        if (urlP.query['name']) {
            res.end(`Hello ${urlP.query['name']}`);
        }else {
            res.end('USAGE: http://localhost:3000?name=##');
        }
    }
    
).listen(PORT);

console.log('Server is running');
  1. 修改package.json:
"scripts": {
    "start": "node server.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  1. 本地测试运行:
npm start

云平台部署配置文件

在项目目录下新建一个manifest.yml文件:

---
applications:
- name: exp04
  random-route: true
  path: .
  buildpack: nodejs_buildpack
  memory: 64M

部署应用

通过简单的这个命令即可自动上传代码、编译、部署:

cf push

输出:

Pushing from manifest to org P20056789trial_trial / space dev as [email protected]...
Using manifest file /Users/myuser/Documents/projects/apps/node/exp04/manifest.yml
Deprecation warning: Use of 'buildpack' attribute in manifest is deprecated in favor of 'buildpacks'. Please see https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html#deprecated for alternatives and other app manifest deprecations. This feature will be removed in the future.

Getting app info...
Updating app with these attributes...
  name:                exp04
  path:                /Users/myuser/Documents/projects/apps/node/exp04
  buildpacks:
    nodejs_buildpack
  disk quota:          1G
  health check type:   port
  instances:           1
  memory:              64M
  stack:               cflinuxfs3
  routes:
+   exp04-shy-leopard.cfapps.eu10.hana.ondemand.com

Updating app exp04...
Mapping routes...
Comparing local files to remote cache...
Packaging files to upload...
Uploading files...
 746 B / 746 B [==================================================================================================] 100.00% 1s

Waiting for API to complete processing files...

Staging app and tracing logs...
   Downloading nodejs_buildpack...
   Downloaded nodejs_buildpack
   Cell 9a366102-e83e-4812-a660-bb95979125bc creating container for instance 4a733482-3341-436f-a089-2660d88ee08b
   Cell 9a366102-e83e-4812-a660-bb95979125bc successfully created container for instance 4a733482-3341-436f-a089-2660d88ee08b
   Downloading app package...
   Downloaded app package (746B)
   -----> Nodejs Buildpack version 1.7.4
   -----> Installing binaries


...


Waiting for app to start...

name:                exp04
requested state:     started
isolation segment:   trial
routes:              exp04-shy-leopard.cfapps.eu10.hana.ondemand.com
last uploaded:       Sun 09 Feb 10:32:43 CST 2020
stack:               cflinuxfs3
buildpacks:          nodejs

type:            web
instances:       1/1
memory usage:    64M
start command:   npm start
     state     since                  cpu    memory      disk          details
#0   running   2020-02-09T02:33:16Z   0.0%   2M of 64M   77.7M of 1G 

测试运行

打开浏览器,通过自动分配的地址测试:

exp04-shy-leopard.cfapps.eu10.hana.ondemand.com?name=test

小结

SAP云平台是基于标准CF的开放云平台,提供了对业界各种标准语言和环境的支持。可以快速的开发、部署和创新。

项目代码

n/a

参考阅读

发布了268 篇原创文章 · 获赞 62 · 访问量 103万+

猜你喜欢

转载自blog.csdn.net/starshus/article/details/104232166