云计算和DevOps

云计算

概念、定义

云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态的易扩展且经常是虚拟化的资源。
美国国家标准与技术研究院对于云计算的定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件和服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。

分类

  1. 公有云(AWS, 阿里云,Azure等)
    • 云服务提供商对基础设施维护
    • 多租户
    • Pay For Use
  2. 私有云(Vmware等)
    • 自己维护云基础设施
    • 单租户或狭义上的多租户
    • Pay For Cloud
  3. 混合云(Azure, Rackspace)
    • 云服务提供商维护自己的云设施
    • 用户范围内租户隔离
    • Pay For Use of Cloud

DevOps

概念

DevOps = Development + Operations

DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保证(QA)部门之间的沟通、协作与整合。它的出现时由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。其最大的特点就是极速的迭代和快速的用户反馈。

DevOps完整研发周期

云计算和DevOps_第1张图片

  1. 下载:https://www.docker.com/docker-mac
  2. 安装:下载文件为.dmg文件,打开,拖动到Application文件夹中即可

node web项目的DevOps实例

项目准备

  1. 在本地创建一个node项目,文件目录以及文件内容如下:

云计算和DevOps_第2张图片

  1. 使用 pm2 管理项目的启动,配置如下:

云计算和DevOps_第3张图片

  1. 启动项目:npm run start

打开浏览器,访问 http://localhost:3008,即可看到web页面。

将其部署到云计算服务器上(本blog使用的是美团云。。。)

  1. 上传代码到 github 上, 地址:https://github.com/wikidson/node-web-DevOps
  2. 登陆到云服务,部署项目

    • 通过 ssh 进入到云主机
    • 由于我们的项目是node项目,所以需要在云主机上安装node:

      1. 下载node镜像,这里直接使用的淘宝的node镜像,不需要编译

      wget -P /usr/local/ https://npm.taobao.org/mirrors/node/v8.9.4/node-v8.9.4-linux-x86.tar.gz

      1. 解压node镜像

      cd /usr/local && tar zxvf node-v8.9.4-linux-x86.tar.gz

      1. 配置环境变量
          vim /etc/profile 
          # 自文件末尾添加:export PATH="$PATH:/usr/local/node-v8.9.4-linux-x86/bin"
          source /etc/profile
    • 从github上获取代码,并启动项目

      1. 创建目录:mkdir -p ~/webapp && cd ~/webapp 2. clone 项目:git clone https://github.com/wikidson/node-web-DevOps
      2. 启动项目: cd node-web-DevOps && npm install && npm run start
      3. 访问web项目对应的云主机外网IP和端口号:

      云计算和DevOps_第4张图片

实现DevOps

  1. 创建部署服务器:

云计算和DevOps_第5张图片

  1. 部署脚本内容如下:

云计算和DevOps_第6张图片

  1. 添加脚本命令到 package.json 文件中

云计算和DevOps_第7张图片

  1. 将代码提交并push到github上

5.登陆云主机, 进行如下操作:

cd ~/webapp/node-web-DevOps
npm install
npm start:deploy
npm start

打开浏览器, 依次访问如下地址:

web页面:

云计算和DevOps_第8张图片

部署页面:

云计算和DevOps_第9张图片

  1. 配置 github 的webhook

云计算和DevOps_第10张图片

以上及实现了项目的DevOps

  1. 验证,修改项目代码

云计算和DevOps_第11张图片

等待30s左右(因为在云主机上需要重新执行 npm install )

打开浏览器,访问web页面,输出如下:

云计算和DevOps_第12张图片

你可能感兴趣的:(服务器)