写点什么

如何避开陷阱迈向云原生

  • 2021-06-07
  • 本文字数:2516 字

    阅读完需:约 8 分钟

如何避开陷阱迈向云原生

在云迁移策略中充分利用开源容器技术和开放规范。


如今,许多开发团队仍在数据中心中运行着单体应用程序。那些久经考验的三层架构真是太棒了!你雇来的开发人员写好代码,扔到应用里,而你请来的系统管理员随时待命,负责运行这些应用。一般来说,因为这种工作分配机制,你们每年才能交付和部署一个大版本——如果你们真的很擅长做自己的事情,那么一年可能会交付和部署两个大版本。如果你们不是谷歌或 Netflix,这样做完全没问题——用作者 Jim Butcher 的那句知名格言来说,你只需要比直接竞争对手更快就行了。

 

但是要真正超越竞争对手,你需要投资工具链和方法,来更快获得可以让用户受益的功能。迁移到云并充分利用开源软件和开放规范可以让你跑得更快、最大程度地减少对供应商的依赖、实现更快的迭代,并促进利益相关者之间的信任。这些好处让开源方法成为了一种特别高效的,支持向云中的容器化应用程序迁移的方式。

找到上云之路

在数字化转型项目和较小的、更接近战术层面的项目中,迁移到云的一大核心动机往往是自助服务。相比需要管理和维护平台、还要管理部署的 IT 运维方法,自助服务方法可以让开发人员从集群级别的访问到更类似 PaaS 的环境中自己处理各种事宜。在这种情况下,容器化微服务至关重要:容器解决了包装层面的挑战,而微服务则让各个开发团队可以独立地迭代和发布他们的服务和功能,这和单体应用中的情况是不一样的。

 

这种动态变化需要一些组织层面的调整,尤其是在 IT 部门内部,因为团队必须更加主动和一致地沟通,而不仅仅是通过格式票证来交流,这样才能促进新功能的发布。与过去的日子形成鲜明对比的是,IT 运营商和开发人员会发现他们的动机是一致的;过去的日子里,开发人员通常希望最大化功能的交付数量,而运维人员则希望最小化交付数量以保持整个系统的稳定性。当你迁移到较小的部署单元后,由于云将虚拟机和网络等构建模块隐藏在了 API 的后面,因此开发人员最终将承担起运维例程的责任,包括安全性、可观察性,并对所部署的代码随时待命。软件供应链的转变意味着开发人员必须养成良好的运维习惯,例如对应用程序源代码进行编排以发出日志、指标和跟踪,或扫描代码寻找漏洞。

 

在这种转型过程中,请记住在同事之间、管理链中以及与合作伙伴和供应商之间建立信任都需要花费时间。向云迁移所带来的企业文化变化通常是摩擦最严重的部分。新建项目和/或小型项目在这个过程中是很有用的:你可以快速查看结果、从错误中学习,并通过实施 DevOps 实践(如小批量工作并承诺快速反馈循环)等来逐步建立信任。

押注开源和规范

免费的开源软件作为你的库的一部分或在服务背后部署时有很多好处——重点在于你可以自己修复有问题的代码。当然,对我们大多数人来说,维护一个分支并不是完全可持续的行为,但是比起依靠供应商来处理支持案例,如果能立刻获得临时的有效缓解措施的话,生产力自然要高得多。

 

如果你选择以开放规范为构建基础(甚至可能是受互联网工程任务组、万维网联盟或云原生计算基金会等机构认可的标准),那么另外一个好处是,你可以在本地和云端使用相同的设置。对于本地设置,你可以部署开源解决方案、开/闭源混合解决方案,甚至是专有解决方案。在云中,你将使用基于开源项目或符合开放规范的托管服务。开源示例的列表几乎是无止境的,包括可观察性领域的 OpenTelemetry 和 OpenMetrics、用于定义和执行组织或监管策略的 OpenPolicyAgent、用于可移植容器包装和执行的 Open Container Initiative 映像和运行时规范,以及 Kubernetes API、Envoy xDS API 或用于容器编排和联网的 Service Mesh 接口。另外一个优点是,对于每种规范、API 和格式,通常都可以选择多个开源实现,这样就扩展了你的选择范围。

 

开放规范和开源软件还可以促进迁移本身:当你将负载从数据中心转移到云中时,你可以将升级操作系统、库和安全补丁等基础架构组件的繁重工作转移到你选择的云提供商上,从而释放资源,让你可以专注于你的核心业务和产品。

为障碍做好准备

除了所有这些优势,你自然也会面临一些挑战。我们来重点看看我在实践中目睹的两个最突出的障碍。

 

首先是开源软件不一定像企业服务那样受到良好的支持。只要觉得合适,任何人都可以使用开源软件并运行它。但如果你遇到错误,或者想要添加功能,或者想要对其进行扩展测试的时候该怎么办呢?开源软件的作者没有义务为你提供你需要的补救措施。FOSS(Free Open Source Software)中的“F”表示你被允许并鼓励使用封闭的专有软件无法执行的某些操作,但这并不意味着你将获得免费支持。相反,你可能需要向某些供应商付款才能获得支持,或者在你的团队内部加强工程能力来解决问题。

 

