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