今天突然被问到一个问题:你们的系统如何做的双机热备。
第一反应就是HA,但是在早期运维和开发分工细分的年代,这东西对一个程序员来说貌似还是陌生了点。于是乎接下来有些卡壳,运维技术对于开发者来说是那么熟悉又那么遥远..
回家的路上一直耿耿于怀,这貌似应该是很熟悉很好讲解的一个话题,竟却谈不下去,这些年都干嘛去了呢.
回顾了最近的这几年..忙着做项目、管项目、快速设计开发、快速迭代,一切都为了快,貌似也已经快到没时间好好写工具、框架,更不用说把玩新技术了.
好吧,回到正题,关于双机热备实现高可用其实已经是个老话题,最经典的模式应该是HAProxy + keepalived了
盗用鸟哥的一个图说明下:
简单点说就是部署两个热备节点,使用haproxy实现后端的负载均衡,通过keepalived实现前端负载均衡(haproxy)的高可用。
关于高可用方案的需求:
1 在线系统的稳定运行保障,避免单点故障,保护业务及数据安全;
2 实现系统不停机升级;
3 业务访问量到达或超过峰值时一定程度上降低损害,并保持一定可扩展性。
高可用方面的相关指标
编号 | HA (可用水平率) | T(每年可中断时间) |
1 | 99.9999% | < 1分钟 |
2 | 99.999% | < 5.3 分钟 |
3 | 99.99% | < 53 分钟 |
4 | 99.9% | < 8小时46分 |
5 | 99% | < 87小时36分 |
好了,貌似又开始热血了。但这么些年来,你一直把玩的东西是否还会持久不衰呢?我没有答案,但是知道并掌握这些事情一定是有利好的。
创业项目在初期规模不大的情况下一般利用云服务器结合负载均衡方案已经可以解决大量问题,安全问题通过云盾可以过滤大部分,而只要你的业务功能设计不要存在太明显的漏洞。早期的运维工作是相当简单的,这也可以让你focus在业务和功能开发上,从生产力发展的角度上说这是进步的。
然而,之后呢? 架构师的道路还很漫长,只知道你要凭着对技术的热情和坚持探索并不断的学习,自勉吧!