日期: 2021 年 7 月 12 日

国内云服务器厂商众多,如何选择

没有说哪一家好与不好,重要看是否符合自己的需求,建议从如下几个方面来了解自身需求。
1.先确定机房位置,看网站目标用户集中在什么地方,如果是南方推荐华南等区域的电信机房,若是北方就选华北等区域的联通机房,若目标用户面向全国就选双线或多线机房,例如群英网络在全国各地拥有多个机房,可就近选择;
2.宽带大小和线路选择,看网站的访问量大小来选择宽带大小,若是中小型企业基本1M宽带足够,若是大型企业,如电商、视频类等就要选择5M以上,线路以电信为主,相较稳定;
3.对比服务器配置,根据需求选择好对应的配置和功能,且性能要够稳定;
4.了解是否具备防御功能,若网站流量过大或常受到DDOS之类的攻击,服务器就会挂,为确保网站的安全和正常运行,*好选择具备一定防御值的服务器为佳;
5.了解对方是否提供7*24小时服务,若您是一个专业的站长,在售后服务这块可以不用太讲究,能随时联系到线上机器人即可,若是新手站长或不太懂技术的站长们,建议还是选择能提供全天候人工服务的服务商较有保障。

十大云服务器服务商评测\排名

云服务器凭借着云计算所带来诸多优势成为了广泛关注的热点话题,作为云计算服务的重要组成部分,云服务器租用服务就是面向各类互联网用户提供综合业务能力的服务平台,它整合了传统意义上的互联网应用三大核心要素:计算、存储、网络。不过,要分辨云服务器和传统主机并非容易事,要选到好的云服务器更是难事。因此 本文系统的分享一下对 国内十大云服务器服务商感受

工具/原料

百度、十大云服务器服务商评测

方法/步骤

如何判断一家云服务器服务商的品质。可以从一下方面。

1、*佳TCO:品牌服务器、无需押金、按月支付、按需付费、*佳总体拥有成本。

2、全国覆盖:云计算节点分布于全国各骨干机房,BGP、双线、单线,客户可自主选择。

3、快速供应:资源池并内置多种操作系统和应用标准镜像,需求无论是一台还是百台、Windows还是Linux,均可实现瞬时供应和部署。

4、按需弹性伸缩:保护用户投资且无需对系统、环境和数据做任何变更,即可快速实现云服务器配置的按需扩容或减配。

5、高可靠和快速恢复:尊享国际品牌企业级服务器的高性能和可靠性,内置的监控、备机、快照、数据备份等服务确保故障的快速恢复。提供智能备份功能,将数据风险降到*低。

6、易用、易管理:提供多种管理工具,不懂技术也能用。

7、安全性:从硬件级别上实现故障和安全性的隔离,平台内置ARP攻击防护能力,分布式和规模化提升防DDOS攻击能力。

8、高性能:集群虚拟化,真正物理隔离,各云服务器独占内存等硬件资源确保高性能。 9、一键部署构件:联合国内外多家知名软件厂商的论坛、电子商务等功能型云服务器构件,无需任何安装和配置工作,实现软件系统的一键部署。

10、SLA:云服务器的24*7的专业运维服务团队,提供*高等级的SLA。

按照以上标准,国内云服务器得出一下排名

十大云服务器服务商评测\排名

易迈互联(易迈云):口碑良好、性价比高。

易迈互联,我国*大的综合性互联网服务商,旗下易迈云是我国*大的云服务器提供商,在业界以卓越的服务和顶级技术的着称。易迈互联云主机的云主机具有高性价、稳定性好、实用性强、承载用户量大等优势,在国内云服务器市场有口皆碑。易迈互联也是我国*大一站式解决方案专家,不仅提供云主机服务,也提供网站制作、SEO、域名注册和企业邮箱等服务,是当前国内*大、*强的一站式服务商。

北方数据中心:口碑过得去、性价比挺高。

北方云数据中心隶属秦*岛燕大正洋电子有限公司,北方云数据中心致力于为企业打开世界经济大门,投身信息数字化潮流提供*专业、*便捷、*全面的互联网服务。公司依托自身完善的服务体系,强大的技术支持力量以及丰富的经验、信息资源和市场运作实力,在短短几年时间里,迅速成长为业内*的知名企业。业务主要集中于企业互联网应用服务和电子商务应用服务。

新网互联:口碑可以、性价比中等

是北京新网互联科技有限公司拥有的互联网服务品牌,是中国互联网应用服务提供商,是移动寻址和企业移动营销服务领域的先行者,是目前互联网应用行业内唯一一家跨互联网应用和移动互联网应用服务的提供商。新网互联致力于为企业提供综合性网络应用服务,不断推出的基于互联网技术的创新应用产品,力求在为客户和合作伙伴创造价值的过程中实现自身价值。

Ucloud:口碑一般、性价比一般

UCloud云计算是国内技术与服务顶尖的基础云服务商,公司专注于基础云计算的产品研发与运营,是上海市云计算基地重点企业,国家工信部首批认证 通过的“可信云计算企业”。UCloud云计算平台已经为游戏、移动互联网、大数据、电子商务、SaaS等多个领域提供IT基础架构支撑,得益于业内* 的云计算技术和技术团队的专业经验,UCloud已成功为国内外上万家企业用户提供服务,大幅降低了用户使用IT基础设施的成本及技术门槛。Ucloud 主要面向游戏客户,相对于其他云主机服务商,其价格较高,稳定性不错。Ucloud适合预算充足的游戏及企业用户,不适合站长等个人用户。

西部数码:口碑中等、性价比可以。

是成都西维数码科技有限公司旗下知名网络服务品牌!成立于2002年,注册资本1000万元,主营信息存储与发布平台,服务项目包括:域名注册、虚拟主机、VPS、云主机、企业邮箱、主机租用、主机托管、CDN网站加速、网络服务等。

阿里云:口碑较差,性价比低

阿里云依托于阿里巴巴集团,通过对其丰富的网络资源进行整合,拥有自己的数据中心,是国内云主机中的佼佼者,目前名气*大。阿里云有外包的第三方客 服团队,用于支撑用户的售后服务及备案等增值服务。技术方面,支持自动宕机迁移,数据备份和回滚、系统性能报警;安全方面支持防DDoS功能、多用户隔离 等功能。目前,有北京、青岛、杭州、香港机房可选,多线BGP接入,缺点:硬盘I/O速度较差,硬盘不能直接扩容大小,必须新购买硬盘迁移数据。

缺点:性价比低、华而不实、管理后台复杂、喜欢搞钓鱼式营销。

腾讯云:口碑比较差,性价比低

腾讯又一个阻击型产品,于2013年9月上线,目前用户主要以游戏应用为主。腾讯云服务器使用公共平台操作系统,团队完全负责云主机的维护,并提供 丰富配置类型虚拟机,用户可以便捷地进行数据缓存、数据库处理与搭建web服务器等工作。腾讯对游戏和移动应用类客户提供了较强的扶持政策,比较适合这类 型的客户使用,但普通中小客户和中网站客户难以通过审批,腾讯提供的配套设备也不适合这部分客户使用。长远来说,腾讯云将是阿里云*有力的竞争对手,只是 现阶段来看,腾讯相对阿里云还有很大的差距需要追赶。

云服务器常见的十个问题

云计算服务器(又称云服务器云主机),是云计算服务体系中的一项主机产品,是一种处理能力可弹性伸缩的计算服务,云服务器有效的解决了传统物理租机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷,不能DDOS防护 www.xrcloud.net/ddos 。

云服务器

1、云服务器是什么?

云计算服务器(又称云服务器或云主机),是云计算服务体系中的一项主机产品,是一种处理能力可弹性伸缩的计算服务,云服务器有效的解决了传统物理租机与VPS服务中,存在的管理ddos服务器 www.xrcloud.net/ddos 难度大,业务扩展性弱的缺陷(ydotpub)。

在实际应用中的云主机具有三个方面的弹性能力:

主机服务配置与业务规模可根据用户的需要进行配置,并可灵活的进行调整。

用户申请的主机服务可以实现快速供应和部署(实时在线开通),实现了集群内弹性可伸缩。

其管理方式比物理服务器更简单高效。

2、什么样的用户适合选择云服务器?

注重主机服务性价比的用户;

需要快速实现分布式部署的用户;

对业务的弹性扩展能力有需求的用户;

有系统高可用性和快速恢复需求的用户;

希望轻松管理系统的用户;

支持电子商务、论坛、SNS、企业网站、OA系统等互联网应用。

ps.所有云服务器均禁止低俗(含打擦边球的网站)、木马、病毒、色情、诈骗、私服相关、外挂、彩票、电影网站、弓驽刀剑、赌博用品、警用品、刷信誉、钓鱼网站、黑客安全等非法类型的网站,一经云主机服务器 www.xrcloud.net 供应商发现,立即永久关闭,并不退款!

3、与物理服务器相比云服务器的优势是什么?

云服务器租用价格低于传统的物理服务器租用,且无需支付押金。具有快速供应和部署能力,用户在提交云主机租用申请后可实时开通,立即获得服务。业务支持平滑扩展,当用户业务规模扩张时,可快速实现业务扩容(ydotpub)。

4、与VPS相比,云服务器的优势是什么?

用户可以方便的进行远程维护,免费重装系统硬件级别上实现云主机之间的完全隔离;

内置冗余的共享存储和智能备份,物理服务器失败可在几分钟内自动恢复;

服务环境采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠;

更强的主机性能,总体性能远高于VPS,强于部分独立服务器。

5、云服务器租用需要交押金吗?

与传统物理服务器租用不同,云服务器租用用户不需要支付押金即可享受服务。

6、如何能查看租用的主机的配置?

因为云服务器在使用上与物理服务器相当,用户可以在操作系统中实时的查看服务器的配置信息与当前资源的使用情况。

7、备份盘能否用来存放我的文件?

备份磁盘用于系统智能备份服务,主要用于灾难恢复情况下使用。

8、用户可以选择安装操作系统么?

可以。云主机在产品使用形态上与传统的物理服务器并没有明显的差别,用户可以根据自己的需求灵活选择或变更的操作系统。

9、云服务器租用产品送产权吗?

不送产权。云服务器是基于云计算平台的主机产品,用户实际付费使用的是云计算平台的计算、存储能力以及优质的网络带宽。用户只需要为实际使用的资源付费,这也是用户选用云主机可以显著降低成本的一个主要因素。

10、云服务器能否申请多个IP?

默认一个云服务器对应一个IP。如果想用多个IP,需要另外进行购买。

