puppet

7种DevOps工程师必备技能

耗尽温柔 提交于 2020-12-05 00:45:42
应用DevOps的目的是改变和改善开发与IT运营之间的关系,倡导两个部门之间更好的沟通与协作。虽然这看起来有些简单,然后,DevOps工程师还需要做更多的工作,才能成功部署代码,并将Dev和Ops两个部分成功地绑定在一起。 从应付DevOps压力的角度出发,DevOps工程师除了需要日常技能的基础,每个工程师都必须具备多种技能。DevOps工程师除了要对脚本和编码有着强烈的热情之外,还必须具有开放的思想和协作精神,才能成功地执行该过程。 “DevOps教练”参考一些文献,已经为你设计了一个清单,列出了下面的7种必备技能,公司的DevOps工程师的招聘需求里,应该明确提出下列所有品质。 1. 灵活性 编码是一个持续的过程,不断变化,总是需要更新。要成为一个成功而有效的DevOps工程师,理想的候选人必须有能力不断地开发新的系统,并将其集成到主干代码中。DevOps工程师必须具有灵活的工作技能并适应不断变化的代码。 无论是集成、测试、发布还是部署,工程师都必须能够轻松地从一个软件构建领域迁移到另一个领域。例如,持续集成需要具备快速有效地管理变更的技术技能,并且能够在团队中协作,以保证每个人都朝着共同的目标努力。 2. 安全技能 与许多其他所熟练的领域一样,安全始终是最重要的,尤其是在编码方面。黑客进入系统的一个简单方法是利用漏洞,破坏现有的系统并获取数据。

DevOps如何解决技术债务挑战?

我是研究僧i 提交于 2020-11-25 07:23:05
许多组织在迁移到云期间发现了大量的技术债务。但是什么是技术债务呢?DevOps如何帮助我们去解决技术债务呢?在这篇文章中,我们将讨论使用DevOps将您的技术债务负担减少的方式! 什么是技术债务? 技术债务是指在整个应用程序生命周期内做出的 次优技术决策 的累积。最终,改变事物变得越来越困难,使IT计划陷入停顿。 例如,应用程序中不良的状态管理可能会使水平缩放策略难以实施。在执行您真正想做的事情(横向扩展应用程序,以便应对日益增长的流量)之前,您需要重新编写代码的状态管理部分。 “先做需要做的事,然后再做想做的事”的工作就是技术债务 。 值得指出的是,技术债务不仅会发生在开发中,还可能发生在运营中。例如:仍在运行不再受支持的过时的操作系统(Windows Server 2008或Ubuntu 11.04)。不保持服务器的修补程序更新和最新状态,会使您容易受到网络攻击和勒索软件的攻击。这些都是技术债务。 为什么会存在技术债务? 马丁·福勒(Martin Fowler)的技术债务象限指出,有时技术债务是无意的。您不知道的内容,但是现在您知道了,因此可以对其进行修复。 谨慎,刻意的技术债务是精益创业公司 Eric Ries的“构建-度量-学习”周期的核心。有时,了解您是否拥有可行产品的唯一方法是 发布产品并将其掌握在客户手中 。这可能意味着您“偷工减料”,从而招致技术债务。

自动化运维

只谈情不闲聊 提交于 2020-11-24 15:46:52
自动化运维工具 需求:成百上千台机器,批量地执行某些命令、批量地升级某个服务。 Shell、expect脚本就可以实现自动化,但是需要我们自己手动编写脚本,效率低下、学习和维护成本很高。 主流自动化运维工具:Puppet、Saltstack、Ansible等。 Puppet 关于Puppet的介绍文章: https://blog.51cto.com/ixdba/1149055 Puppet是开源的基于Ruby的系统配置管理工具,基于C/S的部署架构。是一个为实现数据中心自动化管理而设计的配置管理软件,它使用跨平台语言规范,管理配置文件、用户、软件包、系统服务等。客户端默认每隔半小时会和服务器通信一次,确认是否有更新。当然也可以配置主动触发来强制客户端更新。这样就把日常的系统管理任务代码化了,代码化的好处是可以分享,保存,避免重复劳动,也可以快速恢复以及快速的大规模部署服务器。 Saltstack Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。C/S架构,由Master和Minion构成,通过ZeroMQ进行通信。Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口;salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接

持续集成是什么?

