最新版本提供应用程序弹性、跨超大规模云迁移和多主复制的保障。
译自 Akka Reinvented: New Runtime Environment Liberates Apps from Infrastructure,作者 Jelani Harper。
前身为Lightbend的公司已公开发布最新版本的 Akka,这是一个流行的 PaaS 开发框架,用于构建响应式应用程序。更新后的解决方案拥有一个新的运行时环境,使应用程序能够管理其底层基础设施,包括计算资源、存储持久性和(也许最重要的是)位置。
据首席执行官Tyler Jewell介绍,重塑的服务在过去四年中一直为特定客户提供私有生产环境。Lightbend 还宣布公司已更名为Akka。
Akka 闻名的应用程序响应能力通过为最终用户提供确定性延迟配置文件、弹性响应工作负载变化以及促进应用程序升级而无需停机来维持服务等级协议 (SLA)。除了最近发布的运行时环境外,该平台还包括 SDK 和编程库。
“你一直都可以使用 Akka 的库来构建这些应用程序,”Jewell 说。“但是,你必须自己进行操作。这意味着你拥有这个应用程序;它在本地运行良好。操作员需要自己弄清楚如何将其扩展并使其适应。现在,我们提供了这个运行时环境,以便应用程序可以拥有一个运行的场所并获得其所需的 SLA。”
云原生供应商通常对数据库和 Kubernetes 等基础设施有 SLA。Akka 通过启用管理其基础设施以满足这些协议的应用程序的 SLA 来颠覆这种模式。
“当应用程序说我将承担并维护我的 SLA 的责任,并且我将以一种独立于底层云原生基础设施的方式来做到这一点时,这是一种不同的思维方式,”Jewell 说。
Akka 通过自带云模型(客户在其选择的云中访问托管服务)和自托管选项在许多不同的区域无服务器部署。其运行时环境通过使使用 Akka 编写的应用程序能够类似于内存、持久性数据库一样工作来将应用程序与其基础设施解耦。
据 Jewell 介绍,此特性意味着应用程序是记录系统,并负责集群和数据分区等操作。但是,“应用程序会自动响应存在的流量和数据量,并告诉基础设施‘我需要更多计算’,或者‘数据正在变化,因此需要持久化’,”Jewell 解释道。
Akka 为客户管理(并保证)数据所需的计算和持久性,客户必须自己采购存储。将这些责任外包意味着开发人员可以专注于编写应用程序。“但是,对应用程序来说更重要的是,由于它就像它自己的数据库一样,它知道自己的状态,因此它能够自行恢复而无需与数据库通信,”Jewell 说。“它知道如何有效地重新排序自身以在任何类型的故障情况下恢复。”
最新版本的 Akka 的恢复能力归因于这样一个事实:通过此框架编写的应用程序将状态(以及状态的顺序)保留在内存中或持久性存储中。因此,在发生故障的情况下,应用程序恢复非常迅速。
此外,由于“状态(如果可以这么说)在‘网络上’可用,它使应用程序可以移动,”Jewell 说。“这意味着应用程序实际上可以从一个位置更改到另一个位置并恢复其状态。”最新版本的 Akka 利用这些功能使开发人员能够同时在多个区域运行相同的应用程序。
应用程序也可以在超大规模云提供商之间迁移,以及在云和本地环境之间迁移。用户必须指定他们希望应用程序部署的区域或位置。但是,这种可移植性非常适合加强法规遵从性、数据主权、灾难恢复、故障转移和数据回迁。“因此,您可以将应用程序迁移到不同的区域、云供应商之间,或者只是说我想完全复制它,因为我的最终用户位于不同的位置,”Jewell补充道。
Akka——供应商——对其在这些用例中的能力非常自信,以至于其协议条款现在包括一个正式的赔偿条款,适用于使用Akka构建的应用程序无响应的情况。它可能是唯一提供此类保证的供应商。“我们将补偿客户20倍的不可靠时间,”Jewell提到。“如果Akka导致应用程序一天不可靠,我们将支付他们20天的信用额度。”
Akka现在包含一个多主复制模型,其中包括多个写入节点,可在复制数据时从中修改数据。据Jewell介绍,常见的复制范例包括允许用户仅从多个复制节点中的一个修改或写入数据,而其他节点则为只读。“如果您需要修改数据,会发生什么情况是您的流量会被路由到允许您修改它的节点,”Jewell说。
使用Akka的“写入复制”模型,可以在不同的位置同时更改复制数据,而不会出现延迟、网络流量或被锁定在系统之外。数据可以在其复制到的每个位置进行编辑,“因此您可以获得更高水平的并行性和并发性,并且系统在幕后会协调任何冲突,”Jewell说。“这有点像Google Docs,但用于您的应用程序事务数据。您可以获得更好的最终用户延迟和非常可预测的最终用户体验。”
Akka新公开的功能提供的几乎每个实际好处都增强了开发者的生产力和创造力。这些专业人员可以将更多时间集中在编写最有意义、最实用的应用程序上,并花费更少的时间来确定使其保持生产所需的基础设施需求。可移植性优势、正常运行时间优势、读取和写入复制数据的灵活性以及应用程序响应能力的赔偿代表了云原生应用程序的重大飞跃。