内容简介:初码-Azure系列-迁移PHP应用至Azure的一些实践记录和思考
最近客户在逐步迁移应用从阿里云到Azure,这次又轮到一个PHP+MySQL应用了,顺便也记一下流水账。
需求:迁移部署在阿里云上的ECS服务器(系列2,IO优化+2核4G+50G的SSD云盘+10M带宽+Server 2012 R2+ 安装在操作系统上的 MySQL 数据库 【版本不详】)到Azure上
最终的方案简易描述如下:
1、使用Azure虚拟机替代ECS服务器,使用 MySQL Database on Azure 替代本地MySQL
2、从Server 2012 R2操作系统升级到 Windows Server 2016 操作系统
3、为客户增加Windows下 PHP Manager 工具的Fast CGI PHP版本管理方式
4、增加HTTPS支持(客户买了赛门铁克SSL证书,顺便就升级一下)
5、将原有Web本地资源文件升级为CDN服务(实在抱歉,Azure的CDN开发工作才进展到一半,所以继续使用阿里云CDN蛤蛤)
这个方案本身平淡无奇,但其中还是有2个非常有意思的地方可以思考一下,第一个就是关于云服务中 PHP 环境搭建,先聊一聊这个话题
众所周知,在云服务时代之前,最火爆的就是 虚拟主机 (虚拟空间)了,而那个时候的虚拟机主机技术中,相当流行的一种,就是 Windows宿主服务器+IIS接口开发+MySQL资源分配接口开发+SQL Server资源分配开发+Web控制面板服务开发
这种技术发展到后期,在适配上已经做到了 全能空间 ,即对asp、asp.net、php、 java 等环境进行全方位的支持,在管理上也形成了全功能的控制面板,可以对域名绑定、FTP信息、运行状态等进行管控和查询,实在是 建站神器
而从阿里云引领国内的云服务建设后,这种方式好像一夜之间消失不见了
取而代之的是 Linux 虚拟机+ PaaS MySQL数据库服务 +推荐 Linux控制面板 安装PHP环境,或者是Windows虚拟机+PaaS MySQL数据库服务+环境一键安装包等,在阿里云云服务市场也是这么推荐的,在社区里面的技术讨论也围绕着这样的方式展
这样的转变, 微妙而又十分有趣 。
紧接着,就要抛出一个观点,在云服务时代,对于月均预算在200元以上的用户(学生、技术爱好者、开发人员、小微企业甚至中小企业等)
Windows Server(2008 R2+)+Fast CGI+IIS+PHP Manager是PHP环境 唯一最佳选择 !
1、为何强调月均预算200以上,因为目前的云服务商的Windows Server(2008 R2+),4G以上内存的虚拟机的综合费用无法降价到200元以内,而内存不到4G,Windows Server 总感觉不得劲(注意:此处并不意味着Windows Server吃内存,只是 GUI确实会耗费一些内存、带来一些内存泄露风险 ,你愿意的话也可以用 NoGUI版本)。
2、在IIS6(Windows Server 2003以前)时代,受制于ISAPI的低效率,Windows下的PHP环境总是被人诟病,而IIS7以后, FastCGI+IIS 方式的效率,无论如何是不输任何Linux下的PHP运行方式了
3、如果在人才如此昂贵的今天,你还固执的认为Linux+第三方面板的管理方式要比Windows远程桌面来的 先进、高效和可控 的话,我表示出门向东朝鲜欢迎你
4、 PHP Manager For IIS 这种PHP版本管理神器,是任何一个PHP开发者和爱好者第一眼看到都无法拒绝的东西,一目了然的参数配置,快捷的插件安装,无需重启Server的版本切换,无不是PHP开发和部署的好伴侣,更别说如今PHP版本这么混乱和多变了,可惜的是,微软也不推广,由于 非常稳定 ,程序也 4年多没更新 了,一直能适配高版本的IIS,所以也越来越鲜有人知。
5、 高效的IT管理 一定是云服务时代的重要话题和 重要价值 ,如果你不选择Windows的PHP服务环境, 那你就是在犯罪 !
刚才说到虚拟空间的PHP环境变得越来越少,但有意思的是
Azure中的应用服务下 Web应用 让这种环境搭建方式重现江湖
话不多说,看下官网的介绍:
好家伙,支持的挺多,确实很有意思,而后的 自动缩放、负载均衡和高可用性 ,这从微软的口中说出,突然觉得份靠谱,是虚拟机环境非常好的替代品
而中文官方也很好的给出了3种环境的额外说明教程
而当我们真的想尝试建一个Web应用的时候,更为高能的来了!!!
免费
所以说, 1元试用+F1版本的Web应用=个人永久免费1G网站空间?
外国人就是实诚啊,这要是放在阿里云上,估计早就给玩坏了。。
为了试验一下这个空间的效果,我们申请一个F1版本,放一个phpinfo.php试试看
申请成功后,可以看到默认有一个URL,也分配了一个FTP,打开这个URL会有一个默认首页
于是我们在部署凭据中设置一下 FTP账号密码
然后我们通过FileZilla Client for Windows,上传一下新建好的phpinfo.php文件到FTP
然而,失败了。。也不知道是啥原因,无论怎么设置FTP账号密码,改变模式,甚至下载发布配置文件查看FTP账号和密码也无效,所以最后无奈下
在Visual Studio 2017中 新建了一个Web网站 ,然后导入了 下载好的配置文件, 终于可以Web Deploy成功了。。
发布一个phpinfo.php看看
http://webapptest0001.chinacloudsites.cn/phpinfo.php
紧接着进一步观察和尝试Web应用控制台的功能
我靠,微软简直是在技术上领先,简直就是在犯罪啊 !功能也太丰富和全面了,这控制面板看的好爽,下面一个一个来过一遍
首先是
微软真是太与时俱进了,竟然以技术栈的方式列出了不同的应用方式
各种悉心引导
在应用程序设置中
可以很全面的看到Web应用的配置信息并进行各种参数设置
活脱一个 Web版的IIS控制面板 嘛
然后看到一个有趣的功能-MySQL In App
按照我的理解,这是一个和Web应用共享资源的迷你版MySQL PaaS服务,我们也打开试一试
具体怎么玩的话,可以点了解 详细信息 ,今天就不细细深究了,因为不花钱的东西咱们不玩, 只玩贵的 ,这免费的MySQL算什么自行车!!
下面是一个特别好玩的Web控制台
一进去就提醒你,这是沙盒环境哈哈,不要做无谓的尝试
试了几下命令,发现挺有意思的,所有的操作系统和程序相关的东西都在D盘,也看不出来这种Web应用的资源管理和调度方式,目录结构也挺凌乱的,不知道这种凌乱是微软还是个别Azure开发人员的作风呢
下面是个在线编辑器
也挺有意思的
其余的一些功能,技术性和维护性较重,就不一一细述了,但可以肯定的是,仍然有很多可挖掘 的 技术以及运维宝藏 !
言归正传,再回到我们今天的正题迁移上来
刚才说有2个有意思的地方,另一个就是关于国内MySQL的PaaS服务了
也是众所周知,阿里云一直标榜的最强项RDS MySQL,相比同类同配普通MySQL PaaS提升性能5倍以上,价格也更便宜,暂且不考虑MySQL的基础能力如何,对于阿里云的MySQL很强这一点,我是相信的,阿里云再没点抓手那真是很丢脸了,但也不是一骑绝尘,腾讯云的MySQL能力自从财付通的数据库技术完全开放给腾讯后,在得到了极大的提升,印象中之前朋友圈看到过一个数据库性能大赛,一直第一名的阿里云在2016年输给了腾讯云团队。。
话扯远了,我想说的是,根据我肤浅的观察,云服务的MySQL PaaS服务能力,有如下几个进阶过程
- 第一级,能够根据MySQL的命令和接口,封装出MySQL的PaaS服务,功能和性能完全公版化
- 第二级,深入研究MySQL的源码和细节,能够在定制化的PaaS服务中,做较大的性能优化和提升
- 第三级,充分融合自身的云服务以及深度开发和定制,达到更加定制化、智能化、高效化的数据高可用、快可备、热迁移的PaaS服务能力
- 第四级,修改MySQL源码、定制出性能更强,适应场景更多的自主产权的MySQL仿版数据库,然后在细分行业发挥更大的价值和作用
而根据我不成熟的判断, 腾讯云和阿里云均已达到了第四级 ,而腾讯云在第三级的细节上,较阿里云还有一些差距,而Azure 最早版本的MySQL服务,应该还停留在第一级, 最新版本的AzureMySQL还不清楚动向,不过按照微软一贯的特点,Azure的MySQL Database on Azure服务, 可用性应该还是挺高的 !( 我确实不是数据库专家,甚至都不专长于关系数据库的开发,以上言论如有不正确的地方,还望指出! )
正好这次客户对MySQL的性能毫无要求哈哈,所以我也没啥好纠结的,直接建一个MySQL服务用就行了
下面是新建过程
考虑到负载不是很大,我们选择了一个MS2版本,100连接数
而MySQL版本则选择了5.7
大约5分钟不到新建完毕
捣鼓了一下,新建了用户名和密码,哈哈哈,怎么都连不成功!!!!
然后,额。。这全局控制面板,真的是比我想象中还要 简(弱)单(智)
服务器没有重启项,没有防火墙管理,没有细分权限管理,哈哈哈,微软,你搞MySQL以后,有没有得抑郁症!
今天时间有限。。就不捣鼓了,改天问下Azure的人怎么回事吧…
然后就是新建一个Azure虚拟机,详细的过程就不多说了,有想了解的可以参考这篇文章:《 初码-Azure系列-记一次从阿里云到Azure的迁移和部署 》
好啦,今天的工作就算完成了,老规矩总结一下
总结与思考
1、Azure的Web应用服务,确实挺好的,很好很好很好!而在细节上,也确实又一次体现了微软的技术精神和技术能力,无论从价格上还是运维上看,都是一个非常好的站长建站工具,如有申请了1元账户的个人或者小微企业客户,大可放心的尝试、学习和研究。
2、Azure的MySQL服务,在国内看的话,确实不在第一梯队,如果想在Azure上享受到高性能的关系数据库服务,麻烦将技术栈从MySQL转变为SQL Server并购买Azure SQL服务哈哈(我刚好有个客户也有这个需求,后面会详细记录下来过程)。
3、PHP的环境搭建,真的不用多想了,无论是想要高性能、高可用还是易维护,Windows环境都是唯一选择!一些小白们麻烦不要在技术上犯左倾错误了,LinuxPHP是没有前途的!也没有钱途!
4、Azure的MySQL服务,真的是。。。挺弱智的。。哈哈哈,别逼我笑
转载请注明出处,欢迎邮件交流: zhangrou@printhelloworld.com ,或者加QQ群:11444444
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 简单数据库迁移实践
- 优酷 Mac 迁移 Swift 实践
- Swift Static Libraries迁移实践
- 3 种常见有效云迁移最佳实践
- Hive 迁移 Presto 的技术实践
- 小米 Kylin 平滑迁移 HBase 实践
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First JavaScript Programming
Eric T. Freeman、Elisabeth Robson / O'Reilly Media / 2014-4-10 / USD 49.99
This brain-friendly guide teaches you everything from JavaScript language fundamentals to advanced topics, including objects, functions, and the browser’s document object model. You won’t just be read......一起来看看 《Head First JavaScript Programming》 这本书的介绍吧!