如何在Windows Azure公有云环境部署企业应用

企业内部应用转换为在线服务

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/

时间: 2024-10-28 05:34:01

如何在Windows Azure公有云环境部署企业应用的相关文章

公有云环境下应用程序的自动化部署与水平扩展问题

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1690176 先介绍了一下公有云计算环境下的一些特点,再根据这些特点探讨一下作为云计算用户而言,如何对应用程序做好自动化部署和水平扩展(弹性计算)的问题.阅读本文需要有一定的云计算知识.开发运维知识. 公有云环境的优势及其特点 公有云为企业用户或个人用户(以下统称为用户)可提供三种服务,基础服务.应用服务和运维服务.

如何在Windows Azure上托管一个Node.js网站

在本系列的第一篇文章中,我介绍了如何http://www.aliyun.com/zixun/aggregation/32995.html">在Windows上运行Node.js.在第二篇文章中,我示范了如何在Node.js 中使用SQL Server.那也是我学习Node.js 的步骤,首先使它在windows上工作,然后再在SQL Server上.但是回到我开始的目标上,我需要为Wang Tao的worktile实现同步服务,并打算在Windows Azure上建一个原型.所以前两篇文章

如何在Windows Server 2008 R2上部署远程桌面网关

本文介绍如何在http://www.aliyun.com/zixun/aggregation/13975.html">Windows Server 2008 R2上部署远程桌面网关,需要注意的是,在安装该角色之前,如同其他众多需要AD环境的角色一样,我们需要准备相应的软件环境方可.这包括:远程桌面连接客户端计算机.Active Directory 域服务域控制器以及RD 会话主机服务器等.鉴于篇幅,该项具体步骤略过,我们直接进入正题. 本文中描述的测试环境包括四台连接到专用网络且使用以下操

如何将你在公有云环境中的漏洞找出来?

渗透测试可以帮助企业将他们在公有云环境中的漏洞找出来.但是针对AWS.谷歌和Azure的测试需求有什么不同呢? 很多企业IT部门使用云渗透测试来确定和解决他们在云计算环境中的潜在安全缺陷.但是,在公有云平台上执行一项渗透测试之前,理解你的云供应商的唯一测试需求很重要. 渗透测试模仿了实际的攻击,因此在执行之前要和云供应商进行协调.下面是在亚马逊Web服务(AWS).谷歌计算引擎和微软Azure上执行一项云渗透测试之前需要知道的一些事情. 对于AWS,客户必须在进行测试前提交申请表.这个审批表收集

分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目

分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经非常详细了,但是.咳咳,太长了,我就稍微简单点的来概括,其实Git在MAC和Ubuntu上的体验是最好的,不过搞Android开发的我相信绝大多数人还是用windows吧,当然不排除个例 廖雪峰教程:http://www.liaoxuefeng.com/wiki/001373951630592960

方法-Windows Azure 如何创建和部署云服务?

问题描述 Windows Azure 如何创建和部署云服务? Windows Azure 如何创建和部署云服务?谁能提供方法啊? 解决方案 http://azure.microsoft.com/en-in/documentation/articles/cloud-services-how-to-create-deploy/#deploy 解决方案二: 您好, 你可以参考下面的官方文章在Windows Azure中创建和部署云服务:http://www.windowsazure.cn/zh-cn/

如何在Windows Azure中使用Java相关技术

我们刚刚发布了一个新教程和示例代码,以阐述如何在Windows Azure中使用 Java 相关技术.在该指南中,我们提供了分步教程,说明如何将 Java Spring Framework 应用程序(PetClinic 示例应用程序)迁移到 Windows Azure 云.此文档附带的代码同样也发布在 GitHub 中.我们鼓励 Java 开发人员下载并探索此新示例和教程. Windows Azure 是一个开放的云平台,它支持各种编程语言和框架,包括 Microsoft .NET.Java.N

应用-关于windows azure私有云

问题描述 关于windows azure私有云 用windows azure工具做一个应用可以运行在本地windows serve 2012上运行吗?请给我提供一些链 接或参考,谢谢 解决方案 你好,你是想在本地访问Azure 上的应用吗?这种情况可以使用RemoteApphttp://azure.microsoft.com/en-us/services/RemoteApp/如果您是想要实现私有云的话,可以考虑下安装Azure Pack:https://technet.microsoft.com

如何在Windows Azure Store上购买第三方服务

自去年11月我已经好长时间没有写博客了.这期间发生了好多令人兴奋的事情.我参加了微软 TechED 2012 China活动,并召开了一场有关 http://www.aliyun.com/zixun/aggregation/13375.html">Node.js 和 Windows Azure 的会议.我今年 1 月还组织了微软中国区新年聚会上一场小型会议.之后我和妻子在旅顺过农历新年,那是一座位于渤海湾旁宁静而美丽的城市,那也是我妻子的家乡. 当我读到这篇文章时我想要写点东西.2月,微软