牧云@^-^@ 提交于 2020-11-18 04:21:43
互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。 本文简要介绍持续集成的概念和做法。 一、概念 持续集成指的是,频繁地(一天多次)将代码集成到主干。 它的好处主要有两个。 (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。 (2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。 Martin Fowler说过,"持续集成并不能消除Bug,而是让它们非常容易发现和改正。" 与持续集成相关的,还有两个概念,分别是持续交付和持续部署。 二、持续交付 持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。 持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。 三、持续部署 持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。 持续部署的目标是,代码在任何时刻都是可部署的

高效自动化运维工具 Clip | 介绍篇

允我心安 提交于 2020-11-12 09:00:19
本文根据高效运维系列微信群的群友文章整理并发布。“高效运维”公众号作为本系列群的官方唯一公众号,原创并独家首发。 欢迎关注“高效运维”公众号,以免费参加「运维讲坛」每月一次的线下交流活动;并抢先赏阅干货满满的各种原创文章(详见文末)。 编辑 徐凯强@和信(整理) 作者介绍 王冬生 腾讯高级工程师,《Puppet权威指南》作者 引子 IP数字不容易记忆,所以聪明的人类发明了DNS。DNS把不容易记忆的数字,改为容易记忆的一串有规则的域名,域名又可以解析相应的IP,基于此思路,我们开发了近似 DNS 工具的名字服务系统。 在公司内部希望通过名字服务系统在 CMDB 基础之上把不同的业务(cpu、内存、磁盘和网卡)“夹在一起”,对于上层可以实现资源互补,对于下层可以方便核算业务成本,所以这就是CLIP(夹子)的由来了。 Clip 简介 Clip是一款自动化运维工具,适用于海量服务器的管理场景,可以降低系统误操作风险,提高工作效率。 其将传统的 IP 管理纬度替换为String管理纬度的管理方式,使海量运维变得更加便捷、可靠与高效。 Clip是 C/S 架构,它将IP关系保存在 Server 端,Client 端可以下载 SDK,通过 SDK 遍历 Server 端的 IP 与模块关系等,并在本地对获取的 IP 模块关系进行重新的组织与编排,这就是Clip。 Clip还提供了远程命令

介绍50+个有用的DevOps工具

折月煮酒 提交于 2020-10-24 13:27:50
什么是DevOps? DevOps的概念由开发和运维所组成,是包括了软件开发管理和团队管理的集合体。这个单词2009年被首次提出来,并自此成为IT领域的流行语。 DevOps对每个使用“DevOps”这个词的人来讲,有不同的意义,它并不只是一个标准,一个软件或者是流程,它更像是一种文化。 Gartner这样来定义DevOps: DevOps代表了一种新的IT文化,它专注于在面向系统的环境中采用敏捷、精益实践(lean practices)的方法,实现快速IT服务交付。DevOps强调人(文化),并寻求加强开发和运维团队之间的合作。DevOps的实施依仗于技术——特别是那些能从全周期的角度增强可编程性和动态基础架构管理的自动化工具。 从上面的定义中可以看出,DevOps是全周期软件开发(SDLC)的多重方法的集合,但它最核心的能力是利用技术和软件来理顺软件开发过程。根据凯捷的一项调查,如果正确的贯彻了DevOps的指导思想——合作,并采用了适宜的工具加以辅助,你的业务系统的部署频率可以提高30倍,而所需时间比传统工具缩短8000倍。 正确的工具 此列表旨在尽可能全面的向DevOps的初学者介绍成熟的工具,同时这些工具也是新近发布到市场的工具,无论怎样总有一款工具适合你和你的业务需要。对于那些已经开始实施DevOps的企业个人,我们也希望对你的企业发展有所帮助。 对于如此之多的工具

基于Ansible和Devops的一键测试环境部署实践

十年热恋 提交于 2020-09-30 21:01:52
​转载本文需注明出处:微信公众号EAWorld,违者必究。 随着网络架构的不断升级和业务的复杂化,对产品多环境支持的要求越来越高。产品支持的数据库、应用服务器、中间件、操作系统等的多样化,使测试环境的组合越来越多,导致测试环境的部署难度不断增加。 如何选择一个合适的工具,实现多样化环境部署的同时保证部署操作的易用性。下面分享一下我们基于Ansible和Devops实现的一键式测试环境部署的过程。 Ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具(Saltstack、puppet、chef等)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作,具有丰富的内置模块,同时也支持自定义模块开发 1。以下是对Ansible和其他常见运维工具的对比2 : 而ansible在自动化运维过程时具有如下优势: 1.基于模块运行,有丰富的内置模块支持 2. 基于Python开发,方便二次开发 3. 基于SSH 交互,被管机器不要安装 Agent 4. 无Server,在任何安装ansible的机器上执行命令即可 5. 脚本用YAML编写,易读和易维护 正因为ansible操作简单、易上手,功能丰富,已被很多公司纳入使用。 Ansible主要有ad-hoc和playbook两种执行方式,Ansible Ad-hoc是一次性命令

zabbix企业应用之监控CDN带宽

断了今生、忘了曾经 提交于 2020-08-18 21:46:54
最近介绍了很多ansible的使用案例,这次就回归正轨,介绍如何使用zabbix监控CDN带宽,做到在带宽出现异常的时候及时知晓,访问带宽异常造成的经济损失。 这里以蓝汛CDN为例,监控的方法是通过CDN给与的api接口。备注:目前蓝汛api接口只能查看单独频道的带宽,无法查看所有频道的,并且频道id还需要你自己或者客服帮你查下,十分不方便。 1、api接口信息为: (一) 接口地址: https://api.chinacache.com/reportdata/monitor/query?type=monitor&withtime =true&layerdetail=true&username=xxx&pass=xxx&billingid=123&starttime=2 01009190000&endtime=201009192359 说明: 1. 目前提供两种协议的接口:一种是HTTP,另一种是HTTPS,可根据需要自 行决定使用任何其中一种 2. 用户可以通过post 或get 方式访问协议的接口 (二) 参数说明: type=monitor【必选参数】:查询类型 withtime=true【可选参数】:用来表明查询结果中是否显示详细时间戳 layerdetail=true【可选参数】:用来表明查询结果中是否显示分层数据 username【必选参数】:用户名,客户在portal