文档章节

Node.js 4.0.0:灵雀云和 OneAPM 的整合测试

OneAPM蓝海讯通
 OneAPM蓝海讯通
发布于 2015/09/15 11:59
字数 1365
阅读 48
收藏 0

关于

Node.js 4.0.0 稳定版刚刚推出,备受期待,迫不及待地想用它写点东西;此外,要把 Demo 放到 Internet 上得有一个公网 IP ,看到灵雀云挺不错的而且提供域名解析,简直业界良心,其实早就想试试它的 CaaS(Container-as-a-Service 容器即服务)了,对于一个单点应用一个 Dockerfile 就足够;OneAPM 则是一款性能监控的 SaaS 产品,能否支持 Node.JS 4.0.0 不是特别确定,借着这个机会刚好也拉出来溜溜。

建立一个 Demo 应用

访问灵雀云上的版本点这里

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

Demo 应用主要包括:

  • 主体是某个歪果仁用纯 CSS3 写的小黄人
  • 使用 jQuery 给它加上一点点交互,这样小黄人身上的部位就可以被点击
  • 使用 Node.js 4.0.0 + Express 作为服务器
  • 点击某个部位的时候会发送 AJAX 请求到后端, 然后请求被 Express 相应的路由接受并返回
  • 使用 Redis 统计每个部位的点击数

创建代码库

即本 Repo 。

除了上面 Demo 的代码,还要保证根目录下需要有一个 Dockerfile ,来看看每一行的含义:

1. Docker 环境使用 Node.js 4.0.0 非常简单,一行搞定

FROM node:4.0.0

2. 加上维护者信息

MAINTAINER 
wyvernnot wyvernnot@users.noreply.github.com

3. 拷贝文件进 Docker 镜像,安装 NPM 依赖

COPY 
RUN npm install

4. 配置环境变量,暴露端口,和启动应用

EXPOSE 8888
ENV ONEAPM_APP_NAME awesome_app
ENV ONEAPM_DEMO 1
ENV ONEAPM_LICENSE_KEY <YOUR_KEY>
ENV ONEAPM_LOG stdout
ENV ONEAPM_LOG_LEVEL trace
ENV ONEAPM_NO_CONFIG_FILE 1
CMD ["npm","start"]

新建镜像构建仓库

新建构建仓库的时候需要提供一个代码仓库下载连接,灵雀云在后台根据这里填的连接去抓代码。

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

建立好的构建仓库

仓库在Hub上的地址

开始构建

镜像仓库和镜像构建仓库的不同就在与这个 构建 的过程。你可以随时从 Gihub 上的最新(或指定)版本创建新的构建,构建完便得到新的一个镜像。

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

从图上也可以看出,每个镜像除了有自己的 Image ID,还对应 GIT 的提交号,实际上你还可以指定分支来实现灰度发布。

查看构建列表

这是用户所有构建历史列表,此时你已经可以放心地下载构建成功的镜像到本地环境运行,并且可以随意切换不同的镜像版本。

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

重要的事情说三遍:

放心地下载到本地运行。

放心地下载到本地运行。

放心地下载到本地运行。

这就是容器的魅力:

  • 开发和测试用的是一毛一样的环境
  • 不会再遇到 在我机器上是好的吖 这种扯皮的事情
  • 发布的时候可以直接发布这个镜像
  • 并发一下子上来了也不要紧,动动鼠标加几个实例,省时省力

基于镜像创建服务

使用灵雀云,你可以非常方便地通过镜像创建 Web 服务。

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

你的服务会被自动分配一个域名,并且打开了 80 端口,从浏览器里访问:

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

添加监控

灵雀云本身已经能够提供非常基础的监控。想知道网站访问量,响应时间,用户网络分布等则需要安装 OneAPM 探针。 从 v1.2.8 版本开始,OneAPM 探针的安装已经和 Node.js 其它模块的安装没有区别了。

 npm install oneapm --save

要特别感谢死月等一大批用户坚持不懈的建(tu)议(cao)!

