钉钉开发文档

架构最佳实践

更新时间: 2018-11-21

目前此最佳实践已由钉钉E应用解决方案实现,请使用E应用解决方案进行部署。

这篇文档将描述ISV微应用部署到钉钉云中需要考虑的因素,并针对性的给出在架构方面的最佳实践。遵循这些最佳实践将带来下面的这些好处:

  • 提高微应用的稳定性,避免潜在的单点风险;
  • 更好的应用扩展性,能够更快的支持更多的流量;
  • 更好的经济性,避免不必要的资源浪费;
  • 加快微应用的上架过程,良好的架构将大大提高上架审核的效率;

微应用基础设施的架构如下图所示:

image.png

资源购买时地域选择:华东1(目前钉钉云仅支持这个地域)

  1. SLB负载均衡用于承接来自钉钉微应用的流量,这些流量来自钉钉的终端用户。请选择内网类型的SLB,后继将和EIP进行配合使用。SLB缺省将使用多可用区,主可用区和备可用应当选择不同,这样可以带来更好的稳定性。实例规格请不要选择“性能共享型实例“,避免受到其他租户的影响。SLB的付费方式请选择按量付费,因为后继我们将使用共享带宽用于公网的流量。如果当前的配置不能满足实际的流量,你可以进行配置变更升级到更高的配置。
  2. ECS虚拟机的购买需要至少两个实例,这样可以避免带来的单点故障隐患。根据你的实际情况,你可以选择更多的ECS实例以便支持更多的流量。另外我们在购买ECS的时候,要尽量使其均匀分布在不同的可用区,这样可以获得更好的稳定性,避免因为某个可用区的不可用导致的稳定性下降甚至是宕机。
    另外在购买ECS的时候不要选择公网IP,因为一旦选择了公网IP后将不能移除,并且需要单独购买相应的带宽,       不能使用共享带宽以降低费用。ECS对公网的访问将通过NAT来进行,具体参见下面NAT的介绍。
  3. RDS购买时也需要选择高可用版,也就是一个主RDS,一个备RDS,当发生故障的时候可以进行自动切换,也能够为数据库的升级等提供更好的可用性。
  4. NAT用于提供公共的对外网访问的路径,这样所有在专有网络内的ECS将通过NAT实现对外网访问。这样的好处是当你增加增减ECS时,他们对外访问的IP是固定的不会发生变化,这样不会影响在套件中设置的访问白名单。否则当你新增ECS时,需要同步配置相应的IP到白名单中,否则可能出现有些ECS可以访问钉钉API,有些不能访问的问题,排查起来比较困难。通过把EIP绑定到NAT,就可以提供对外的访问带宽,EIP也可以使用共享带宽。NAT也需要根据自己的需要选择相应的规格(小型,中型,大型和超大型)
  5. EIP弹性公网IP,用于提供外部访问的入口以及对外访问的出口。可以根据入口及出口的不同流量需求,选择不同的带宽,以便节省费用。

在上述的架构基础上,可以完善相关的监控和报警。可以包括但不限于下面的内容:

  • SLB: 4XX错误,5XX错误及带宽相关的监控及报警
  • ECS:CPU,Memory,Disk,Network等相关的监控及报警
  • RDS:CPU,Memory,存储,慢SQL等相关的监控及报警
以上内容是否对您有帮助:
在文档使用中是否遇到以下问题(多选):
  • 内容错误
  • 更新不及时
  • 链接错误
  • 缺少代码/图片示例
  • 太简单/步骤待完善
手机号
更多建议
提交成功,感谢您的反馈!