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