引言 代码发布系统是互联网公司必备的运维系统,作用主要用户发布业务代码 到 业务服务器 为什么需要代码发布系统 有的同学可能说,我们公司服务器就那么一台,做个发布系统太麻烦了? 不认同这说法 发布系统有如下好处 流程管理,加上权限管理,可以在系统记录 谁 做了 什么 操作 减少人工误操作影响,登录服务器本身操作就是有误操作的可能的 运维自动化  为运维工作减负 加快发布速度  不用人工登录N台服务器发布 方便快速回滚版本 技术选型 git:代码管理工具  git使用笔记 rsync:同步代码到指…
灰度发布在实际生产部署中是经常被使用的方式,常规的方法是手动从前端LB(负载均衡)上将后端服务器摘掉,然后,停服务,最后上传代码,完成软连接更新.在使用CI/CD工具时,这个过程变得自动化了,我们只需要通过Jenkins这个功能强大的开源持续集成和部署工具,就可以联合Gitlab 或 Gogs 来实现自动拉取代码,并根据自己编写的pipeline脚本,实现自动连接到LB上摘掉后端Server,并自动连接到后端Server上,上传代码,并重启服务,最后通过邮件通知管理员整个过程的结果报告.但今天,…
摘要:本文主要向大家介绍了Windows运维之Windows8.1-KB2999226-x64安装提示 此更新不适用你的计算机,通过具体的内容向大家展现,希望对大家学习Windows运维有所帮助. 本文主要向大家介绍了Windows运维之Windows8.1-KB2999226-x64安装提示 此更新不适用你的计算机,通过具体的内容向大家展现,希望对大家学习Windows运维有所帮助. 如题 Windows8.1-KB2999226-x64.msu  双击安装安装提示 此更新不适用你的计算机 .…
一.灰度发布 灰度发布是一种发布方式,也叫金丝雀发布,起源是矿工在下井之前会先放一只金丝雀到井里,如果金丝雀不叫了,就代表瓦斯浓度高.原因是金丝雀对瓦斯气体很敏感.灰度发布的做法是:会在现存旧应用的基础上,启动一个新版应用,但是新版应用并不会直接让用户访问.而是先让测试同学去进行测试.如果没有问题,则可以将真正的用户流量慢慢导入到新版,在这中间,持续对新版本运行状态做观察,直到慢慢切换过去,这就是所谓的A/B测试.当然,你也可以招募一些灰度用户,给他们设置独有的灰度标示(Cookie,Heade…
一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crontab依赖的服务就是crond,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务.这个crond定时任务服务就相当于我们生活中的闹钟! 由于crond 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: /sbin/s…
云计算的发展,推动了自动化运维.DevOps.AIOps 等趋势的兴起,在业务快速变化的今天,企业希望通过一套自动化运维的专家系统提高运维效率,为业务提供支撑. 传统的方式下,打造一套成熟的 DevOps 流程需要有大量的技术投入,如果采用商业软件还会有不菲的支出.无论是哪一项,都意味着大量的时间成本和财务成本支出.云计算正在改变这种情况. 为云而生的 ECS 自动化运维套件 2月3日,阿里云宣布推出 ECS(Elastic Compute Service,弹性计算服务)自动化运维套件.这是一套…
使用docker swarm滚动更新java项目,部署集群,这一切的前提是使用Jenkins+maven进行项目打包,分发等功能 具体可以参考我的另外三篇文章 https://www.cnblogs.com/mumengyun/p/10037246.html https://www.cnblogs.com/mumengyun/p/10000739.html https://www.cnblogs.com/mumengyun/p/10143203.html 以下写的就是如何使用docker swa…
一.k8s基础概念与安装 k8s,即kubernetes是用于自动部署,扩展和管理容器化应用程序的开源系统.详细的描述就不多说了,官网有更详细的内容.简单来说,k8s,是一个可以操作多台机器调度部署镜像的平台.在k8s中,可以使用集群来组织服务器.集群中会存在一个master节点,该节点是kubernetes的控制节点,负责调度服务器中被称为Node的其他资源. 下面,我们就正式开始k8s的学习. 首先,我们需要两台服务器,一个是master,一个是node.master服务器的配置要稍微高些,…
一.制作DockerFile docker的镜像类似于用一层一层的文件组成.inspect命令可以查看镜像或容器的的信息,其中Layers就是镜像的层文件,只读不能修改,基于镜像创建的容器会共享这些层.下面我们先来学习一下dockerFile中的一些命令: form,构建的新镜像是基于哪个镜像 form centos:6 maintainer,镜像维护者姓名或邮箱地址. maintainer zaking. run,构建镜像时运行的shell命令. RUN yum install httpd c…
一.构建memcached服务 目标: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 1> 安装memcached软件,并启动服务d 2> 使用telnet测试memcached服务 3> 对memcached进行增.删.改.查等操作 方案: 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5). 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测…
文档目录: 一.uname:显示系统信息 二.hostname:显示或设置系统的主机名 三.dmesg:系统启动异常诊断 四.stat:显示文件或文件系统状态 五.du:统计磁盘空间使用情况 六.date:显示与设置系统时间 七.echo:显示一行文本 八.watch:监视命令执行情况 九.which:显示命令的全路径 十.whereis:显示命令及相关文件全路径 十一.locate:快速定位文件路径 十二.updatedb:更新mlocate数据库 ----------------------…
这一篇文章,我们就要开始学习正式的Shell语言部分的内容.那在开始之前,我们回忆一下,javascript语言,大体都包含了哪些内容?比如数据类型(对象.字符串.数值),数据结构(对象.数组).运算符(加减乘除与或非等).流程控制(就是if-else,for循环等)等等,那么其实不单单是javascript语言,其他任何语言所涉及到的内容也无非如此,只不过可能在此基础上有些具体细节的不同.那么同样的,我们学习Shell也十分类似. 一.变量的定义 shell里变量的定义很简单,就像这样: va…
今天我们来学习下Shell运算符,Shell跟其他的编程语言一样,也支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 那下面,我们就一一来学习一下这些运算符. 一.算数运算符 其实shell的算数运算符跟js几乎一样,或者说,绝大多数语言的算数运算符其实都大同小异,不过是使用方法和细节上会稍微有些区别.我们一起来看一下: 下面的例子假定变量 a 为 10,变量 b 为 20 运算符 说明 举例 + 加法 `expr $a + $b` 结果为 30. - 减…
一.Nginx基本概念 简单来说,Nginx就是一个代理服务器,什么是代理服务器呢?也就是当我们访问服务器的时候,请求不会直接请求到服务器,中间会有个代理,代理会预先于服务器处理这些请求,最后由代理决定是否要把请求提交至服务器. 那么,Nginx解决了什么问题?直接访问服务器不行么?为啥要费事的走一遍代理呢? Nginx的优势主要有: 高并发.高性能 可扩展性好 高可靠性 热部署 开源许可 这样,大家就可以理解,为什么要使用Nginx了吧,主要就是为了解决传统服务器的一些局限性.Nginx的最常…
一.基本概念 如果我们想要让软件运行起来,首先要保证操作系统的设置,其次还需要依赖各种组件和库的正确安装.那么虚拟机就是一种带环境安装的一种解决方案,它可以实现在一种操作系统里面运行另外一种操作系统,但是虚拟机的缺点也是十分明显的,资源占用多.冗余步骤多.启动速度慢.由于虚拟机存在的这些令人诟病的缺点.Linux发展出了另一种虚拟化技术,Linux Containers,即Linux容器,缩写为LXC. Linux容器并没有虚拟一个完整的操作系统,而是对进程进行隔离.或者说,在正常进程的外面套了…
p { margin-bottom: 0.25cm; line-height: 120% } a:link { } pexpect是expect的封装,可以实现ssh,ftp,passwd,telnet等命令的自动交互.首先我们来先搭建一个FTP服务器做测试使用.windows下搭建FTP的方法如下: 1 首先计算机右键选择管理,然后点击选择新用户 p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 二 设置用户名以及密码 p {…
p { margin-bottom: 0.25cm; line-height: 120% } a:link { } paramiko是基于python实现的SSH2远程安全连接,支持认证以及密钥方式,可以实现远程命令执行,文件传输,中间SSH代理等功能.也就是采用SSH的方式进行远程访问.SSH登陆的方式可以参考之前的一片帖子:http://www.cnblogs.com/zhanghongfeng/p/7749489.html 下面来看一个远程登陆的例子如下: def paramiko_fun…
1.安装插件 Email Extension Template Plugin 安装教程参考:https://www.cnblogs.com/jxd283465/p/11542680.html 2.系统设置管理员邮箱及邮件模板等 在系统设置中找到“Jenkins Location”,配置管理员邮箱,即发信邮箱 在系统设置中找到“Extended E-mail Notification” 标题: 构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_…
在开始之前,你需要做一些准备工作,去阿里买一台服务器,服务器的具体细节其实并不是十分重要,我也不会在这里一步一步的教大家如何去买一个服务器.百度一下足够了,但是还是要贴一下这篇文章中,我所使用的服务器系统及其版本: 版本之间应该不会有太大的差异,但是最好不要选太新的版本,因为还不够稳定.好了,下面我们开始进入正题. 一.目录 作为一台电脑,我们首先要知道的就是其目录的含义及用处,在后面的学习中十分重要,这些都是最基础的概念.我们可以先来看一下,linux中都有哪些目录: 我们看到一共有这些目录,…
其实说真的,这些基础挺枯燥的,内容呢绝大多数都是些静态的. 上一篇文章我们学习了基本的指令和vim编辑器的操作方法.这篇文章我们主要来学习下Linux中用户的概念和权限相关的知识. 一.用户与用户组 其实在Windows中也有用户的概念,比如管理员和访客,只是在Windows这种操作界面系统中,用户的概念给人的感觉十分弱化,没有那么显眼.但是在Linux中却是十分重要的.试想一下,可能会有很多人操作同一台服务器.那么就需要区分使用者,以分配不同的权限.否则,所有用户都可以通过rm -rf命令删除…
诶诶欸?不是学Linux么?怎么要讲shell了?shell是啥?啥是shell? 别急,我们先简单了解下shell是什么.Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.而我们日常中所说的Shell,通常是指Shell脚本,但是你一定要注意的是Shell和Shell Script并不是一回事. Shell是解释执行的脚…
这章我们来学习下流程控制,简单来说就是逻辑判断和循环的写法.并不复杂,我们来简单地看下. 1.if语句 shell的if语句有两种写法,一种是shell脚本式的,一种是命令式的. if condition then command1 command2 ... commandN fi 命令式,是这样的: if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi if语句使用fi结尾.就像上面的例子那样.…
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.shell中函数的定义格式如下: [ function ] funname [()] { action; [return int;] } Shell中的函数有两种写法,一种是: function a() { action; return init; } 另外一种是: a() { action; return init; } 这两种的含义都是一样的.参数的返回,可以显示加return 返回,如果不加,将以最后一条命令运行…
一.软件包管理 RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序".软件包有几种类型,我们一起来看下: 源码包(需要经过编译,把人所编写的源代码编译成机器语言才能运行) 优点 开源免费 可以自由配置功能 编译安装更适合自己系统,更稳定 卸载方便 缺点 安装过程比较复杂 编译过程比较长 安装过程一旦报错,非常难以排查 二进制包(把源代码包经过编译生成0/1二进制,PRM包.系统默认的安装包) 优点 包管理系统比较简…
一.进程管理 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述,进程是程序的实体.以上这段话来自百度百科. 简单来说哈,进程就是运行一段代码的实体.在linux中,我们可以通过命令来查看系统中所有的进程.判断服务器的状态.杀死进程等等.下面我们来看一下相关的命令都有哪些.…
一.静态资源服务 首先,静态资源一般是指客户端发送请求到Web服务器,web服务器从内存中取得相应的文件,返回给客户端,客户端解析并渲染出来.动态资源呢,则是由客户端发起请求,先交由web容器,web容器连接数据库,数据库处理数据之后,将内容交给web服务器,web服务器返回给客户端解析并渲染. 一般的静态资源有:HTML.CSS.JS.JPEG.PNG.MPEG.Word.EXCEL等. CDN的全称是Content Delivery Network,即内容分发网络.CDN系统能够实时地根据网…
一.代理服务 比较容易理解吧,简单来说.客户端访问服务器并不是直接访问的,而是通过中间代理服务器,代理服务器再去访问服务器.就像一个中转站一样,无论什么,只要从客户端到服务器,你就要通过我. 一)正向代理 正向代理,就是代理服务器为客户端代理,也就是说,服务器并不知道真实的客户端是谁,而是通过代理服务器把请求发送给真实的服务器.比如,通过公司网络访问外网百度,那么公司的代理服务器就会代理你的主机,访问百度网站.百度服务器无法获得你个人的真实主机ip. 就像上图展示的那样.web1.web2就是你…
首先,我们先来了解下什么叫做持续构建.持续构建简称CI,负责拉取代码库中的代码后,执行用户预定义的脚本,通过一系列编译操作构建出一个制品,并将制品推送到制品库里.常用的持续构建工具有 Gitlab CI,Github CI,Jenkins等.这个环节不参与部署,只负责构建代码,然后保存构建物,构建物被称为制品,保存制品的地方被称为制品库. 另外,我们来了解下什么是持续部署和持续交付,它们可以统称为CD,即Continuous Deployment和Continuous Delivery.持续部署…
Istio是什么? Istio是Google继Kubernetes之后的又一开源力作,主要参与的公司包括Google,IBM,Lyft等公司.它提供了完整的非侵入式的微服务治理解决方案,包含微服务的管理.网络连接以及安全管理等关键能力,无需修改任何代码就能够实现微服务的负载均衡,服务与服务之间的认证授权以及监控.从整个基础设施角度上看,可以将它理解为PaaS平台上的一个面向微服务管理平台的补充. Istio架构示意图 Istio与Kubernetes Kubernetes提供了部署.升级和有限的…
 概述 应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作.服务监控.应用状态统计.日常服务状态巡检.突发故障处理.服务日常变更调整.集群管理.服务性能评估优化.数据库管理优化.随着应用PV增减进行应用架构的伸缩.安全.运维开发工作. 今天重点介绍运维流程管理.运维发布变更.运维监控告警三个方面所需要的工具. 一.运维流程管理工具 1.发布变更流程管理工具 做为系统接口与其他角色的工作衔接.并提供审批环节控制发布变更的风险.流程管理工具并不负责具体的业务操作的执行,只是作为单据系统…