Java知识全面总结:并发编程+JVM+设计模式+常用框架+….

本文整理的Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构等内容。同时也有作为程序员的一些思考,包含了作为一个Java工程师在开发工作学习中需要用到或者可能用到的*大部分知识。

学习需要的也不是一腔热血,需要的是长期的规划,这里分享一些思维方式,大家可以自行进行查漏补缺和规划:千里之行始于足下,希望大家根据自己的薄弱点,查缺补漏,学的精通一点,从现在开始行动起来。

以下是我们的成长路线总结内容,希望能够帮助你们!(免费分享给大家)

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

 

AI 3D 传感器市场竞争白热化,中国掌握自主可控核心技术时不我待!

提到AI 3D传感技术,也许很少有人脑中有概念。但是以下图iPhone手机*早推出的3D虚拟表情生成为例,大概就会知道这项技术可以用来做什么了。

%title插图%num

2017年苹果推出的iPhone X中的虚拟表情带火了背后涉及的3D传感技术。当时这项技术还曾引发“3D传感技术是否会在智能手机中流行”等话题,虽然这些问题的答案在今天已经显而易见了。

%title插图%num

什么是AI 3D技术?

 

3D传感技术其实并不算是个新鲜词汇,本身也并没有多神秘。通俗地来讲,3D传感技术是利用3D视觉传感器通过向目标投射特殊波段的主动式光源,并对反射回的光信号进行计算,*终实现对物体的三维深度信息采集,为后期的图像分析提供了关键特征。由于3D传感技术可获取物体的深度信息,搭载3D视觉传感器的智能设备就能够据根据3D传感复原现实三维世界,并实现后续的智能交互,因此3D视觉传感器也将成为AIoT设备智能交互的核心部件。

%title插图%num 3D视觉传感器,奥比中光供图

而AI 3D顾名思义,就是3D传感技术与AI技术的结合,比如兼备3D量测和3D机器人引导的智能传感器不仅能实现机器操作的可视化,还可以通过信息处理进行控制决策,成为如今*热门的机器视觉技术。AI 3D预计将成为下一代消费电子图像传感、AR 定位的底层技术。

如果把计算机视觉应用比作人的“眼睛”,3D传感技术就相当于人眼的成像层,只有底层的“成像”做得好,才能确保“大脑”能基于“眼睛”获取的图像进行更好的决策。

AI 3D传感技术在计算机视觉技术领域中是*为核心的底层技术之一,技术门槛高、长期被国外占据、市场相对来说也比较“小众”,但正因如此,对于国内企业来说,掌握自主可控的核心技术就显得尤为重要。

在这批掌握了AI 3D传感技术核心技术的企业中,来自深圳的奥比中光就是其中的典型代表。这家公司2015年推出了国内首颗3D视觉成像芯片,还是亚洲*家、全球第四家量产自主知识产权消费级3D视觉传感器厂商,包括OPPO Find X的3D结构光模组,蚂蚁集团支付宝人脸支付的3D摄像头在内的产品,背后的供应商就是这家公司。

%title插图%num

在今年第十届“吴文俊人工智能科学技术*十周年颁*盛典上”,奥比中光的“微型3D智能传感器关键技术及应用”获得了“吴文俊人工智能科技进步*(企业技术创新工程项目)”*项,肯定了这家公司在3D视觉感知芯片及传感器等核心技术上的创新。

%title插图%num

微型3D智能传感器关键技术及应用

 

此次获*的“微型3D智能传感器关键技术及应用”方案具体是怎样的?AI科技大本营与奥比中光科技集团股份有限公司副总裁孔博进一步沟通,了解了这项技术的更多细节。

孔博解释,“微型3D智能传感器关键技术及应用”涵盖自研高分辨率3D视觉芯片传感系统、深度算法以及SDK等全栈式技术。在技术攻关中,奥比中光主要解决了以下几个关键技术问题:

① 解决了测量距离与测量精度难以并存的难题。

一般情况下,测量范围越大,其测量精度就越低。本项目中要实现的测量距离为0.5~8米,而测量精度需要达到2mm,因此需要研究高精度的三维成像算法,保证单个视角的高精度成像质量。为了实现大范围的测量,在光学系统端设计低温漂投射与采集模组,在算法方面不断优化算法并将算法芯片化,同时开发多层次高精度标定算法,*终保证在大测量范围的前提下实现高精度测量。

② 设计能满足人工智能行业3D传感系统的苛刻需求的光学测量方案。

奥比中光设计了低功耗、高精度、小体积的散斑投影系统和抗环境干扰的高性价比成像系统;设计机械件参数、控制机械件公差以达到核心算法计算量*小、精度*高、鲁棒性*好的目的;通过调制控制激光及同步控制CMOS传感器以达到噪音*低;通过TEC温控系统控制激光温度以达到系统稳定精确的目的。在光学方案的制定上,主要进行红外投影激光的波长选择与吸收性测试,经过多次实践得出的较为理想的波长约850nm,保证成像质量和较高的动态范围,同时保证投影图像可以适应多种吸收表面。

③ 核心算法的固化及FPGA、ASIC芯片设计和流片。

智能终端,比如机器人本身的处理器需要承担诸如机械控制、定位、建图、导航等大量的数据计算,因而一直存在一些性能和功耗问题,采用嵌入式的RGB-D图像专用SoC芯片(System on Chip,系统单晶片),可以达到实时处理快速响应的要求并缩小体积及成本,另外还可以降低功耗。

%title插图%num

3D传感器市场竞争白热化,

中国掌握自主可控核心技术时不我待

 

3D传感器市场虽然是计算机视觉中的核心部件,技术门槛高,市场也相对“小众”,但市场规模却一点也不小。

根据孔博的观察,3D传感器市场的整体竞争如今已经进入白热化阶段。他分析道,国际科技巨头如苹果、微软、英特尔、Facebook等已经开始在3D传感器市场“重兵布局”,抢占赛道,争夺如芯片、传感器等位于价值链“金字塔”的底层核心技术领域。根据Yole的预测数据,2023年3D视觉感知的全球市场规模约可达到184亿美元,其中消费电子与汽车将成为*大增长引擎。

”面对地位重要、商机巨大的3D视觉感知市场,中国掌握自主可控的3D视觉感知核心技术时不我待,”孔博有了这样的预感。

实际上,目前世界上仅有少数公司能够做到独立掌握3D传感器领域全部相关核心技术,奥比中关可以算是这少数其中的一个,而此次获*的3D视觉芯片方案,研究领域跨度大,涉及光学系统设计、算法、芯片设计及流片以及人工智能识别技术,对于促进我国自主核心算法芯片国产化具有重要的意义。

%title插图%num

奥比中光的自强路径

 

为什么奥比中光能够在3D传感器领域实现国产化突围?我们其实可以从这家公司的8年的创业创新路径上总结出不少可以借鉴的经验。

%title插图%num

孔博认为,奥比中光能够做到自主创新,关键要素就在于其坚持系统级自主研发、全栈式技术布局。而其中,系统级自主研发、掌握核心技术是*根本的一步。

孔博说到,可能与其他公司不同,奥比中光在成立之初就付出巨大成本,坚持自主设计研发关键的一“芯”一“线”:“芯”是3D视觉感知深度算法的核心芯片,“线”则是3D传感摄像头模组的生产线,啃下难啃的“硬骨头”,从而抢占3D视觉感知行业高地。

如今,坚持自主创新的奥比中光已经拥有了从3D传感技术,到芯片、算法,到系统、框架、上层应用支持的全栈技术。

在*核心的芯片层,奥比中光目前已经研发并量产了四款3D视觉感知芯片,包括MX400、MX6000、MX6300、MX6600。虽然目前奥比中光没有对外单独发售芯片,而是集成在奥比中光的产品、模组中发售,但与市面上同类芯片相比,奥比中光芯片的优势主要在于功能满足奥比在3D测量领域的需求,同时性能、功耗和成本平衡得比较好。

%title插图%num

而在系统和算法层面,这家公司也在不断寻求创新。

在系统层,以奥比中光在手机领域推出的iTOF系统方案为例,该创新性方案克服了传统iTOF方案的数据精度受环境影响的不足,对硬件和算法都做了创新式提升,测量精度和分辨率都显著提高。

在算法方面,奥比中光推出定制化的行业应用算法。以智能门锁领域为例,奥比中光开发了3D结构光人脸辨识算法、多模态人脸识别算法,使得门锁安全防伪能力可以有效抵御照片、面具以及头模等多种手段的攻击,其基于3D结构光的人脸辨识算法和人脸活体检测技术也通过银行卡检测中心(BCTC)的双重认证,达到国家金融支付增强级安全标准。

而从应用层面来说,奥比中光在AIoT芯片这个潜力巨大的市场中同样早已开始布局。AIoT现在*棘手的问题之一,就是现阶段商未来发出能够跨设备形态存在的通用芯片,一般来说AIoT都是走定制化芯片的路线。孔博透露,奥比中光正在研发中的一款边缘端计算AIoT芯片,也是采取定制化芯片架构的路线,以针对广泛的应用场景进行性能、功耗的优化。未来这将是一款怎样的AIoT芯片,我们可以期待一下。

%title插图%num

3D计算机视觉会带来一个怎样的未来世界?

 

*后,孔博还分享了他对于3D计算机视觉对我们未来生活影响的畅想。在他看来,3D视觉感知技术可以对空间、人体、物体的三维扫描和建模,实现Vslam视觉导航、动作行为识别、人机交互等功能。

”当前,全球出现了过去十年来*大的信息化、智能化升级和变革浪潮,未来十年,如果要让机器人、汽车、手机实现高度智能化,必须配备3D视觉感知技术能力。这意味着,手机/平板需要结构光和ToF解锁、拍照、开发AR功能,机器人需要结构光避障、提升人机交互体验,汽车需要激光雷达实现主动安全,AR/VR需要dToF打造Cyberverse,”孔博预测。

此外,他还看到随着AIoT的不断发展与5G的普及,3D视觉感知将被越来越多地运用于消费电子、智能家居、交通出行以及工业制造等领域。未来,3D视觉感知技术还将广泛应用于AI私教、个性化服装定制、自动驾驶、AR/VR等场景。

嘉宾简介:孔博,奥比中光科技集团股份有限公司 副总裁,兼任深圳市人工智能产业协会 副会长,深圳市南山区青年企业家协会 副会长,汕头大学MBA企业家导师

