本系列博客的内容均来源于对**“云原生安全:攻防实现与体系构建”**这本书籍的学习归纳。
1.1 云原生的含义
云计算的上半场基本已经结束,很多企业已经利用开源的或者商业的IaaS系统构建云计算平台,他们只是简单的将传统的物理主机、平台、或者应用转为虚拟化。只实现了**“形”上的改变,还远远没有达到“神”**上的变化。云计算的下半场,应该充分利用云计算的特性,解决业务在开发、运行整个生命周期中遇到的问题。
CNCF对云原生的解释为:“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。**云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。**这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更。
1.2 云原生的特性
1.2.1 轻、快、不变的基础设施
云原生环境中,支撑基础设施通常是容器技术。
**轻、快:**容器占用资源小,生命周期短,以秒或者分钟为基本单位。
**不变:**在实践中不会在容器中安装或者更新应用,而是更新为更为持久化的镜像。这种只更新镜像而不改变容器运行时的模式称为不变的基础设施。
1.2.2 弹性服务编排
云原生的焦点是业务,业务的最核心之处是业务管理和控制。服务编排提供了强大的业务支撑能力,可以弹性的控制服务的位置、容量、版本,监控保证业务的可访问性。
1.2.3 开发运营一体化
DevOps通过将软件开发和运营相结合,缩短软件开发的生命周期。DevOps的开发理念主要包括自动化构建、测试、持续集成和持续交付等等。
1.2.4 微服务架构
将传统的单体应用的功能拆解成大量单独、细粒度的服务。通过应用编排组装,实现等价于传统单体应用的复杂功能。
1.2.5 无服务模型
无服务是一种基于代码和计算任务执行的云计算抽象模型,与之相对的是基于服务器(虚拟机、容器)的计算模式。无服务聚焦在函数计算,隐藏了底层复杂的实现方式,使开发者能够聚焦业务本身。