如何快速实现鲲鹏弹性云服务器的Node.js部署和高可用性?
直播:近二十载从业老兵谈金融科技赋能的探索与实践
作者简介:知乎大V“王老师(化名)”,中国科学院计算技术研究所计算机博士,主要进行迁移学习、机器学习方面的算法与应用研究。毕业后加入微软亚洲研究院,担任研究员职务。
“Node 开发者容易面临的前三大困惑分别是异步编程、事件驱动以及 Debug。同时,文档是大家最期待的资源,新人对视频教程和免费在线课程的呼声最高。”这份《2020 年 Node.js 开发者调查报告》给出的信息,也正是当下很多开发者心中的疑惑。如何学习和进阶Node.js?如何让自己写的代码顺滑无bug?如何才能找到易用和高可用的平台呢?今天我来提点自己的拙见,看完觉得有用的老铁希望直接三连(球球你们不要”下次一定“)。
JavaScript相信大家都不陌生,尤其是对于前端工程师而言,更是必备技能。传统意义上的 JavaScript 是运行在浏览器上的脚本语言。而Node.js 是一个运行在服务端的框架,它的底层使用了 V8 引擎。我们知道 Apache + PHP 以及 Java 的 Servlet 都可以用来开发动态网页,Node.js 的作用与他们类似,只不过是使用 JavaScript 来开发。他提供了底层服务器功能环境,包括二进制数据操作、文件系统 I/O、数据库访问、网络访问等。它的特性使其在现存的多种成熟服务器语言中脱颖而出。
同样声名鹊起的还有华为云。近年来,华为云已经成为市场上的一股不容小觑的力量。尤其是前段时间,华为云鲲鹏生态带着铺天盖地的宣传横空出现,对其的评论的风向也是花样繁多,那么华为云鲲鹏弹性云服务器的表现究竟如何呢?本文将会带大家亲自感受一下在华为云鲲鹏弹性云服务器的 CentOS 系统上安装、部署、测试 Node.js 项目,以及其高可用性的探索。
话不多说,我们走起。
Node.js部署环境配置全流程
首先,输入以下命令”LANG=en_us.UTF-8 ssh root@EIP“登陆华为云,需要使用华为云服务器 ECS 的公网 IP 替换命令中的 EIP
一般本地服务器时可以直接获取公网IP,那么在华为云鲲鹏弹性云服务器,如何获取公网 IP 呢?而在云服务器中,弹性公网 IP 地址则可以通过点击“控制台”->“服务列表”->“计算”->“弹性云服务器 ECS”进入服务器列表,进行查看并复制。
在登陆时需要注意的是,输入密码的时候终端是不会有展示的,所以一定要确保密码是正确的。
登陆成功后显示的界面如下。
然后就可以下载 node.js 安装包了,执行下载命令
解压文件
为 node 和 npm 建立软连接,建立完软连接后可以直接查看 node 和 npm 的版本,出现下图即表示安装成功。
使用代码如下:ln -s /root/node-v10.16.0-linux-arm64/bin/node /usr/local/bin/node
ln -s /root/node-v10.16.0-linux-arm64/bin/npm /usr/local/bin/npm
其实到这里Node.js服务器环境就已经部署完毕了,可以直接运行项目代码 。但如果服务器上运行多个项目时,如果只安装一个全局的node.js版本,则在升级时可能会遇到很多问题。所以我们需要使用 nvm 版本管理器安装 node.js 多版本,这并不是一个必须的步骤,但是依然值得尝试。
首先,下载 NVM 版本管理器,并在终端中输入以下命令
git clone https://codehub.devcloud.cn-north-4.huaweicloud.com/Demo01087/nvm.git ~/.nvm && cd ~/.nvm
然后激活 NVM 版本管理器,并将其追加到 profile 文件下
echo ". ~/.nvm/nvm.sh" >> /etc/profile
NVM修改完毕后,就可以安装不同版本的node了,例如下图安装12.3.0的node包
node安装完毕后,就可以在服务器上运行脚本了。为了简化流程,我选择运行一个简单的脚本,利用node起一个服务器,部署在3000端口上。
服务器启动后,要想外网能够访问还需要再控制台配置下安全组规则。
到这里node.js的部署环境配置实测就已经结束了。来展示一下我的成品。
这次比较不按套路出牌,没有“hello world”
从前端语言到运维实践
在此次实践中,我们可以简单点评一下大鲲鹏带给我的直观的感知。首先,它对于新用户的友好度是很高的,以Node.js的部署环境配置来看,云端实验室中的鲲鹏实验中配置了相关的实验和ABC级别的指导教程,用户可以根据指导一步步实现环境配置,即便是小白程序员也能轻松上手;代码一键复制的功能对于并不熟悉linux命令的开发者而言也算是细致入微了。
随着竞争的加速,对于前后端的程序员都需要了解一些运维部署的知识,鲲鹏学院则提供了这样一个方便大家学习的平台。在这上面你能方便的获得小白开发者、鲲鹏开发者的相关课程,并且在完成了各类课程的学习之后,可以通过各类微认证和职业认证,来检验自身的学习成果,并且还能通过官方认证还能获取就业优先推荐机会,实用性这里必须加粗标红。
对于企业来说,把网站部署在云端能够减少大量的运维负担,充分利用华为云的基础生态和平台能力,可以减少建站部署的复杂程度,解放程序员双手,让大家不用秃头改代码收获幸福人生;降低程序员和产品经理的掐架频率。
随着网站用户访问量增大,系统服务很容易挂掉。例如微博突发热搜,淘宝的双十一等关键节点正是考验我们服务器能力的时候。很多大公司都会自研弹性负载均衡系统,但是管理两台机器的复杂程度不是管理一台机器的两倍,甚至是8倍、10倍。这其中需要考虑防火墙、抗DDoS攻击、监控报警、日志打点、数据同步等一系列问题,其实是一个很复杂的事情。因此,对于更多的企业站点使用云服务厂商提供的弹性负载均衡系统会更加的简单便捷,节省成本。
基于ELB和AS服务的高可用性解析
随着网站用户访问量增大,系统服务很容易挂掉。例如微博热门事件,淘宝的双十一等关键节点正是考验我们服务器能力的时候。很多大公司都会自研弹性负载均衡系统,但是管理两台机器的复杂程度不是管理一台机器的两倍,甚至是8倍、10倍。这其中需要考虑防火墙、抗DDoS攻击、监控报警、日志打点、数据同步等一系列问题,其实是一个很复杂的事情。所以,对于更多的企业站点使用云服务厂商提供的弹性负载均衡系统会更加的简单便捷,节省成本。
首先了解什么是高可用性,高可用性是系统一种特征或者指标,通常是指提供一定性能上的服务运行时间,高于平均正常时间段。反之,则消除系统服务不可用的时间。衡量系统是否满足高可用,就是当一台或者多台服务器宕机的时候,系统整体和服务依然正常可用。
举个例子,一些知名的网站保证 4 个 9 以上的可用性,也就是可用性超过 99.99%。那 0.01% 就是所谓故障时间的百分比。比如一些金融和电商网站都会对这些指标有严格的要求。
弹性伸缩服务能够在秒杀、抢购等流量激增的情况下能够确保服务器能够动态扩容,满足客户的良好体验。比如下单服务,当流量如潮水般涌过来的时候,ELB会根据算法动态的分配服务器资源,同时结合AS服务动态扩容服务器资源。
负载均衡是分布式系统架构设计中必须考虑的因素之一。一般通过负载均衡,解决分布式系统的大流量、高并发和高可用的问题。
那么在华为云鲲鹏弹性云服务器中,是如何保持高可用性的呢?其大体流程如下图所示:
1. 流量调度。ELB通过监听器检查连接请求,跟进调度算法定义的转发策略将请求流量分发至后端服务器,起到了交通指挥官的作用,但是他更加的智能。
2. 健康检查。判断后端服务器的业务可用性,确保将请求发送到健康的的ECS上。如果发现服务有问题也会进行及时摘除。
3. 会话保持。将一段时间内来自同一用户的请求转发到相同的后端服务器,保障用户访问的连续性。
4. 弹性伸缩。可以根据访问量自动扩展,保障业务灵活可用。例如上图中提到的利用定时/周期策略触发伸缩,当cpu/内存/入网流量等监控指标达到警告阀门也会触发伸缩。
搭产业顺风车,走开发快速道
开发产业的一个典型特征就是活到老、学到老,五年前的JavaScript和现在相比堪称天壤之别。研读Node.js 使用报告,发现 Node.js 的使用有许多的成长,而且,五年前的浏览器环境和现在的Node环境全然不同。在云时代,越来越多的语言创造了更多可能,也让开发变得更加便捷。就像此次测试中,基于JavaScript、Python、Java等解释型语言开发的应用程序,其与CPU架构并无相关,因此将这类应用程序移植到华为云鲲鹏弹性云服务器上之后,无需修改和重新编译,都可以按照与x86一致的方式部署和运行应用程序即可,对开发者的帮助是显而易见的。
语言的升级带来了便捷,也带来了一些新的趋势,越来越多企业将主体业务放到云端,越来越多的前端工程师关心并参与到后端和全栈的工作中去。开发需求升级,各类开发者社区也便跟着升级,而华为云鲲鹏社区便是一个这样的平台,其能够提供的技术能力不仅能够解决企业业务需求,还能快速赋能开发者,实现快速成长。开发者能方便的找到适合自己能力的相关开发课程来进行学习,学会使用这些更加高效的产品,让自己的价值不断上升,避免出现网传“35岁被扼颈”的窘迫局面。
更为可观的是,前端工程师远非云计算浪潮中最大的受益者。合理使用云服务器带来的ELB、AS等能力,能够让运维工程师从繁杂的工作中解脱出来,专注于系统的优化。目前,包括华为云在内的很多云服务能够提供大量的基础功能和运维工具,这些能力能够让自己脱离机械式编程工作,而是在不断的探索中发现更多高效、实用的工具,基于新的技术环境上实现适配性升级,避免频繁的重复造轮子,而是搭乘软件行业的顺风车,走上真正的开发快速道。
鲲鹏开发者系列课程传送门在此,良心知识不付费,参与回帖互动还有奖品拿,吐槽建议都阔以: http://suo.im/5t3Vgt
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
运营商抢占边缘计算先机,风口之下如何发挥5G新能力?
直播:近二十载从业老兵谈金融科技赋能的探索与实践 随着5G商用的逐步推进,能够连接5G商用潜能和下游产业机会的边缘计算(MEC)走向大风口,在工业互联网、自动驾驶、物联网等领域呈现出旺盛的市场需求。IDC预测,到2020年,将有超过500亿个终端与设备联网,40%的数据需要在网络边缘分析、处理与存储。因此,边缘计算市场规模将超万亿元。 面对未来无可限量的5G核心技术之一,三大运营商布局边缘计算,驱动5G网络与各领域新技术的融合发展,实现了5G能力的进一步延伸。 三大运营商竞争布局边缘计算 所谓边缘计算,从本质上而言,是云计算的一个子类,对于边缘计算和云计算的差异,有人曾形象地拿章鱼做了比喻。云计算就像是天上的云,看得见摸不着,像章鱼的大脑,边缘计算则就类似于那些小爪子,一个爪子就是一个小型的机房,更靠近设备端和用户。云计算是把握整体,边缘计算更专注于局部,互相协同,彼此优化补充。 在边缘云运营和管理上,运营商正在加速5G商用,抢占边缘计算风口。 中国移动第一期重点布局智慧城市、智能制造、直播游戏、车联网四大领域。 中国移动2018年就成立了边缘计算开放实验室,搭建一个边缘计算领域联合创...
- 下一篇
中国大数据应用市场研究
直播:近二十载从业老兵谈金融科技赋能的探索与实践 中国行业大数据应用市场概况 2011-2018年中国大数据市场规模发展 大数据市场驱动力: 来自于线下大数据市场( IT企业的大数 据应用及大数据平台业务市场)中IT巨头 和单一大数据业务的厂商开始行动,优 化产品和服务路线图。 来自于线上大数据市场(互联网用户数 据市场,以及以互联网金融为主的线上 金融市场)的成熟度逐渐提高,以金融 和零售为核心的线上大数据应用走向成 熟,市场体量进一步扩大。 企业着力培育数据资产,积极探讨数据 变现,行业大数据多集聚、少融合。 大数据产业集群逐渐形成,即针对企业 而言,以云端大数据集聚为前提条件, 以行业云服务为平台,共享企业间核心 竞争力。 中国大数据市场发展历程及主要模式 数据存储租用:通过易于使用的API, 用户方便地将各种数据对象放在云端, 然后再像使用水电一般按用量收费。 租售信息业务:涉及到大数据产业链的数据整理与分析环节。提供加工后的数据 “ 半成品”。 数据增值服务:精准营销等提升企业价值链业务。 小额信贷等数据衍生新兴业务。 数据技术服务:为运营某一环节或业务问题提供方案。 针对企...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7设置SWAP分区,小内存服务器的救世主