一、课程介绍
1、什么是云计算
云计算和云没有任何关系,云计算是与信息技术、软件、互联网相关的一种服务
- 虚拟化(Virtualization)是基础(计算,存储,网络等)
- 产品服务化(laas,Paas,Saas...Xaas)
- 弹性伸缩,没有边界
2、云计算分类
- 公有云(AWS,阿里云,Azure等)
- 私有云(Vmware等)
- 混合云(Azure,Rackspace)
3、公有云
- 云服务提供商对基础设施维护
- 多租户
- Pay For Use
4、私有云
- 自己维护云基础设施
- 单租户或狭义上的多租户
- Pay for Cloud
5、混合云
- 云服务提供商维护自己的云设施
- 用户范围内租户隔离
- Pay For Use of Cloud
6、DevOps
- DevOps = Development + Operations
- 极速的迭代和快速的用户反馈
DevOps完整研发周期
7、课程要点
(1)什么是云计算和DevOps
(2)阿里云服务简介
(3)在阿里云上以DevOps简单实现网站搭建:
- 基本业务代码实现
- 管理面代码实现
- 代码托管打包构建
- 部署上线
- 设置监控告警
- 网站简单的自我恢复
二、阿里云平台的简单介绍
有了云服务器,我们不用自己建机房,自己买服务器,可以按需交钱购买
控制台
监控
通过监控,我们可以实时的看到服务器各方面的情况
服务器登陆
登陆到服务器(登陆前需要重置示例密码)
三、把网站部署上云服务器
1、案例和go简介
(1)github介绍
首先介绍一个全球最著名的代码托管网站:github,也可以使用gitee
如果访问速度慢,可以下载一个加速插件:fastgithub,或者使用Gitee
(2)新建一个仓库用于自动化部署
(3)克隆仓库
复制地址,将它克隆到本地:
克隆命令如下:
按照以下步骤创建go文件:
go语言是一门非常简单轻便的语言,是跨平台的,不像java需要在本地装JVM,使用十分方便,编译好丢到目标平台就可以直接用
(4)安装go
使用命令:yum -y install golang
2、本地创建运行项目
(1)创建文件
编辑main.go文件后,ESC后shift+:,输入wq回车保存
查看代码内容:
(2)创建项目文件
创建一个go.mod项目文件,名为testProject,命令:go mod init testProject
(3)编译文件
编译文件:输入go install
没报错就说明编译成功,然后查看go所有的环境变量,输入:go env
(4)本地运行项目并访问
进入/root/go/bin找到可执行文件进入后,网页地址栏输入:127.0.0.1:8000
新开一个窗口:
可以看到自己的文件内容了
3、将web server部署到阿里云
(1)编译文件
进入server文件夹,输入:env GOOS=linux GOARCH=amd64 go build main.go
输入ls进行查看,发现本地多了一个文件:
(2)git添加文件
现在我们要把这个文件上传到gitee:
git add .:添加所有文件
git status:查看文件状态
(3)提交代码
使用git commit提交代码:
报这个错说明没有设置邮箱和用户名,设置一下即可:
git config --global user.email 'you@example.com'
git config --global user.name 'Your name'
再次提交:
(4)上传代码
git push origin master(一般我们不推荐用master推,现在学习可以用)
已经上传完成,进入gitee仓库进行查看
(5)服务器上启动服务
(6)复制阿里云地址
(7)访问服务
阿里云服务器要开放8080这个端口,浏览器才能访问我们的服务
或者直接点击左侧栏位:
设置好后浏览器访问服务地址:
此时就可以访问了
4、deploy server开发
(1)缺陷
上面的部署几乎是全手动的,这样不仅效率低下,不安全还容易出错,手动步骤存在:
git pull 然后开发,编译
git push->git pull。。。。
deploy
其实这三个步骤不用手动的话是完全可以完成的,接下来我们让这个过程变得更自动话一些
(2)开发deployserver
在webserver同级创建deployserver文件夹
然后进入deployserver创建main.go文件:
通过vi main.go进行代码编写:
(3)编写脚本文件
在外面增加一个push文件的脚本
通过vi deploy.sh进行编辑,kill -9 $(pgrep 你的server进程名),内容如下:
(4)编译server
最后进入deployserver创建mod文件并对go文件进行编译(首次生效)
或者输入:env GOOS=linux GOARCH=amd64 go build main.go 进行编译
(5)上传代码
退到项目根目录进行代码上传:
打开git发现上传成功:
5、完成三部分的自动化部署
(1)改动deployerver和脚本目录
首先我们需要退到项目所在根目录
然后将自动化部署服务和脚本拷贝到项目同一路径
(2)增加脚本执行权限
并且给这个脚本文件赋予读写执行权限:
(3)启动服务
启动服务
(4)开放deployserver端口
访问前需要服务器打开5000端口,同上
(5)访问服务
浏览器访问部署服务地址(5000端口)
这次我们不需要再进入webserver手动启动服务,我们直接通过浏览器访问8080端口
说明我们的自动化脚本生效了,deployserver成功调用deploy.sh脚本启动了webserver服务
(6)最后的自动化
这个时候你可能问,deployserver管理服务运行的时候,不也是通过手动刷新5000端口网页去启动webserver服务的吗,打开5000端口网页这个动作不也是手动的吗,的确,我告诉你个小妙招,gitee和github有个Webhooks功能,可以在push的时候自动访问5000端口网页,从而在deployserver保持运行状态的时候实现自动化部署,前提是:deployserver需要一直保存运行状态
好的,添加好webhooks后,我们可以修改代码内容,编译进行push上传,看看是否自动化部署了
然后此时不需要访问5000端口页面就可以访问webserver服务:
没错,简单的自动化部署就这样完成了,难一点的无非就是在这个基础上扩展和加深而已
(7)项目后台运行
如果你想让你部署的项目能在后台一直运行,可以使用screen工具
安装:yum -y install screen
建立后台窗口:screen -S 窗口名字
在这个窗口里运行你的项目就好,然后使用CTRL+a+d退出保存,这样即便你的服务器终端断开连接,你的项目也能后台一直运行了
6、云监控设置
(1)创建任务
站点监控可以对我们的网页进行监控,本次我们监控站点:http://123.57.217.51:8080/
(2)设置告警规则
(3)监控查看
四、课程总结
总结一下,我们大概做了一个简单在阿里云上以DevOps简单实现网站搭建的工作
- 基本业务代码实现(业务面webserver和管理面deployserver)
- 代码的编译构建打包以及简单的DevOps自动化
- 利用阿里云完成网站的部署和监控
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/yjsyd/6768.html