11月21日,“2019云计算沙龙(第三期):云原生与多云管理(lǐ)”主题沙龙活动(dòng)在上(shàng)海市徐汇区交大科技园成功召开。此次活动吸引(yǐn)了诸多云计算相关的厂商专(zhuān)家以及(jí)业内专业人士积极(jí)参与,并就云原生(shēng)与多(duō)云管(guǎn)理进行了积极讨论(lùn)。青藤云安全,作为安(ān)全领域(yù)践行自适应安全理念的先行者(zhě),积极探索为云(yún)原生应用程序提供全方位的安全服务,此次受邀出(chū)席(xí),并对云生(shēng)态安全进行了深入(rù)讲解。
portant;" />
青藤云(yún)安全技术总监王(wáng)洪中(zhōng)对(duì)云生态(tài)安全进行讲解
在过(guò)去几(jǐ)年里,随(suí)着云(yún)计算技术的风起云涌(yǒng),云形态也发生着日新(xīn)月(yuè)异的变(biàn)化。云原生技术也在云平台如火如荼的快速发(fā)展中应运而生。
美国专注于云计算与大数据基础平(píng)台的(de)公(gōng)司Pivotal最(zuì)先提出了云原生应用(yòng),后来(lái)由谷歌成立的云原生(shēng)计算(suàn)基金会(CNCF,全称Cloud Native Computing Foundation)对(duì)云原生(shēng)应用(yòng)进行了定义:
云(yún)原生技术有利于各组织在公有云、私有云和混合云(yún)等新型动态环境中,构建和运行可弹性扩展(zhǎn)的应(yīng)用。
这(zhè)些技术能够(gòu)构(gòu)建容(róng)错性好、易于管理和便于观察的松(sōng)耦合系(xì)统。结(jié)合(hé)可靠的自动(dòng)化手段,云原生技术让(ràng)工程师能够轻松(sōng)地对系统作(zuò)出频(pín)繁和(hé)可预测的重大变更。
云原(yuán)生(shēng)计算基金会(CNCF)致(zhì)力于培育和维护一个厂商中立的开源生态系统,来推广云原生(shēng)技术(shù)。CNCF通过将最前沿(yán)的模式民主化,将这(zhè)些创新(xīn)为大(dà)众所(suǒ)用(yòng)。
这(zhè)或许看起来有些(xiē)复杂。简单(dān)来(lái)说(shuō),云原(yuán)生可以(yǐ)从字(zì)面涵义来理(lǐ)解,指的(de)是任何在(zài)云中诞生、或主要在(zài)云中设计并运(yùn)行的事(shì)物。但云原生不只是(shì)指应用程序所在的位置,更多的是指应用程序的的构建和部署方式。
云原生的(de)代表性技术
1. 容器
容(róng)器(qì)技术是(shì)一种轻量级(jí)的虚拟化技(jì)术,主要致力于提供(gòng)一种可(kě)移植、可重用且自动(dòng)化的方式来打包和运行应用。容器这一术语是对船运集装箱的一个类比,它提供了一个标准化方式,将不同内(nèi)容组合在一起,同时又(yòu)将它们彼此(cǐ)隔离开来。
将容器和(hé)云原生联系起来,您(nín)或许会有些(xiē)疑惑(huò):容器不仅仅是在(zài)云端运行,如果有需要,也可以在本地服(fú)务器上运行(háng)容器。比如,在本地CI/CD管道中采(cǎi)用(yòng)容器技术,或者使用容(róng)器来部署(shǔ)本地的内部业务应用程序。
但是,无(wú)需(xū)对容器技术进行太多(duō)延展,就可以将其与云原生技术联系(xì)起(qǐ)来。在很(hěn)大程(chéng)度上(shàng),容器有助于部署云应用:
您可以在云中(zhōng)部署(shǔ)容器。通常还可以使用相(xiàng)同(tóng)的开源工具来(lái)管理云中的容器。这(zhè)意(yì)味着,容器最大限度(dù)地提高(gāo)了云之间的移动性。
可以使用容器在云中部署(shǔ)应(yīng)用(yòng)程序,而(ér)不必(bì)为特定云(yún)提(tí)供商的虚拟(nǐ)服(fú)务器或计算实例之间的细(xì)微差(chà)别而困扰。
云供应商可以使用容器来(lái)构(gòu)建其他类型的服(fú)务,例如(rú)无服务器计算(suàn)。
容器为(wéi)在云中运行(háng)的应用程(chéng)序(xù)提供安(ān)全优势。容器应用程(chéng)序和主机环境(jìng)之间增加了另一层隔(gé)离,而无需(xū)再运行(háng)整个虚拟服(fú)务器。
因此,虽然(rán)使用容器是确实不需要使用云,但容器却大大简(jiǎn)化了云(yún)应用程序的部署(shǔ)。在(zài)云原生领域(yù)中,容器和云齐(qí)头并(bìng)进(jìn),共(gòng)同发展。因此,可以说(shuō)容(róng)器技术是云原生应用发展的基石。
2. 微服务
微(wēi)服务(wù)可以(yǐ)简单地描述为将(jiāng)一个大型(xíng)的软件应(yīng)用程序的功能分为多(duō)个独立的(de)小型软件服务或“微服务”。每项微服务通常单独(dú)部署在容(róng)器中,负责一项单独的任(rèn)务。为了让(ràng)微服务(wù)协同工作,形成大型可伸(shēn)缩的应用程序,微服务之间(jiān)还可以(yǐ)进行通信和交(jiāo)换数据。简而言之,微服务(wù)的特点可以(yǐ)总结为:
云原(yuán)生应用(yòng)程序由多个不同的可重用组件(称为微服务)组(zǔ)成,这些组件都可以(yǐ)集成(chéng)到任何云环境中。
这些微(wēi)服务可以作为应(yīng)用程序的构建(jiàn)模块,通常包装在(zài)容器中。
每个微服务可以协同工作,共同(tóng)构成一个应用程序,单每个微服务可以通过自动(dòng)化和编排流程进行独立扩展(zhǎn)、持续改进和(hé)快速迭代。
每个(gè)微服务的灵活性也提高(gāo)了云(yún)原生应用程序的敏捷性和持(chí)续改进,解决了单(dān)体大型应用程序的复杂(zá)性(xìng)和灵活(huó)性问(wèn)题(tí)。
以人力资源(yuán)系统(tǒng)为例(lì)。以(yǐ)前(qián),整个人力资源系(xì)统部(bù)署在一个大软件(jiàn)包中(例如,使用MVC框架的WAR文件)。使用微服务后(hòu),就(jiù)无(wú)需将(jiāng)人力资源组件部署为一个大软件包――大型单体应(yīng)用程序。该大型单体应用程序被划(huá)分并部署(shǔ)为按(àn)用(yòng)途分类的若干个较小功能单(dān)元(工资、出勤和员(yuán)工等微服务)。这(zhè)样,维护一个模块时(例如,“工资”模块),由于微服务可以独立工作,就无(wú)需停(tíng)用整个应用(yòng)程序,也不会影响(xiǎng)到其他功能,从而提高了更(gèng)新迭代速度,也提(tí)高了服(fú)务(wù)质量。
3. 服务网格(gé)
随着微服务(wù)数量的增(zēng)多,可能会形成上(shàng)百个甚至上千个相互(hù)关联的服务(wù),通过内部或外(wài)部网络相互连接。如(rú)果要绘制出(chū)每个微服务之间的连接关系,情(qíng)况(kuàng)就复杂(zá)了。从代码级别管理这些服务(wù)的连(lián)接(jiē)关(guān)系会(huì)很麻(má)烦。这意(yì)味着,服务A需要(yào)了(le)解服务(wù)B的网络层。为了解决(jué)这一(yī)挑战,服务网格技术应运而生(shēng)。
服务网格是用于处理服务间通信的专用基础结构层(céng)。对于构成(chéng)现代化的(de)云原生应(yīng)用(yòng)程序的服务而言,服务网格负责可靠地交付这(zhè)些拓扑结构(gòu)复杂的服务请求。实际上,服务网格通常是通过一系列的(de)轻量级网络代理来实现的(de),这些网络代理与应用程(chéng)序(xù)代(dài)码(mǎ)一起部署,而无需再关注应用程序(xù)。
portant;" />
服务网格架构(gòu)图
4. DevOps
DevOps是由Development和Operations形成的组(zǔ)合词,是一种重视“软件开发(fā)人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动(dòng)或(huò)惯例。DevOps通过(guò)自动化完成(chéng)“软件交付”和“架(jià)构变更”流程,来更加快(kuài)捷、频(pín)繁和(hé)可靠地构建、测试、发布(bù)软件。可以把DevOps看作开发(软件工程)、技术运(yùn)营和质(zhì)量保障(QA)三(sān)者的(de)交集(jí)。
portant;" />
DevOps示意(yì)图
DevOps打(dǎ)破了开发人员和运维人员之间历(lì)来存在(zài)的壁垒和沟鸿,加强了开发、运(yùn)营和质量保证人员之间(jiān)的沟通、协作与(yǔ)整合。从(cóng)而形成了(le)一(yī)种通(tōng)过(guò)持(chí)续交付来优化资源和扩展应用的新方式。DevOps和云原生相结合,能够让企(qǐ)业(yè)不断(duàn)改(gǎi)进产品开发流程,更好地适应(yīng)市场变化,提供更优质的服务。
portant;" />
CI/CD(持(chí)续集成(chéng)/持续(xù)部署)管道可以说(shuō)是(shì)实施 DevOps 的一大重要成果,可(kě)帮助企业在(zài)需要很(hěn)少(shǎo)的(de)人工(gōng)干预的情(qíng)况下,更快速、更(gèng)频繁地向客户交付应用,并(bìng)不(bú)断改进(jìn)产品的质量(liàng),增加服务功能,实(shí)现精益求精的发展。在整个生(shēng)命周期内,CI/CD都引入(rù)了持续(xù)自动化和持续监控,从而能够快(kuài)速识(shí)别和改正(zhèng)问题(tí)与(yǔ)缺陷,实现敏捷开发。
portant;" />
云原生的优势(shì)所在
1. 与传统的单体(tǐ)应(yīng)用(yòng)程序相比,由(yóu)于使用敏捷和(hé)DevOps流程进行迭代式改进,并(bìng)且(qiě)实现(xiàn)了自动(dòng)化构(gòu)建、测试和部署,从而加(jiā)快了产(chǎn)品服务的上市时间,也更便于管(guǎn)理。
2. 由于云(yún)原生应用程序由若干个相互(hù)独立的微服务组(zǔ)成,因此,可以自动地逐(zhú)步改进云原生应用程序,以不断(duàn)添加新功能或(huò)者改进(jìn)原(yuán)有功能。
3. 可以非侵入(rù)式地进行改(gǎi)进(jìn),不会造(zào)成停机或(huò)中断(duàn)服务,给(gěi)用户造成不(bú)良体验(yàn)。
4. 支持云原生应用程序的基(jī)础架构弹性良好,可以轻松进行拓展或缩小规(guī)模。
5. 云原生(shēng)开(kāi)发流(liú)程可以(yǐ)更好(hǎo)地适(shì)应当今业(yè)务(wù)环境(jìng)所需的(de)速度(dù)和创新。
随着云生态的不断演进,云原生所具备的巨大(dà)优(yōu)势必将推动云原生技术的(de)快速发展。
青藤云安全是国内首家自适应安全服务商,为客户提供了轻量(liàng)级的(de)、可弹性扩展的新一代安全(quán)体(tǐ)系。针对当(dāng)前云原生技术的发展情况,青藤云(yún)安全也对此进行了(le)深(shēn)入研(yán)究,并密切关注云原生应用的发展(zhǎn)趋势。目前,青藤云(yún)安(ān)全的容(róng)器(qì)安全产品―蜂巢提供了企业级容器(qì)平台安全保护,并(bìng)针对应用(yòng)漏洞、不安全配置、入侵攻(gōng)击、网络(luò)行为,结合安(ān)全策略(luè),提供了覆盖容(róng)器全生(shēng)命周期的、持续性安全防护(hù)。青藤蜂巢(cháo)既可以提供对云原生应用的防护,也能(néng)全方位防护主机安全,实现一次(cì)部署,两种防护(hù),助力云原生技术(shù)的快速(sù)发展。