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