%title插图%num

  1.   更多精彩推荐  还在担心无代码是否威胁程序员饭碗?
  2. 从程序媛到启明星辰集团云安全总经理,郭春梅博士揭秘云时代安全攻防之道微软每年豪砸安全研发 10 亿美元,聊聊背后的技术密码除了 k8s,留给 k 和 s 中间的数字不多了再见 Nacos,我要玩 Service Mesh 了!点分享点收藏点点赞点在看

DeVOpS 实战:Kubernetes 微服务监控体系

监控系统是运维体系乃至整个软件产品生命周期中*重要的一环,完善的监控可以帮助我们事前及时发现故障,事后快速追查定位问题。

而在以微服务为代表的云原生架构体系中,系统分为多个层次,服务之间调用链路复杂,系统中需要监控的目标非常多,如果没有一个完善的监控系统就难以保证整体服务的持续稳定。

%title插图%num

%title插图%num

监控对象及分层

在实际场景中监控系统按照监控的对象及系统层次结构,从底向上可以依次划分为基础层、中间层、应用层、业务层等多个层面的监控。具体可如图所示:

%title插图%num

基础层监控就是对主机服务器(包括宿主机、容器)及其底层资源进行监控,以保证应用程序运行所依赖的基础环境的稳定运行。基础层监控主要有两个方向:

  • 资源利用:是对像I/O利用率、CPU利用率、内存使用率、磁盘使用率、网络负载等这样的硬件资源进行监控。避免因应用程序本身或其它特殊情况引起的硬件资源耗尽而出现的服务故障。
  • 网络通信:是对服务器之间的网络状态进行监控。网络通信是互联网的重要基石,如果主机之间的网络出现如延迟过大、丢包率高这样的网络问题,将会严重影响业务。

需要说明的是,在基于Kubernetes容器化技术的新型云原生基础设施中,基础层的监控不仅要对宿主机本身进行监控,也要对Kubernetes集群状态及其容器资源使用情况进行监控。这在后面我们构建基于Kubernetes的基础层监控体系时将会具体介绍。

中间层监控主要是指对诸如Nginx、Redis、MySQL、RocketMQ、Kafka等应用服务所依赖的中间件软件的监控,它们的稳定也是保证应用程序持续可用的关键。一般来说特定的中间件软件都会根据自身特点构建针对性的监控体系。

应用层监控这里就是指对业务性服务程序的监控,一般来说我们对应用程序监控的关注点主要体现在以下几个方面:

  • HTTP接口请求访问。包括接口响应时间、吞吐量等;
  • JVM监控指标。对于Java服务,还会重点关注GC时间、线程数、FGC/YGC耗时等JVM性能相关的指标;
  • 资源消耗。应用程序部署后会消耗一定的资源,例如应用程序对内存、CPU的消耗情况;
  • 服务的健康状态。例如当前服务是否存活,运行是否稳定等;
  • 调用链路。在微服务架构中,由于调用链路变长,还需要重点监控服务之间的调用关系和调用情况,避免局部上下游服务之间的链路故障引发系统全局性雪崩;

业务层监控也是监控系统所关注的一个重要内容,在实际场景中如果你只是让应用程序稳定运行那肯定是远远不够的。因此,我们常常会对具体业务产生的数据进行监控,例如网站系统所关注的PV、UV等参数;后端如交易之类的系统我们则会关注订单量、成功率等。

业务指标也是体现系统稳定性的核心要素。任何系统,如果出现了问题,*先受到影响的肯定是业务指标。对于核心业务指标的设定因具体的业务和场景而异,所以对于业务层的监控需要构建具备业务特点的业务监控系统。

%title插图%num

常见的监控指标类型

在指标类监控系统中,通过统计指标可以感性地认识到整个系统的运行情况。出现问题后,各个指标会首先出现波动,这些波动会反映出系统是那些方面出了问题,从而可以据此排查出现问题的原因。下面我们分别来看下统计指标到底有哪些类型,以及常见的统计指标都有哪些,它是我们进一步理解指标类监控系统的基础。

从整体上看,常见的Metrics指标类型主要有:计数器(Counter)、测量仪(Gauge)、直方图(Histogram)、摘要(Summary)这四类。它们的特点分别如下:

1. 计数器(Counter)

计数器是一种具有累加特性的指标类型,一般这个值为Double或者Long类型。例如常见的统计指标QPS、TPS等的值就是通过计数器的形式,然后配合一些统计函数计算得出的。

2. 测量仪(Gauge)

表示某个时间点,对某个数值的测量。测量仪和计数器都可以用来查询某个时间点的固定内容的数值,但和计数器不同,测量仪的值可以随意变化,可以增加也可以减少。比如获取Java线程池中活跃的线程数,使用的是ThreadPoolExecutor中的getActiveCount方法;此外,还有比较常见的CPU使用率、内存占用量等具体指标都是通过测量仪获取的。

3. 直方图(Histogram)

直方图是一种将多个数值聚合在一起的数据结构,可以表示数据的分布情况。比如以常见的响应耗时举例,可以把响应耗时数据分为多个桶(Bucket),每个桶代表一个耗时区间,例如0~100毫秒、100~500毫秒,以此类推。通过这样的形式,可以直观地看到一个时间段内的请求耗时分布,这将有助于我们理解耗时情况分布。

4. 摘要(Summary)

摘要与直方图类似,表示的也是一段时间内的数据结果,但是摘要反应的数据内容不太一样。摘要一般用于标识分位值,分位值其实就是我们常说的TP90、TP99等。例如有100个耗时数值,将所有的数值从低到高排列,取第90%的位置,这个位置的值就是TP90的值,如果这个桶对应的值假设是80ms,那么就代表小于等于90%位置的请求都≤80ms。

%title插图%num

Kubernetes微服务监控体系

前面我们从整体上描述了监控系统分层以及理解指标类监控系统所需要掌握的几类常见的指标类型。接下来我们重点探讨基于Kubernetes的微服务监控体系。

从监控对象及系统分层的角度看,监控系统需要监控的范围是非常广泛的,但从微服务监控的角度来说,如果你的微服务部署完全是基于Kubernetes云原生环境的,那么我们需要关注的监控对象主要就是Kubernetes集群本身以及运行其中的微服务应用容器。例如对容器资源使用情况,如CPU使用率、内存使用率、网络、I/O等指标的监控。

当然,这并不是说像基础层的物理机、虚拟机设备或者中间层软件的监控我们不需要关注,只是这部分工作一般会有专门的人员去维护。而如果使用的是云服务,那么云服务厂商大都已经为我们提供了监控支持。此外,对于基础物理层及大部分中间软件的监控并不是本文所要表达的重点,所以也就不再做过多的实践,大家对此有个全局的认识即可。

而回到以Kubernetes为载体的微服务监控体系,虽然曾经Kubernetes项目的监控体系非常复杂,社区中也有很多方案。但是这套体系发展到今天,已经完全演变成了以Prometheus项目为核心的一套统一方案。在本节的内容中我们就将演示如何围绕Prometheus来构建针对Kubernetes的微服务监控系统。

1. Prometheus简介

经过行业多年的实践和沉淀,目前监控系统按实现方式主要可以分为四类:1)、基于时间序列的Metrics(度量指标)监控;2)、基于调用链的Tracing(链路)监控;3)、基于Logging(日志)的监控;4)、健康性检查(Healthcheck)。而在上述几种监控方式中Metrics监控是其中*主要的一种监控方式。

简单理解Metrics的表现形式,就是在离散的时间点上产生的数值点[Time,Value],由某个指标组成的一组[Time,Value]数值点序列也被称为时间序列,所以Metrics监控也常常被称为时间序列监控。

如上所述,我们简单阐述了指标系统的基本特点,而接下来要介绍的Prometheus就是一款基于时间序列的开源Metrics类型的监控系统,它可以很方便地进行统计指标的存储、查询和告警。从整体上看Prometheus的系统结构,如下图所示:

%title插图%num

从上图中可以看出,Prometheus工作的核心,主要是使用Pull(拉取)的模式去收集被监控对象的Metrics数据(监控指标数据),然后由Prometheus服务器将收到的指标数据进行聚合后存储到TSDB(时间序列数据库,例如OpenTSDB、InfluxDB)中,以便后续根据时间自由检索。

有了这套核心机制,Prometheus剩下的组件就主要是用来配合这套机制运行的了。比如PushGateway,它可以允许被监控对象以Push的方式向Prometheus推送Metrics数据。而Alertmanager,则可以根据Metrics信息灵活地设置报警。

此外,Prometheus还提供了一套完整的PromQL查询语言,通过其提供的HTTP查询接口,使用者可以很方便地将指标数据与Grafana(可视化监控指标展示工具)结合起来,从而灵活地定制属于系统自身的关键指标监控Dashboard(看板)。

2. Prometheus Operator安装部署

前面我们简单介绍了Prometheus监控系统的基本原理,接下来的内容将以实操的方式演示如何使用Prometheus构建一套针对Kubernetes集群的微服务监控体系。

在实际的应用场景中,针对不同的监控对象Prometheus的部署方式也会有所不同。例如要监控的对象是底层的物理机,或者以物理机方式部署的数据库等中间件系统,那么这种情况下一般也会将Prometheus监控系统的部署环境放置在物理机下。

而如果针对的是Kubernetes集群的监控,那么现在主流的方式是采用Promethues-Operator将Promethues部署到Kubernetes集群之中,这样能以更原生的方式实施对Kubernetes集群及容器的监控。这里所说的Promethues-Operator 是指专门针对Kubernetes的Promethues封装包,它可以简化Promethues的部署和配置。

接下来我们具体演示如何通过Promethues-Operator在Kubernetes中快速安装部署Promethues(Kubernetes实验环境可参考本专栏相关内容),具体步骤如下:

1)、安装Helm

在本次安装过程中,将使用到Kubernetes的包管理工具Helm。Helm是Kubernetes的一种包管理工具,与Java中的Maven、NodeJs中的Npm以及Ubuntu的apt和CentOS的yum类似。主要用来简化Kubernetes对应用的部署和管理。

首先从Github下载相应的Helm安装包,具体命令参考如下:

  1. #找到Github中Helm相关的发布包,参考链接如下
  2. https://github.com/helm/helm/releases
  3. #确定好相关版本后,将具体安装版本下载至某个安装了kubectl的节点 
  4. wget https://get.helm.sh/helm-v3.4.0-rc.1-linux-amd64.tar.gz

解压,并将下载的可执行Helm文件拷贝到文件夹/usr/local/bin下,命令如下:

  1. tar -zxvf helm-v3.4.0-rc.1-linux-amd64.tar.gz
  2. #将下载的可执行helm文件拷贝到文件夹/usr/local/bin下
  3. mv linux-amd64/helm /usr/local/bin/

