新钛云服已为您服务1336天
我们的行业在过去十年中取得了令人难以置信的进步,这在一定程度上要归功于 Docker、Docker Compose 和 Kubernetes 等技术。然而,我们仍在研究如何在我们所处的多样化环境中进行开发。
容器化在开发和运维掀起了一场风暴。在过去,部署是高度依赖于特定技术的,通常需要对每个项目进行大量不可重复的工程工作。
你是否部署到 VPS?你是否在分发虚拟机镜像?静态可执行文件?需要特定解释器的脚本? 根据你对这些问题的回答,你可能已经使用了 Capistrano、Puppet、shell 脚本、Ansible、deb 或 rpm 包、cloud-init 脚本、专有云技术、upstart、systemd、init 等很多技术。
在部署阶段,系统管理和开发之间的界限就变得模糊了,DevOps 的原则就诞生了。随着 DevOps 开始成熟,业界发展出了应用开发的最佳实践,比如 12 因素应用程序方法论,但许多实现细节仍然是依赖于特定技术的。
挑战剖析
回归现象看本质,随着业务复杂度的提高,单体应用越来越庞大,对资源形成挑战剧增:
挑战一、资源利用率低
烟囱系统是指一种由相互关联的元素紧密结合在一起的集合,其中单个元素无法区分、升级或重构。
很多企业的IT系统都是烟囱式,这种模式有很多弊端,如:
重复建设运维
交互成本高昂
难以持续运营
业务灵活性差
挑战二、应用架构扩展性差
单体架构在规模比较小的情况下工作情况良好,随着系统规模的扩大,暴露出来的问题也越来越多,主要有以下几点:
复杂性渐增;
技术创新受阻;
按需伸缩变难;
部署效率下降。
挑战三、开发周期长
庞大代码基线、组件耦合大、责任不清楚,牵一发而动全身。
部署慢、扩容慢:部署过程不可重复、出错率高;不支持自动弹性伸缩。
升级难:固定时间窗、集中大规模人力中断服务升级。
在敏捷开发中,软件项目的构建被切分成多个子项目&#