如何开发成功的混合云应用
如何开发成功的混合云应用
2021-04-08
如何开发成功的混合云应用
虽然为混合云部署开发应用程序不是一个黑暗的魔法,但对许多企业来说,这仍然是一项神秘的工作。
可以想象,任何一个设想混合云开发的用户,最终都需要完成很多这样的项目,所以首先制定一个可以适用于所有项目的实施策略,然后在合适的混合部署中测试这个实施策略是非常明智的。为了成功实施混合云,这样的实施策略必须考虑混合云应用的任务、使用混合云的原因以及混合运营和应用体验质量(QoE)之间的重要互动。
云计算应用规划者可能犯的最严重的错误是,在考虑集成、集成或云计算平台选择等技术问题时,没有为应用本身设置一个应用环境。应用程序设计总是主要由任务而不是技术驱动的,但是项目任务书必须正确考虑业务问题和技术需求。
云计算应用的所有方面

应用可以实现多维分类。它们可以是事务性的,也可以涉及信息传递(第一维度)。它们可以是移动的,而不是基于桌面的(二次元)。最后,它们都可以基于会话或基于实例(第三维)。在所有这些维度中,第一个选项比第二个选项需要更多的设计关注。
在第一维度上,事务性应用程序的功能是记录或修改信息,这意味着它们在与相关数据交互时必须具有高可靠性,以避免数据损坏的危险。提高可靠性的要求意味着混合应用的公共云计算组件必须具有高可靠性,或者必须采取特殊的编程措施(如分两个阶段提交数据)来保护数据的完整性。如果您将在云计算爆发或故障转移应用程序中使用混合云,那么事务性应用程序需要在任何规模变化或故障转移活动中保持数据完整性。
相反,信息传输应用程序可以容忍响应时间的失败或变化;如果第一个请求丢失,用户将需要再次提交请求的信息。这意味着负载平衡等简单技术将支持应用程序的灵活扩展以及公共云计算和数据中心之间的工作任务转移。
在第二个方面,流动性带来了两个方面需要特别注意的问题。首先,移动连接是通过无线网络建立的,因此它的连接可靠性通常低于桌面系统。这将加剧事务性应用程序中的数据完整性问题。移动用户也可能在多个可变环境下工作,公共云计算服务可能由单个数据中心提供,会带来明显的性能差异。如果用户分散度高,就要找区域性的托管服务商。
基于会话还是基于实例的应用(第三维度)的问题是指用户是否会与应用进行长时间的交互,而不是短期的单一交互。协作是基于对话的交互的一个例子,简单地处理信用卡购买是基于案例的应用的一个例子。
在应用程序设计中有一种趋势,即面向会话的应用程序通过所谓的有状态行为依赖于可靠和一致的连接。大多数面向案例的应用程序(如网络应用程序)不需要维护与用户的多阶段对话环境(这些被称为代表性状态转换或有状态应用程序)。合成有状态的应用程序要困难得多,因为如果云计算中某个组件发生故障或在云计算中发生故障,应用程序将丢失一个过程中用户活动的相关信息。
之所以能够实现集成,可以是因为动态组件调度,也可以是因为前端和后端现有的云计算组件应用。动态调度是指根据工作负载或资源故障的实际情况,将资源分配给云计算或数据中心中的应用组件。
前端混合应用将在用户和应用的其余部分之间开发一种类似网络的应用体验,并充分利用公共云计算的优势,根据用户的实际物理位置分布,扩展这些组件或将这些组件移动到相应的区域。前端和后端方法创建了一个全面的一致性模型,即组件总是在云计算或数据中心,从而简化了设计难度。当组件需要动态移动时,将实施所有保证用户体验一致性和数据库完整性的措施。
确保高质量的用户体验

用户体验的一致性是所有混合云设计问题中最具挑战性的,部分原因是它的主观性和可变性很强。公共云计算应用的体验特征存在显著差异,主要取决于用户相对于其相关云计算托管点的位置、云计算托管相对于数据中心组件的位置以及所有这些位置的网络连接质量。
混合云应用的应用体验特性可以通过使用可用性区域的方法来管理托管位置,并通过确保在云计算爆发或故障转移的动态调度过程中不会有可能在事务性应用的状态行为中引入延迟的应用错误(即确保用户永远不会离基于云计算的组件太远)来非常容易地解决。
混合云应用程序设计的最后一点是客户端设备和其中托管的任何本地软件的角色。当应用程序体验特性较差时,客户端软件可以管理“用户-应用程序”交互,以防止用户通过重新提交应用程序来生成多个更新。在云计算爆发或故障转移的过程中,它还有助于重新同步应用程序会话或事务。
如果您在开发自己的混合云应用程序时遇到了上述大多数设计问题,您可能需要考虑采用专业的设备应用程序来匹配其余的云计算应用程序。反而会提高系统的稳定性和用户的满意度。

展开