

创建云原生 Node.js 应用程序
source link: http://www.ibm.com/developerworks/cn/cloud/library/create-nodejs-cloud-native-applications-with-yeoman-generators/index.html?ca=drs-&%3Butm_source=tuicool&%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

云原生技术设计为可在公共云、私有云和混合云环境中按需调整规模并增长。由于具备弹性且易于管理,这些技术在瞬息万变的技术环境中正变得越来越重要。
然而,构建云原生应用程序有时却因随之而来的种种难题不由得令人望而却步。确定要包含哪些技术以及如何对其进行配置是一项艰巨的任务,只有完成这项任务才能开始编码。根据 云原生计算基金会 的报告,实施和运行云原生应用程序的关键技术包括 Docker、Kubernetes、Helm 和 Prometheus。不仅如此,云原生应用程序通常是使用微服务架构构建的,这是一种分布式应用程序架构,包含多种独立运行的服务。
为简化云原生 Node.js 应用的构建过程,我们创建了一个开源 Yeoman 生成器来帮助您创建基于 Express 的全功能 Node.js 应用程序。此生成器对应于 CloudNativeJS.io 中所概述的模块,并且与这些模块直接保持一致。CloudNativeJS 是一个社区项目,可提供资产和工具来帮助您构建云原生 Node.js 应用程序,并将其部署至基于 Docker 和 Kubernetes 的云。
开源 Yeoman 生成器简化了 Node.js 开发过程
开源 Yeoman 生成器 generator-nodeserver 可创建基于 Express 的全功能 Node.js 应用程序项目,其中包括:
- Docker 文件,用于发布和开发容器。
- 具有替换值的 Helm 图表,用于部署至任何 Kubernetes 环境。
-
监视端点:
- Kubernetes 活性探针。
- Zipkin 用于端到端请求跟踪,以便发现瓶颈。
- Prometheus 用于直观显示各种应用组件中的性能问题。
- 带有火焰图的 App Metrics 用于深入探究各个独立的 Node.js 进程。
构建您的 Node.js 项目
既然您已了解了该生成器的作用,现在我们就使用它来进行设置。遵循以下步骤来安装和使用 generator-nodeserver,创建基于 Express 的 Node.js 服务器项目。
您可以使用标准工具(如,npm、Docker 和 Helm)构建/部署这些项目,也可以使用 IBM Cloud Developer Tools (IDT) 来简化这些任务。由 nodeserver 生成器创建的项目包含 npm 脚本,可帮助您安装和使用 IDT - 只需在 package.json 文件中查找 idt:* 脚本。
观看 Quick Start for IBM Cloud 上的视频,更清楚地了解 IDT 能够为您做些什么。
安装 Yeoman 生成器
- 使用以下命令安装 Yeoman:npm install -g yo
- 使用以下命令安装 nodeserver:npm install -g generator-nodeserver
运行 yo nodeserver
运行 "yo nodeserver" 时,生成器会提示您输入以下信息:
- Project name:指定项目名称。默认名称即当前目录名称。这是必需值。
- OpenApi document:指定 Swagger 文档的相对或绝对文件名,以指示项目生成代码。对于 Swagger 文档中定义的每个路由,将建立并注册路由存根。这是可选值。
- Choose IBM Cloud services:使用 "Y" 或 "N" 来指定是否要在项目中建立 IBM Cloud 服务支持。 如果指定 "Y",那么可以从列表中选择一个或多个 IBM Cloud 服务。选项包括:alert、appid、cloudant、mongo、object storage、postgre、push、redis 和 watson conversation。对于所选的每一项服务,将生成配置和访问脚手架代码。IBM Cloud 服务支持为可选。
您还可运行以下命令使用默认选项来创建应用程序:yo nodeserver --headless
默认设置如下:
- Project name :当前工作目录的名称
- OpenApi Document :false
- Choose IBM Cloud Services? :false
您可以在所有操作系统(Windows、macOS 和 Linux 等)上本地构建并运行生成的项目。
运行项目
执行以下步骤以在本地运行项目:
- 使用以下命令安装依赖项:npm install
- 使用以下命令启动服务器:npm start
执行以下步骤以在本地使用容器运行项目。我们使用 IBM Cloud Developer Tools,它可提供命令驱动式方法,用于创建、开发和部署项目,并在本地使用容器运行应用:
- 使用以下命令安装 IDT:npm run idt:install
- 使用以下命令构建 docker 镜像并安装依赖项:npm run idt:build
- 使用以下命令运行该应用程序:npm run idt:run
测试并调试应用
以下是在本地对应用程序进行测试和调试的几种简单方法:
- 使用 npm run idt:test 命令运行单元测试
- 以调试方式运行项目,以便使用 npm run idt:debug 命令连接调试客户端
- 开发期间在本地运行项目,然后转至 localhost:3000/appmetrics-dash,收集应用程序性能指标
- 转至 localhost:3000/health,检查应用程序运行状况
- 通过热重载运行项目:idt shell run-dev,然后转至 localhost:3000
生成的项目包含用于 IBM Cloud 上以下可用环境的部署配置:
- Kubernetes:项目包含 Helm 图表,用于部署到 Kubernetes。
- Cloud Foundry:项目包含清单,用于部署到 Cloud Foundry。
- Delivery Pipeline:项目包含工具链和管道定义,用于将 CI/CD 部署到 IBM Cloud。查阅Garage Method 以了解更多信息。
部署到 IBM Cloud
免费试用 IBM Cloud
利用IBM Cloud Lite 快速轻松地构建您的下一个应用程序。您的免费帐户从不过期,而且您会获得 256 MB 的 Cloud Foundry 运行时内存和包含 Kubernetes 集群的 2 GB 存储空间。了解所有细节并确定如何开始。如果您不熟悉 IBM Cloud,请查阅 developerWorks 上的 IBM Cloud Essentials 课程 。
要部署到 IBM Cloud,首先需要在 IBM Cloud 上创建一个免费帐户。
然后,执行以下步骤:
- 使用以下命令安装 IDT:npm run idt:install。
- 如果您的组织已对 IBM Cloud 启用单点登录,运行 bx login or bx login --sso 命令以登录 IBM Cloud。
- 部署到 Cloud Foundry。
- 通过将 "host: <unique host name here>" 添加到 manifest.yml 文件来添加唯一主机。
- 运行 bx target -o ORG -s SPACE 命令,为应用程序选择组织和空间。
- 然后使用以下命令部署到 IBM Cloud:npm run idt:deploy。
- 部署到 Kubernetes。
- 使用 IBM Cloud Container Service 创建 Kubernetes 集群 。
- 运行以下命令设置所在区域:bx cs region-set <region>。
- 运行以下命令设置集群的终端上下文:bx cs cluster-config <clustername>。
- 运行终端中显示的命令,以响应最后导出 kubeconfig 文件的步骤。
- 使用以下命令部署应用程序:npm run idt:deploy -- --target container。
后续步骤
查阅 IBM Cloud App Service 以了解如何生成更复杂的应用程序,如 MEAN Web 应用程序等。
为 generator-nodeserver 贡献内容。
结束语
Yeoman 生成器 nodeserver 在创建云原生项目方面表现出色,且配备所有基本要素。IDT 是一款理想的配套工具,可简化 Docker 化应用的构建、测试和部署过程。通过结合运用这些工具,您可以非常轻松地在任何 Kubernetes 环境(尤其是 IBM Cloud)中构建和部署云原生应用。
参考资源
- 查看 CloudNativeJS.io 简介:一个助您创建云原生 Node.js 应用的社区 ,了解更多详情。
- Code Pattern: 改造传统内部部署应用并将其作为容器化应用部署到公有或私有云上
- 对 Kubernetes 应用程序进行调试和记录
本文翻译自: Create cloud native Node.js applications (2018-08-14)
Recommend
-
60
介绍 云原生是一种将应用程序构建为微服务并在容器化和动态编排平台上进行运行的方法,这些平台充分利用了云计算模型的优势。云原生...
-
73
许多开发人员担心被锁定在一个云供应商。您的所有代码可能都托管在一个云环境中,然后当价格结构或其他方面发生变化,云就不再满足您的需求。 对于使用云产品的开发人员来说,在 Kubernetes 供应商之间迁移工作负载是必需的。但...
-
5
Linux 下服务创建服务管理应用程序 2020-06-26 Linux Service Linux 下的 Service 可以用来管理一个服务的启动,重启,关闭等整个生命周期,使用更方便,和 make...
-
5
在线工作坊 | 创建一个可使用数据做出决策的JavaScript应用程序发布于 3 分钟前在本次研讨会中,我们将试验数据如何帮助指导一个不那么典型的球队的篮球新手教练。...
-
11
dotnet C# 应用程序进程创建太多线程将会抛出 OutOfMemoryException 异常本文记录一个 dotnet 的特性,在应用程序快速创建大量线程的时候,将会因为线程创建时没有足够的资源而创建失败,此时将会抛出 OutOfMemoryException 异常,但实际进程占用内存不多
-
13
用 Python 内置库创建一个命令行应用程序更新日期: 2022-06-07阅读量: 3标签: Python...
-
4
乘乱瓜分市场!Meta将创建一个类似推特的应用程序?-跨境头条-AMZ123亚马逊导航-跨境电商出海门户 乘乱瓜分市场!Meta将创建一个类似推特的应...
-
7
-
4
APP专享直播 ...
-
3
做过.NET控制台应用程序的同学应该都知道原生的.NET控制台应用程序输出的内容都比较的单调,假如要编写漂亮且美观的控制台输出内容或者样式可能需要花费不少的时间去编写代码和调试。今天大姚给大家分享一个.NET开源且免费的类库帮你轻松的创建漂亮、美观的.NET控制...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK