Kafka支持的分布式架构超越经典软件设计的五个原因


Kafka支持的分布式架构超越经典软件设计的五个原因文章插图
> Photo by Jaime Dantas- Agulhas Negras — Brazil
如今 , 云解决方案在曾经依赖于内部部署基础架构和高性能计算机体系结构(也称为基于大型机的系统)的巨型公司中日渐流行 。这种趋势首先由大型科技公司推动 , 尤其是那些被定义为FAAMG公司的公司 。考虑到这种思维方式 , 我决定写一篇文章 , 探讨使用Kafka作为主要消息代理来对抗传统的单片应用程序和大型机系统的基于事件的分布式系统的一些突出优点 。
【Kafka支持的分布式架构超越经典软件设计的五个原因】在本文中 , 我使用两个Spring Boot Java微服务 , Docker , Schema Registry和Kafka创建了一个快速教程 。我还介绍了计算系统背后的一些历史 。
大公司为何将其软件栈转换为云计算?毫无疑问 , 大型机是人类创造的最可靠 , 性能最高且最具成本效益的机器之一 。无论您是否反对它 , 我们都必须承认它的重要性 , 尤其是在1980年代直到二十一世纪初 。
但是 , 随着近几年技术的进步 , 这种能力已被使用并发系统的许多超级计算机和以可扩展方式使用给定服务的多个副本的新分布式解决方案所超越 。
市值巨大且技术预算无限制的公司过去致力于使用大型机来构建系统 , 尤其是在我们谈论金融行业时 。毕竟 , 其巨大的前期成本根本不是问题 。以最大的金融机构为例 。直到2000年代初期 , 它们中的绝大多数都是大型机驱动的机构 。
直到2006年像Amazon Web Services这样的公司成立时 , 这种情况才发生了巨大变化 。从那时起 , 大多数银行 , 政府机构 , 航空旅行公司以及许多其他公司都希望驾驭这一波云计算浪潮 。没有公司会想念这艘现代软件架构的船 。
当涉及到当今我们拥有的不同云架构时 , 异步架构将成为传统软件设计的未来替代品之一 。下面重点介绍一些将成为大型系统未来的原因 。
1-费用毫无疑问 , 对于初创和中型公司而言 , 基于云的解决方案比大型机软件便宜 。那么 , 像银行这样的100,000多个员工公司呢? 那些已经拥有强大可靠的大型机系统的公司呢? 要回答这些问题 , 我们必须在这里看到大局 。从长远来看 , 可以肯定的是 , 分布式系统的成本要比大型机架构中的MIPS(每秒数百万条指令)支付的成本低 。
另一方面 , 就创建平台本身和支持与业务相关的服务所需的基础结构而言 , 前期成本可能非常昂贵 。即使是很长的路要走 , 一旦他们启动并运行 , 成本将随着时间的推移而大大降低 。总体而言 , 这些系统的成本低于大型机系统 。
当我们谈论整体系统时 , 大型机平台有许多相似之处 。与微服务进行比较 , 我们看到了相反的成本方向 。换句话说 , 长期成本比创建和部署多个微服务要高得多 。这是事实 , 因为我们可以通过微服务不断地将业务价值部署到生产中的方式来拆分功能 。如果开发人员花几个月的时间来发布单个应用程序 , 这是无法实现的 , 这对于单片软件是正确的 , 因为他们需要更多的时间来开发 。
2-人力现在我们在这里输入一个有趣的话题 。早在1990年代 , COBOL是真实的东西 。由于当时市场需求旺盛 , 地球上的各大高校都将其包含在课程中 。这种情况在2000年代初发生了变化 , 当时出现了新的编程语言来代替大型机系统 。目前 , 每年都有成千上万的新毕业生进入市场 , 他们拥有软件开发和云计算方面训练有素的技能 。
这些曾经依靠COBOL开发人员的公司不得不适应这一新标准 。总而言之 , 全球范围内云专业人员的数量超过大型机专家的数量 。除此之外 , 当今许多COBOL程序员现在都将退休 , 我们预计在不久的将来将缺少这些专业人员 。
3-敏捷这也许是具有基于微服务和异步通信的分布式体系结构的主要优势之一 。这样做的原因是因为在微服务平台上开发和部署小功能比在大型机上开发新的子程序或例程要快 。在完整的自动化云系统中 , 敏捷团队能够在数小时甚至数分钟内将功能部署到生产中 。


推荐阅读