之后执行helm version,如果能看到Helm版本信息,就说明Helm客户端安装成功了,具体如下:

  1. $helm version
  2. version.BuildInfo{Version:“v3.4.0-rc.1”,
  3. GitCommit:“7090a89efc8a18f3d8178bf47d2462450349a004”,
  4. GitTreeState:“clean”, GoVersion:“go1.14.10”}

安装完Helm客户端后,由于一些公共Kubernetes包是在远程仓库中管理的,所以还需要添加helm charts(Helm中的Kubernetes安装包又叫charts)官方仓库,命令如下:

  1. $helm repo add stable https://charts.helm.sh/stable

查看本地helm仓库是否添加成功,命令如下:

  1. $helm repo list
  2. NAME      URL
  3. stable    https://charts.helm.sh/stable

此时,查看Helm仓库就能看到各种组件的charts列表了,命令效果如下:

  1. $helm search repo stable
  2. NAME                              CHART VERSION   APP VERSION     DESCRIPTION
  3. stable/acs-engine-autoscaler      2.1.3           2.1.1           Scales worker nodes within agent pools
  4. stable/aerospike

如上所示,此时通过“helm search”命令就可以查看到各种stable版本的Kubernetes安装包了!

2)、Helm搜索Prometheus-Operator安装包

在具体安装Prometheus-Operator之前,我们先用“helm”命令搜索Prometheus相关的charts包,命令如下:

  1. $ helm search repo prometheus

具体搜索结果如下图所示:

%title插图%num

如上图所示,我们可以看到Helm仓库中可以搜索到版本为0.38.1的“stable/prometheus-operator”的安装包。接下来就可以通过helm具体安装了!

3)、Helm安装Prometheus-Operator监控系统

接下来啊,通过Helm具体安装prometheus-operator监控系统,命令如下:

  1. #创建k8s名称空间
  2. kubectl create ns monitoring
  3. #通过helm安装promethues-operator监控系统
  4. helm install promethues-operator stable/prometheus-operator -n monitoring

