前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企业该选择运维平台还是开源工具?

企业该选择运维平台还是开源工具?

原创
作者头像
嘉为蓝鲸
发布2022-09-27 17:34:09
7680
发布2022-09-27 17:34:09
举报

最近小嘉在逛论坛时看到一位朋友提出了这样的一个问题,这与之前沟通的一位客户疑惑一致,为他解答的过程自己也整理除了一些思考,故和大家一起聊聊。

01. 开源工具为何会不符合公司要求?基于开源组件定制开发是否是好的方式?

开源工具早期包括现在一直都是国内国外企业在做运维时首选的工具体系,并且其中不乏很多工具入门简单,上手极快,功能强大,安装部署容易,并且还有开源免费的优势,满足了企业组织对维护数据中心稳定运行保障的要求。这里的开源软件包括监控、日志、自动化等常见的运维场景。

1)单个开源工具无法满足所有运维需求

单看其中一个开源工具,除了有上述提到的优势之外,其实也必然存在他的技术短板。就拿监控举例,Zabbix监控发现功能非常好用,并且插件扩展的方式几乎可以丰富任何场景。但zabbix仍有它的短板。对于当前比较火的容器部署架构,Zabbix的IaaS层监控的优势无法发挥出来,并且Zabbix 由于使用了关系型数据存储时序数据,在监控大规模集群时存储会遇到瓶颈。所以在容器、k8s架构下,Prometheus成为了更有优势的工具。所以,为了满足我们的运维需求,需要上很多运维工具。

2)运维核心转向为整个应用与架构的健康性

我们在使用开源工具时,也会面临很多场景问题无法满足,现在的运维团队不再是看单点的运行状态,而是更多以业务视角看整个应用和架构的健康性,这时zabbix的告警无法根据业务拓扑进行收敛就会成为很大的问题,疯狂的告警邮件甚至给运维增加了很多工作量。并且,zabbix根据不同场景的深度使用,都需要通过定制开发实现。除此之外,不同行业的运维体系都有报表和监控大屏的需要,这些也都需要基于业务特点,公司要求进行定开。而每种开源工具的代码逻辑都不同,如果我们对所有使用到的工具都进行定制开发,耗费的人力物力可想而知。

3)开源工具联动&集成难

开源工具搭建运维体系就会存在另外一个问题,这些工具之间的联动,也需要通过点对点的对接的方式建设。那么新上一个开源工具,就需要跟前面的n个开源工具做集成,这种集成所需的交付周期也会比较长,而且联动效果对接口强依赖,开的接口数量也不小。

从上面的分析就可以回答这三个问题:

  1. 单一的一种工具是无法覆盖所有的技术栈的,必然需要用多种工具配合使用,来完成一套完整的运维体系;对于个性化的场景,需要大量的定制开发,以及开源工具间点对点的对接方式需要时间,项目周期长,几乎跟不上业务系统敏捷迭代的速度;所以才会有许多公司考虑开发自己的运维平台。
  2. 深度定制开发,开源工具联动集成,这些工作量必然耗费人力物力,这就导致开源工具开发过程中的成本投入也不见得比研发运维平台来得少。
  3. 如果参与到开源社区维护开源工具,不同开源工具的代码逻辑、代码语言都不相同,学习成本很高。而做自己的运维平台却是“一劳永逸”的事情,既规避了开源工具未来可能闭源的风险,又能够最符合我们自身的业务特点,代码逻辑也能够保持规范且一致。

02. 我们需要的运维平台是什么样的?如何建设呢?

换而言之,当遇到以上运维场景问题时,我们需要搭建一套自己的运维平台。那么我们的运维平台又要怎么建设呢?怎么才能把开源工具不满足的短板补齐,满足公司管理要求、又能满足公司业务特点?

整个平台如何搭建,可以参考OASR模型,结合运维流程,将IT运维对象 (Object)、运维活动(Activity)、运维场景(Scene)、运维角色(Role)进行分层剖析。

通过模型梳理清楚我们不同运维角色在运维场景中的需求,拆解每个运维场景涉及的运维活动和对应的执行对象,底层的不同技术栈对象如何纳管,运维活动如何在一个平台上实现,以及这种平台建设后万一有新的技术栈,会不会也遇到开源工具遇到的问题?这些都要考虑。

在业内,就有实现运维平台建设的案例,腾讯内部根据这种运维场景和运维活动的梳理,内部搭建了一套蓝鲸运维平台。目前,蓝鲸运维平台已经在金融、证券、航司、交通、政务等行业落地,在自动化、部署、监控、权限管理、日志等等各个方面有一套完整的解决方案。而为了避免开源工具使用中的问题,我们是这样做的:

第一点,这个运维平台为了能够覆盖多种技术栈,在平台层通过一个Agent纳管底层所有的运维对象节点,以及无法下发Agent的网络设备等,可以通过协议管理的方式实现,首先做到了平台对底层资源的管控一体。

第二点,区分运维活动和运维场景,运维平台的能力层(PaaS)能够满足所有拆解后的运维单一动作,比如配置平台管理、脚本作业、容器管理等。而上层运维场景已经沉淀了常用的场景,也可以基于底层能力的调用根据平台的前后端开发框架,工具流水线、运行环境托管持续构建,能够完全满足不同运维角色的运维场景需求。这种底层的PaaS能力做到了平台一体。

第三点,针对开源工具和商用工具无法天然联动的问题,在平台之上常用的应用配置门户、监控告警、IT运维服务管理、应用发布自动化、灾备切换自动化等工具已经实现了天然的联动交互。并且外围工具也可以基于蓝鲸平台提供的标准接口做集成对接,快速实现外围工具与运维平台的联动一体。

目前,蓝鲸平台社区体验版本,欢迎各位喜欢做运维开发技术研究的业内大佬体验环境和做更多的技术交流。

码字不易,若觉得有用,可点赞关注我们,会持续提供研发&运维相关的干货内容。

若想深入了解咱们的运维平台,欢迎去官网联系嘉为蓝鲸,我们将为您提供最新的产品材料与产品试用

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01. 开源工具为何会不符合公司要求?基于开源组件定制开发是否是好的方式?
    • 1)单个开源工具无法满足所有运维需求
      • 2)运维核心转向为整个应用与架构的健康性
        • 3)开源工具联动&集成难
        • 02. 我们需要的运维平台是什么样的?如何建设呢?
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档