你所在的公司是如何实施devops的?

番茄土豆西红柿 番茄土豆西红柿     2022-10-14     628

关键词:

工欲善其事,必先利其器,现在大家在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这一套工具了,涵盖了日志采集、上报、搜索、展现这一类基本需求,现在比较多的上规模的企业都用这个,网上资料也大把。
核心实现机制都是通过一些日志采集代理(类似fiebean)去爬日志文件,将最新的部分提交到采集服务端,后端再对接搜索引擎,能支持很快速、准确的搜索即可。

有一个国内不怎么知名的Sentry日志收集服务,比较轻量级,本身是Python做的,与各种语言的日志框架做了非常好的集成,可以很方便的集中收集异常日志,并分配给对应的开发人员。
它在github上有10000多个star了,这在DevOps相关的软件里,都是排名非常靠前的了。

5、持续集成/发布工具
我接触的人都是用jekins的,没有用其他的,可能跟我所在的技术圈子有关。

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

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

 

DevOps这个概念说实话是比较大的,不只是人们所理解的CI/CD。其实理解起来有几个要素可以概括: 自服务、自动化以及持续反馈。我曾经/现在,或者我理解的DevOps实践会包含以下一些内容:

公有/私有云
将基础设施托管到云平台(如AWS),不缺安全性的同时,管理上更加具有伸缩性和高可用性(大部分的知名云平台的可用性还是比较值得信赖的),还可以降低成本(弹性计算,按需获取),实现自服务(获取资源的周期大大缩短),减少自建服务的压力。

自动化配置管理/容器化技术
基础设施管理属于DevOps里面比较重头的一项了。容器技术可以用于管理各个服务,甚至实现微服务架构。而自动化配置管理则是用代码反应基础设施(“基础设施即代码”),比如使用诸如Chef、Puppet、Ansible这样的工具实现基础设施配置管理的自动化。自动化配置管理和容器的一个区别在于,前者用代码封存基础设施的基本配置信息,后者直接封存各个基础设施的应用组件或者说服务,当然它们的应用场景也有差别。

自动化测试/部署
自动化测试和部署,其实主要是为了持续集成/部署的流水线,让我们代码的每一次提交都可以触发一个成行的测试/部署。自动化测试可能不只是单元测试级别的测试,可能还包含会模仿实际用户动作的功能测试、回归测试,这时候你就会借助一些BDD测试框架。当然,DevOps不一定要实际编写这些测试,但一定会参与管理这些测试。

持续集成/部署
借助Jenkins、Go.cd等等这样的持续集成工具,搭建自己的流水线。这样的好处就不再一一赘述。

持续的监控和日志体系
搭建一个持续可靠的监控/日志体系,就是一个反馈和持续检查的机制.

 

 

知乎话题:你所在的公司是如何实施DevOps的?

 

devops在公司项目中的实践落地

...施DevOps的关键。根据康威定律:软件团队开发的产品是对公司组织架构的反映。所以根据公司情况调整组织结构是首要条件,它将直接影响到需求、设计和开发阶段的效率、以及沟通的成本。关于团队的沟通成本在《人月神话》... 查看详情

大型企业实施devops的三个阶段

...问题。本书独家介绍了自上而下的DevOps实践(企业级),如何让领导者和参与到DevOps变革中,后面会进行详细的介绍。另外一类是自下而上的DevOps的实践(团队级),还包含了如何让组织自发产生新实践的组织模型。消费改变需... 查看详情

devops面试小宝典:总有一个你会用到

...是Git?实施DevOps的原因8.为什么DevOps很重要?DevOps如何使团队受益?9.DevOps对开发人员有什 查看详情

ci/cd实施:5个常见错误以及如何避免它们

目录为什么要转向CI/CD?使用CI/CD的5个错误以及如何避免它们1.在不稳定的CI上构建CD2.自动化带来的高成本和潜在风险3.将持续部署等同于持续交付4.不可靠的测试系统5.缺乏有意义的仪表盘和指标总结 在技术行业,你可... 查看详情

