随着云计算技术的成熟与普及,许多已经开始使用公有云服务,或者已经自建私有云基础平台的企业面临的下一个问题是怎样更好的利用云计算,更好的将原来传统架构的应用转换为云端应用。
云端应用与传统架构上开发的应用的定义有很大不同。这个不同不是说传统架构的应用不能在云架构上运行,云端应用侧重于怎样在传统架构应用的基础上更好的利用云计算带来的便利,将云计算的优势转化为应用优势,继而转化为企业的业务优势,更好的适应市场的变化与现代企业对IT的要求。
这里简单列出云端应用所具有的特点:
1. 应用代码可以很好的进行版本控制:每一个可部署的应用程序都存放在版本控制的代码库中。它可能在多个环境中部署了许多部署实例。
2. 显性依赖关系:一个应用程序显式地声明自己的依赖,并通过适当的工具(例如,Maven、Bundler、NPM)来消除这些依赖性,而不是依赖于其部署环境中某些特定的,隐含的依赖关系。
3. 利用“配置”管理环境差异:配置,或者在部署环境(例如,开发、登台、生产)之间可能存在差异的任何东西都是通过配置文件,或者是操作系统级环境变量的配置来处理。
4. 统一形式的后台服务:后台支持服务,如数据库或消息代理,被视为附加的资源,在所有环境中都是以统一的形式存在,便于与其他系统组件的集成。
5. 开发,部署, 运行三阶段分离:应用的开发,部署,运行三阶段不但在逻辑上分离,还要在物理环境,工作流程上分离。
6. 应用的进程:应用程序作为一个或多个无状态进程执行,进程间不共享任何东西。任何有状态的组件都以外部服务的方式(缓存、对象存储等)。
7. 应用间通过端口绑定:应用程序是独立的,通过端口绑定(包括HTTP)与其他应用通信,导出自己的服务,导入需要的服务。
8. 水平扩展:应用扩展是通过水平扩展来实现计算并发性,提高资源利用率,应用的执行效率。
9. 应用健壮性要求高:应用可以快速启动,快速关闭,应用健壮性高。这些方面允许系统的弹性伸缩,部署变更,以及从崩溃中恢复。
10. 支持持续交付和部署
下一篇文章将介绍传统架构应用怎样转换为/迁移为云端应用