执行安装命令后,输出结果如下:

  1. WARNING: This chart is deprecated
  2. manifest_sorter.go:192: info: skipping unknown hook: “crd-install”
  3. manifest_sorter.go:192: info: skipping unknown hook: “crd-install”
  4. manifest_sorter.go:192: info: skipping unknown hook: “crd-install”
  5. manifest_sorter.go:192: info: skipping unknown hook: “crd-install”
  6. manifest_sorter.go:192: info: skipping unknown hook: “crd-install”
  7. manifest_sorter.go:192: info: skipping unknown hook: “crd-install”
  8. NAME: promethues-operator
  9. LAST DEPLOYED: Mon Oct 26 10:15:45 2020
  10. NAMESPACEmonitoring
  11. STATUSdeployed
  12. REVISION: 1
  13. NOTES:
  14. *******************
  15. *** DEPRECATED ****
  16. *******************
  17. stable/prometheusoperator chart is deprecated.
  18. Further development has moved to https://github.com/prometheuscommunity/helmcharts
  19. The chart has been renamed kubeprometheusstack to more clearly reflect
  20. that it installs the `kubeprometheusproject stackwithin which Prometheus
  21. Operator is only one component.
  22. The Prometheus Operator has been installedCheck its status by running:
  23.   kubectl —namespace monitoring get pods –l “release=promethuesoperator
  24. Visit https://github.com/coreos/prometheusoperator for instructions on how
  25. to create & configure Alertmanager and Prometheus instances using the Operator.

执行完安装命令后,查看具体的Kubernetes Pods信息,命令如下:

  1. $ kubectl get po -n monitoring
  2. NAME                                                     READY   STATUS    RESTARTS   AGE
  3. alertmanager-promethues-operator-promet-alertmanager-0   2/2     Running   0          5m42s
  4. prometheus-promethues-operator-promet-prometheus-0       3/3     Running   1          5m31s
  5. promethues-operator-grafana-5df74d9cb4-5d475             2/2     Running   0          6m53s
  6. promethues-operator-kube-state-metrics-89d8c459f-449k4   1/1     Running   0          6m53s
  7. promethues-operator-promet-operator-79f8b5f7ff-pfpbl     2/2     Running   0          6m53s
  8. promethues-operator-prometheus-node-exporter-6ll4z       1/1     Running   0          6m53s
  9. promethues-operator-prometheus-node-exporter-bvdb4       1/1     Running   0          6m53s

如上所示,可以看到Prometheus监控系统相关的组件都以Pod的方式运行在了Kubernetes集群中。

%title插图%num

Prometheus监控效果演示

通过前面的实际操作,我们通过Helm的方式已经将Prometheus Operator安装包部署在了Kubernetes集群之中。而此时的Prometheus实际上就已经开始发挥作用,并采集了各类Kubernetes的运行指标信息。可以通过Promethues内置的监控界面对此进行查看,具体步骤如下:

查看Kubernetes中查看内置监控界面所在的Pod节点,命令如下:

  1. kubectl -n monitoring get svc

使用nodeport方式将promethues-operator内置界面服务暴露在集群外,并指定使用30444端口,命令如下:

  1. kubectl  patch svc promethues-operator-promet-prometheus -n monitoring -p ‘{“spec”:{“type”:”NodePort”,”ports”:[{“port”:9090,”targetPort”:9090,”nodePort”:30444}]}}’
  2. service/promethues-operator-promet-prometheus patched

此时在浏览器中输入Pod节点所在的宿主机IP+端口地址,URL示例如下:

  1. http://10.211.55.11:30444/graph

此时就可以看到Promethues内置的监控可视化界面了,效果如下图所示:

%title插图%num

而如果此时以PromeQL的方式查看一个具体指标,以“http_requests_total”为例,展示效果如图所示:

%title插图%num

由此说明,此时Promethues监控系统已经开始运行,并采集了相关Metrics指标数据。

%title插图%num

Grafana可视化监控系统

Grafana是一个强大的跨平台的开源度量分析和可视化工具,可以将采集的指标数据进行定制化的图形界面展示,经常被用作为时间序列数据和应用程序分析的可视化。Grafana支持多种数据源,如InfluxDB、OpenTSDB、ElasticSearch以及Prometheus。

前面我们在Kubernetes中安装部署Prometheus-Operator时,实际上Grafana就已经被集成并运行了,可以通过Kubernetes的相关命令查询Grafana的实际运行Pod,并将其Web端口对外进行暴露,具体如下:

  1. #查看服务节点信息
  2. kubectl -n monitoring get svc
  3. #使用nodeport方式将promethues-operator-grafana暴露在集群外,指定使用30441端口
  4. kubectl  patch svc promethues-operator-grafana -n monitoring -p ‘{“spec”:{“type”:”NodePort”,”ports”:[{“port”:80,”targetPort”:3000,”nodePort”:30441}]}}’

需要注意由于Grafana的应用运行的默认端口为80,为避免实验环境冲突,这里映射时将目标容器端口指定为3000,并*终将节点端口映射为30441。完成后,浏览器输入URL:

  1. #IP地址为映射命令执行时所在的节点
  2. http://10.211.55.11:30441

如果映射正常,此时会返回Grafana可视化图形界面的登录界面,如图所示:

%title插图%num

这里缺省登录账号密码为:admin/prom-operator。输入后可进入Grafana主界面如下图所示:

%title插图%num

可以看到部署完成的Grafana已经默认内置了许多针对Kubernetes平台的企业级监控Dashboard,例如针对Kubernetes集群组件的“Kubernetes/API server”、“Kubernetes/Kubelet”,以及针对Kubernetees计算资源的“Kubernetes/Compute Resources/Pod”、“Kubernetes/Compute Resources/Workload”等等。

这里我们找一个针对Kubernetes物理节点的“Nodes”监控Dashboard,点击打开后看到的监控效果如下图所示:

%title插图%num

上图所示的Dashboard中展示了Kubernetes集群所在的各物理节点CPU、负载、内存、磁盘I/O、磁盘空间、网络传输等硬件资源的使用情况。从这些丰富的视图可以看出Grafana强大的监控指标可视化能力。

%title插图%num

后记

本文给大家从理论到实践简单介绍了Kubernetes微服务监控体系的构建步骤,希望能够对大家学习Kubernetes有所帮助。目前以Kubernetes为代表的容器化技术已经成为现代软件应用发布的标准方式,作为一名普通研发人员,对Kubernetes的学习将有助于我们更深入的理解整体软件系统的构建原理,也是我们进阶提升必不可少的知识储备。

关于 Devops 技术,我们还有%title插图%num%title插图%num%title插图%num

何为“边缘计算”?

云原生除了K8S、微服务,还有…?

如何搞定 K8S 微服务自动化发布系统

如何部署一个Kubernetes集群

Docker私有镜像仓库是什么?

上手 Docker 容器,不应该是个问题

什么魔力让 Docker 一发不可收拾?

%title插图%num

  1.   更多精彩推荐  AI 3D 传感器市场竞争白热化,中国掌握自主可控核心技术时不我待!还在担心无代码是否威胁程序员饭碗?
  2. 从程序媛到启明星辰集团云安全总经理,郭春梅博士揭秘云时代安全攻防之道微软每年豪砸安全研发 10 亿美元,聊聊背后的技术密码再见 Nacos,我要玩 Service Mesh 了!点分享点收藏点点赞点在看

顶级技术大咖,揭秘实时音视频开发的超级风口

2021年初因为Elon Musk“带货”而走红的音频社交App Clubhouse,又以肉眼可见的速度跌落神坛,下载量从2月的960 万/月跌至4月的92万/月。不过在5月,Clubhouse终于推出了安卓版,并表示接下来也会对所有用户开放。

另一边,已经很久没有新噱头的社交巨头 Twitter 和 Facebook因为Clubhouse的爆红,也在跟进音频社交。Clubhouse能否借安卓版翻身,音频社交会不会成为下一个全民级应用,都仍是悬念。

音频社交背后的RTC技术,早在2020年,就因为新冠疫情,被各类场景广泛使用,几乎无处不在。例如疫情导致无法逛街,电商视频直播导购,网红明星直播带货已经成为常规操作;疫情导致学校线上教学,疫情导致了居家办公与远程视频会议的接受度大大提高等等。

这些应用快速普及,都需要产品与技术的稳定性,毕竟画面和声音卡顿,体验太糟糕的话,用户不会想再尝试,可能就直接放弃了(当然不能买买买可以省钱/不用在线被老师催回答问题/不用穿正装和老板视频会议了),而这些背后都是RTC实时音视频技术在支撑。

%title插图%num

也因为疫情,实时音视频背后的公司与技术也在2020年受到了资本的追捧。2020年6月声网在纳斯达克上市,年底即构获腾讯5000万美元C轮投资,资本在持续加码RTC技术的赛道。

随着5G落地,IoT、VR、AR等领域有望涌现出大量的新兴应用场景。社交泛娱乐、在线教育、互动游戏、金融服务、互联网医疗,RTC技术所能施展的空间想象力巨大。

 

三位顶级技术大咖,畅聊 RTC 新机会

 

音视频开发的大趋势下,作为开发者,你有没有关注过RTC技术关键点、创新的使用场景、RTC将引爆什么行业?通过RTC技术,创业/跳槽/加薪的机会又在哪里?

5月27日晚20:00-21:00,CSDN重磅打造的高端对话栏目《大咖来了》第十三期将聚焦2021年后疫情风暴中的 RTC技术发展趋势,邀请国内顶尖的音视频技术公司技术大牛,探讨音视频技术与发展趋势,分享真知灼见。

在直播中,将讨论如下话题:

  • RTC技术的趋势与价值,成熟度如何?
  • RTC在通信领域的前世今生,发展历程是什么?
  • RTC和低代码、AI、5G等新技术的融合趋势
  • AI、机器学习在RTC领域的应用
  • 下一个将被实时音视频引爆或改变的行业会是什么?
  • RTC对于开发者的机会在哪里?

我们将邀请:

%title插图%num

蒋涛,CSDN 创始人&董事长、*客帮创投创始合伙人 

25 年软件开发经验,曾领导开发了巨人手写电脑、金山词霸和超级解霸。

1999 年创办 CSDN(China Software Developer Network)。CSDN 是专业的中文 IT 技术社区,Alexa 全球排名 26,目前注册会员超过 3100 万,涵盖 90% 国内 IT 开发从业人员。CSDN 成立二十年,为中国 IT 从业人员提供知识传播、在线学习、职业发展等全职业生命周期服务,致力于成为技术人学习和成长的家园。

2011 年创办*客帮创投,作为懂技术的投资人,先后投资了聚合数据、巨杉数据库、传智播客、乐动卓越(我叫 MT)、IT 桔子等 100 余家高科技创业公司。被投项目中 SequoiaDB 巨杉数据库作为业界*的金融级分布式关系型数据库产品,连续两年入选 Gartner 数据库报告,传智播客、柠檬微趣已于 2019 年、2017 年分别申报中小板和创业板上市,淘手游也被贵州省列为*批科创板备案名单。

%title插图%num

任杰,融云 CTO

负责融云音视频整体技术规划和演进; 拥有 20 年以上互联网通信领域产品设计、架构设计、技术研发经验,是移动通信领域顶级技术专家,致力于为全球开发者提供专业的互联网通信云服务。

加入融云前,曾担任神州泰岳集团副总裁;原飞信CTO,带领飞信平台从零开始到千万在线;曾担任微软中国顾问咨询部电信行业负责人,带领团队完成多个千万级项目的实施。

%title插图%num

刘莉 即构科技副总裁

刘莉博士,教授,拥有17年海外/国内运营商全球组网、数据安全、视频云平台开发和运营经验,曾任亿联网络副总经理,华为通讯云服务CTO,中国电信系统集成(广东) 事业部总经理。

刘莉博士在云计算架构和音视频领域发表中英文期刊论文17篇,国家发明专利20项。获得福建省百人计划、福建省高层次人才等多项荣誉称号。

无人机、IoT 都危险?第五代网络威胁有哪些特点

从无序中寻找踪迹,从眼前事探索未来。

2021 年正值黄金十年新开端,CSDN 以中立技术社区专业、客观的角度,深度探讨中国前沿 IT 技术演进,推出年度重磅企划栏目——「拟合」,通过对话企业技术高管大咖,跟踪报道企业前沿技术资讯,分享真知灼见,以点到面折射出中国 IT 技术*新动态,传播技术影响力,帮助开发者与企业捋清思路,共创数字经济新未来。

技术变革机遇和挑战并存,当下安全漏洞、攻击勒索事件频出,如何保障企业的信息安全?

本期「拟合」将聚焦安全话题,追踪行业安全知名企业,打响“隐秘的角落”安全之战。

受访者 | Check Point 中国区技术总监王跃霖

作者 | 宋慧

出品 | AI 科技大本营(ID:rgznai100)

肆虐全球的新冠病毒是对全人类的威胁,在全球忙于应对疫情的同时,IT 互联网一直以来的网络威胁也一点没有减少。

据以色列老牌安全厂商 Check Point 在 2021 年*新发布的报告显示,71%的受访安全从业者表示其所在机构的网络受威胁次数明显上升;近半年来约 68000 个新注册新冠相关域名中,近半数高度疑似恶性钓鱼网站。

以色列一直在全球网络安全领域占有举足轻重的地位。作为成立 28 年之久,已在纳斯达克上市的以色列资深安全厂商,Check Point 长期以来一直被 Gartner 评为网络安全魔力象限的“领导者”。《拟合》专访了 Check Point 中国区技术总监王跃霖,听听他对 2021 年*新网络安全趋势的见解。

%title插图%num

Check Point 中国区技术总监王跃霖

%title插图%num

无人机、IoT 都有漏洞风险,网络威胁走向全维度

在 Check Point 对于网络威胁长久的监测看来,网络威胁已经从对企业的单一攻击,变为影响范围更大、对政府机构的攻击。例如在 2020 年底被证实对 SolarWinds 的大规模网络攻击,美国和多个国家政府机构遭受攻击。王跃霖表示,Check Point 在三年前已经预测了这一网络攻击的新趋势,并把它定义为“第五代网络威胁”。

Check Point 还看到,医疗机构受到的非人道网络攻击与威胁依然存在,甚至新冠疫苗研究机构的核心数据,也在被窃取的风险中。

王跃霖为这些多变的第五代网络威胁,总结了三个特点:

  • 网络攻击从小范围,转向全维度多向量的方向;
  • 黑客勒索行为,从单纯的强行加密用户数据,使用户无法破解,变为窃取用户敏感数据,如果用户拒接支付勒索赎金,则把用户敏感数据公开的双重勒索;
  • 网络攻击维度,从以往的数据中心转为云上资产、智能终端(如安卓系统漏洞攻击增多),以及侵占资源(例如挖矿)。

对于网络攻击的历史进程,王跃霖也分享了 Check Point 体系化梳理的前四代网络威胁特点。*早*代网络威胁是产生于 8、90 年代的蠕虫病毒,但更像是对个人电脑的恶作剧。随后,电脑开始接入网络,出现第二代由网络传播的病毒,通过对网络通讯会话监控,防火墙技术产生。第三代的入侵预防(IPS)是针对 web 应用漏洞攻击的防护。第四代网络威胁进一步发展,安全防护的重点进入对用户浏览交互行为的分析,和对应用传输中负载漏洞的预防。接下来的第五代,就是上面提到的全维度多向量的攻击威胁。

另外,王跃霖也分享了 Check Point *新提出的“第六代网络威胁”。5G 普及后的工业互联网时代,Check Point 已经陆续发现了来自 IoT(物联网)设备的漏洞和风险。例如无人机拍摄影像在回传过程中可能存在数据传输的安全隐患,比如传真机可能存在远程调用漏洞。另外曾爆出黑客通过赌场大堂温控设备入侵了赌场 IT 系统等等。

%title插图%num

AI 智能分析预测风险,安全随云原生而动

回到中国,王跃霖认为安全防护是无国界的(毕竟全人类一张“网”),前面 Check Point 所提及的风险在国内也都存在。每年也有大量的中国企业被攻击和勒索。随着国力增强,全球化的趋势下,王跃霖也建议所有中国企业,需要具备国际化的安全视野。企业想要提升安全防护能力,必然需要足够大的样本特征分析,更需要去关注国外流行的攻击手段。*后,安全领域的专业性需要更多专家型的技术人,这也会是衡量一个安全企业技术优劣的标准。

对于靠卖防火墙崛起的老牌安全厂商,王跃霖认为 Check Point 的优势在于四方面。*、实时防护能力,第二、全面无死角的多维度防护,第三、对于未知威胁的持续发现的并且防护的能力,第四、连通所有防护界面不同维度之间的不同数据,进行统一展示分析,发现潜在威胁。

在之前的交流中,Check Point 透露在使用 AI 人工智能分析引擎去分析预判网络威胁攻击。不过王跃霖对 CSDN 表示,在安全领域的 AI 技术并不像互联网领域在近几年才有热度,安全分析需要长久的积累。

Check Point 从 1995 年开始就在积累安全分析数据,2016 年就推出了*代基于人工智能的防护功能。随着数据量的增多,引入 AI 智能分析,也是安全领域的必然趋势。另外,Check Point 是首个将全球智能威胁情报库落地中国的外资安全企业,保证了数据查询不出境,同时符合国内数据安全要求。

作为从事 IT 行业 20 多年的资深技术老兵,王跃霖也向 CSDN 分享了职业经历的趣事。在他刚入行时在Bay Networks公司,公司的路由器中集成 OEM 防火墙软件时,其实就已经使用了 Check Point。(王老师提到那时已经经常加班了,搞研究搞技术。家人还曾疑虑防火墙是商场的消防设施。)

对于中国的安全市场,王跃霖比喻企业安全事件就像人得病,注意防护,但还要“生活”。安全也一直是应用的伴随者,随着技术与应用的发展,安全也将不断地向前演进。

未来,云原生安全将是一个重要的趋势。源代码不断的研发迭代过程,需要安全软件有能力对于源代码迭代调用过程中存在的安全隐患进行深入的分析,不断地提供加固检查。另一个趋势是用户接入层的安全变化,随着远程办公的兴起,区别于传统的*接入方式,有必要为远端用户提供更加安全可靠的连接服务,增加统一的安全服务站点,用户通过安全的服务站点后,再去连接企业的后端应用。

%title插图%num

  1.   更多精彩推荐  云上数据保护,你以为挡住黑客就够了?在这次采访中,Mendix 披露了低代码方法论
  2. DeVOpS 实战:Kubernetes 微服务监控体系
  3. 还在担心无代码是否威胁程序员饭碗?

    

CSDN *对话阿里云贾扬清、华先胜等大咖,剧透阿里云原生技术密码

新一轮科技革命和产业变革正重塑全球发展格局,以云计算为代表的新一代信息技术相互渗透,成为数字经济智能和创新发展新引擎。

过去 12 年,人们对云计算的讨论从原来的“为什么上云”,到“为什么不上云”,再到如今探索“云上创新”机遇。一年一次的阿里云峰会,正是与开发者一同见证*新云上技术创新与实践应用的行业峰会。

5 月 29 日,在 2021 阿里云峰会火热进行的第二天,CSDN 创始人&董事长、*客帮创投创始合伙人蒋涛,CSDN 副总裁于邦旭空降大会直播间,*对话阿里云丁宇、贾扬清、华先胜、陈长城等技术大咖,深入揭秘云原生*前沿的实践与应用,云原生数据库 2.0 *新理念、大数据+AI 研发密码等烧脑话题,精彩对话不容错过:

%title插图%num

对话丁宇:全云开发时代来了,开发者全面拥抱云原生

%title插图%num

蒋涛:您在大会上分享《云原生推动全云开发与实践》,之前可能大家讲得比较多的是“云开发”“全民开发”,那“全云开发”对开发者来说有什么不同?

丁宇:软件研发流程漫长,涉及 IDE、开发框架、编程语言平台、代码仓库、镜像仓库、测试环境、CI/CD、采买资源、应用升级、运维、监控等,过去工具和能力并不完善,随着云原生迅速发展,正革新我们的开发模式。

通过行业调研,我们观察到开发者在对全云开发的接受度、投入度、使用度均在快速上升,因此我们认为全云开发时代已来。

蒋涛:怎么理解“云原生是释放价值的*短路径”?云原生如何助力当前企业数字化转型?

丁宇:2019 年,我们发现在国内线下 IT 投入已低于线上投入,因此我们提出一个观点“云计算的拐点到来了”。

云原生可较好地帮助我们构建应用层,另外拥有容错性好、易于管理、可弹性扩张等特性,企业数字化转型其实已经离不开云计算。

云原生为企业带来四大价值:

一是云原生以容器为代表,将基础设施非常平滑地搬到云上,帮助企业完成基础设施的云化。

二是核心技术系统互联网化,云原生将互联网技术标准化传递到传统线下企业。互联网的技术、思路、理念、组织形态可对传统企业升级能力,赋能创造:如低耦合、可扩展、小步快跑、快速迭代、敏捷开发、业务快速上线等。

三是驱动应用架构向现代化演进。我们常说“一云多芯”“云边一体”等理念,只因为解决企业协同的智能化、管理数字化而生,这些技术在云原生技术体系下,才能更好地推动企业 IT 体系变革。

四是多中台。云原生帮助企业构建起业务中台、数据中台、AI中台等,由于数字化转型关键的一点是用数据将业务数字化和智能化升级,以更好地驱动业务迭代和创新。

所以从以上四个方面来看,云原生是企业数字化转型的基石。

蒋涛:在云上实践中,能否举例说明企业从原来的 IT 系统演进为云原生体系,大约需要花费多长时间,需要解决哪些问题?

丁宇:这确实是一个相对漫长的过程,阿里云正要缩短这个过程。自 2006 年开始,阿里自研分布式架构体系,2009 年启动“双十一”活动、创办阿里云,随后用技术创新来帮助公司转型升级。2015 年提出“中台战略”,2017 年创立达摩院。

2018 年,阿里将过去近 20 年所沉淀的业务中台、数据中台、技术中台等技术能力全面和阿里云整合,所以说使用阿里云的用户是“站在巨人的肩膀上”。

在帮助客户企业上云时,如果 IT 基础不完备的话,可能需要漫长的演进过程。例如企业原有 IT 基础不便上云,如今想打造业务中台和数据中台的话,由于缺乏平滑路径,将产生高昂的迁移成本。如今我们也在不断提高自身的咨询、架构、方案实施的能力,来加速企业上云。

蒋涛:在云原生时代,开发者如何更好地发展?您有哪些建议?

丁宇:时间倒退回 5 年前,彼时开发者假如想创业的话,“兵器库”里优秀的工具较少,彼时开源工具没有那么普及。

随着云原生时代崛起,当前 CNCF 里的项目已覆盖软件开发生命周期的方方面面,且在每个领域都逐渐形成了技术标准和规范,开发者基于开源可快速搭建一套新的技术体系,所以说这是开发者*好的时代,开发者要全力拥抱云原生、开源、云计算,才能更大释放生产力。

另外,当企业走向商业化之路时,可使用云平台提供的丰富产品,今天生于云时代后的互联网公司大部分都在云平台上。因为云平台是不断进步、持续保持竞争力的平台,创业者可基于云平台可以快速驱动业务上线。

开源非常伟大,没有 Linux 就没有今天的互联网,开源将技术白盒化,大家可多研究开源、贡献开源、参与开源。

%title插图%num

对话陈长城:一站式在线数据管理平台,敲开云原生数据库 2.0 之门

今天,阿里巴巴集团副总裁、阿里云智能数据库事业部高级研究员李飞飞宣布推出云原生数据库2.0——一站式在线数据管理平台 DMS,以及“阿里云数据库开源计划”,共建云原生数据库生态。

2020 年,在 Gartner 发布《2020 年度全球数据库魔力象限报告》,阿里云首次进入全球数据库领导者象限,值得一提的是,这是中国数据库 40 年来首次进入全球顶级数据库队伍。

自高举“升级传统商业数据库”旗帜以来,阿里云在云数据库投入众多,陆续推出自研产品:例如在企业级云原生数据库上,拥有云原生关系型事务数据库 PolarDB、分布式版 PolarDB-X;在 OLAP 领域,有云原生数据仓库 AnalyticDB、云原生数据湖分析 Data Lake Analytics;在 NoSQL 领域,拥有云原生多模数据库 Lindorm 和内存数据库 Tair。

然而在后疫情时代下,企业对云数据库的诉求发生改变。疫情加速了不少行业的业务在线化和数字化运营,伴随企业数字化转型加速,数据的存储和价值挖掘需求越发强烈,呈现数据量加速增长,数据类型多样化,云原生分布式三大趋势。

如今阿里云推出一站式在线数据管理平台 DMS,这背后有哪些思考?带着这些问题,CSDN 创始人&董事长、*客帮创投创始合伙人蒋涛和阿里云资深技术专家、数据库产品事业部生态工具部负责人陈长城展开对话:

%title插图%num

蒋涛:今天推出的“云原生数据库 2.0”理念和产品,将会给企业带来哪些颠覆性变革?

陈长城:一站式在线数据管理平台 DMS 与传统的数据集成不同,我们从客户场景视角提出了一站式数据管理服务的理念,从数据生产和集成、数据实时处理(OLTP\NoSQL)、数据分析与发现OLAP、数据开发与管理,覆盖数据生产到应用的全生命周期。

其中*大的特点是企业能够用数据库的方式进行大数据量的管理,从单机数据库,到云原生分布式数据库如 PolarDB、再到按需集中到数据仓库进行分析、报表开发,以及数据归档和离线数据价值挖掘,实现库仓一体、在离线一体的存储和计算能力。

第二个变化是在线数据资产统一管理,低门槛按需建仓,敏捷分析的能力。云原生技术应用让数据库和数据仓库都在一个可控的环境,可以实时无缝打通,实现 DDL、扩缩容等运维无感知,这是传统数据集成做不到的,同时将 ETL 转换内置在链路里大大缩短传统数据集成链路,可将源端库直接作为数仓的 ODS 层进行计算加工,免去数据的物理搬迁问题。真正实现敏捷建仓、按需建仓。

蒋涛:对标其他产品,从一站式数据管理工具的角度上,阿里云的*程度为多少?

陈长城:一站式在线数据管理平台 DMS 为满足企业多样化的业务场景需求,又满足数据集中的需求而生。传统的数据集中需要做数据的物理集中,一站式数据管理平台希望做到“按需建仓,敏捷开发”,我们是业界*个提出这个概念,属于较*的。

蒋涛:对数据库工程师而言,是否需要学新的技术才能用好这些工具?

陈长城:原来很多应用开发者在使用数据库,数据工程师或者数据科学家使用数仓,一站式在线数据管理平台通过统一打通数据库和数据仓库,使得更多应用开发者像数据工程师去处理数据,这个平台反而是降低技能门槛。

此外,无论是小微企业,还是中大型企业,均可在一站式数据管理平台DMS管理数据和相关开发。由于云原生数据仓库的存储资源是可以无限拓展的,可使得用户数据量膨胀过程中计算和处理分析的方式并没有发生大的改变。

蒋涛:这非常关键,当前所有公司都在进行数字化转型,随着数字化规模不断扩张,怎样让数据开发变得更容易,一站式数据管理是非常有价值的。

当前开源正在深刻影响 IT 界,如 MongoDB、PingCAP 等开源数据库项目拥有良好的影响,开源将是云数据库的未来吗?

陈长城:阿里云数据库本身也是依托开源数据库发展壮大起来,一直是开源社区的积*参与和推动者,一直在将实践过程中遇到的问题,修复的 Bug,原创的技术回馈开源社区,这次将一些更核心的,提升用户价值的技术开放出来,也算投桃报李,相得益彰。

阿里云在提供云数据库服务的长期实践过程中,对数据库技术有了更深的理解。在高可用、分布式、存储与计算分离等方向上积累和沉淀了很多技术,阿里云开源的目的还是期望吸引到更多的合作伙伴一起来共建,为行业用户提供更有价值的解决方案。

蒋涛:未来云数据库产品如何发展才会更有生命力?

陈长城:*,应用云原生分布式数据库技术,当下业务快速膨胀的数据规模,多样化的数据类型,更复杂的业务特征,和对数据实时洞察的需求,这推动了传统数据库技术向可扩展、高可用、实时弹性等方向发展。通过云原生分布式技术,可以承载大数据量的在线处理和分析,也提供了高可用的生产保障,并对多模数据处理引擎提供了底层支撑,云原生分布式数据库将成为未来企业数据库的首选。

第二,可通过一站式在线数据管理平台 DMS 对企业数据资产进行统一管理,发挥数据价值。对企业数据生产存储、传输加工、计算分析提供全生命周期的服务能力。将企业各种数据库无缝打通,让数据自由流动,构建一体化的解决方案,才能降低企业数据处理和分析门槛,发挥数据价值。

%title插图%num

对话贾扬清:大数据+ AI 掀起“敏捷制造”浪潮

在大会上,阿里巴巴集团副总裁、阿里云智能计算平台事业部高级研究员贾扬清做《云上大数据与AI开发范式的演进》的分享。贾扬清除了是深度学习的顶尖技术专家外,还是阿里巴巴开源技术委员会负责人。

在 4 月发布的《GitHub 2020年数字化洞察力报告》显示,阿里开源项目成为中国企业中*活跃的项目。目前阿里在 GitHub 开源项目数已超过 2600 个,覆盖大数据、AI、云原生、数据库、中间件、硬件等多个领域,Star 数 5 月首次超过100万, 全世界有 100 多万开发者为阿里点亮 GitHub Star,接近 3 万的爱好者参与到阿里开源项目贡献之中。

%title插图%num

蒋涛:大数据平台和 AI 平台的融合演进是如何的?

贾扬清:如今我们观察大数据与 AI 开发范式的发展模式是沿着“小作坊”到“大平台”再到“敏捷制造”的方向演进,从面向资源的开发,向面向需求的开发转变。

小作坊,比如云下单机运行,在云下开发会面临很多挑战,包括自建环境麻烦、扩展难、协同困难、数据间不打通,成本高、升级困难等问题,于是我们开始向云转移,数据开始标准化,有了统一的工具,开发环境能够快速构建,协同效率也提升了。当我们有更快速灵活以及高效运维等需求出现时,敏捷制造出现了,一切都是“云原生”,能够满足灵活、快速地开发和部署,用更简单的方式按需使用,敏捷制造可让大家更容易触达数据和算法。

蒋涛:“敏捷制造”面向的对象是哪类人?

贾扬清:针对开发者而言。“敏捷制造”起承上启下的作用:对上是开发者,对下是系统。对上希望开发者在触达数据和算法时尽量简单,大数据方向,我们希望开发者可通过一个比较简单的界面,例如像 Excel 一样,可以非常快速读出数据做观察。AI方向,我们用一个大家都比较熟悉的Notebook做开发。

今天我们在云上有一系列产品,DataWorks一站式数据开发与数据治理平台,能够把复杂的大数据演变为触手可及的“小数据”;PAI云原生机器学习平台,能够满足AI模型训练到部署各环节,让你开发非常简单,只要拉起开发环境就可以训练,训练之后,模型部署的过程也很容易。

“敏捷制造”是很重要的一次范式转变。

蒋涛:大数据和 AI 融合后,未来将对业务形态、行业形态发生变革吗?

贾扬清:我觉得会有更新的变化。以媒体行业举例,*早的报纸是“千人一面”,当新闻运用算法推荐后,就像钟摆一样,“从一面迅速摆到另一面”,通过算法分析用户对内容的点击率,进行“千人千面”推荐。但完全基于算法可能会产生很多垃圾信息,因此,通过AI算法和大数据分析内容,可以把“钟摆”再往回摆,能够把这些能力赋能给专业编辑、KOL等,大家利用算法的力量分析内容的同时,创作优质内容,把算法能力和编辑能力结合起来,给用户更好阅读体验,升级行业价值。

蒋涛:在融合趋势下,让普通开发者更好地运用 AI 和大数据的话,开发者是否需要学习更多知识?

贾扬清:开发者要学更多东西,要有更多好奇心。只要大家有好奇心,相互迭代边界,然后咬合起来,都往前走一步,如此一来,就像两节火车厢结合在一起,共同成长。

蒋涛:作为阿里开源技术委员会负责人,能分析下当前国内开源发展进程吗?

贾扬清:总体而言,国内开源群体和开源意识与国际相比,存在一定差距。但近几年来,国内对开源的重视和热情迅速提升,呈现指数级成长。

在阿里内部,正设计开源激励机制,让大家将开源作为工作的一部分,一起来拥抱开源、贡献开源、引导开源。在内部推动开源文化,开源只是*步,不是结束,后面会继续考核社区增长,通过这样的方式让大家感觉到我们是为了开源、为了社区做开源。

此外,我们通过在全球主流基金会上贡献开源项目,来获取更多主导权。还携手友商共同将项目从闭源走向开源。

%title插图%num

对话华先胜:行业行业,无行业不 AI

人工智能技术经历 60 多年发展,可寻找适合的 AI 商业化落地场景,并让AI在场景中产生核心价值,是 AI 创业者头疼的难题。

阿里巴巴集团副总裁、IEEE院士、达摩院城市大脑实验室负责人华先胜表示,无行业不AI。为何他如此说呢?下面我们一起看看:

%title插图%num

华先胜:AI 从单点能力逐渐走向平台化,目的是便于开发者规模化开发,让广大 IT 工程师应用 AI 能力到各行各业里。

城市大脑AI中台便是这样的平台,开发者在城市管理、城市治理等场景下利用中台技术做应用层面的创新。工业视觉中台,可帮助开发者简单、高效地生产出AI能力,解决多种多样、复杂多变的工业场景中的问题,共同推动 AI 在工业场景的落地应用。

蒋涛:企业和开发者在应用 AI 落地时,可能会遇到哪些困难?

华先胜:这是一个特别重要的问题,我们多年来不断实践、总结、探索,想让 AI真正落到实处,*关键的点是让AI产生真正的核心价值。AI 价值有三种境界:锦上添花、雪中送炭、无中生有。我们要提供“雪中送炭”的核心能力,甚至要用核心技术创造出来的新的场景,达到“无中生有”的境界,所以我们要做的是:一是价值导向,二是在价值基础上关注核心价值。在此基础上,卓越的算法技术仍然是关键之一,而平台化也是非常重要的规模化落地方式。

今天城市大脑已到第二种和第三种价值。比如在交通感知、交通流量等场景中,过去是靠人为来观察,在杭州上线了城市大脑后,相当于增加了 15000 名交警来助力观察交通状况,已为杭州每天报告几万起交通事件和事故。这是过去没法做到的事情,算法和算力为交通优化提供准确、全面、实时的信息,便于交警快速处理事故、挽救生命、降低拥堵。

蒋涛:不少人认为 AI 应用落地难、AI 难以盈利,您如何看待这两个问题?

华先胜:一是提升 AI 能力,AI 从业者应理性认识到 AI 强大的一面,也有局限性的一面,所以需要不断增进技术,让技术的准确率、覆盖率和效率不断提升。

二是要深入行业,解决行业的核心问题,产生不可替代的业务价值,才有人愿意买单。不能停留在做“锦上添花”的能力上,虽然添朵“花”也有价值,但不会成为行业的刚需,商业化也难以成功。

蒋涛:未来 AI 还有哪些发展较好的应用场景?

华先胜:举几个例子:一是智慧城市,智慧城市涉及的场景众多,相信 AI 能在其中有较好的落地。

二是工业场景。由于工业领域行业多样,同一行业的工厂不同,同一工厂的生产线不同,甚至同一生产线的配置也会发生变化,因此工业场景的AI能力需要平台化,打造平台化来赋能更多的行业开发者和行业专家进行创新。

三是医疗健康领域,AI 在影像、制药研发、基因计算等均有很好的应用。

另外,教育场景也是 AI 大有可为的场景,核心在于教学的效率和质量显著提升,或者说是实现规模化的个性化教育。

在农业场景上,AI 还可应用在育种、检测、自动化、精准种植、灾害预测等。

在互联网领域,媒体、娱乐、电商等均看到 AI 技术的身影。以上均是较典型的场景,还有很多没有涉及的数字化场景。未来社会是数字社会,人工智能、大数据和云计算等技术将是未来数字经济的关键推动力。

蒋涛:以前是 AI 技术热,现在 AI 应用深入到各行业。开发者有很多机会,那么 AI 时代,开发者如何提高自己的技能呢?

华先胜:人工智能技术是未来的趋势,我希望广大开发者能具备 AI 能力,同时这是我们的目标,希望提供平台化的 AI 能力让广大开发者能快速运用 AI 能力致力于各行各业数字化、智能化,支撑、推动、引领数字经济的发展。

 

Jepsen:分布式系统*早的混沌框架

Jepsen测试框架的工作模式和混沌工程的思想是一脉相承的。Jepsen测试框架可以在分布式系统上注入众多混沌事件,例如引入网络问题、杀死节点和生成随机负载等等,然后通过执行预先定义的测试操作,根据过程记录和结果分析,发现分布式系统(主要是数据库、协调服务和队列)中潜在的一致性问题。

%title插图%num

Jepsen 是什么

根据CAP定理,一致性、可用性和分区容错性,分布式系统只能实现这三个关键属性中的两个。大多数分布式系统不会放弃分区容错性,一致性和可用性的权衡,像数据存储服务则偏向于一致性。

Jepsen致力于提高分布式数据库、队列和共识协调系统等的一致性。Jepsen是由凯尔·金斯伯里(Kyle Kingsbury)采用函数式编程语言Clojure编写的测试框架,用来验证分布式系统的一致性。Jepsen于2015年开源。(https://github.com/jepsen-io/jepsen)

Kyle也是开源分布式监控工具Riemann的创始人,可能大家没有听过Riemann。《监控的艺术》(The Art of Monitoring),这本书投入蛮多篇幅来介绍这款低延迟的监控系统。

Jepsen已被用来测试众多分布式系统,例如MongoDB、ElasticSearch和Zookeeper。

自2013年以来,Jepsen已经分析了二十多个业界知名的数据库、协调服务和队列,发现了副本分叉(replica divergence)、数据丢失(data loss)、过期读取(stale reads)、读偏序(read skew)、锁冲突(lock conflicts)等等多类型的一致性问题。(https://jepsen.io/analyses)

%title插图%num%title插图%num

Clojure 的难度

Jepsen本身基于Clojure开发,想要深入了解该框架的内部实现以及上述业界知名分布式系统的Jespen测试代码,就需要学会Clojure。Clojure是一种基于JVM的函数式编程语言,跟Java可以进行很好的交互。Jepsen的作者Kyle也写过一篇关于Clojure入门相关的文章。(https://aphyr.com/posts/301-clojure-from-the-ground-up-welcome)

很多人听到函数式编程,就开始瑟瑟发抖,其实大可不必,因为对于Jepsen的使用者而言,看得懂,会修改现有的例子,往往都能满足大多数的需求,不过这确实在一定程度上影响了Jepsen在这个领域的应用范围。

这里就不详细介绍Clojure的安装和配置了。

Jepsen 的工作模式

如下图所示,Jepsen运行在控制节点(Control Node)上,测试过程中会启用生成器(Generator)进程、SSH客户端(Client)、克星(Nemesis)进程和检查器(Checker)进程。

%title插图%num

以分布式数据库集群为例,Jepsen的工作大致包含以下几步:

  • Jepsen在控制节点(Control Node)上作为Clojure程序运行;
  • 部署需要测试的分布式数据库集群(Distributed System),确认其工作正常;
  • 控制节点启动进程,作为分布式数据库节点(DB Node)的SSH客户端;
  • 生成器(Generator)进程为每个SSH客户端生成具体要执行的读写操作;
  • 这些SSH客户端将在分布式数据库中执行这些读写操作;
  • 每个操作从启动到结束的过程都会记录下来;
  • 当读写操作进行时,克星进程(Nemesis)对分布式数据库进行故障注入,同样也是由生成器来调度和管理;
  • 测试完成,分布式数据库集群会被销毁。Jepsen使用检查器(Checker)进程对测试过程的历史记录进行分析,并生成*终的图表和报告。

%title插图%num

Jepsen 与混沌工程

采用基于经验和系统的方法解决分布式系统在规模增长时引发的问题, 并以此建立对系统抵御这些事件的能力和信心。在受控实验中观察分布式系统的行为,借此了解系统特性,我们称之为混沌工程。

混沌工程是在分布式系统上进行实验的学科, 目的是建立对系统抵御生产环境中失控条件的能力以及信心。

前面我们了解了Jepsen的工作模式,这和混沌工程的思想是一脉相承的。

Jepsen可以在分布式系统上注入众多混沌事件,例如引入网络问题、杀死节点和生成随机负载等等,然后通过执行预先定义的测试操作,发现分布式系统(主要是数据库、协调服务和队列)中的一致性问题。

详细的Jepsen介绍文档可以参考这里:https://github.com/jepsen-io/jepsen/blob/main/doc/tutorial/index.md

%title插图%num

Hello World 示例

今天,我们先以一个空白场景为例,感受下Jepsen的用法。

在容器中进行Jepsen测试,需要多种类型的容器配合部署:

  • jepsen-control: 控制节点,管理其他节点,创建和销毁,生成测试操作和故障注入场景
  • jepsen-nX: 目标分布式数据库集群(默认是5个节点)
  • jepsen-node: 克星节点,负责故障注入

下面的链接中提供了docker-compose up的方式,快速部署个Jepsen测试环境:https://github.com/jepsen-io/jepsen/tree/main/docker

完成部署之后,要在容器中运行 Jepsen 测试,则需要通过以下命令

$ docker exec-ti jepsen-control bash

进入jepsen-control节点,该容器中已经安装了Java和Clojure运行环境,以及lein(Clojure集成开发工具),然后就创建一个etcd的示例测试项目:

$ lein new jepsen.etcdemoGenerating a project called jepsen.etcdemo based on the 'default'template.Thedefaulttemplateis intended for library projects, not applications.To see other templates (app, plugin, etc), try`lein help new`.$ cd jepsen.etcdemo$ lsCHANGELOG.md  doc/  LICENSE  project.clj  README.md  resources/  src/  test/

像任何新的Clojure项目一样,项目文件夹下包含:

  • 一个空白的变更日志
  • 一个文档目录
  • 一份 Eclipse 公共许可证的副本
  • 一个 project.clj,说明了lein如何构建和运行代码
  • 一个描述文件
  • 一个resources目录,存放数据文件的地方,例如:要测试的数据库的配置文件。
  • 一个src目录,存有源代码
  • 一个test目录,里面是大多数 Clojure 库的测试约定,我们不会在这里使用它。

先对project.clj进行修改,指定项目的依赖项和其他元数据。添加一个:main的命名空间jepsen.etcdemo,这就是我们从命令行运行测试的入口。

除了依赖Clojure语言本身,我们还将引入2个依赖库:JepsenVerschlimmbesserung,后者用于与etcd的交互。

(defproject jepsen.etcdemo "0.1.0-SNAPSHOT":description "A Jepsen test for etcd":license {:name "Eclipse Public License":url "http://www.eclipse.org/legal/epl-v10.html"}:main jepsen.etcdemo:dependencies [[org.clojure/clojure "1.10.0"][jepsen "0.2.1-SNAPSHOT"][verschlimmbesserung "0.1.3"]])

我们来执行下lein run

$ lein runExceptionin thread "main" java.lang.Exception: Cannot find anything to run for: jepsen.etcdemo, compiling:(/tmp/form-init6673004597601163646.clj:1:73)...

回想下,刚添加一个:main的命名空间jepsen.etcdemo,里面现在还没有东西,我们需要在src/jepsen/etcdemo.clj中添加具体的测试操作。

(ns jepsen.etcdemo)(defn -main"Handles command line arguments. Can either run a test, or a web server for  browsing results."[& args](prn "Hello, world!" args))

我们再来执行下lein run

$ lein run hi there"Hello, world!"("hi""there")

可以跑起来了!

让我们使用jepsen.cli命名空间,简称cli,并将我们的main函数转换为Jepsen测试运行程序:

(ns jepsen.etcdemo(:require[jepsen.cli :as cli][jepsen.tests :as tests]))(defn etcd-test"Given an options map from the command line runner (e.g. :nodes, :ssh,:concurrency, ...), constructs a test map."[opts](merge tests/noop-test{:pure-generators true}         opts))(defn -main"Handles command line arguments. Can either run a test, or a web server for  browsing results."[& args](cli/run! (cli/single-test-cmd {:test-fn etcd-test})            args))

cli/single-test-cmdjepsen.cli提供,将会解析命令行参数,并调用:test-fn,该函数会返回一个包含Jepsen测试所需的所有信息映射。在这种情况下,测试函数etcd-test接受命令行参数,这里选择的是空测试,即noop-test

是时候跑一下测试看看了!

$ lein run test13:04:30.927[main] INFO  jepsen.cli - Test options:{:concurrency 5,:test-count 1,:time-limit 60,:nodes ["n1""n2""n3""n4""n5"],:ssh{:username "root",:password "root",:strict-host-key-checking false,:private-key-path nil}}INFO [2018-02-0213:04:30,994] jepsen test runner - jepsen.core Running test:...INFO [2018-02-0213:04:35,389] jepsen nemesis - jepsen.core Starting nemesisINFO [2018-02-0213:04:35,389] jepsen worker 1- jepsen.core Starting worker 1INFO [2018-02-0213:04:35,389] jepsen worker 2- jepsen.core Starting worker 2INFO [2018-02-0213:04:35,389] jepsen worker 0- jepsen.core Starting worker 0INFO [2018-02-0213:04:35,390] jepsen worker 3- jepsen.core Starting worker 3INFO [2018-02-0213:04:35,390] jepsen worker 4- jepsen.core Starting worker 4INFO [2018-02-0213:04:35,391] jepsen nemesis - jepsen.core Running nemesisINFO [2018-02-0213:04:35,391] jepsen worker 1- jepsen.core Running worker 1INFO [2018-02-0213:04:35,391] jepsen worker 2- jepsen.core Running worker 2INFO [2018-02-0213:04:35,391] jepsen worker 0- jepsen.core Running worker 0INFO [2018-02-0213:04:35,391] jepsen worker 3- jepsen.core Running worker 3INFO [2018-02-0213:04:35,391] jepsen worker 4- jepsen.core Running worker 4INFO [2018-02-0213:04:35,391] jepsen nemesis - jepsen.core Stopping nemesisINFO [2018-02-0213:04:35,391] jepsen worker 1- jepsen.core Stopping worker 1INFO [2018-02-0213:04:35,391] jepsen worker 2- jepsen.core Stopping worker 2INFO [2018-02-0213:04:35,391] jepsen worker 0- jepsen.core Stopping worker 0INFO [2018-02-0213:04:35,391] jepsen worker 3- jepsen.core Stopping worker 3INFO [2018-02-0213:04:35,391] jepsen worker 4- jepsen.core Stopping worker 4INFO [2018-02-0213:04:35,397] jepsen test runner - jepsen.core Run complete, writingINFO [2018-02-0213:04:35,434] jepsen test runner - jepsen.core AnalyzingINFO [2018-02-0213:04:35,435] jepsen test runner - jepsen.core Analysis completeINFO [2018-02-0213:04:35,438] jepsen results - jepsen.store Wrote/home/aphyr/jepsen/jepsen.etcdemo/store/noop/20180202T130430.000-0600/results.ednINFO [2018-02-0213:04:35,440] main - jepsen.core {:valid? true}Everything looks good! ヽ(‘ー`)ノ

