◆ 众所周知,云计算架构通常分为三层,即基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS),反映了云计算平台是在基础设施、平台及软件服务三个层面进行云化。
◆ 企业界率先提出了在云上设计应用程序的理念,使应用程序得以在云中以最佳的模式运行,以便充分发挥出云计算平台的弹性及分布式架构优势,这就是云原生(Cloud Native)架构。
◆ 云原生计算基金会(CNCF)对云原生给出的解释是:“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。”
◆ 安全是一个伴生技术,新技术必然会伴生新的安全问题。
◆ “容器不是轻量级的虚拟化,容器安全不是轻量级的虚拟化安全;虚拟化安全关注的是资源,云原生安全关注的是应用;安全左移是云原生安全的必经之路。
◆ 所谓安全左移,本质上是美国国防体系在21世纪初所提出的“软件确保”(Software Assurance)理念在云计算平台上的落地。
◆ 这在当下有一个时髦的词——内生安全,其核心是在软件开发阶段就需要注入安全的理念,不仅要确保软件的所有功能都是可预期的,还要努力做到不存在“可被利用的”漏洞。
◆ 谈到云原生,不能不提始终推动云原生发展的CNCF(Cloud Native Computing Foundation,云原生计算基金会)。
◆ 这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统做出频繁和可预测的重大变更。
◆ 通过编排系统下载新镜像并启动相应的容器,并将旧的容器删除。这种只更新镜像而不改变容器运行时的模式称为不变的基础设施(immutable infrastructure)。
◆ 开发运营一体化(DevOps)是一组将软件开发和IT运营相结合的实践,目标在于缩短软件开发周期,并提供高质量软件的持续交付。与敏捷开发不同的是,DevOps更多的是在消除开发和运营侧的隔阂,聚焦于加速软件部署。
◆ 传统Web应用通常为单体应用系统,如使用WebSphere、WebLogic或.Net Framework等,从前端到中间件再到后端,各个组件一般集中式地部署在服务器上。后来随着Web Service标准的推出,应用以标准的服务交付,应用间通过远程服务调用(RPC)进行交互,形成了面向服务的架构(Service-Oriented Architecture,SOA),极大提升了应用组件的标准化程度和系统集成效率。
◆ 无服务(Serverless)是一种基于代码和计算任务执行的云计算抽象模型,与之相对的是基于服务器(虚拟机、容器)的计算模式。无服务在公有云和私有云上都有相应的服务,如AWS Lambda、阿里云的函数计算、Kubernetes的Kubeless、Apache OpenWhisk等。无服务聚焦在函数计算,隐藏了底层复杂的实现方式,使开发者能够聚焦于业务本身。可以说微服务的设计、无服务的功能是云原生理念的核心体现,而容器、编排、服务网格均是实现云原生的支撑技术。
◆ 云原生安全包含两层含义:面向云原生环境的安全和具有云原生特征的安全。
◆ 面向云原生环境的安全的目标是防护云原生环境中基础设施、编排系统和微服务等系统的安全。
◆ 这类安全机制不一定具备云原生的特性,比如不是容器化、可编排的,而是以传统模式部署的,甚至是硬件设备,但其作用是保护日益普及的云原生环境。
◆ 因而,虽然我们将云原生安全分成了两种安全机制,但这两种机制会互相融合。在理想情况下,云原生安全会是在云原生环境下,对原有的安全机制进行重构或设计新的安全功能,使得最终的安全机制能与云原生系统无缝融合,最终体现出云原生的安全能力。