自动化部署难驾驭?这篇文章分分钟拯救你的运维体系!
作者介绍
徐亮伟,江湖人称标杆徐,曾负责大规模集群架构自动化运维工作。擅长自动化运维,并且在分布式、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 的最佳实践,也将在这个基础上推进数据化、智能化体系建设,将运维复杂性进一步下沉,让企业可以聚焦于自己的业务创新。阿里云也将持续向外输出自身在超大规模云原生实践和探索中的能力沉淀,与更多企业、开发者一起,躬身入局,全面拥抱云原生运维技术体系。
相关文章
- 实战 | 如何用 Python 自动化监控文件夹完成服务部署
- torchserver模型本地部署和docker部署-自定义handler函数以及通过dockerfile一键部署
- 你需要同款“Unreal项目自动化编译、打包和部署”方案吗?
- CloudFlare的Worker免费部署服务
- 架构设计:服务自动化部署和管理流程
- 基于遗传和虚拟力优化算法的WSN无线传感器网络节点二维/三维部署覆盖率问题matlab仿真
- 企业级网关 Kong 部署 Spring Boot 项目实战
- 07分布式电商项目 - 管理中心的部署
- k8s部署prometheus operator监控
- 堡垒机(运维审计系统)的基本原理与部署方式[转]
- K8S部署Metrics-Server服务
- Jenkins自动化部署脚本
- ubuntu部署git
- 记一次完整地简单地使用Jenkins,Docker,Docker-Compose,Github自动化部署Nodejs代码的过程;Jenkins快速入手
- 自动化软件部署的shell脚本
- salt自动化部署
- Jenkins自动化部署
- SpringBoot2项目部署到Linux(Centos)Log日志输出问号
- SolrCloud 分布式集群部署步骤
- teamcity自动化部署
- 自己动手部署内网穿透:frp
- 【请收藏】自动化构建部署之Circle CI使用(GitHub/CircleCI/Vue)
- 自动化构建部署之Jenkins安装【Docker容器】
- Java Linux下部署Springboot在任意文件夹或tomcat下并使用nginx代理实现域名访问
- 【Jenkins自动化部署】Ubuntu部署Jenkins服务端
- CloudCC:部署并有效使用CRM系统的诀窍
- jenkins自动化构建流程篇章一 :在linux上部署jenkins环境
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第一话):初次启动jenkins,输入给定密码后登录失败问题解决
- EntityFrame6在本地可以正常使用,部署到IIS后报异常(Additional information: The underlying provider failed on Open.)
- 手把手一步步实现基于vvvvv实现自由管理系统,包含用户的增删改查、限速、流量控制、登录终端数量控制、自动部署多节点链路、日志统计等等,附自动化脚本和源码(一)
- 真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session共享同步、反向代理等等
- RIFT.io与风河携手促进NFV解决方案部署
- OpenStack技能短缺:部署成为挑战