第二个是与社区相关的挑战:你需要在一定程度上与项目社区的步调保持一致。以 Kubernetes 的发布周期为例:Kubernetes 的小版本每三个月发布一次,结果你需要每年升级你的平台两到三次。这种升级涉及很多核心依赖项,例如群集附件、托管的应用程序,以及第三方组件(例如运行时扫描器或可观察性代理),你需要对它们都做好测试才能确保它们都可以在新版上继续工作。沃德利地图(https://en.wikipedia.org/wiki/Wardley_map)可以帮助你了解给定的 FOSS 产品及其生态系统在商品化与定制频谱之间处于哪个位置,帮助你了解随着时间的推移,与项目社区保持一致将需要花费多少精力。

 

在采用开源组件推动你的云原生之旅时,专注于更底层的容器这样的抽象,而不是更接近 PaaS 或者 FaaS 级别的抽象,这是没有错的。如果你能根据你的特定业务需求来优化负载,很可能会给你带来超越竞争对手的优势。请注意你所使用的抽象级别,并准备好处理这种抽象带来的后果,因为它可能会影响可移植性和开发人员的生产力。

让迁移物有所值

那么,如何才能到达云端呢?首先,应该将迁移视为一种组织和文化挑战,而不是技术挑战。充分利用开放规范和开源软件,将它们作为迁移策略的一部分,你就可以增强团队能力、促成必要的开发运维协作,从而更快地发布功能,并在迁移至较小的部署单元时明确责任归属。它也可以基于自助原则带来更容易(由人类)扩展的系统。只要保持对开源产品的客观认识,你就能够避开陷阱,并充分利用你手头的工具。

 

原文链接:

https://increment.com/containers/cloud-migration-and-containers/

2021-06-07 14:581945

评论

发布
暂无评论
发现更多内容

我在中小型项目SuperCell模式实战经验

大东(AIP内容运营专员)

HTML5 游戏开发实战 | 俄罗斯方块

TiAmo

html html5 6 月 优质更文活动

如何基于G6进行双树流转绘制?

EquatorCoco

G6 CRM系统 双树流

6月优质更文活动结果已出炉,快来看看有没有你

InfoQ写作社区官方

热门活动 6 月 优质更文活动

LED租赁屏市场

Dylan

活动 广告 方案 设备 LED显示屏

Gartner®DevOps 平台魔力象限出炉,GitLab 获评「领导者」!

极狐GitLab

gitlab 安全 开放平台 开源贡献者 领导者象限

我为什么选择多边形架构做为工程的基础思想

大东(AIP内容运营专员)

List的拆分的几种方式

EquatorCoco

前端 前端框架 开发框架

“Cisco Live 2023 大会”云原生观测解决方案成关键看点

乘云数字DataBuff

云原生 APM 可观测性 Cisco 智能运维AIOps

你说搞开发的很累,那做什么工作不累?

树上有只程序猿

为什么负数的补码等于反码加一

xzy

代码随想录训练营 Day02 - 数组(下)

jjn0703

算法

鲲鹏入晋,乘云而起,华为开发者大会开启“山西时刻”,共话山西鲲鹏生态建设

彭飞

实现淘宝母婴订单实时查询和可视化|Flink-Learning实战营

Apache Flink

大数据 flink

通过构建背景图学习CSS径向渐变

南城FE

CSS 前端开发 渐变

采用Qt+Live555搭建RTSP服务器

DS小龙哥

6 月 优质更文活动

IPQ9574 motherboard and QCN9274 network card are perfectly combined to achieve triple-band rate 2.4G/5G/6E

wifi6-yiyi

wifi6 WiFi7

看这个视频,4万人学会云上部署 Stable Diffusion

Serverless Devs

云计算 Serverless 函数计算FC

Flink CDC 2.4 正式发布,新增 Vitess 数据源,PostgreSQL 和 SQL Server CDC 连接器支持增量快照,升级 Debezium 版本

Apache Flink

flink

如何用极狐GitLab 为 iOS App 创建自动化CI/CD?详细教程来了

极狐GitLab

ios DevOps gitlab 自动化 CI/CD

es 笔记二之基础查询

Hunter熊

elasticsearch

Docker容器共享磁盘

高端章鱼哥

Docker Linux

如何使用 Flink SQL 探索 GitHub 数据集|Flink-Learning 实战营

Apache Flink

大数据 flink 实时计算

2023中国(抚远)冷水鱼预制菜高质量发展大会在黑龙江抚远举办

新消费日报

AI 和 DevOps:实现高效软件交付的完美组合

SEAL安全

AI DevOps 企业号 6 月 PK 榜

券商数字化创新场景数据中台实践

袋鼠云数栈

数字化转型 数据治理

科兴未来|浙江丽水市第六届高层次人才创业大赛活动

科兴未来News

火山引擎A/B测试推出智能流量调优实验,助力汽车行业破局营销困境

字节跳动数据平台

基于群组实现从 Azure AD 到极狐GitLab 的单点登录

极狐GitLab

统一身份认证 IdP 单点登录 用户同步 配置群组同步

如何避开陷阱迈向云原生_架构_Michael Hausenblas_InfoQ精选文章