企业内部应用转换为在线服务
Windows Azure已经成为众多IT服务提供商们热议的话题其中有的认为只有提供互连网用户服务的应用才适合放在公有云环境内运行。然而事实上在当前Windows Azure环境上有许多企业也把企业内部的应用放在公有云上它们包括
Web/Brower架构。Web服务器直接放在Windows Azure环境中方便企业内员工通过HTTPS方式连接到企业内网或互联网访问。特别在跨国企业环境中这样做可减少公司内部不同国家的办公室之间网络流量。
Client/Server架构。应用服务器放在Windows Azure环境中用户端的应用可以部署在PC或移动设备上方便用户访问。如果考虑网络安全还可以加上VPN或其他安全保护机制。
本文主要介绍某个企业将原本在企业数据中心的应用的迁移到Windows Azure上部署的案例。在该企业的数据中心里该应用是让企业购买软件后自行部署到物理机的企业要安排IT人员到客户端去协助维护与更新软件。迁移到Windows Azure中部署成在线服务之后可以节省原本要另外购买服务器硬件的成本同时也减少了IT对客户服务的工作量以后升级及维护的工作可以通过脚本直接在Windows Azure环境中对所有虚拟机和软件进行配置。本文主要内容有对迁移前的应用架构的关键点分析、部署过程中需要调适的配置、可能的不同部署方式等。Windows Azure应用部署原则按照应用实际运行的最佳环境需求设计。
以下内容先介绍针对要迁移的应用的架构环境进行调研然后介绍迁移到Windows Azure的过程。调研工作主要从从硬件、网络、存储、应用等四个方面进行了解原有环境存在的缺点与客户期望的改进。然后说明迁移到Widnows Azure后的优点以及实现了哪些改进。
原有应用架构环境调研
服务器
对于传统数据中心用户通过互联网访问服务器上安装的应用合作伙伴直接开发新的插件上传到服务器并与现有应用集成。每个客户的基本配置是一台网站服务器和一台数据库服务器。企业的传统数据中心环境都采用直接提供物理机的方式或者由客户自行准备物理机来安装应用。
迁移到Windows Azure虚拟机环境后可以提高服务器的硬件资源使用效率。
网络环境
默认情况下网络环境应该把不同客户的虚拟机网络都隔离开来可以使用Vlan ID在同交换机上隔离网络通道。但是因为需要在所有服务器上打补丁应用本身的补丁与Windows Server, SQL Server的补丁所以必须与管理服务器连接这在物理交换机上很容易实现。但是迁移到Windows Azure环境里之后就只能使用Azure本身的Virtual Network来做解决方案会在后面详述。
存储
在传统数据中心里所有的虚拟机文件都是放在物理服务器外部的共享存储中通过集群解决无理解故障故障时处理逻辑可以自动迁移到其他物理机上重启后继续运行。正在使用的服务将会中断也会存在少量数据丢失的可能通过数据库回滚技术可以继续正常工作。但是对客户来说服务质量还需进一步加强。因为成本的限制共享存储内的数据并没有同步拷贝到其他数据中心。
应用
该企业准备迁移的应用属于三层架构为了简化安装与运营的维护要求网站与应用被安装在同一台网站服务器内只有数据库独立安装于一台虚拟机中。应用层已经具备了扩容的功能可以建立网站服务器资源池并配置硬件负载平衡器只要在网站资源池内新增网站服务器然后执行配置更改的脚本就可以提供多台服务器共同提供服务。后端的数据库服务器没有设计为数据水平分散的架构在硬件的数据库服务器没有做到扩容的功能。
调研结果
这是典型的符合从物理机转换到虚拟化环境然后再迁移到Windows Azure的场景。本文主要讨论如何使用Windows Azure解决方案满足客户的期望。以下是四个方面是主要且常见的需求
物理机资源使用率提高与虚拟机容错
网络可以隔离但是管理环境的网络必须连接到每一部服务器
数据存储高可用性提升
应用与数据库扩容
迁移到WINDOWS AZURE
物理机资源使用率提高与虚拟机容错
在Windows Azure环境里不需要去考虑物理机硬件因为物理机的管理已经由Azure完全负责。
虚拟机的容错在Azure的环境里是默认存在的只要选取就行。
网络可以隔离但是管理环境网络必须透通
Azure环境里配置不同的虚拟网络并把不同的客户虚拟机指派到隔离的虚拟网络就可以隔离虚拟机管理服务器虚拟机则是通过Azure默认提供给每一台虚拟机的公网IP地址来推送补丁即可。此种作法比较简单直接用原有功能配置即可。但是有以下几点状况必须考虑
客户数量增加时虚拟网络的数量管理变得复杂
实际压力测试结果当虚拟机数量增加时通过公网在所有虚拟机上打补丁会影响到客户用公网连接网站服务器的效能
考虑上面两点在此环境的最佳作法是
减少虚拟网络数量依照打补丁虚拟机群的设计区分虚拟网络并非隔离。在虚拟网络之下新增子网络数量不同客户的虚拟机放在不同的子网络仍未隔离。虚拟机服务器隔离的配置是在增加新的虚拟机时执行配置脚本用Windows虚拟机本身的防火墙配置开启相同客户的服务器还有管理服务器连接同时阻绝其他的服务器
因网络层并未隔离所以打补丁可以走虚拟网络完成工作不会影响公网的客户连接
数据存储高可用性提升
此项目在不同城市的数据中心设置了两个Windows Azure的存储帐号并把客户的数据在两个Azure数据中心同步以满足基本的高可用性需求。
除了这种做法之外还有其他作法
比较安全的作法是把数据放在公司网络网站与应用服务器放在Azure中间通过Azure的Connect功能建立VPN连接保护资料传输。这种作法安全性高但是降低了网络效率。
数据拷贝一份到Azure的存储部署到Azure里的数据库虚拟机里设置为只读仅提供查询。要写入的数据仍然导向VPN连接到公司网络的数据库服务器上处理。此种方法应用代码修改多数据更新稍慢。
查看本栏目更多精彩内容http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/