请先理解了云原生再谈容器安全
2023-9-8 10:35:48 Author: www.freebuf.com(查看原文) 阅读量:32 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

1、云原生到底是什么?

现在的IT圈子,无论是客户端、渠道端还是友商之间的技术探讨,都离不开AI人工智能、大数据、隐私计算、数据要素、云原生、容器等概念,仿佛不谈这些话题,就跟不上了社会发展的脚步,今天,我想谈谈我对“云原生”这个概念的理解,也是自己对知识的一个总结。

云原生顾名思义“就像是从云里面自动生长出来的东西”,所我认为以云原生就是一种思想或者理念。这种理念产生的背景是什么那?我们可以回顾一下云计算的发展历程。互联网从1960年开始兴起,1990年开始进入普通家庭,2000年开始逐步引入中国,门户网站/腾讯/阿里巴巴/网易/百度等相继成立,随着互联网的高速发展,互联网用户规模不断扩大,企业为了维持用户的高速增长,需要购买大量的服务器资源,传统的IOE架构,投资巨大且资源浪费严重,没有什么企业能够承受如此巨大的开支,因此在这样的背景之下,google在2006年搜索引擎大会上首次提出了“云计算”的概念,相继的各大互联网公司将“云计算”纳入到重点研究建设的方向,云计算技术开始进入了快车道发展,而且技术已经变的非常成熟。

我们发现,过去部署应用软件是部署在IOE架构上,现在部署在云计算架构上,而且部署效率、运维效率以及安全性、可靠性也更加高了,企业客户减少了硬件成本、人工成本、维护成本等的投入。但是,大家有么有发现一个问题,我们只是改变了承载应用的基础设施,且没有改变应用本身,所以我们不仅会问一个问题:跑在传统架构的应用和运行在云里面的应用是不是完全适配的?云的一些技术优势特性能否对应用有一些利好?过去我们应用开发都是基于IOE架构开发的,我们能不能基于云的架构去开发应用?如果按照云架构去开发应用,那么和基于传统架构的软件开发又有什么区别那?

正是这些疑问的提出,“云原生“的理念就出现了,就是”你开发的应用软件能不能天然的适配云、更好的利用云能力,就像从云里面自主生长出来的一样。“所以云原生他面相的对象是”应用软件“,过去十几年我们呢推动了底层基础架构的变化,未来的几十年我们将推动软件应用的变化,真正做到云-应用-业务的一体化。

2、云原生的架构是什么?

既然云原生面相的对象是“软件应用”,那么我们就需要对软件进行分析,他由什么成分构成,软件大致上可以分为3个部分:功能性部分(代码)、非功能性部分(代码)和第三方的部分(代码)。功能性部分是软件应用的核心,是客户真实需要的业务功能和逻辑,而非功能性部分,例如运维代码、可靠性代理、安全性代码等,以及第三方部分,例如第三方软件的调用、API数据调用等,都是非核心的功能性代码,他们只是更好的辅助核心功能代码能够正常稳定的运行,正如下图左侧部分的描述。

云原生架构如右图所示,未来的软件开发只需要聚焦在最核心的功能性代码上,而不用去关注哪些非功能性代码部分,将非功能性的代码全部交给云平台去实现,例如可靠性、安全性、视图化、第三方调用等等,这样既提升了软件开发的效率,也会大幅度提升软件质量(只聚焦业务本身)。理想往往是美好的,但真正落地的时候总是困难重重,下文探讨为实现云原生架构,无数工程师们做的努力。

3、实现云原生的技术路线是什么?

前文提到,要让软件应用只聚焦业务功能部分,其他的你不用考虑,这就大大简化了应用开发的复杂度和难度,有两条路径:其一还是按照原来的开发思想,将无数功能紧耦合最终形成一个大的软件应用,然后部署在云计算环境中;还有一条路径就是目前主流的思想,就是软件设计要尽可能的解耦合,要以模块化的方式交付,从而提高可重复利用性。很显然第二条路径才是最优的解,让软件功能模块化,后面基于客户的需求任意组装,既可以减少开发成本,又可以提高部署效率,还能提升软件质量等。但是路径二面临一个比较大的问题,如果采用功能模块化的形式开发软件,面临如下困难的问题:软件功能模块如何部署?是单独部署还是组装好部署?如果是组装好一个大的软件后部署,就和传统软件部署没有太多差异(只是剔除了一些非功能性的代码),依然面临一个模块出问题影响整个软件运行、一个小升级涉及到整个软件的下线、可能面临重新配置环境、二次上线安全检查等一系列的后置动作,在运营上并没有提升多大的效率。如果是单功能模块部署那么功能模式间如何通信达到完整应用的效果?单模块功能部署在哪里?如果部署在虚拟机上,应用功能模块一般很小,给他配置的单个虚拟机资源会不会造成浪费?剥离出来的非功能性代码如何植入到云平台上,例如运维能


文章来源: https://www.freebuf.com/articles/container/377477.html
如有侵权请联系:admin#unsafe.sh