1. 传统应用架构的容器化之路
说到“传统”二字,大家第一反应,就是“落后”,“守旧”,然而现实情况却是—-绝大部分传统应用,依然在良好地运行在这些传统架构中。这些被服务的对象不会因为某些因素对整个系统资源的需求发生很大变化,也不会有频繁的系统功能的迭代开发需求。
但是随着互联网、大数据、AI等技术的发展,各行各业都在努力地从信息化向智能化转型。而转型的过程中,越来越多的应用场景,和频繁地迭代开发,也让“传统”架构越来越庞大。随之而来的是运维人员疲于奔命的“救火”,系统服务越来越不稳定,以及系统成本的失控飞涨。
如何才能从根本上一劳永逸地解决这些问题? 容器化/微服务化是很多企业寄予厚望的方向。
容器化真的那么有效吗?
我们以下图为例。这是一个很通用的架构,在多台服务器上分别部署Tomcat,使用反向代理软件(Nginx)把请求均匀分发到每个Tomcat中。假定由于11.11促销,我们需要将现有的3台Tomcat扩充到10台,运维人员需要完成哪些工作?(假设服务器硬件已经准备好)
传统系统的扩容步骤:
- 安装OS,设置安全和权限相关
- 分配IP,联网
- 部署Tomcat
- 以上动作做7遍
仅仅一个扩容,就需要一个资深的运维人员花费几个小时才能完成。如果要扩充到100个节点呢,工作量成倍增加。
容器化系统扩容步骤:
如果我们使用容器化技术来完成刚刚这件事,就会节省很多人力。
1. 安装OS,并由Kubernetes统一管理
2. 一条命令足以,并且在秒级完成扩展
- kubectl scale rc tomcat –replicas=10
3. 完成
简单的一个对比,即可发现,在资源分配,系统稳定(自愈),运维管理等多个方面,容器化技术都可有效地降低企业的成本和运维压力,并且让企业保持技术的敏捷性和先进性。