详解软件定义应用程序和基础设施-阿里云开发者社区

开发者社区> 开发与运维> 正文

详解软件定义应用程序和基础设施

简介:

相比于虚拟化和单独的应用程序设计,软件定义应用程序和基础设施为数据中心提供了更加灵活、有效和可信赖的设计方式。

将眼界放到大部分需要手动配置的,也可能是耗时和充满错误的虚拟化之外,容器提供了更模块化的应用程序开发方法。开发人员借助一系列独立的模块或组件,组建一套软件定义的应用程序,我们称之为“微服务”(microservices)。每个微服务运行在容器中,并通过应用程序接口进行通信。API在多种的功能模块间为容器化的组件传输数据和命令提供通道,并创建工作应用程序。通过增加额外的容器和在API与应用程序之间的通讯实现负载平衡,IT团队可实现自动化部署,监控性能和规模化组件。不处于使用状态的容器可被关闭,从而节省计算资源。

尽管有一些好处,但脱离开数据中心或基于云的基础设施层面的控制,软件定义的应用程序将无法工作。

应用程序的后台资源

基础设施监控、自动化软件定义和管理虚拟机、容器、存储实例、网络区段和其他元素的部署和规模化应用组件需要与既定的基准和政策保持一致。例如,如果应用程序的排队系统性能下降至低于可接受的速度范围,该软件定义的基础设施会自动运转,临时在任何可用的服务器上增加排队组件。尽管任何应用程序所需的资源都会随着时间发生浮动,这种精心策划的自助服务,对不稳定或难以预测的工作负载(的临时变化)非常重要。

用上述方法,API并非是一种软件定义的应用程序,它们也构成了软件定义基础设施的基础。如果API无法决定是否需要提高性能,是否需要采取行动补救的情况,IT专业人员则需要不断地监控和调整分配到应用程序的资源。

软件定义的应用程序和基础设施越来越多地与横向和纵向的服务扩充概念结合到一起。传统的应用程序依赖于纵向的服务扩充,资源将会分配到主要的软件实例当中。横向的服务扩充,则相反,复制应用组件实例——通常应用“微服务”架构,按照增加功能的需求进行增加。

横向的服务扩充是更具吸引力的方法,因为它更好地实现监测和自动化。例如,当监测显示某一组件的定时服务API调用的资源捉襟见肘时,软件定义基础设施自动复制一个或多个组件,并平衡API通信负载——所以这些增加的组件会协同工作来处理增长的应用程序工作量。

相反,如果监控显示,API调用的资源处理当前工作绰绰有余,该软件定义的基础设施可以自动删除或降低性能,增加的组件的资源将被释放用于其他工作。

何为API

传统的应用程序在集成的实现上很吃力——让应用程序采取有意义的、系统性地方法进行相互通信是很困难的,而API能够解决这一问题。

API规定的程序和协议形成应用程序的构筑区块,规定了如操作、输入、输出及其他功能属性。该接口可以帮助开发人员具备数据库访问、图形功能、网络行为和硬件设备的访问等的能力。

预置的API有微软的Windows API、C++和Java中的API标准模板库等。利用简单的对象访问协议或代表性的状态转移服务,应用程序还可以为其他应用程序提供对接。

软件定义架构的发展情况

术语“软件定义”与一系列的技术相关,包括存储、网络、应用程序、电源、基础设施,甚至整个数据中心。使用软件的概念,界定和优化IT运行环境中的元素,有着令人兴奋的应用前景,但给所有事物加上软件定义的标签会产生混淆,并可能造成IT专业人士的误解,让他们理解成软件定义应用程序和基础设施领域的内容。

例如,软件定义的架构(SDA)。这一术语是由Gartner提出的软件定义的网络和面向软件架构的扩展,很容易与软件定义的基础设施混淆。然而,软件定义的架构尝试封装数据中心内部的硬件和服务,使这些资源与用户可能接触到的应用程序、服务和设备隔离开,有效地把生产者或供应商与消费者分开。创建这个边界是为了隐藏或抽象的企业内部的运作——服务器、存储阵列和网络模式——并允许IT团队变更、更新或替换他们而不会影响面向用户的应用程序、服务或设备。

要创建这样的,在数据中心资源和外部用户之间,我们通常称之为软件网关的逻辑边界, SDA依靠两套API。“内部”的API组织和驱动内部系统,并优化数据中心端的性能。为长途网络操作所优化的“外部”的API,可以安全地访问内部的API。

软件网关由包括集成代理、API管理人员、API网关和SOA接口等软件组件创建而来。正确地实施软件网关可以实现API的转换并处理安全、业务流程和路径规划等问题。

这种方法从底层的数据中心抽象出应用程序、服务和设备。这种抽象有助于保护数据中心和企业数据;当它与API结合运用,抽象也将最终用户与供应商分离——这意味着其中一方的变化将不会影响到对方。

Gartner对软件定义架构的实现仍处于起步阶段,在未来几年内,实现方法和算法将如何发展仍有待观察。
本文转自d1net(转载)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章