监控 CPU /内存

灵雀云和 OneAPM 都提供了服务 CPU 和内存的监控,数据还算比较吻合。

灵雀云

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

OneAPM

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

监控吞吐量

由于基因的不同,OneAPM 和 灵雀云对吞吐量的关注点略有不同,从下图可以看出来。

灵雀云

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

OneAPM

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

OneAPM 的视角是自顶向下的,能够细分不同请求的吞吐量,响应时间,错误率等等,功能非常多。 而灵雀云的监控则是自底向上的,对流量的监控是整体的,并且精确到了字节。

监控 Redis

Redis Server 运行在另一个容器里。使用 OneAPM 可以监控应用连接 Redis 的使用情况,详细到每个 Express 路由里的调用次数:

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

扩容

假设某一天流量太大了,服务器有点扛不住,这个时候只需要登录灵雀云,手动修改一下容器实例的个数(这个工作也可以交给灵雀云来自动完成)。

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

等待容器启动完成,之后的流量会分摊到所有的机器上。从 OneAPM 的后端可以清楚地看到每个容器的负载情况。

Node.js 4.0.0,灵雀云和 OneAPM 的整合测试

总结

  • 灵雀云和 OneAPM 都能很好的支持 Node.js 4.0.0 应用
  • 灵雀云上使用 OneAPM 的 Node.js 探针需要添加 OneAPM 依赖,并在 Dockerfile 里加上 OneAPM_* 环境变量
  • 灵雀云和 OneAPM 监控的视角不一样,配合使用效果最佳

OneAPM for Node.js 能够深入到所有 Node.js 应用内部完成应用性能管理和监控,包括代码级别性能问题的可见性、性能瓶颈的快速识别与追溯、真实用户体验监控、服务器监控和端到端的应用性能管理。请访问 OneAPM 官方博客

© 著作权归作者所有

OneAPM蓝海讯通
粉丝 94
博文 631
码字总数 1266889
作品 0
海淀
私信 提问
Node.js 4.0.0:灵雀云和 OneAPM 的整合测试

## 关于 > Node.js 4.0.0 稳定版刚刚推出,备受期待,迫不及待地想用它写点东西;此外,要把 Demo 放到 Internet 上得有一个公网 IP ,看到[灵雀云](http://www.alauda.cn/)挺不错的而且提供...

OneAPM蓝海讯通
2015/09/15
2
0
Node.js 应用性能优化的五个技巧

在这个由软件定义的世界里,企业往往是通过 Web 应用和移动应用程序来提供他们大部分的服务。所以对企业来说,一个非常重要的任务就是要确保用户拥有出色的使用体验。Node.js 正迅速成为时下...

OneAPM蓝海讯通
2015/07/09
43
0
JavaScript 堆内存分析新工具 OneHeap

OneHeap 关注于运行中的 JavaScript 内存信息的展示,用可视化的方式还原了 HeapGraph,有助于理解 v8 内存管理。 背景 JavaScript 运行过程中的大部分数据都保存在堆 (Heap) 中,所以 Java...

OneAPM蓝海讯通
2015/08/03
172
0
Git@OSC 项目演示平台新增 CNPaaS,科学上网

Git@OSC 项目演示平台在前段时间与灵雀云携手支持 Docker 项目一键部署之后,联手香港的 PaaS 服务提供商 CNPaaS(http://www.cnpaas.io),实现了 CNPaaS 接入 Git@OSC。现在,Git 用户使用...

oschina
2015/08/21
5.3K
49
13 款惊艳的 Node.js 框架——第2部分

【编者按】本文作者为 Peter Wayner,主要介绍13款至精至简的 [Node.js][1] 框架,帮助你简化高速网站、丰富 API 以及实时应用的开发流程。本文系国内 [ITOM][2] 管理平台 [OneAPM][3] 编译呈...

OneAPM蓝海讯通
2016/05/24
143
1

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
15
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
5
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.4K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部