干研发更喜欢无服务器,搞 DevOps 偏爱容器?

  根据 DevOps Pulse 调查,2018 年无服务器采用率从 30.55%上升到 42.58%。在采用者中,28.54%从事研发工作,44.26%从事 DevOps、DevSecOps、SysAdmin 或 SRE 工作。

  无服务器计算是当前的热门话题,甚至热度超过 Docker 容器。当然,技术圈内的口水战从来不会因为技术发展而停止。过去一年,关于无服务器计算可能取代容器的言论甚嚣尘上。搞好了,无服务计算可以和容器相辅相成;搞不好,不仅面临绑定风险还可能耗费高昂成本。

  自 Docker 出现开始计算,容器已经走过漫长的一段路。目前,不少企业在容器上运行越来越复杂的应用,生态系统也越来越完善。大型互联网公司,比如阿里巴巴,在容器层面进行了不少自研工作。通过解决基础架构层的问题,目前容器已经可以提供与语言和运行时无关的解决方案,这非常适合现代 IT 架构,即使用不同的语言构建微服务。

  围绕无服务器的炒作显然没有容器那么长,除了托管服务外,一些解决方案可让用户在自己的 Kubernetes 集群上运行无服务器,比如谷歌与其合作伙伴所做的工作。虽然这些解决方案试图满足开发人员的所有需求,但不免让人感觉已经开始放弃无服务器的最大优势——不必担心服务器!

  虽然无服务器计算可以和容器一起使用,但研发人员还是需要清楚各自的使用场景。

  无服务器计算更倾向于处理网站或移动应用程序的后端任务,该任务相对快速且简单,可以根据需要执行,不会占用太多前端时间或资源;负责高容量的后台进程,比如将数据移动到长期存储设备上,或者转换、处理和分析数据,无服务器可以协调各个数据库,这一点也很关键;实时数据流处理和上传,无服务器可以解析、过滤传入数据流;将资源密集型实时进程挪出主应用,避免占用过多资源。

  相比较而言,容器更适合需要长期运行、性能可掌握的大规模应用程序。由于二者的不同特点,容器比无服务器更容易实现弹性,并且更容易接触底层架构以调整性能、可用性和易用性等之间的关系。

  众所周知,无服务器计算并不是没有服务器,这只是相对用户体验而言,服务器由云供应商统一管理、配置,开发人员只需专注代码层面即可,无需操心底层细节,这可能就是技术研发人员更喜欢无服务期计算的原因。

  对企业而言,这种方式很容易被供应商锁定,而且很可能与单一云供应商的绑定越来越紧密,企业试图找到解决方案但往往会陷入另一种形式的绑定中,比如私有云。此外,不少企业在运行应用程度时其实希望了解底层基础设施的状况,以此调整一些性能指标。但是,无服务器计算无法让企业掌握这些信息,这既是它的优势也是它的劣势。当然,不少云供应商在积极尝试解决这些问题,只是还都处于早期阶段。

  容器在很多方面都可以做得比无服务器计算更优,比如更适合运行大规模复杂应用程序,容器可以将其拆分为微服务;可以很容易掌握整个虚拟化基础架构,这可能也是 DevOps 人员偏爱容器的原因之一;在了解架构的基础上,技术人员可以进行适当的测试和调整。

  风险总是与回报并存,无服务期计算虽然有不足,但可以节省不小一笔开支,比如基础设施成本、人力成本等,同时免于承担设置基础设施的责任。

  但是,构建基于容器的通用计算平台需要大量具备专业知识的人才和一笔不小的投资,该平台与 AWS Lambda 等无服务器产品一样高效,可扩展且具有弹性。大多数企业根本没有能力解决过程中的问题。往往是投入了大量时间和金钱,最终还是竹篮打水一场空。

  无服务器可大幅提升生产力,但却以控制基础架构为代价。开发人员纠结得往往是选择哪种方式运行应用程序。最终,无服务期计算和容器大概率会趋向协同,无服务器计算可能会更加开放,允许用户自己选择容器。高级用户甚至可通过提供符合 API 的子组件进行日志记录等保留对基础架构的控制。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DevOps是一种软件开发和运维的方法论,旨在通过将开发团队和运维团队紧密合作,实现软件开发的快速交付、稳定运行和持续改进。除了CI/CD(持续集成/持续交付)之外,DevOps还包括以下几个重要方面: 1. 自动化:自动化是DevOps的核心原则之一。它涵盖了自动化构建、部署、测试和监控等过程,以减少人工操作带来的错误和延迟,提高效率和质量。 2. 配置管理:通过使用配置管理工具(如Ansible、Chef、Puppet等),可以对服务器和基础设施进行版本控制、自动化部署和一致性管理,确保环境的可重复性和稳定性。 3. 容器化:使用容器技术(如Docker、Kubernetes等)可以将应用程序及其依赖项打包成独立、可移植的容器,实现快速部署、扩展和管理。 4. 监控与日志:通过实时监控系统性能、应用程序运行状态以及收集日志信息,可以及时发现和解决问题,确保系统的可靠性和稳定性。 5. 协作与文化:DevOps强调开发人员、运维人员和其他相关团队之间的紧密协作,促进信息共享、知识传递和问题解决。此外,它还强调持续学习和改进的文化,鼓励团队成员不断探索新技术和最佳实践。 综上所述,DevOps不仅仅局限于CI/CD,还包括自动化、配置管理、容器化、监控与日志以及协作与文化等方面。这些原则和实践的结合,可以帮助组织实现快速交付高质量软件的目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值