切忌一步到位,谈谈devops实施落地

...举办。BoCloud博云参加了本次峰会并分享了博云帮助客户实施DevOps的真实案例,以及博云内部推行DevOps落地的实践经验。01DevOps范围、愿景和目标过去我们谈到DevOps的时候有很多不同的认知。早先说DevOps可以是CICD,持续交付,后... 查看详情

devops和容器:本地or云端,如何选择?

...本文中,我们将分析云和本地容器部署的利与弊,以及您所在的组织若想要做出 查看详情

企业技术负责人必须知道的devops10个小技巧

DevOps成为越来越多的大型公司和组织的关键,所以参考一些公司成功实施DevOps的一些做法对我们很重要。很明显,只要正确运用,DevOps会是非常有效的工具。今年6月份,一份Puppet问卷显示,使用DevOps方法的IT部门成功部署软件的... 查看详情

什么是devops如何实现devops

参考技术A在软件开发的过程中,开发人员负责编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。DevOps就是Development(开发)和Operations(运维)两个词的组合。但这里的组合并不... 查看详情

为啥devops的必然趋势是bizdevops

...ice,函数即服务)的定制代码。无服务器是指运行系统的公司或个人不必租用或购买运行后端代码的虚拟机。无服务器计算的主要优势在于,它允许开发者可以自由地专注于应用程序的开发方面,而不需要考虑其他事情。无须升... 查看详情

浅谈测试环境治理在devops中的应用(代码片段)

...来Devops可以说是比较火的概念,几乎一夜之间全部大公司都在谈Devops,谈CI/CD流水线,谈效能提升;如果哪个公司没有实施Devops实践,那么肯定会在心里被鄙视到!其实Devops之所以能火起来,还是因为... 查看详情

科技云报道:如何破解devsecops实施三大挑战?

科技云报道原创。随着DevOps的普及,DevSecOps也开始被一些企业关注。根据GitLab发布的2021年全球DevSecOps年度调查报告,36%的受访者团队已经使用了DevOps或者DevSecOps开发软件,尤其是那些迁往云平台的新兴应用,DevSec... 查看详情

devops如何落地?

众所周知,DevOps(Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。简单来说,DevOps其核心理念提倡的开发、测试、运... 查看详情

软件实施工程师面试或者笔试时候该注意啥问题?

...比如说:打印机、传真机等。2、业务方面:根据面试的公司的主要业务相关,不多做解释,接到面试通知后多找些资料了解,选择的公司所做的业务最好是自己喜欢的,不然,实施起来你会很被动。3、性格和能力方面:适应能... 查看详情

运维面试devops&&ci/cd常见面试题

...处?10.持续交付有什么好处?11.持续部署有哪些好处?12.如何有效实施DevOps13.DevOps使用哪些工具?描述你使用任何这些工具的经验14.有哪些常见的CI/CD服务器1 查看详情

运维面试devops&&ci/cd常见面试题

...处?10.持续交付有什么好处?11.持续部署有哪些好处?12.如何有效实施DevOps13.DevOps使用哪些工具?描述你使用任何这些工具的经验14.有哪些常见的CI/CD服务器1 查看详情

devops的六个切入点

今天上午,听IBM的人讲了IBM公司一整套DEVOPS的解决方案,主要包括下面六个方面:1、业务持续规划2、业务协同开发3、业务持续测试4、业务持续集成和部署5、业务持续监控6、用户体验持续反馈最后回到1形成闭环。其中第4点,... 查看详情

如何提高团队人效?这里有2个实用的建议,很多大公司都在用!

...它,它是你的团队是否具备很强的凝聚力和执行力的关键所在,原因也很简单,你想人家跟着你拼跟着你干,你至少要告诉人家这件事情意义是什么,目标是什么,收获是什么,以及你准 查看详情

容器云原生devops——第二期:如何快速高质量的应用容器化迁移(代码片段)

暑期实习期间,所在的技术中台—效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化、标准化;实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带你玩... 查看详情