zl程序教程

您现在的位置是:首页 >  其他

当前栏目

自动化部署难驾驭?这篇文章分分钟拯救你的运维体系!

部署自动化运维 分钟 体系 篇文章 拯救
2023-09-11 14:16:00 时间

作者介绍

徐亮伟,江湖人称标杆徐,曾负责大规模集群架构自动化运维工作。擅长自动化运维,并且在分布式、Python自动化、云计算虚拟化等领域有较深入研究。个人博客:http://www.xuliangwei.com。

 

一、自动化部署代码实践

 

早期手动部署代码 

纯手动scp上传代码。


1)开发环境

开发者本地有自己的环境,运维配置公共开发环境,大家可共用的服务。例如:开发数据库MySQL,redis,Memcached等。

2)测试环境

功能测试以及性能测试。

3)预生产环境

生产环境集群中的某一个节点,并且连接生产库。(不对外,不做破坏型操作。)

4)灰度环境

根据不同的区域进行划分分。(生产环境)

5)生产环境

对用户提供服务的环境。

 

预生产环境由来:


代码仓库和实际的差异。配置文件是否放在代码仓库中。(配置单独进行存放,config.example )短信接口,支付,等敏感信息不让所有开发知道


项目名称_环境名称_版本_分支_时间_某开发提交

测试: rainbow_test_v1.1.1_dev_2016-08-11_12:12_xuliangwei

生产:rainbow_pro_v1.1.1_master_2016-08-11_11:11_xuliangwei

 

5)如何更新

php,tomcat需要重启,重新软链接。

 

6)如何测试


8)多人同时执行脚本

防止多人操作导致重复上线失败。通过lock锁对文件进行控制。

 

9)串行,并行

机器少的情况串行感觉不出什么。如果机器过多则会很慢。

 

分组部署并行部署,以及分组测试。

 

测试一个预生产环境,通过则继续部署,如果失败,退出部署操作。

 

10)部署服务器双机

防止部署系统down机,部署机代码丢失,误操作。

 

11)如何执行。


12)如何实现正常回退,以及紧急回退(回滚的必要性)

通过软链接的方式来实现代码秒级别回退。

 

3、自动部署难点

 

在大公司推进自动化部署上线,是有许多的难点,根据个人公司的不同,来选择不同的方法来进行推进。

 

自动化推进难点:


 

自动部署实践 

整个集群自动化部署流程设计如下:可根据如下思路,结合公司实际业务来编写shell脚本或者Python。 

 


 

自动部署采坑 

自动化部署php环境或者java环境的过程中,那么你一定遇到了如下的问题。

 


 

环境准备 

首先在执行脚本前,先做好初始化环境,最好是通过saltstack来完成。我这里没有那么多机器,就先用两台演示。

 

linux-node1 192.168.90.201

linux-node2 192.168.90.202

 

1、创建普通用户

useradd xuliangwei

passwd xuliangwei

 

2、配置密钥
 

\

 

3、创建相关目录

 

\

 

4、配置Nginx

 

\

 

5.配置好git环境


\

 

剖析脚本 

查看脚本,具体配和第一部分来解读:

 

\

\

\

\

\

 

执行上线:

 

\

 

 查看当前版本

 

\

 

执行回滚操作

 

\

 

查看日志:

 

\

 

脚本其他功能 

当然此脚本功能不仅仅如此,可以通过git分支,git tag包等方式来上线,这些根据贵公司的具体业务来进行调整,也可以自己开发一个web界面来调用此脚本,这样就可以将上线工作交给开发,当然也可以使用开源jenkins来实现。

 

后期更新 

(如上脚本)+gitlab+jenkins+Sonar 构建自动化部署代码,并代码发布前质量管理。


本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2016-08-23


阿里超大规模 Flink 集群运维体系介绍 以智能和云原生为技术内核,建设实时计算运维管控产品,来解决超大规模 Flink 集群运维和应用运维碰到的稳定、成本、效率三大难题。
大搜车面向复杂业务场景的研发运维体系治理实践 通过统一研发流程、统一稳定性保障体系、统一云原生化,来解决复杂业务场景带来的语言异构、中间件升级、研发流程体系与稳定性保障体系不统一等技术挑战。
阿里巴巴超大规模 Kubernetes 基础设施运维体系揭秘 ASI 作为阿里集团、阿里云基础设施底座,为越来越多的云产品提供更多专业服务,托管底层 K8s 集群,屏蔽复杂的 K8s 门槛、透明几乎所有的基础设施复杂度,并用专业的产品技术能力兜底稳定性,让云产品只需要负责自己的业务,专业的平台分工做专业的事。
云原生时代的运维体系进化 基于容器、Kubernetes 等云原生技术,提供的开放社区标准、不可变基础设施、声明式 API 会成为企业 CloudOps 的最佳实践,也将在这个基础上推进数据化、智能化体系建设,将运维复杂性进一步下沉,让企业可以聚焦于自己的业务创新。阿里云也将持续向外输出自身在超大规模云原生实践和探索中的能力沉淀,与更多企业、开发者一起,躬身入局,全面拥抱云原生运维技术体系。