azure云基础架构(infrastructure)
公有云架构设计以及设计技巧
(一) 资源选型策略
架构设计时充分利用云上基础设施。
- azure提供了第7层(http)的application gateway, 它可以负责负载的分发,并可以通过sesssion affinity实现session的绑定。
这时候在设计infra的时候,可以考虑这一点避免重复设计session的共享机制。
- 灾备。
azure在设计的时候,存储已经考虑了跨大区的灾备。
-
Monitoring && Health checking && Alert
-
Logging
以上工具不都是免费的,但是性价比比较高。
了解azure云的资费方式
国外(GCE, Aws)的计算资源都是按照per-hour收费的。所以在设计时,哪些是长期运行的几点,哪些是临时的job,需要分清楚。
azure提供了一个非常难用的价格计算器
如果不是流量巨大的应用或者流量突发类型的应用, 设计指导方针是 先按照架构设计跑一次
试试看。
为什么?
azure的计算资源类型从A0-G5, 有50种以上的计算资源。
虽然每种类型有自己的计算能力(2 cores, 8G RAM), 也有对应的文档描述, 但是通过文档很难区分
具体型号的明确界限
。
当选择的计算资源不适合时,可以实时热扩。 不用影响正在运行的进程。
- azure上的gateway,包括loadbalencer 后端是通过windows上的IIS实现的。
我们曾经发生一个事故。 曾经有一个项目部署了一套saas系统到azure上,当压力增加时(qps大约200左右) 会引发502 error。
投诉路线是这样的
中国上海 $→$ 亚洲日本 $→$ 美国总部。
最终问题定位在application gateway上,升级以后问题才解决。
(二) azure上的系统架构设计样例
开始设计之前,请参考一下这个lib。
https://azure.microsoft.com/en-us/solutions/architecture/cross-cloud-scaling/