我们可以看到,Jepsen启动了一系列SSH客户端进程,负责对数据库执行测试操作,还有就是启用了故障注入的克星进程。这里我们并没有执行任何操作,所以立即停止了。此后,Jepsen会将这个测试结果写到store目录中,并打印出一个简短的分析。

$ ls store/latest/history.txt  jepsen.log  results.edn  test.fressian

history.txt显示测试执行的操作,这里应该是空的,因为noop-test不执行任何操作;jepsen.log存有该测试的控制台日志;results.edn包含了对测试的分析;*后,test.fressian助力事后分析的测试原始数据,包括完整的机器可读的历史记录和分析结果。

若此时遇到SSH错误,应检查SSH客户端是否正常运行,并且是否已加载所有节点的密钥。

$ lein run test --help#object[jepsen.cli$test_usage 0x7ddd84b5 jepsen.cli$test_usage@7ddd84b5]-h, --help                                                  Printoutthis message andexit-n, --node HOSTNAME             ["n1""n2""n3""n4""n5"]  Node(s) to run test on--nodes-file FILENAME                                   File containing node hostnames, one per line.--username USER             root                        Usernamefor logins--password PASS             root                        Passwordfor sudo access--strict-host-key-checking                              Whether to check host keys--ssh-private-key FILE                                  Path to an SSH identity file--concurrency NUMBER        1nHow many workers should we run? Must be an integer, optionally followed by n (e.g. 3n) to multiply by the number of nodes.--test-count NUMBER         1How many times should we repeat a test?--time-limit SECONDS        60Excluding setup and teardown, how long should a test run for, in seconds?

*后,我们就可以销毁分布式系统集群的所有节点了。

%title插图%num

结束语

本文我们介绍Jepsen测试框架的来历、基本的工作模式、与混沌工程的关系,也体会了一下Jepsen的Hello World示例。

虽然我们还没有真正选择一个分布式系统,进行实际的测试操作,也没有同时进行故障注入,但至少我们体验了一把Jepsen测试所需要的函数式编程语法。

后面我们会以一个具体的例子来详实地分享,如何使用Jepsen检验分布式系统的一致性问题。

%title插图%num

  1.    更多精彩推荐
  2. 云上数据保护,你以为挡住黑客就够了?在这次采访中,Mendix 披露了低代码方法论
  3. DeVOpS 实战:Kubernetes 微服务监控体系
  4. 还在担心无代码是否威胁程序员饭碗?
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速