devops_devops题库 - CSDN
精华内容
参与话题
  • DevOps到底是什么鬼?DevOps介绍及工具推荐。

    万次阅读 多人点赞 2019-06-14 09:25:36
    什么是DevOps DevOps是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益...

    什么是DevOps

    DevOps是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

    可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。

    image

    传统的软件组织将开发、IT运营和质量保障设为各自分离的部门。在这种环境下如何采用新的开发方法(例如敏捷软件开发),这是一个重要的课题:按照从前的工作方式,开发和部署不需要IT支持或者QA深入的、跨部门的支持,而却需要极其紧密的多部门协作。然而DevOps考虑的还不止是软件部署。它是一套针对这几个部门间沟通与协作问题的流程和方法。

    DevOps工具

    工欲善其事,必先利其器,现在大家在DevOps领域最关注的还是在工具层面。

    下面是我跟这么多公司接触下来,大家使用比较多的工具:

    1、监控工具

    比较老牌的就是Zabbix,Nagios,用Zabbix的感觉是最多的。国内的有小米开源的OpenFalcon。这类监控工具一般是对服务器、服务(中间件,数据库)做一些常用指标的监控。

    2、性能分析/APM工具

    APM很多时候被认为是监控的一个细分领域。但在现代复杂分布式系统架构下,APM工具往往更能准确、直接的帮助用户定位到性能瓶颈,比如哪一个URL访问慢、哪一个方法执行慢、哪一个SQL执行慢。在以往要想拿到这些数据,往往得需要比较资深的架构师、DBA一起合作才能拿到这些数据,而定位瓶颈的效率往往还不太高。现在通过APM工具能让普通技能的运维人员,也很高效的定位到这些深层的问题。现在商用的APM工具不少,国外的有Newrelic,国内知名的就有听云、Oneapm、透视宝这些。开源的也有Pinpoint(naver开源)、Zipkin(twitter开源)、CAT(大众点评开源).

    3、批量+自动化运维工具

    这里就比较多了,知名的有Puppet、Ansible、Chef、Saltstack这些。这些在网上的资料也比较多,找比较新版本的官方文档看就行了。Puppet和chef是比较早期的工具,受众面也很大,不过这两个工具基于ruby实现,现在要找到熟悉ruby的人来做这块的二次开发可不容易。而ansible和saltstack则相对新生代一些,目前用户基数增长很快,基于python实现,要找做二次开发的人也相对容易的多。

    4、集中日志分析工具

    在一个服务器比较多的环境下,如何集中的管理和分析、查询日志,已经变成一个比较强的需求了。想象一下,如果发生了某个错误,你还得一台台机器去翻日志文件,是不是很蛋疼。在这个需求驱动下,就诞生了一些集中日志分析工具。在开源领域,比较知名的就是ELK这一套工具了,涵盖了日志采集、上报、搜索、展现这一类基本需求,现在比较多的上规模的企业都用这个,网上资料也大把。核心实现机制都是通过一些日志采集代理(类似Filebeat)去爬日志文件,将最新的部分提交到采集服务端,后端再对接搜索引擎,能支持很快速、准确的搜索即可。有一个国内不怎么知名的Sentry日志收集服务,比较轻量级,本身是Python做的,与各种语言的日志框架做了非常好的集成,可以很方便的集中收集异常日志,并分配给对应的开发人员。它在github上有10000多个star了,这在DevOps相关的软件里,都是排名非常靠前的了。git的地址:GitHub - getsentry/sentry: Sentry is cross-platform crash reporting built with love

    5、持续集成/发布工具

    我接触的人都是用Jenkins的,没有用其他的,可能跟我所在的技术圈子有关。集成打包的过程其实一般都比较简单,配好版本库和打包脚本就行。但发布的过程就比较复杂,有些是全量发布,但也有非常多的IT团队采用增量发布。这个方面如果想用工具,还是得先分析清楚现有的发布流程,手工情况下怎么做,哪些能通过自动化工具来完成。

    6、IaaS集成

    最近两年的公有云推广比较迅速,很多新的服务器采购都被导入到云上去了。现在主流的公有云都提供了比较完备的API,基于这些API也可以做一些针对基础资源的自动化操作,比如游戏行业的快速开服。

    更多的可以看下知乎上的一篇关于DevOps的文章:<<你所在的公司是如何实施DevOps的?>>

    https://www.zhihu.com/question/24413538/answer/116474416

    推荐阅读

    面经:史上最全Java多线程面试题及答案

    工具:推荐一款在线创作流程图、思维导图软件

    本文原创首发于微信公众号:Java技术栈(id:javastack),转载请原样保留本信息。

    展开全文
  • DevOps简介

    千次阅读 2019-03-01 11:06:17
    DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。 DevOps的概念 DevOps一词的来自于Development和Operations的组合...

    原文: https://www.cnblogs.com/liufei1983/p/7152013.html

    DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

     

    DevOps的概念

    DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

    DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维。

     

     换句话说,DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。

    历史变革

    由上所述,相信大家对DevOps有了一定的了解。但是除了触及工具链之外,作为文化和技术的方法论,DevOps还需要公司在组织文化上的变革。回顾软件行业的研发模式,可以发现大致有三个阶段:瀑布式开发、敏捷开发、DevOps。

    DevOps早在九年前就有人提出来,但是,为什么这两年才开始受到越来越多的企业重视和实践呢?因为DevOps的发展是独木不成林的,现在有越来越多的技术支撑。微服务架构理念、容器技术使得DevOps的实施变得更加容易,计算能力提升和云环境的发展使得快速开发的产品可以立刻获得更广泛的使用。

    好处是什么?

    DevOps的一个巨大好处就是可以高效交付,这也正好是它的初衷。Puppet和DevOps Research and Assessment (DORA) 主办了2016年DevOps调查报告,根据全球4600位各IT公司的技术工作者的提交数据统计,得出高效公司平均每年可以完成1460次部署。

    与低效组织相比,高效组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。在工作内容的时间分配上,低效者要多花22%的时间用在为规划好或者重复工作上,而高效者却可以多花29%的时间用在新的工作上。所以这里的高效不仅仅指公司产出的效率提高,还指员工的工作质量得到提升。

    DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感。员工们变得更高效,也更有满足和成就感;调查显示高效员工的雇员净推荐值(eNPS:employee Net Promoter Score)更高,即对公司更加认同。

    快速部署同时提高IT稳定性。这难道不矛盾吗?

    快速的部署其实可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地响应。而且,DevOps小步快跑的形式带来的变化是比较小的,出现问题的偏差每次都不会太大,修复起来也会相对容易一些。

    因此,认为速度就意味着危险是一种偏见。此外,滞后软件服务的发布也并不一定会完全地避免问题,在竞争日益激烈的IT行业,这反而可能错失了软件的发布时机

    为什么DevOps会兴起?

    为什么会继续火下去?

    条件成熟:技术配套发展

    技术的发展使得DevOps有了更多的配合。早期时,大家虽然意识到了这个问题的,但是苦于当时没有完善丰富的技术工具,是一种“理想很丰满,但是现实很骨感”的情况。DevOps的实现可以基于新兴的容器技术;也可以在自动化运维工具Puppet、SaltStack、Ansible之后的延伸;还可以构建在传统的Cloud Foundry、OpenShift等PaaS厂商之上。

    来自市场的外部需求:这世界变化太快

    IT行业已经越来越与市场的经济发展紧密挂钩,专家们认为IT将会有支持中心变成利润驱动中心。事实上,这个变化已经开始了,这不仅体现在Google、苹果这些大企业中,而且也发生在传统行业中,比如出租车业务中的Uber、酒店连锁行业中的Airbnb、图书经销商Amazon等等。能否让公司的IT配套方案及时跟上市场需求的步伐,在今天显得至关重要。

    DevOps 2016年度报告给出了一个运维成本的计算公式: 
    停机费用成本 = 部署频率 * 版本迭代失败概率 * 平均修复时间 * 断电的金钱损失

    来自团队的内在动力:工程师也需要

    对于工程师而言,他们也是DevOps的受益者。微软资深工程师Scott Hanselman说过“对于开发者而言,最有力的工具就是自动化工具”(The most powerful tool we have as developers is automation)。

    工具链的打通使得开发者们在交付软件时可以完成生产环境的构建、测试和运行;正如Amazon的VP兼CTO Werner Vogels那句让人印象深刻的话:“谁开发谁运行”。(You build it, you run it)

    实现DevOps需要什么?

    硬性要求:工具上的准备

    上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:

    • 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

    • 构建工具:Ant、Gradle、maven

    • 自动部署:Capistrano、CodeDeploy

    • 持续集成(CI):Bamboo、Hudson、Jenkins

    • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail

    • 容器:Docker、LXC、第三方厂商如AWS

    • 编排:Kubernetes、Core、Apache Mesos、DC/OS

    • 服务注册与发现:Zookeeper、etcd、Consul

    • 脚本语言:python、ruby、shell

    • 日志管理:ELK、Logentries

    • 系统监控:Datadog、Graphite、Icinga、Nagios

    • 性能监控:AppDynamics、New Relic、Splunk

    • 压力测试:JMeter、Blaze Meter、loader.io

    • 预警:PagerDuty、pingdom、厂商自带如AWS SNS

    • HTTP加速器:Varnish

    • 消息总线:ActiveMQ、SQS

    • 应用服务器:Tomcat、JBoss

    • Web服务器:Apache、Nginx、IIS

    • 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库

    • 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

    在工具的选择上,需要结合公司业务需求和技术团队情况而定。(注:更多关于工具的详细介绍可以参见此文:51 Best DevOps Tools for #DevOps Engineers)

    软性需求:文化和人

    DevOps成功与否,公司组织是否利于协作是关键。开发人员和运维人员可以良好沟通互相学习,从而拥有高生产力。并且协作也存在于业务人员与开发人员之间。

    出席了2016年伦敦企业级DevOps峰会的ITV公司在2012年就开始落地DevOps,其通用平台主管Clark在接受了InfoQ的采访,在谈及成功时表示,业务人员非常清楚他们希望在最小化可行产品中实现什么,工程师们就按需交付,不做多余工作。

    这样,工程师们使用通用的平台(即打通的工具链)得到更好的一致性和更高的质量。此外,DevOps对工程师个人的要求也提高了,很多专家也认为招募到优秀的人才也是一个挑战。

    DevOps的采用现状

    哪些公司在用?

    DevOps正在增长,尤其是在大企业中:调查发现,DevOps的接受度有了显著提高。74%的受访者已经接受了DevOps,而去年这一比例为66%。目前,在81%的大企业开始接受DevOps,中小企业的接受度仅为70%。

    那么具体而言都有些公司在采用DevOps呢?Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Target(泛欧实时全额自动清算系统)、Walmart、Sony等等。

    他们怎么实施的?

    首先,大企业正在自下而上接受DevOps,其中业务单位或部门(31%)以及项目和团队(29%)已经实施DevOps。不过,只有21%的大企业在整个公司范围内采用了DevOps。 

    其次,在工具层面上,DevOps工具的用量大幅激增。Chef和Puppet依然是最常用的DevOps工具,使用率均为32%。Docker是年增长率最快的工具,用量增长一倍以上。Ansible的用量也有显著增加,使用率从10%翻倍至20%。

     

     

    展开全文
  • 整理了一份史上最全的DevOps 工具链

    万次阅读 多人点赞 2018-02-08 20:20:20
    在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从2009年~2017年),列出几个相对明确又有所不同不同的定义,从而能够...

    2018-02-07 朱少民 软件质量报道

    在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从2009年~2017年),列出几个相对明确又有所不同不同的定义,从而能够比较全面了解DevOps的内涵。

    【2009】 DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和QA部门之间的沟通、协作与整合;

    【2011】快速响应业务和客户的需求,通过行为科学改善IT各部门之间的沟通, 以加快IT组织交付满足快速生产软件产品和服务的目

    【2015】DevOps强调沟通、协作、集成、自动化和度量,以帮助组织快速开发软件产品,并提高操作性能和质量保证;强调自动化软件交付和基础设施变更的过程,以建立一种文化和环境,通过构建、测试和发布软件等方法,可以快速、频繁地、更可靠地发布软件。

    【2016】 DevOps的目标是建立流水线式的准时制(JIT)的业务流程,以获得最大化业务成果,例如增加销售和利润率,提高业务速度、减少运营成本。

    【2017】一个软件工程实践,旨在统一软件开发(Dev)和软件操作(Ops),与业务目标紧密结合,在软件构建、集成、测试、发布到部署和基础设施管理中大力提倡自动化和监控。DevOps的目标是缩短开发周期,增加部署频率,更可靠的发布。

    这里写图片描述
    简单地说,DevOps是敏捷研发中持续构建(Continuous Build,CB)、持续集成(Continuous Integration,CI)、持续交付(Continuous Delivery,CD)的自然延伸,从研发周期向右扩展到部署、运维,不仅打通研发的“需求、开发与测试”各个环节,还打通“研发”与“运维”。DevOps 适合“软件即服务(SaaS)”或“平台即服务(PaaS)”这样的应用领域,其显著的特征就是:

    打通用户、PMO、需求、设计、开发(Dev)、测试、运维(Ops)等各上下游部门或不同角色

    打通业务、架构、代码、测试、部署、监控、安全、性能等各领域工具链。

    这里写图片描述

    下面我们就展开DevOps的工具链。

    这里写图片描述
    上面相对比较简单地展示了DevOps基本工具链的主要工具,相对全的工具,需要覆盖大概十四类工具:

    编码版本控制:维护和控制源代码库中的变更

    协作开发

    构建:版本控制、代码合并、构建状态

    持续集成

    测试:自动化测试及测试报告

    打包:二进制仓库、Docker镜像仓库

    部署工具

    容器:容器是轻量级的虚拟化组件,它以隔离的方式运行应用负载。它们运行自己的进程、文件系统和网络栈,这些资源都是由运行在硬件上的操作系统所虚拟化出来的

    发布:变更管理、自动发布

    编排:当考虑微服务、面向服务的架构、融合式基础设施、虚拟化和资源准备时,计算系统之间的协作和集成就称为编排。通过利用已定义的自动化工作流,编排保证了业务需求是和你的基础设施资源相匹配的

    配置管理:基础设施配置和管理,维护硬件和软件最新的、细节的记录-包括版本、需求、网络地址、设计和运维信息

    监视:性能监视、用户行为反馈

    警告&分析工具

    维护工具

    更完整的结构,如图5所示。
    这里写图片描述

    这里写图片描述

    展开全文
  • 什么是DevOps

    万次阅读 2018-10-29 10:55:29
    DevOps目前并没有权威的定义,网易云认为,DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。 如果从字面上来理解,DevOps 只是...


    转自:https://www.zhihu.com/question/58702398/answer/235777073

     

    DevOps目前并没有权威的定义,网易云认为,DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件

    如果从字面上来理解,DevOps 只是Dev(开发人员)+Ops(运维人员),实际上,它是一组过程、方法与系统的统称,其概念从2009 年首次提出发展到现在,内容非常丰富,有理论也有实践,包括组织文化、自动化、精益、反馈和分享等不同方面。

    1. 组织架构、企业文化与理念等,需要自上而下设计,用于促进开发部门、运维部门和质量保障部门之间的沟通、协作与整合,简单而言组织形式类似于系统分层设计。
    2. 自动化是指所有的操作都不需要人工参与,全部依赖系统自动完成,比如上述的持续交付过程必须自动化才有可能完成快速迭代。
    3. DevOps 的出现是由于软件行业日益清晰地认识到,为了按时交付软件产品和服务,开发部门和运维部门必须紧密合作。

    所以,我们有上面的说法。那企业为什么需要DevOps,DevOps有什么依赖?我们认为:

    1. 为了抓住商业机会,业务需要快速迭代,不断试错,因此,企业需要依赖拥有持续交付的能力,这些不仅包括技术需求还包括产品的需求,如何能拥有持续交付的能力,大而全的架构因为效率低下,显然是不合适的。于是演变出微服务架构来满足需求,通过把系统划分出一个个独立的个体,每个个体服务的设计依赖需要通过12 要素的原则来规范完成。
    2. 系统被分成了几十个甚至几百个服务组件,则需要借助DevOps 才能很好地满足业务协作和发布等流程。
    3. DevOps 的有效实施需要依赖一定的土壤,即敏捷的基础设施服务,现实只有云计算的模式才能满足整体要求。

    利益相关:以上内容摘自网易云架构团队写的《云原生应用架构实践》。

    展开全文
  • DevOps基础-1.1-什么是DevOps以及概述

    万次阅读 多人点赞 2018-07-23 06:10:39
    本人当前的工作范围主要的就是DevOps,更具体一点就是写Jenkins Pipeline 脚本。我最近慢慢学习一个DevOps基础的视频教程,这个教程是Lynda.com,纯英文的。打算写一个笔记,应该来说是翻译这个课程。任何新奇的事物...
  • 为什么大公司一定要使用DevOps?

    万次阅读 多人点赞 2018-08-26 00:06:40
    0 DevOps的意图究竟什么是DevOps? 要想回答这个问题,首先要明确DevOps这个过程参与的人员是谁?即开发团队和IT运维团队!那么,DevOps的意图是什么呢...
  • Agile、CI、CD和DevOps的区别和联系

    千次阅读 2019-12-12 22:19:32
    可以看出,敏捷开发(Agile Development)、持续集成(Continuous Integration)、持续交付(Continuous Delivery)和开发运维一体化(DevOps),所覆盖的软件生命周期的阶段不同。 参考资料 1....
  • 认识一下 Azure DevOps

    万次阅读 热门讨论 2019-03-24 10:40:08
    Azure DevOps 什么是 Azure DevOps?跟大家说一个它的前身,VSTS(Visual Studio Team Service),什么?还是不知道?那再跟你说一个,TFS(Team Foundation Server)。没错,很多 .NET 资深的工程师都能耳熟能详这...
  • DevOps与敏捷开发

    千次阅读 2018-08-01 09:58:50
    在软件开发生命周期中,会遇到两个...第二、是在开发阶段和构建部署阶段之间,大量完成的开发任务可能阻塞在部署阶段,影响交付,于是有了DevOps。 引用: https://blog.csdn.net/difffate/article/details/775...
  • DevOps 工具链图 汇总

    千次阅读 2018-01-21 15:45:43
    以下两幅图都是关于Devops的工具链,近几年来DevOps这个词出现在工作中的频率也越来越高,因此记录一下:
  • DevOps,到底是开发还是运维?

    千次阅读 2019-10-14 11:25:35
    DevOps 自 2009 年诞生以来,至今整整过去了十年,从最初的摸索,逐步变成一种主流的软件开发交付模式。DevOps 这个词来自于 Development 和 Operations 的组合,可以说,DevOps 的应用,很好地填补了开发端和运维端...
  • Azure DevOps Server 的安装教程

    千次阅读 热门讨论 2019-02-11 13:27:52
    Azure DevOps Server 安装指南 下载链接:https://azure.microsoft.com/zh-cn/services/devops/server/ 1、安装好了会出现以下界面: 其实微软的产品,你就跟着下一步下一步就好了,没什么难度。 2、新部署 ...
  • DevOps有关的书

    千次阅读 2015-11-04 22:35:57
    从china-pub、当当网等在线书店搜索关于DevOps的书来看,只有为数不多的几本:《DevOps故障排除:linux服务器运维最佳实践》《深入网站开发和运维》尤其以《DevOps故障排除:linux服务器运维最佳实践》为量多广泛、...
  • DevOps 初学者的入门指南

    万次阅读 多人点赞 2016-11-14 11:50:32
    当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是”DevOps”呢?什么是DevOps随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试...
  • Devops=流程+自动化工具,请问谁实施的Devops的规范,能否分享一下具体的Devops的流程规范或者相关软件开发规范?多谢了
  • 对于devops运维的理解

    千次阅读 2018-10-22 14:08:20
    1.如今很多人认为devops将彻底取代传统运维,我不这么认为,在我看来devops是传统运维技术上的进阶分支,应该去学习这些新的技术去扩充自己,而不是担心会被取代 2.devops很大程度上的代替了传统运维的手工操作,...
  • 如何在短时间内成为DevOps专家?

    千次阅读 2018-07-20 14:50:33
    伴随着IT行业的迅速变迁和发展,DevOps一路勇往直前,目前它已成为软件行业交付的最佳实践。现如今,Devops作为IT圈最火的岗位之一,企业对于IT团队熟悉Devops技能,自然也会给予要求。 当然,Devops被谈及时,每...
  • 什么是DevOps工程师?

    千次阅读 2017-06-20 11:04:53
    https://puppet.com/blog/what-a-devops-engineer什么是DevOps技能? DevOps技能领域: 编码或脚本 流程重新设计
  • DevOps的三大原则

    万次阅读 2017-08-24 23:22:05
    DevOps的三大原则: 1、基础设施即代码(Infrastructure as Code) DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化...
  • DevOps从入门到放弃 - 目录

    千次阅读 2018-06-27 06:34:10
    DevOps从入门到放弃 前言 DevOps修炼等级 关于作者 版权声明 目录 (一)入门篇 (二)工具篇 (三)转型篇 (四)实践篇 (五)挑战篇 参考文档 DevOps从入门到放弃 前言 和朋友们讨论,筹划着写...
1 2 3 4 5 ... 20
收藏数 51,073
精华内容 20,429
关键字:

devops