初码-Azure系列-记一次从阿里云到Azure的迁移和部署
有个客户在阿里云上,这次要迁移到Azure去,手工记一下流水账
原系统信息:
阿里云ECS单Web节点(8核16G,10000IOPS SSD云盘)+阿里云ECS单数据库节点(16核32G,15000IOPS,SQL Server 2016)+阿里云CDN
根据评估和分析,简单迁移方案如下:
1、CDN暂时不动。因为阿里云CDN的配置较为简单,且对HTTPS支持也很傻瓜,同时与阿里云OSS是联动使用的,迁移到Azure CDN+回源Azure存储的代价太大,且需要重写CDN业余中间层SDK,所以就暂时留用阿里云CDN
2、新建一台Azure虚拟机,用于替代阿里云ECS单Web节点,配置相同类似即可
3、由于系统Web服务没有使用到存储过程等和SQL Server版本关联较大的特性,故决定使用SQL Azure替代原ECS单数据库节点方案
下面是流水迁移过程:
1、新建Azure虚拟机
进入新的中国区控制面板,新建一个虚拟机,Windows Server 2016 数据中心版

这里不得不说两个问题,第一个问题是新的控制面板(https://portal.azure.cn)不支持谷歌浏览器,有的按钮显示不出来,因此不得不切换到IE模式,第二个问题是在新的控制面板中(https://portal.azure.cn),新建过程只有1个可选项目,是英文版的,即使查看全部,出来的Server 2016各版本也都是英文版

这里就非常糟糕,因为英文版+中文包,是一个不完整的汉化,挺别扭的,而经典控制面板中(https://manage.windowsazure.cn),就可以新建中文版的Windows Server 2016

我不知道是因为资源管理方式不同导致的,还是一个Bug,如果Azure的技术人员看到,也可以关注一下,这点确实挺糟糕的
下面继续新建虚拟机

这里可以看到挺有意思的一个情况,微软还真是实诚,如果你有Windows序列号,则可以减免一些价格,我们来看下价格对比


如果你愿意在淘宝30元买个正版密钥,那么你每年可以节省1000元以上,哈哈(请勿使用盗版软件)
在这里,我们选择了DS4配置的机器

下一步配置可选功能,这里特别注意两点,1是选择了静态IP分配,默认是动态IP分配的,如果是动态IP分配,那么域名的解析就需要配置CName,我对这玩意不太熟悉,所以干脆还是选择静态IP,直接进行A记录解析得了。

另一个是关于监视行为的配置,虽然监视行为会占用系统资源,但是本着相信微软的人品和微软的技术,选择启动监视

最后一步,有个下载模板和参数,有点像阿里云的操作系统镜像,打开后是JSON配置文件


然后点击确定后,等等待部署了。


经过大约10分钟不到,虚拟机成功部署
可以看到网络接口,已经是静态IP了

默认允许了3389的远程访问

我们首先登录到服务器,把英文版修改成中文版。。。这个过程就不详述了
考虑到我们需要使用HTTP,HTTPS,WebDeploy服务,因此在网络接口的网络安全组规则中需要进行一些配置,加入相应的入站防火墙策略

然后继续配置IIS啊等软件环境,这样Azure虚拟机就大功告成了,下面进入第二步
2、新建SQL Azure数据库


这里我们的资源组就选用刚才新建虚拟机所新建的资源组,然后要新建一个服务器

然后是选择定价

这里我们选择了一个S3标准的配置

每月大约1000元不到
最后修改一下排序规则为中文Chinese_PRC_CI_AS

在确定之前,这里也有一个自动化选项,就是和刚才虚拟机的模板类似的东西


点击创建,SQL Azure数据库进入创建中

大约2分钟不到,建好了,弹出一个控制面板

然后我们尝试一下SSMS工具是否可以远程登录
那么问题来了

显示要登录到Azure

这时候弹出的登录页面,并不能识别中国区的账户,就和Visual Studio登录中国区账户一样,但是这里我就找不到解决办法了,如果有谁知道的话还麻烦告诉一下
于是到防火墙策略中,添加了一下本机的客户端IP

继续可以在SSMS中登录了
惊喜的发现,最新版的SSMS已经可以支持可视化的SQL Azure新建表了,但是登录名还是只能通过SQL 语句新建。
然后由于并未大规模使用过SQL Azure,还不知道迁移是不是有障碍,因此尝试一下使用Navicat工具,进行测试环境数据迁移

毫无障碍,成功的从SQL Server 2016迁移到了SQL Azure,包括表,索引等,不过有一个值得注意的是,全文索引没有迁移,因此在SSMS客户端中重新配置一下全文索引
至此,基础迁移工作都完成了,剩下的就是软件部分的迁移了,这里就不详述了!
3、总结与思考
1、从阿里云ECS到Azure的虚拟机,可以说可用性确实提升了两个数量级(100倍),这是毫不夸张的,因为ECS对Windows的支持和技术能力实在太差了,我自己可以忍受ECS常年不正常关机、内存泄露、资源挤占,但客户一旦察觉到一次,就会影响服务质量,所以这一个很大的进步!
2、不知道是心里因素还是使用效果感觉,SQL Azure是个好东西,不是个PaaS这么简单,应该是个很好的东西,后面慢慢来挖掘挖掘。
3、Azure的CDN质量不用说,从背后的支撑厂家看,比阿里云自建的方式肯定要优秀和更高质量,但在控制面板维护和功能丰富程度上看,落后阿里云至少1年,以至于宁愿忍受阿里云CDN可能存在的可用性风险,也宁愿拖一拖先不迁移,这是Azure需要改进的地方。
4、Azure经过两次降价后,相比阿里云已经相差不多(最多贵15%-50%吧),如果把可用性也评估为价格的话,那几乎就是更划算了!当然了,对于中小企业,非信息化驱动的公司,依然首推阿里云,这些公司就别尝试Azure了,至少现阶段的AzureIT成本,还是非常高的。
5、Azure中国区的Bug还挺多的,建议中国区再投入一些技术力量,一些细节上的东西,比如语言版本那个问题,又比如VS或者SQL Server上登录中国区的问题,都快1年了还没改或者没啥直接的解决方案,这背后我分析是因为过去的1年Azure的销售业绩非常差,客户都没啥反馈,然后总部对中国区也不重视等多重因素导致的。
6、在虚拟机配置过程中,关于监视行为和来宾操作系统的配置,极大的凸显了Azure和阿里云的价值观的迥异,就是在碰用户数据和用户行为方面,至少微软是有态度的,当然了,这就涉及到另外一个非常大的话题了,以后有空可以写一写。
7、在写本迁移之前,其实已经在阿里云、Azure、百度云上分别使用过Windows Server 2016(腾讯云还不支持)很久,不用说,阿里云的Windows操作系统管理依然糟糕,百度云没啥感觉,Azure对自家兄弟肯定是最好的,所以如果你想体验HTTP2.0,那么Azure肯定是首选
8、Azure是个好东西,有钱的可以来用用,技术扎实,好处大大的!
转载请注明出处,欢迎邮件交流:zhangrou@printhelloworld.com,或者加QQ群:11444444
初码-Azure系列-记一次从阿里云到Azure的迁移和部署的更多相关文章
- 用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的Code First迁移和部署
用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的Code First迁移和部署 这是微软官方SignalR 2.0教程Getting Started with En ...
- AWS、阿里云、Azure、Google Cloud、华为云、腾讯云 各种云服务器价格收费对比(上)
他来了,他来了~ 他带着六家公有云厂商的资源价格走来了~ 不久前,我们上线了一款小工具——[多云成本计算器]1.0版,公众号菜单栏可以直接体验.详细介绍可以戳这里<3秒即得最低价,速石上线「多云 ...
- 初码-Azure系列-记一次MySQL数据库向Azure的迁移
初码Azure系列文章目录 还在继续给客户迁移不同的系统到Azure,这一次是一个系统的MySQL数据库要迁移,将迁移过程记录一下 原系统环境 数据库版本:MySQL Community Editio ...
- 【初码干货】记一次分布式B站爬虫任务系统的完整设计和实施
[初码文章推荐] 程序员的自我修养 Azure系列文章 阿里云系列文章 爬虫系列文章 [初码产品推荐] AlphaMS开发模式 闪送达城市中央厨房 今天带来一个有意思的东西-分布式B站爬虫任务系统 这 ...
- Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(下)
Windows Azure中有什么? |基础结构 Windows Azure能够根据您企业的需求提供最适合的基础结构,并且在业务发展或精简时能够根据变化的需求及时的做出改变.您可以将Windows A ...
- Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(上)
Windows Azure是微软的云平台,可以提供广泛服务.您可以通过它搭建.部署并管理解决方案,用于实现您可以想象的几乎任何目标.换言之,WindowsAzure是拥有无限可能的世界.无论您是需要运 ...
- 记一次阿里云ECS服务器图片资源迁移至 阿里云 oss
系统用户上传的图片资源放在ECS服务器,图片要做cdn加速,图片量越来越大(第一年200G,还在用户再增加图片量疯狂增长)备份是个问题. 决定迁移至 oss.前端直接上传oss 后台做签名,回调入库图 ...
- 记一次配置阿里云ECS GPU计算型gn5实例
基础配置 CPU: Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz * 16 MEM: 120 GiB GPU: NVIDIA P100 * 2 OS: Ubunt ...
- 初码-Azure系列-迁移PHP应用至Azure的一些实践记录和思考
最近客户在逐步迁移应用从阿里云到Azure,这次又轮到一个PHP+MySQL应用了,顺便也记一下流水账. 需求:迁移部署在阿里云上的ECS服务器(系列2,IO优化+2核4G+50G的SSD云盘+10M ...
随机推荐
- JS中的异步以及事件轮询机制
一.JS为何是单线程的? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊.(在JAVA和c#中的异步 ...
- 【Egret】中tree组件使用案例
Egret中tree组件使用案例,包含(文本过多时,自动换行功能) 下面代码结合http://bbs.egret.com/forum.php?mod=viewthread&tid=19028& ...
- 使用Vagrant打造开发环境
1.安装Oracle VM VirtualBox.vagrant,安装完成需重启电脑 Oracle VM VirtualBox安装包下载:https://www.virtualbox.org/wiki ...
- C#研究OpenXML之路(1-新建工作簿文件)
一.写在开头 一直想沉下心来研究研究OpenXML编程,可是由于公司编程项目一笔接一笔,很难静下来,所以一直是采用的COM操作Excel.现在终于得闲,特将心得历程记录下来. 今天的第一个实例代码是来 ...
- (转)Java并发编程:并发容器之ConcurrentHashMap
下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为 ...
- kafka 入门笔记 #1
kafka 入门笔记(#1) 单机测试 下载版本,解压 tar -xzf kafka_2.11-0.10.1.1.tgz cd kafka_2.11-0.10.1.1 启动服务 Kafka用到了Zoo ...
- 职责链模式(Chain of Responsibility)的Java实现
职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它 ...
- laravel安装插件laravel-ide-helper
1.插件位置laravel-ide-helper https://github.com/barryvdh/laravel-ide-helper 2.首先改变镜像源为国内的镜像源 P { margin- ...
- python修行:练习购物车
product_list = [ ('Iphone',5800), ('Mac Pro',9800), ('Bike',800), ('Watch',10600), ('Coffee',31), (' ...
- Hadoop之RPC简单使用(远程过程调用协议)
一.RPC概述 RPC是指远程过程调用,也就是说两台不同的服务器(不受操作系统限制),一个应用部署在Linux-A上,一个应用部署在Windows-B或Linux-B上,若A想要调用B上的某个方法me ...