在上篇文章中我说了我会结合IaaS与云端PaaS,本次我将在Azure上部署一个最简单最常规的高可用架构,云端产品主要包含,PaaS层采用Azure Database for MYSQL作为数据库后端服务器,部署两台Windows虚拟机做前端应用服务器,部署一套PHP论坛,并采用Azure负载平衡器来分摊用户对应用的访问,实现前后端的高可用的效果。为啥要用mysql的呢,呃,最近遇到的客户用mysql的比较多,好了吧,,,
废话不多说,先来个简单的架构图
Azure技术12-高可用--在Azure上创建典型高可用架构应用(1)_第1张图片
当然我们在部署之前还是要先了解产品,这里我着重说一下Azure Database for MYSQL,(我这里用的全球版Azure的做的实验),国内的叫Mysql Database on Azure,该产品作为PaaS层数据库的典型,当然有一些PaaS应该有的特性,首先我们还是截点产品图,国内版的Mysql 包含两个版本,总共8个规格,如图
Azure技术12-高可用--在Azure上创建典型高可用架构应用(1)_第2张图片
看得出来差别主要还是在最大支持同时连接数和数据备份的时间,这里有个亮点,咱们作为用户,看起来非常重要的几个字“免费数据库容量”,没错,就是免费,这个对于一些客户只放数据量小,一般的应用是没有什么问题的,100G足够很多应用跑了。
当然我们不可能公公根据数据库的容量来选型,下面来看看官网上是怎么指导选型的
1、什么是计算单元?
计算单元是保证单个MySQL Database on Azure服务器可用的CPU处理吞吐量的一种度量值。 计算单元是CPU资源和内存资源的混合度量值。 通常,50个计算单元等同于半个CPU内核,100个计算单元等同于1个CPU内核,1300个计算单元等同于保证服务器可用处理吞吐量的13个CPU内核。
提高一个性能级别可使计算单元加倍,这等同于使该单个MySQL Database on Azure可用的资源集增加一倍。
例如,相比100个计算单元而言,高性能的1300个计算单元提供超过13倍的CPU吞吐量和内存。
可随时更改服务层而几乎不会造成任何应用程序停机时间。 对于许多企业和应用来说,能够在单个MySQL Database on Azure服务器中创建一对多数据库,以及按需提升或降低性能的特性提供了管理所需的灵活性。
也就是说我们可以根据Mysql在本地服务器上对CPU的要求来计算我们在云端应该选择的型号。(记住一点100个计算单元等同于1个CPU核),然后对应下表进行选型即可。
这里给大家说个经验,一般我们不会直接把本地数据中心给数据库的配置直接配到云上,我们可以适当降低配置在云端部署,来达到最高性价比。
Azure技术12-高可用--在Azure上创建典型高可用架构应用(1)_第3张图片
下面进入正题,先把云端的基础架构创建好,首先是虚拟网络,我们建机房也是要先有电有网吧,首先创建一个虚拟网络,这里注意创建一个资源组,这是为了将我们的资源在逻辑上集中在一起,方便进行管理,我这里创建资源组叫wangRG01,虚拟网络网段10.1.0.0/24提示我有256个地址,
Azure技术12-高可用--在Azure上创建典型高可用架构应用(1)_第4张图片

填入对应的选型参数,我这里做测试就用稍小的资源常规用途规格即可br/>![](https://s1.51cto.com/images/blog/201803/31/df94c39f7934db559663934bc16d171a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
点了之后大概5分钟左右,MYSQL创建完成
![](https://s1.51cto.com/images/blog/201803/31/1241dd41196a718d426ac36dc80a0339.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
我们点进去看看详情,我们重点记住2个参数,1个是服务器地址,另一个是用户名方便后面我们连接到数据库
![](https://s1.51cto.com/images/blog/201803/31/2987fe0bd3f64da23f969f589cd7937c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
为了能够连接到数据库,我们需要在连接安全性中设置一下允许访问数据库的IP地址,为了方便测试,我们将SSL验证关掉,并且将数据库的访问开放给所有网段0.0.0.0-255.255.255.255(生产环境不建议这样操作)
![](https://s1.51cto.com/images/blog/201803/31/35acc83d25f519fd68bf1a2e23b27be7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
我们来验证一下工具能否连接至Mysql
将连接地址wangmysqldb.mysql.database.azure.com,账号wang@wangmysqldb,密码填入工具中,端口默认3306
Azure技术12-高可用--在Azure上创建典型高可用架构应用(1)_第5张图片
然后连接,进入看到我们的服务的开启状态,可以查看系统数据库
Azure技术12-高可用--在Azure上创建典型高可用架构应用(1)_第6张图片

好,数据库在这里就创建完成了