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