
从云的诞生,发展到现在。已经有越来越多的应用依赖云,越来越多的用户依赖云。 廉价的硬件设备,超大规模的虚拟化、分布式架构,以及动态伸缩。这些优点,决定了越来越多的个人、企业选择云,搭建各种应用与服务。
摘要
《阿里私有云实践》是基于现实项目而来,文中只叙述阿里开源框架,搭配以及使用技巧。
- 不涉及实际业务、功能
- 不提供技术以外的信息。
基础组件
- EDAS:企业级分布式应用服务
- HSF:RPC服务
- TXC:分布式数据库事务
- RDS:云数据库RDS(ApsaraDB for RDS,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。
系统架构
基于 EDAS、HSF 搭建服务中心、业务系统。以部署多台服务器来实现分布式架构。 基于 TXC 管控 Tomcat 进程,实现在不同服务器、服务中心、业务系统之间数据库操作的成功/回滚的全局事务。 基于 RDS 实现 MYSQL 分布式数据库。
服务中心
抽取、整合业务以外的代码,形成单独应用供其他应用调用。
服务中心的设计,减少了业务系统的代码复杂度。同时在业务发生改变时,不需要重新部署业务以外的功能。
实现 灰度发布1 的重要前提。
业务系统
以不同的业务目标,切分为不同的业务系统。
通过统一的登录、角色授权、数据权限实现不同业务系统之间的切换。
同时,不同的业务系统在业务发生变更时,不会影响到其他业务系统的运行。
全局事务
在多服务中心、业务系统同时操作数据库的场景下,TXC 实现了从发起请求到结束请求之间,一旦抛出异常,所有的数据全部回滚的全局事务控制。
而且,TXC 是 Tomcat 进程级别的数据库事务,不需要考虑是否兼容的问题。
数据库
以服务中心为主,建立服务中心数据库。
以业务系统为主,建立业务系统数据库。
MQ 消息队列
异步消息处理,适用在线与离线、异步操作两种业务场景。
SchedulerX 定时调度
Web 端的分布式定时调度系统,可以设置自动、手动触发,查看日志。
排错技巧
链路分析
通过 EDAS 控制台,查看并分析某应用在某时间段内请求的处理时间,以及该请求调用了哪些方法、数据。
在进行系统压力测试之前,必须要把所有的请求处理时间控制在 1ms 以内。
数据异常分析
- 服务中心/业务系统日志分析。
- 应用服务器 /home/admin/log/txc.进程号.log 日志
- RDS 服务器 /home/admin/drds/log/数据库名/sql.log 日志
-
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。 ↩