关于云计算:JavaCV的摄像头实战之二本地窗口预览

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览前文《JavaCV的摄像头实战之一:根底》曾经为整个系列做好了铺垫,接下来的文章会专一于如何应用来自摄像头的数据,本篇先从最简略的开始:本地窗口预览编码前文创立的<font color="red">simple-grab-push</font>工程中曾经筹备好了父类<font color="blue">AbstractCameraApplication</font>,所以本篇持续应用该工程,创立子类实现那些形象办法即可编码前先回顾父类的根底构造,如下图,粗体是父类定义的各个办法,红色块都是须要子类来实现形象办法,所以接下来,咱们以本地窗口预览为指标实现这三个红色办法即可: 新建文件<font color="blue">PreviewCamera.java</font>,这是AbstractCameraApplication的子类,其代码很简略,接下来按上图程序顺次阐明先定义CanvasFrame类型的成员变量previewCanvas,这是展现视频帧的本地窗口:protected CanvasFrame previewCanvas而后是初始化操作,可见是previewCanvas的实例化和参数设置:@Override protected void initOutput() { previewCanvas = new CanvasFrame("摄像头预览", CanvasFrame.getDefaultGamma() / grabber.getGamma()); previewCanvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); previewCanvas.setAlwaysOnTop(true); }接下来是output办法,定义了拿到每一帧视频数据后做什么事件,这里是在本地窗口显示:@Override protected void output(Frame frame) { // 预览窗口上显示以后帧 previewCanvas.showImage(frame); }最初是解决视频的循环完结后,程序退出前要做的事件,即敞开本地窗口:@Override protected void releaseOutputResource() { if (null!= previewCanvas) { previewCanvas.dispose(); } }至此,用本地窗口预览摄像头的性能已开发实现,再写上main办法,留神参数<font color="red">1000</font>示意预览持续时间是1000秒:public static void main(String[] args) { new PreviewCamera().action(1000); }运行main办法,如下图,摄像头顺利工作,左上角的工夫水印也能失常显示(可见明天深圳的天气不错,应该进来走走,而不是在家写博客...): 至此,咱们已实现了本地窗口预览性能,得益于JavaCV的弱小,整个过程是如此的轻松愉快,接下来请持续关注欣宸原创,《JavaCV的摄像头实战》系列还会出现更多丰盛的利用;源码下载《JavaCV的摄像头实战》的残缺源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blo...):名称链接备注我的项目主页https://github.com/zq2599/blo...该我的项目在GitHub上的主页git仓库地址(https)https://github.com/zq2599/blo...该我的项目源码的仓库地址,https协定git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该我的项目源码的仓库地址,ssh协定这个git我的项目中有多个文件夹,本篇的源码在<font color="blue">javacv-tutorials</font>文件夹下,如下图红框所示: <font color="blue">javacv-tutorials</font>外面有多个子工程,《JavaCV的摄像头实战》系列的代码在<font color="red">simple-grab-push</font>工程下: 你不孤独,欣宸原创一路相伴https://github.com/zq2599/blog_demos

January 24, 2022 · 1 min · jiezi

关于云计算:超详细的ARM架构适配介绍

本文次要介绍云联壹云平台如何适配ARM,并运行在ARM CPU架构的机器上。 背景介绍 1、平台服务运行架构 云联壹云平台采纳容器化,分布式的架构运行在 Kubernetes(K8s)之上。上面是平台服务运行的架构图: 在多个节点之上,咱们会构建Kubernetes的集群 ,它是一个容器治理的平台。 在Kubernetes的平台之上,后端服务都是容器化的,是以容器的形式去分布式运行。 通过K8s去做调度的治理,而后将服务主动地打散到多个节点上运行,总结两点是服务容器化,并依附K8s来提供容器分布式运行的环境。 另外,底层的节点是有类型的,管制层面的服务运行在管制节点,平台内置了一个公有云,提供了残缺的公有云性能。 若要应用私用云这个性能,则还须要一些计算节点,计算节点上会跑虚拟化相干的软件,提供公有云虚拟化的性能,总结来说就是计算节点运行公有云的虚拟机。 2、CPU架构简介 大家相熟的服务器或者台式机都是X86架构的CPU,X86架构的CPU特点是性能高,并且软件的兼容性很好。 大家平时工作中应用的大部分是英特尔等提供的X86架构的CPU,对于英特尔和AMD大家都不生疏,这两家厂商专门生产X86架构CPU。 另外X86 64位这种架构的CPU存在别名,例如x86_64或者amd64都代表X86架构的64位CPU。 与X86不同的是还有另一种称为ARM的架构,这是本文的主题,那么ARM架构的CPU和X86架构的CPU相比有何不同? 它的制作老本更低,ARM架构的芯片的功耗也很低,代表性的厂商和使用者是苹果和华为。 苹果将生产的ARM芯片用到笔记本或IMAC上,ARM架构的CPU越来越遍及。 国内的华为会生产基于ARM架构的服务器,64位ARM架构CPU也有别名,例如arm64、aarch64,这两种叫法表白同一个意思。 3、为什么适配ARM 因为ARM的CPU遍及是大环境下的发展趋势,例如在国内上,苹果将ARM架构的CPU投入到笔记本和台式机上,在国产化方面,国内有鲲鹏和飞腾CPU,国产的基于ARM架构的服务器,当初市场上支流的是鲲鹏和飞腾。 在国产化上,应用ARM架构也是一个趋势。 另外是适配了ARM架构可能晋升产品的竞争力,竞争力体现在可能反对治理基于ARM64位和X86_64架构的虚拟化混合部署。 这种混合部署的意思是能够同时把服务运行在ARM和X86的服务器上,同时运行各自的虚拟化,能够通过咱们平台对立部署和治理。 如何适配ARM64? 1、须要解决的关键问题 第一个方面是怎么把服务运行在64位的ARM架构上? 还有一方面是因为咱们内置了一个公有云,下层的公有云业务如何反对64位的ARM架构? 通过架构图能够理解到服务是容器化运行在K8s之上的,再由K8s帮咱们将服务分布式地运行在各个节点上,所以第一步是要部署异构CPU架构的K8s集群,异构CPU架构的意思是K8s集群要运行在X86和ARM架构的机器上。 具体而言就是要抉择一个反对ARM架构的Linux的发行版。 K8s节点上的操作系统是Linux,首先要抉择反对ARM架构的Linux操作系统,操作系统同时可能装置K8s必要的软件(比方docker-ce、kubelet等) 当咱们把K8s集群给部署起来之后,就要将不同架构的容器镜像对立制作进去。 对立容器镜像的意思是一个容器镜像中要蕴含X86和ARM架构,相当于同一个镜像名称中有两种架构的镜像。 第二个大的方面是下层公有云业务怎么反对ARM64。 次要是分为两个问题,第一个问题是要反对ARM的虚拟机镜像,同时下层的公有云业务可能标记宿主机,宿主机就是运行虚拟机的服务器。 要可能标记这种宿主机是什么架构,同时要在这个宿主机上运行ARM的虚拟化软件。 平台应用的虚拟化软件基于qemu/kvm,网络方面依赖openvswitch组件,要求这些组件也要可能在ARM架构上运行。 这就是要介绍的一些关键问题,解决好这些关键问题,不论是底层的业务还是下层的公有云业务,都能在ARM上运行。 2、Linux发行版抉择 咱们抉择的发行版是Debian 10(开源)和统信UOS(国产零碎)。 抉择这两个发行版的第一个起因是客户业务上要求在ARM64服务器上运行“统信UOS”。 要适配的话也是首先适配国产统信UOS,在适配过程中,UOS中的内核和打包工具与Debian基本一致。 适配UOS之后,发现其工作基本相同,所以又抉择了Debian 10(开源)进行适配。 如此无论是对于开源用户还是其余客户,如果不抉择UOS,也能够抉择Debian 10的发型版运行此平台,Debian系列对ARM64位的反对很好, Debian发行版的官网软件仓库中曾经制作好了很多ARM64的包,如果要装置docker和K8s的软件包,Debian中曾经做好,间接下载安装即可。 为什么不在ARM架构下面再抉择CentOS7发行版? 起因在于CentOS7官网行将进行保护,所以抉择了Debian系列的发行版。 3、统信UOS适配认证 对统信UOS适配过后,通过其官网测试,为咱们颁发了认证证书。 4、对立软件依赖—包管理工具 抉择好发行版后?怎么对立装置这些软件? 咱们可能应用不同发行版的包管理工具去装置雷同的软件,例如在X86的CentOS上装置docker和K8s这些包时调用yum,在Debian上调用apt install 等同样的包名即可。 上游的软件仓库中曾经把包做好,只需间接装置,软件间接下载即可应用。 在底层软件方面,ARM和X86的治理,只有发行版是支流的,验证Debian和X86的包没有区别,曾经将底层的包装置部署好。 5、部署kubernetes集群 另外一个话题是部署kubernetes集群,如何在ARM上部署K8s集群? ...

January 21, 2022 · 1 min · jiezi

关于云计算:使用-GitLab-账号登陆-KubeSphere

作者:李帅介绍KubeSphere 多租户是理论生产应用中十分须要的一个性能,该性能满足不同用户登陆 KubeSphere 平台的需要。比方开发,运维,测试都须要登陆 KubeSphere 平台,并且须要为不同身份的用户配置不同的权限。当公司内须要拜访 KubeSphere 的用户比拟多时,管理员再去手动为用户创立账号就不太灵便了。KubeSphere 蕴含一个内置的 OAuth 服务和帐户零碎,用户通过获取 OAuth 拜访令牌以对 API 进行身份验证,咱们能够通过接入 LDAP 或者 OIDC 来提供身份认证信息。 多租户计划 认证鉴权链路 应用假如集群内曾经最小化装置 KubeSphere。咱们这里应用 OIDC 身份提供者进行认证,通过 Dex 接入到 GitLab 中,应用 GitLab 中的用户实现认证。 装置 DexDex 是一种身份认证服务,它应用 OpenID Connect 来驱动其余应用程序的身份验证。Dex 通过 “connectors” 充当其余身份提供商的门户。 Dex 能够将身份验证推到 LDAP 服务器、SAML 提供商或已建设的身份提供商(如 GitHub、Gitlab、Google 和 Active Directory等)。 客户端编写身份验证逻辑以与 Dex 交互认证,而后 Dex 通过 connector 转发到后端用户认证方进行认证,并返回给客户端 Oauth2 Token。与其类似的身份认证服务还有 Keycloak,auth0 等。 首先须要在 gitlab 上创立利用,在范畴里勾选这几个 read_user profile email openid,创立后须要记住页面上的应用程序 id 和明码,前面会用失去。 ...

January 21, 2022 · 4 min · jiezi

关于云计算:阿里云何万青南坡VS北坡阿里云高性能计算行业实践

简介:北坡模式:借助于云上大计算性能冲破来提供HPC服务,切入的重点更加聚焦于云服务。 随着数字化转型的深刻,行业利用对算力提出更高要求。为满足不同行业灵便的业务状态与计算需要,以云计算技术为服务模式翻新的技术手段,以高性能计算服务为外围的高性能计算云(HPC Cloud)受到业界的宽泛关注。 为了进一步凝聚产业共识,推动高性能计算云产业倒退,2021年12月21日,计算网交融产业及规范推动委员会联结超级计算翻新联盟,召开首届高性能计算云(HPC Cloud)产业倒退论坛,邀请了学术界与产业界专家,以 “云化超算,智启将来”为主题,从技术钻研、利用部署、实际倒退等多个方面进行精彩演讲。 在本次论坛上,来自阿里云的高性能计算负责人何万青发表了《南坡VS北坡,阿里云高性能计算HPC-as-a-Service行业实际》的主题演讲。 01 阿里云高性能计算的倒退超算通过互联网的形式去部署和交付曾经成为趋势。何万青示意阿里云的高性能计算曾经倒退了四到五年,目前部署在很多工业和行业计算的相干垂直业务,比方汽车仿真、影视前期渲染、AI生物制药、气象业务等畛域。 基于过来十多年在线下HPC的技术察看,谈到传统超算零碎转型高性能计算云的趋势,何万青将线下超算转型云服务和云服务提供高性能计算产品和服务两种模式,比喻为从南坡和北坡不同线路攀登HPC-as-a-Service高峰。在北坡,云公司借助于云上大计算性能冲破来提供HPC服务,切入的重点更加聚焦于云服务:单机SLA和大规模稳定性、快捷、弹性、多种云产品和服务的疾速组合及SaaS服务,超过以提供“核时”和“算力”为外围的模式,强调整体科研业务上云。 2020年是高性能计算在稳定性、弹性以及计费敏感性方向倒退最快的一年,很多重大工作在阿里云曾经能够大规模的部署,阿里云在去IOE的过程中,能够使超70%硬件故障无感打消,在公共云大计算产品端,云超算SCC第七代实例规格全新上线。 在神龙计算平台上,它的劣势包含虚拟化网络高效卸载,物理网络、存储和计算齐全解耦,防止资源争抢。神龙eRDMA性能2021年也正式上线,实现CPU实例和GPU实例并池和混合部署,极大扩大CPU和GPU实例集群范畴。从POD扩大到可用区、数据中心,平台反对更大规模的弹性伸缩,同时反对VPC网络、eRDMA网络、存储网络三网合一。在数值天气预报中,eRDMA会极大晋升利用规模和并行效率。 02 阿里云高性能计算Cloud Stack何万青示意,基于以上的底层架构,阿里云高性能计算统称为“神龙云超算”,在其上部署面向公共云和混合云的E-HPC云软件栈,它是基于神龙服务器+RDMA网络+并行文件系统开发的PssS层服务。其中,调度器和弹性伸缩、热迁徙等功能够从底层对客户通明实现。在ISV层,服务是通过工作流的形式提供,数据搬移不仅是物理形式,而是通过高速网络,一次性的上载来实现工作交付。在跨数据中心的计算集群上,实现三网合一,现有调度器齐全实现对跨可用区计算节点的调度,将不同的任务分配给不同的实例。在不同的队列调度上方面,寰球只有阿里云可能在运行过程中实现队列绑定不同的实例。 03阿里云高性能计算利用计划 何万青介绍了将抢占式实例与断点续算联合,用户只须要破费比传统形式很少的老本,便能够按需失去所需资源。在混合云技术方面,通过混合云异步文件存储的形式,能够实现在线上、线下同时进行数据拉取与计算,在影视渲染场景中,曾经失去宽泛应用。 E-HPC商业License计划中,可通过阿里云高速通道买通云上云下网络。其中,E-HPC主动部署云上计算资源,并为其配置好License服务或License代理节点,云下License服务器通过VPN连贯License代理节点,E-HPC服务负责License Manager部署、License发放和应用监控。 原文链接本文为阿里云原创内容,未经容许不得转载。

January 21, 2022 · 1 min · jiezi

关于云计算:焱融科技年度报告如约而至如-Beijing-初雪

January 21, 2022 · 0 min · jiezi

关于云计算:云钉一体加速阿里云计算巢与钉钉深度融合共建应用新生态

简介:云合打算再降级,“云钉一体”策略按下减速键. 1月13日,阿里云发表云合打算再降级,计算巢与钉钉深度交融互通,实现一键上云、一键上钉钉,助力软件厂商更快地实现技术升级,更好地专一于本身的产品翻新和客户服务,为“云钉一体”策略按下减速键。 【图:云钉一体阿里云计算巢整合策略发布会】 阿里巴巴团体副总裁、阿里云销售治理与生态发展部总经理郭继军在阿里云计算巢整合策略发布会上示意,在“云钉一体”的大策略之下,阿里云将更进一步尝试通过钉钉作为客户服务的界面,为生态搭档提供更深刻的全链路单干,实现产销付一体,发明新一轮的高速倒退。“在过来的一年,通过云合打算,协同搭档拥抱阿里云当先的技术能力,体系化地帮忙搭档进行产品和解决方案级别的深度交融。将来,咱们更心愿通过单方的深度交融,持续同路前行,诞生新的产业结构和经营模式。” 【图:阿里云销售治理与生态发展部总经理郭继军】 钉钉总裁叶军示意:“钉钉与阿里云计算巢的单干是‘云钉一体’策略落地的重要一步。一方面,阿里云计算巢能够帮忙软件厂商疾速实现云化,钉钉将则以规模劣势帮忙他们更好地拓展云上客户;另一方面,云钉+软件厂商的形式将来将能够打造更为垂直的行业上云解决方案,为终端客户提供更好抉择。” 【图:钉钉总裁叶军】 阿里巴巴团体研究员、阿里云弹性计算产品线负责人张献涛示意:“为了让合作伙伴更深刻地享受云计算的技术红利,阿里云‘计算巢’平台通过凋谢阿里云IaaS层能力能够帮忙软件厂商更快地实现企业应用云化降级,而钉钉是阿里云与企业用户沟通的窗口,也是搭档开辟云上客户的最佳助力,此次阿里云计算巢与钉钉的交融将为软件厂商提供赋能,与搭档一起共建利用生态,独特服务好客户。” 【图:阿里巴巴团体研究员 阿里云弹性计算产品线负责人张献涛】 阿里云计算巢,实质上是为企业应用提供云原生减速引擎、放慢利用云化。张献涛示意,阿里云计算巢就像是“企业应用云化的4S店”,解决软件企业在云化过程中遇到的稳定性(Stability)、平安(Security)、规模化(Scale)和销售(Sale)问题。 【图:阿里巴巴团体副总裁、高级研究员 阿里云智能数据库产品事业部总经理李飞飞】 而整合在计算巢弱小技术能力之下的,不仅仅只有计算力,阿里巴巴团体副总裁、高级研究员、阿里云智能数据库产品事业部总经理李飞飞也在会上表白了他的信念,在“云钉一体”的策略之下,阿里云数据库也会通过钉钉作为搭档客户的业务载体,与计算巢一起为生态搭档提供业务数据的一站式全链路管理与服务,减速向云原生演进,助力客户发明更大的价值。强强联合,这无疑是对生态信念的另一次加码。 本次降级后,软件厂商无需在钉钉云与阿里云上别离构建产品,即可服务客户,真正实现了单方产品与能力的交融。软件厂商实现阿里云计算巢平台的接入后,即可一键上架到钉钉利用核心。能够说,阿里云计算巢平台解决了平安、利用部署与运维、稳定性等问题, 与钉钉造成合力,帮忙软件厂商大幅升高经营老本,让其能够关注在产品的打磨与客户服务上。 畅捷通信息技术有限公司总裁杨雨春、珍岛团体创始人兼CEO赵绪龙等ISV合作伙伴代表缺席了发布会,独特见证了公布典礼。作为“云合打算”的年度优良搭档,数云分享了与计算巢的单干成绩,借助阿里云计算巢服务,数云实现了上架服务配置的模板化、部署操作自动化和云上交付标准化,解决了以往在向客户交付过程中的沟通效率低、操作易出错等问题,晋升了交付效率,也保障了交付过程中的安全性和部署过程的可控性。 i人事CTO王景飞分享了通过阿里云计算巢平台上架钉钉利用核心的最佳实际,并示意:“计算巢代表了一种理念,提供了一系列的运维计划和最佳实际。有了计算巢的助力,i人事能够在保障客户数据保密性、可用性和完整性的根底上,将钉钉云与阿里云合并对立。计算巢与钉钉的交融,升高了因为集群隔离造成的运维、研发和测试的老本,大大提高了集群保护效率。” 【图:i人事CTO王景飞】 以后,畅捷通、数云、i人事和新开普等数十家ISV合作伙伴已率先通过阿里云计算巢平台上架钉钉利用核心,大幅缩短了利用的部署周期,实现云上一键交付,进一步拓展云上客户。将来,阿里云与钉钉将进一步加大“云钉一体”能力的整合与凋谢力度,放慢与生态搭档的产品交融,与ISV合作伙伴共建利用新生态。 原文链接本文为阿里云原创内容,未经容许不得转载。

January 21, 2022 · 1 min · jiezi

关于云计算:JavaCV的摄像头实战之一基础

欢送拜访我的GitHub这里分类和汇总了欣宸的全副原创(含配套源码):https://github.com/zq2599/blog_demos对于《JavaCV的摄像头实战》系列《JavaCV的摄像头实战》顾名思义,是应用JavaCV框架对摄像头进行各种解决的实战汇合,这是欣宸作为一名Java程序员,在计算机视觉(computer vision)畛域的一个原创系列,通过间断的编码实战,与您一起学习把握视频、音频、图片等资源的各种操作另外要阐明的是,整个系列应用的摄像头是USB摄像图或者笔记本的内置摄像头,<font color="red">并非基于网络拜访的智能摄像头</font> 本篇概览作为整个系列的开篇,本文十分重要,从环境到代码的方方面面,都会为后续文章打好根底,简略来说本篇由以下内容形成:环境和版本信息根本套路剖析根本框架编码部署媒体服务器接下来就从环境和版本信息开始吧环境和版本信息当初就把实战波及的软硬件环境交代分明,您能够用来参考:操作系统:win10JDK:1.8.0_291maven:3.8.1IDEA:2021.2.2(Ultimate Edition)JavaCV:1.5.6媒体服务器:基于dockek部署的nginx-rtmp,镜像是:<font color="blue">alfg/nginx-rtmp:v1.3.1</font>源码下载《JavaCV的摄像头实战》的残缺源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blo...):名称链接备注我的项目主页https://github.com/zq2599/blo...该我的项目在GitHub上的主页git仓库地址(https)https://github.com/zq2599/blo...该我的项目源码的仓库地址,https协定git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该我的项目源码的仓库地址,ssh协定这个git我的项目中有多个文件夹,本篇的源码在<font color="blue">javacv-tutorials</font>文件夹下,如下图红框所示: <font color="blue">javacv-tutorials</font>外面有多个子工程,《JavaCV的摄像头实战》系列的代码在<font color="red">simple-grab-push</font>工程下: 根本套路剖析全系列有多个基于摄像头的实战,例如窗口预览、把视频保留为文件、把视频推送到媒体服务器等,其根本套路是大致相同的,用最简略的流程图示意如下: 从上图可见,整个流程就是不停的从摄像头取帧,而后解决和输入根本框架编码看过了下面根本套路,聪慧的您可能会有这样的想法:既然套路是固定的,那代码也能够按套路固定下来吧没错,接下来就思考如何把代码依照<font color="blue">套路</font>固定下来,我的思路是开发名为<font color="red">AbstractCameraApplication</font>的抽象类,作为《JavaCV的摄像头实战》系列每个利用的父类,它负责搭建整个初始化、取帧、解决、输入的流程,它的子类则专一帧数据的具体解决和输入,整个体系的UML图如下所示: 接下来就该开发抽象类<font color="red">AbstractCameraApplication.java</font>了,编码前先设计,下图是AbstractCameraApplication的次要办法和执行流程,粗体全副是办法名,红色块代表留给子类实现的形象办法: 接下来是创立工程,我这里创立的是maven工程,pom.xml如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>javacv-tutorials</artifactId> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> <artifactId>simple-grab-push</artifactId> <packaging>jar</packaging> <properties> <!-- javacpp以后版本 --> <javacpp.version>1.5.6</javacpp.version> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.13.3</version> </dependency> <!-- javacv相干依赖,一个就够了 --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>${javacpp.version}</version> </dependency> </dependencies></project>接下来就是<font color="red">AbstractCameraApplication.java</font>的残缺代码,这些代码的流程和办法命名都与上图保持一致,并且增加了具体的正文,有几处要留神的中央稍后会提到:package com.bolingcavalry.grabpush.camera;import lombok.Getter;import lombok.extern.slf4j.Slf4j;import org.bytedeco.ffmpeg.global.avutil;import org.bytedeco.javacv.*;import org.bytedeco.opencv.global.opencv_imgproc;import org.bytedeco.opencv.opencv_core.Mat;import org.bytedeco.opencv.opencv_core.Scalar;import java.text.SimpleDateFormat;import java.util.Date;/** * @author will * @email zq2599@gmail.com * @date 2021/11/19 8:07 上午 * @description 摄像头利用的根底类,这外面定义了拉流和推流的根本流程,子类只需实现具体的业务办法即可 */@Slf4jpublic abstract class AbstractCameraApplication { /** * 摄像头序号,如果只有一个摄像头,那就是0 */ protected static final int CAMERA_INDEX = 0; /** * 帧抓取器 */ protected FrameGrabber grabber; /** * 输入帧率 */ @Getter private final double frameRate = 30; /** * 摄像头视频的宽 */ @Getter private final int cameraImageWidth = 1280; /** * 摄像头视频的高 */ @Getter private final int cameraImageHeight = 720; /** * 转换器 */ private final OpenCVFrameConverter.ToIplImage openCVConverter = new OpenCVFrameConverter.ToIplImage(); /** * 实例化、初始化输入操作相干的资源 */ protected abstract void initOutput() throws Exception; /** * 输入 */ protected abstract void output(Frame frame) throws Exception; /** * 开释输入操作相干的资源 */ protected abstract void releaseOutputResource() throws Exception; /** * 两帧之间的间隔时间 * @return */ protected int getInterval() { // 假如一秒钟15帧,那么两帧距离就是(1000/15)毫秒 return (int)(1000/ frameRate); } /** * 实例化帧抓取器,默认OpenCVFrameGrabber对象, * 子类可按须要自行笼罩 * @throws FFmpegFrameGrabber.Exception */ protected void instanceGrabber() throws FrameGrabber.Exception { grabber = new OpenCVFrameGrabber(CAMERA_INDEX); } /** * 用帧抓取器抓取一帧,默认调用grab()办法, * 子类能够按需要自行笼罩 * @return */ protected Frame grabFrame() throws FrameGrabber.Exception { return grabber.grab(); } /** * 初始化帧抓取器 * @throws Exception */ protected void initGrabber() throws Exception { // 实例化帧抓取器 instanceGrabber(); // 摄像头有可能有多个分辨率,这里指定 // 能够指定宽高,也能够不指定反而调用grabber.getImageWidth去获取, grabber.setImageWidth(cameraImageWidth); grabber.setImageHeight(cameraImageHeight); // 开启抓取器 grabber.start(); } /** * 预览和输入 * @param grabSeconds 继续时长 * @throws Exception */ private void grabAndOutput(int grabSeconds) throws Exception { // 增加水印时用到的工夫工具 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long endTime = System.currentTimeMillis() + 1000L *grabSeconds; // 两帧输入之间的间隔时间,默认是1000除以帧率,子类可酌情批改 int interVal = getInterval(); // 水印在图片上的地位 org.bytedeco.opencv.opencv_core.Point point = new org.bytedeco.opencv.opencv_core.Point(15, 35); Frame captureFrame; Mat mat; // 超过指定工夫就完结循环 while (System.currentTimeMillis()<endTime) { // 取一帧 captureFrame = grabFrame(); if (null==captureFrame) { log.error("帧对象为空"); break; } // 将帧对象转为mat对象 mat = openCVConverter.convertToMat(captureFrame); // 在图片上增加水印,水印内容是以后工夫,地位是左上角 opencv_imgproc.putText(mat, simpleDateFormat.format(new Date()), point, opencv_imgproc.CV_FONT_VECTOR0, 0.8, new Scalar(0, 200, 255, 0), 1, 0, false); // 子类输入 output(openCVConverter.convert(mat)); // 适当距离,让肉感感触不到闪屏即可 if(interVal>0) { Thread.sleep(interVal); } } log.info("输入完结"); } /** * 开释所有资源 */ private void safeRelease() { try { // 子类须要开释的资源 releaseOutputResource(); } catch (Exception exception) { log.error("do releaseOutputResource error", exception); } if (null!=grabber) { try { grabber.close(); } catch (Exception exception) { log.error("close grabber error", exception); } } } /** * 整合了所有初始化操作 * @throws Exception */ private void init() throws Exception { long startTime = System.currentTimeMillis(); // 设置ffmepg日志级别 avutil.av_log_set_level(avutil.AV_LOG_INFO); FFmpegLogCallback.set(); // 实例化、初始化帧抓取器 initGrabber(); // 实例化、初始化输入操作相干的资源, // 具体怎么输入由子类决定,例如窗口预览、存视频文件等 initOutput(); log.info("初始化实现,耗时[{}]毫秒,帧率[{}],图像宽度[{}],图像高度[{}]", System.currentTimeMillis()-startTime, frameRate, cameraImageWidth, cameraImageHeight); } /** * 执行抓取和输入的操作 */ public void action(int grabSeconds) { try { // 初始化操作 init(); // 继续拉取和推送 grabAndOutput(grabSeconds); } catch (Exception exception) { log.error("execute action error", exception); } finally { // 无论如何都要开释资源 safeRelease(); } }}上述代码有以下几处要留神:负责从摄像头取数据的是OpenCVFrameGrabber对象,即帧抓取器initGrabber办法中,通过setImageWidth和setImageHeight办法为帧抓取器设置图像的宽和高,其实也能够不必设置宽高,由帧抓取器主动适配,然而思考到有些摄像头反对多种分辨率,所以还是依照本人的理论状况来被动设置grabAndOutput办法中,应用了while循环来一直地取帧、解决、输入,这个while循环的完结条件是指定时长,这样的完结条件可能满足不了您的须要,请依照您的理论状况自行调整(例如检测某个按键是否按下)grabAndOutput办法中,将取到的帧转为Mat对象,而后在Mat对象上增加文字,内容是以后工夫,再将Mat对象转为帧对象,将此帧对象传给子类的<font color="blue">output</font>办法,如此一来,子类做解决和输入的时候,拿到的帧都有了工夫水印至此,父类曾经实现,接下来的实战,咱们只有专一用子类解决和输入帧数据即可部署媒体服务器《JavaCV的摄像头实战》系列的一些实战波及到推流和近程播放,这就要用到流媒体服务器了,流媒体服务器的作用如下图,咱们也在这一篇提前部署好: ...

January 21, 2022 · 3 min · jiezi

关于云计算:企业面临的11个常见云迁移挑战及解决方案

云计算是近年来最大的数字化转型之一。寰球云计算市场规模预计将从 2018 年的 2720 亿美元增长到 2023 年的 6230 亿美元,在预测期内复合年增长率 (CAGR) 为 18%。 即便增长如此之快,许多企业仍未充分发挥云的后劲,因为迁徙依然是一项重大挑战。云老本、数据安全和外部改革阻力的不确定性都是次要问题。 本文将介绍企业如何克服在过渡到云环境时面临的次要云迁徙挑战。 以下是企业面临的常见云迁徙挑战和可能的解决方案。 1、云环境采纳阻力 当谈到常见的云迁徙挑战时,通常人是最大的挑战。企业员工偏向于抵制变动,而云迁徙会随着新零碎、流程和领导带来很多变动和对既往规定的毁坏。 不思考迁徙到云的人为因素只会导致企业采纳云计算的打算难以执行胜利。 解决方案:企业中的高层领导在推动云采纳和进步员工敬业度方面施展着重要作用。因而,云计算采纳打算从一开始就须要强有力的高管反对。 须要确保领导层理解业务需要以及上云的指标。让他们将业务案例传播给组织中的员工。当员工理解为什么要施行变更时,他们才更有可能反对它。 此外,在为应用程序抉择云解决方案时,应优先思考集成和可用性。领有一个易于应用和了解的工具将减少员工保持应用它的可能性。 最重要的是,能够与以后的技术堆栈一起应用的应用程序对用户更具吸引力,因为它们能够轻松地将新工具无缝插入到用户的工作流程中。集成进一步简化工作并提高效率。 2、云迁徙过程的老本不确定 随着工夫的推移,云迁徙能够通过进步生产力、缩小管理费用和简化工作流程来降低成本。然而,实现这一点却十分复杂。 迁徙到云端是一项代价昂扬的工作,尤其是当公司未能当时预计财务影响时。因为数据迁徙老本、兼容性问题、新技能需要、不足数据恢复打算,甚至是谬误的迁徙策略等问题,迁徙费用依然是企业领导者面临的重大问题之一。 解决方案:防止不必要的云迁徙老本的最好办法是做好短缺筹备。在提交迁徙打算之前,须要与云服务提供商一起制订与迁徙相干的费用。 云迁徙的计划成本应包含云平台基础设施老本、迁徙老本、迟缓采纳带来的财务危险,以及迁徙后所需的根本培训。因而,在施行云迁徙之前要做好充沛打算,预测好总体老本并实现流程优化。 3、技能差距:雇佣云人才与晋升本地工程师技能 云迁徙须要降级现有团队的技能,尤其是当业务仍在遗留零碎上运行时。员工不足技能是一个要害的云迁徙挑战,许多企业要花费大量资金来培训他们的员工。 解决方案:企业既须要雇用新员工来帮忙实现迁徙过程,也须要晋升现有团队的技能。而且须要帮忙他们理解云设计和架构(如配置、云部署和主动扩大)的影响。 企业须要依据上云的状况制订云策略,并制订激励措施帮忙团队参加云迁徙的学习,以放慢整个过程。 4、利用生态系统常识缺口 每个应用程序都是生态系统的一部分。因为须要迁徙不同的应用程序,企业须要跟踪并理解生态系统的连贯。因而,发现工具是必不可少的。 解决方案:为发现工具调配工夫。Cloudamize、RISC Networks 和其余基于代理或无代理的工具能够连贯用户现有的服务器。这些工具还能够连贯 15-30 天的数据、调整云服务器的大小、绘制架构图并告知 IOPS 要求。它们还能够显示处于活动状态的可执行文件。 如果没有这些工具,则企业须要更长、更低廉的手动过程来剖析业务要害型应用程序构造和依赖关系。发现工具将帮忙节省时间并实现真正的需要。 5、没有牢靠的云迁徙打算 没有打算很容易造成失败。将要害业务基础设施和资产迁徙到云端须要适当的布局。然而,大多数企业在没有适当思考的状况下就开始了这一过程。 应用程序现代化和重构、晋升和转移模型以及从新平台化办法在云迁徙过程中施展着至关重要的作用。它们在企业的过渡过程中不可或缺。如果企业须要一种实用于业务要害型专有应用程序的办法,那么晋升和转移办法尽管最快且最具破坏性,但可能并不适宜。 解决方案:从制订具体的云迁徙策略开始,企业应该彻底剖析业务指标和以后资产,以便抉择适当的策略和须要集成的点。 通过三思而行的策略将使企业可能实现过渡,并防止在前期阶段呈现剖析瘫痪的状况。将所有须要挪动的应用程序、数据和解决老本以及与停机工夫相干的老本思考在内。 同时,企业须要筹备好在迁徙胜利施行后调整或重建要害的云零碎。应该在路线图和迁徙策略中突出显示这些重要零碎,并将整个策略划分为不同的步骤,以简化过渡。 6、在云迁徙策略中防止供应商锁定 一旦企业抉择了云提供商,如果呈现问题,切换云供应商可能既耗时又老本高,这已被证实是次要的云迁徙挑战之一。 解决方案:认真钻研潜在的云供应商。具体理解他们的网站,查看举荐,仔细阅读用例和服务条款。大多数云供应商都应用相似的外围经营策略,但它们都提供一些独特的服务。 以下是一些缩小供应商锁定的办法: 确保企业本身的数据是可移植的,防止应用专有格局,并通过利用相干打算规范来亲密阐明数据模型,以确保文件对人和计算机都清晰易读。在与供应商之间的合同中退出退出策略,以及施行该打算相干的可能老本。使本人的软件更便携。这将简化提供商之间的切换,并升高与专有格局锁定相干的危险。即便当初领有令人满意的云供应商,企业也不能放弃备份打算,而是应该保留其余服务提供商的名称和详细信息,以防呈现须要疾速切换的状况。 7、解决混合网络设置 应用混合网络配置时,最重要的是对安全性和网络的思考。 企业须要向网络事件响应团队理解无关间接迁徙的护栏或规定。并将平安团队与他们的设计和预测联合起来,赋予他们工夫和迁徙相干的决策能力,这一点至关重要。 解决方案:咱们通常通过定义他们的最小可行云的流动来领导客户,帮忙他们理解平安框架、自动化框架、经营框架、网络架构和外围账户构造。 而在平安框架级别,须要施行身份和拜访治理。定义拜访模式。理解各种拜访模式以及它们相干的威逼向量。 而后,要解决的另一件事是网络布局。如果企业从本地迁徙并且曾经领有现有的网络环境,这一点很重要,须要将该本地与以后云环境同步,并增强安全措施。 8、数据安全与合规危险 就云迁徙而言,数据安全问题和合规危险依然是重大阻碍。只管云环境平安,但大多数企业都胆怯将秘密数据交给第三方平安供应商。依据相干云平安情况报告,56% 的受访者十分放心安全性是次要的云迁徙挑战之一。 解决方案:云平台的构建思考了安全性,云供应商领有行业顶级的平安零碎来建设一个整体的云环境。平安的云迁徙可确保公司的数据通过首选的可路由门路传递,并且数据在防火墙中始终是平安的。此过程可确保在迁徙过程中对第三方暗藏公有数据。它还能够保障合规性和打消数据偷盗等危险。 9、云迁徙之上的 DevOps 转型 没有治理平安云环境的经营教训的公司如何爱护本人? ...

January 20, 2022 · 1 min · jiezi

关于云计算:KubeSphere-后端源码深度解析

这篇文章咱们将学习在 vscode 上的 ssh remote 插件根底上,尝试 debug 和学习 KubeSphere 后端模块架构。 前提装置好 vscode 以及 ssh remote container 插件;在近程主机上安装好 kubenertes 容器 " 操作系统 " 和 KubeSphere >= v3.1.0 云“控制面板”;装置 go >=1.16;在 KubeSphere 上装置了须要 debug 的 ks 组件,如 devops、kubeedge 或者 whatever, 如果是默认激活的组件,像 monitoring,不须要去激活。配置 launch 文件$ cat .vscode/launch.json{ // 应用 IntelliSense 理解相干属性。 // 悬停以查看现有属性的形容。 // 欲了解更多信息,请拜访: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "ks-apiserver", "type": "go", "request": "launch", "mode": "auto", "program": "${workspaceFolder}/cmd/ks-apiserver/apiserver.go" } ]}ks-apiserver 调试依赖文件在相对路径 cmd/ks-apiserver/ 下配置 kubesphere.yaml。 ...

January 20, 2022 · 9 min · jiezi

关于云计算:JavaCV推流实战MP4文件

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 欢送拜访我的GitHub这里分类和汇总了欣宸的全副原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本人的mp4文件,如何让更多的人近程播放?如下图所示: 这里简略解释一下上图的性能:部署开源流媒体服务器<font color="blue">SRS</font>开发名为<font color="blue">PushMp4</font>的java利用,该利用会读取本机磁盘上的Mp4文件,读取每一帧,推送到SRS上每个想看视频的人,就在本人电脑上用流媒体播放软件(例如VLC)连贯SRS,播放PushMp4推上来的视频明天咱们就来实现上图中的实战,整个过程分为以下步骤:环境信息筹备MP4文件用docker部署SRSjava利用开发和运行VLC播放环境信息本次实战,我这边波及的环境信息如下,供您参考:操作系统:macOS MontereyJDK:1.8.0_211JavaCV:1.5.6SRS:3筹备MP4文件筹备一个一般的MP4视频文件即可,我是在线下载了视频开发罕用的大熊兔视频,地址是:https://www.learningcontainer...用docker部署SRSSRS是驰名的开源的媒体服务器,推到这里的流,都能够用媒体播放器在线播放,为了简略起见,我在docker环境下一行命令实现部署: docker run -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:3此刻SRS服务正在运行中,能够推流上去了开发JavaCV利用接下来进入最重要的编码阶段,新建名为<font color="blue">simple-grab-push</font>的maven工程,pom.xml如下(那个名为<font color="blue">javacv-tutorials</font>的父工程其实没有什么作用,我这里只是为了方便管理多个工程的代码而已,您能够删除这个父工程节点):<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>javacv-tutorials</artifactId> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> <artifactId>simple-grab-push</artifactId> <packaging>jar</packaging> <properties> <!-- javacpp以后版本 --> <javacpp.version>1.5.6</javacpp.version> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.13.3</version> </dependency> <!-- javacv相干依赖,一个就够了 --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>${javacpp.version}</version> </dependency> </dependencies></project>从上述文件可见,JavaCV的依赖只有一个<font color="blue">javacv-platform</font>,挺简洁接下来开始编码,在编码前,先把整个流程画进去,这样写代码就清晰多了: 从上图可见流程很简略,这里将所有代码写在一个java类中:package com.bolingcavalry.grabpush;import lombok.extern.slf4j.Slf4j;import org.bytedeco.ffmpeg.avcodec.AVCodecParameters;import org.bytedeco.ffmpeg.avformat.AVFormatContext;import org.bytedeco.ffmpeg.avformat.AVStream;import org.bytedeco.ffmpeg.global.avcodec;import org.bytedeco.ffmpeg.global.avutil;import org.bytedeco.javacv.FFmpegFrameGrabber;import org.bytedeco.javacv.FFmpegFrameRecorder;import org.bytedeco.javacv.FFmpegLogCallback;import org.bytedeco.javacv.Frame;/** * @author willzhao * @version 1.0 * @description 读取指定的mp4文件,推送到SRS服务器 * @date 2021/11/19 8:49 */@Slf4jpublic class PushMp4 { /** * 本地MP4文件的残缺门路(两分零五秒的视频) */ private static final String MP4_FILE_PATH = "/Users/zhaoqin/temp/202111/20/sample-mp4-file.mp4"; /** * SRS的推流地址 */ private static final String SRS_PUSH_ADDRESS = "rtmp://192.168.50.43:11935/live/livestream"; /** * 读取指定的mp4文件,推送到SRS服务器 * @param sourceFilePath 视频文件的绝对路径 * @param PUSH_ADDRESS 推流地址 * @throws Exception */ private static void grabAndPush(String sourceFilePath, String PUSH_ADDRESS) throws Exception { // ffmepg日志级别 avutil.av_log_set_level(avutil.AV_LOG_ERROR); FFmpegLogCallback.set(); // 实例化帧抓取器对象,将文件门路传入 FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(MP4_FILE_PATH); long startTime = System.currentTimeMillis(); log.info("开始初始化帧抓取器"); // 初始化帧抓取器,例如数据结构(工夫戳、编码器上下文、帧对象等), // 如果入参等于true,还会调用avformat_find_stream_info办法获取流的信息,放入AVFormatContext类型的成员变量oc中 grabber.start(true); log.info("帧抓取器初始化实现,耗时[{}]毫秒", System.currentTimeMillis()-startTime); // grabber.start办法中,初始化的解码器信息存在放在grabber的成员变量oc中 AVFormatContext avFormatContext = grabber.getFormatContext(); // 文件内有几个媒体流(个别是视频流+音频流) int streamNum = avFormatContext.nb_streams(); // 没有媒体流就不必持续了 if (streamNum<1) { log.error("文件内不存在媒体流"); return; } // 获得视频的帧率 int frameRate = (int)grabber.getVideoFrameRate(); log.info("视频帧率[{}],视频时长[{}]秒,媒体流数量[{}]", frameRate, avFormatContext.duration()/1000000, avFormatContext.nb_streams()); // 遍历每一个流,查看其类型 for (int i=0; i< streamNum; i++) { AVStream avStream = avFormatContext.streams(i); AVCodecParameters avCodecParameters = avStream.codecpar(); log.info("流的索引[{}],编码器类型[{}],编码器ID[{}]", i, avCodecParameters.codec_type(), avCodecParameters.codec_id()); } // 视频宽度 int frameWidth = grabber.getImageWidth(); // 视频高度 int frameHeight = grabber.getImageHeight(); // 音频通道数量 int audioChannels = grabber.getAudioChannels(); log.info("视频宽度[{}],视频高度[{}],音频通道数[{}]", frameWidth, frameHeight, audioChannels); // 实例化FFmpegFrameRecorder,将SRS的推送地址传入 FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(SRS_PUSH_ADDRESS, frameWidth, frameHeight, audioChannels); // 设置编码格局 recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264); // 设置封装格局 recorder.setFormat("flv"); // 一秒内的帧数 recorder.setFrameRate(frameRate); // 两个关键帧之间的帧数 recorder.setGopSize(frameRate); // 设置音频通道数,与视频源的通道数相等 recorder.setAudioChannels(grabber.getAudioChannels()); startTime = System.currentTimeMillis(); log.info("开始初始化帧抓取器"); // 初始化帧录制器,例如数据结构(音频流、视频流指针,编码器), // 调用av_guess_format办法,确定视频输入时的封装形式, // 媒体上下文对象的内存调配, // 编码器的各项参数设置 recorder.start(); log.info("帧录制初始化实现,耗时[{}]毫秒", System.currentTimeMillis()-startTime); Frame frame; startTime = System.currentTimeMillis(); log.info("开始推流"); long videoTS = 0; int videoFrameNum = 0; int audioFrameNum = 0; int dataFrameNum = 0; // 假如一秒钟15帧,那么两帧距离就是(1000/15)毫秒 int interVal = 1000/frameRate; // 发送完一帧后sleep的工夫,不能齐全等于(1000/frameRate),不然会卡顿, // 要更小一些,这里取八分之一 interVal/=8; // 继续从视频源取帧 while (null!=(frame=grabber.grab())) { videoTS = 1000 * (System.currentTimeMillis() - startTime); // 工夫戳 recorder.setTimestamp(videoTS); // 有图像,就把视频帧加一 if (null!=frame.image) { videoFrameNum++; } // 有声音,就把音频帧加一 if (null!=frame.samples) { audioFrameNum++; } // 有数据,就把数据帧加一 if (null!=frame.data) { dataFrameNum++; } // 取出的每一帧,都推送到SRS recorder.record(frame); // 进展一下再推送 Thread.sleep(interVal); } log.info("推送实现,视频帧[{}],音频帧[{}],数据帧[{}],耗时[{}]秒", videoFrameNum, audioFrameNum, dataFrameNum, (System.currentTimeMillis()-startTime)/1000); // 敞开帧录制器 recorder.close(); // 敞开帧抓取器 grabber.close(); } public static void main(String[] args) throws Exception { grabAndPush(MP4_FILE_PATH, SRS_PUSH_ADDRESS); }}上述代码中每一行都有具体正文,就不多赘述了,只有上面这到处要害须要留神:<font color="blue">MP4_FILE_PATH</font>是本地MP4文件寄存的中央,请改为本人电脑上MP4文件寄存的地位<font color="blue">SRS_PUSH_ADDRESS</font>是SRS服务的推流地址,请改为本人的SRS服务部署的地址<font color="blue">grabber.start(true)</font>办法执行的时候,外部是帧抓取器的初始化流程,会获得MP4文件的相干信息<font color="blue">recorder.record(frame)</font>办法执行的时候,会将帧推送到SRS服务器编码实现后运行此类,控制台日志如下所示,可见胜利的取到了MP4文件的帧率、时长、解码器、媒体流等信息,而后开始推流了:23:21:48.107 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 开始初始化帧抓取器23:21:48.267 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 帧抓取器初始化实现,耗时[163]毫秒23:21:48.277 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 视频帧率[15],视频时长[125]秒,媒体流数量[2]23:21:48.277 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 流的索引[0],编码器类型[0],编码器ID[27]23:21:48.277 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 流的索引[1],编码器类型[1],编码器ID[86018]23:21:48.279 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 视频宽度[320],视频高度[240],音频通道数[6]23:21:48.294 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 开始初始化帧抓取器23:21:48.727 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 帧录制初始化实现,耗时[433]毫秒23:21:48.727 [main] INFO com.bolingcavalry.grabpush.PushMp4 - 开始推流接下来试试能不能拉流播放用VLC播放请装置VLC软件,并关上如下图红框,点击菜单中的<font color="blue">Open Network...</font>,而后输出后面代码中写的推流地址(我这里是<font color="red">rtmp://192.168.50.43:11935/live/livestream</font>): ...

January 20, 2022 · 3 min · jiezi

关于云计算:为什么混合云需要虚拟化

在当今世界,一切都在向云端转移。咱们所说的云,是指科技巨头的数据中心——即 AWS、Azure、谷歌、Equinix、甲骨文等,更具体地说,云计算更加为人所知的一面是次要的公共云参与者,即所谓的“公共云”。尽管这些大型云服务提供商及其大部分云竞争对手的业务量和规模都在增长,但他们的客户依赖这些服务来反对本人的业务的形式产生了显著的转变。 随着越来越多的工作负载和数据集被上传到云平台上,公共云的迁徙也在产生,这种趋势在近年来愈发显著。 公共云有几个益处,第一个是外包 IT 经营的便利性和随之而来的复杂性。然而,私有云的实质迫使企业适应他们所依赖的云平台,并重写本人的局部或全副应用程序,使其成为云原生利用。 然而这并不能真正解决企业的问题,也不能升高其老本。通过将全副或局部基础架构从私有云移回公有云或本地,甚至抉择将工作负载调配给多个私有云服务提供商,企业可能充分利用两败俱伤的劣势,同时无效地解决每个选项的毛病,这种趋势通常称为混合云。 为了利用这些选项,有必要理解有一些要害工具使组织可能运行并将其零碎和应用程序从一种类型的基础架构迁徙到另一种类型的基础架构。 根底层 跨平台和基础设施挪动数据、应用程序和整个零碎,假设可能形象出它们能够运行的硬件和任何软件环境。这种能力在虚拟机中很容易发现。通过管理程序在裸机基础架构上运行,虚拟机嵌入从应用程序及其数据到操作系统和网络层的整个零碎和平台,因而是残缺的虚拟环境。\虚拟化技术并不过时,因为从运行在组织外部服务器上的服务器到公共云,虚拟化无处不在。事实上,如果没有管理程序和虚拟机,云计算将无奈运行。 通过在虚拟机中嵌入残缺的(通常是简单的)环境,能够平安地充分利用各种平台,包含公共云和公有云、繁多数据中心和本地零碎。 简单环境的可移植性 虚拟机的一个要害劣势是可移植性。联合适当的管理工具,能够十分轻松地复制和备份虚拟机,从而避免数据失落或零碎停机。虚拟化是一种实用且无效的工具,能够跨整个基础架构治理整个零碎和环境。使这些零碎具备可移植性,让它们可能跨数据中心和基础设施进行迁徙、传输、复制和备份,令混合云成为事实。 混合云之所以无效,是因为本地基础设施和云之间的二分法不再是一个十分相干的二分法。 混合云的益处 尽管“混合云”与“云计算”这个词相比暗示了其具备额定的复杂性,但混合云的实现也表明了其具备许多理论益处。 那些曾经齐全过渡到公共云以满足其全副或大部分 IT 需要的企业通常会指出,一旦迁徙实现并且各种促销入场费和“宽限期”完结,这种抉择的老本会飙升。通常状况下,公共云并不意味着只需为应用的资源付费。定价通常不是那么精密,除了软件许可和所领取的反对合同之外,企业通常不理解其理论的 IT 资源耗费。 只管公共云具备显著的益处,但它通常会带来隐性老本。另一方面,混合云不会克制暗藏老本,因为它容许企业更好地调整其需要和想要在云中应用的理论资源。 混合云容许企业将其可能负担得起的工作负载外包到公共云,同时依赖于各种其余选项和场景——具体取决于其需要和要求。至多,混合云提供了更清晰的收入和形式,这最终为企业实现更好的管制和更低的老本提供助力。 转向云服务提供商的企业面临的另一个问题是,他们最终将不得不依赖提供商的应用程序和软件堆栈。这样做的起因是,除非他们仅将一些公共云基础设施用于相当毛糙的需要,否则企业将不得不重写本人的应用程序堆栈或迁徙到适宜云服务提供商本身技术要求的应用程序堆栈。 尽管这种状况有时是比拟适合的,但如果堆栈被重写或使其只适宜一个云服务提供商,可能会促成供应商锁定。在这种状况下,企业将不得不思考旧解决方案到新应用程序堆栈的退出老本是多少,以及新应用程序堆栈的退出老本是多少,毫无疑问,企业将处于弱势位置。 混合云并不障碍迁徙到新的应用程序堆栈。但它容许企业放弃其遗留或以后应用程序在其冀望的中央运行,而无需以任何形式更改或重写它们。混合云提供了一种无效的形式来控制软件供应商和云服务提供商。 最初,混合云的益处是更好的安全性。这并不是说私有云实质上是不平安的,混合云实质上提供的是通过运行公共云、公有云、外部部署等多种托管性能来缩小攻击面。 它还使企业可能优先思考其基础设施的敏感局部,这些局部通常以本地或公有云基础设施等更严格控制的形式托管,并治理不同的进攻口头和对策,具体取决于在基础设施安全事件产生在何处。在这个网络攻击的数量和重要性都在回升的时代,这是一个至关重要的劣势。 混合云不是公共云的对立面,也不是在本地运行的 IT 基础设施的对立面。它能够利用所有可能的场景——其中一个要害工具是虚拟化。因而,从管理程序到治理和备份工具,抉择正确的虚拟化堆栈是一个十分重要的抉择。

January 19, 2022 · 1 min · jiezi

关于云计算:行业云说云数底座赋能基层治理现代化

直播主题:云数底座赋能基层治理现代化上线工夫:1月20日(周四)16:00-17:15内容简介:主题1-互联网+基层治理的了解与意识(基层治理云计划专家 田震)深度解读国家“互联网+基层治理”口头计划立足政府信息化主管部门角度,分析基层治理推动办法主题2-云数底座赋能基层治理现代化(基层治理云产品经理 栾培培)笼罩“云、数、智、用、端”基层治理整体解决方案浪潮基层治理全国实际案例与教训分享 关注浪潮云服务号,观看精彩内容!

January 19, 2022 · 1 min · jiezi

关于云计算:我把自己的java库发布到了maven中央仓库从此可以像JacksonSpring的jar一样使用它了

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 对于maven地方仓库作为一个java程序员,对maven地方仓库<font color="blue">https://mvnrepository.com/</font>天然是十分相熟的,毕竟咱们的利用依赖的jar大部分都来自此处,如果您想把本人开发的java库也托管在下面,让大家像应用Jackson、Spring那样轻松简略的应用您的jar,就请随本文一起操作吧;先看看成果,下图是我公布的java库在地方仓库的搜寻后果: 前提条件因为sonatype官网会要求您在github创立一个仓库(仓库名由sonatype官网指定,以此验证您是否有github操作权限),因而请确保您本人有github账号,并且能够创立仓库本篇概览梳理一下,依照以下步骤将本人的java库公布到maven地方仓库: 文末还会对已经踩过的小坑做了总结,心愿能帮忙读者们提前避开看起来略有些繁琐,但其实很简略,接下来开始吧筹备工作首先请把您的java工程筹备好,我用的是一个十分一般的maven工程,名为<font color="red">opencv-linux</font>,github仓库地址<font color="blue">https://github.com/zq2599/ope...</font>本次波及的软件信息如下:操作系统:macOS Monterey(12.0.1)JDK:1.8.0_312Maven:3.8.31. 注册帐号关上网站https://issues.sonatype.org,注册一个帐号,登录后成果如下图: 2. 创立问题(issue)点击上图红框中的<font color="red">新建</font>开始创立issue,如下图,项目选择<font color="blue">Community Support</font>,问题类型是<font color="blue">New Project</font>: 接下来填写我的项目相干的信息,请留神<font color="blue">Project URL</font>外面是您本人的工程对应的github仓库地址: 提交后期待几分钟,注册账号时填写的邮箱会收到一封邮件,要求你创立一个仓库,以此来证实之前提交的github帐号属于你本人: 上述内容在方才新建的issue页面也能看到,如下图,即sonatype的评论: 3. 创立sonatype指定的仓库登录您的github,依照要求创立仓库,我这里要创立的是<font color="blue">https://github.com/zq2599/OSS...</font>老老实实的创立进去就行了: 4. 在issue上进行回复关上issuse,减少一个评论,如下图: 不久后(我这边是十多分钟),就会收到一条新的评论,告诉你能够去做公布了,并给你了snapshot和release的公布地址: 5. 装置GPG前面的操作中,在将jar公布到地方仓库时,要用GPG工具对上传的数据进行签名,因而接下来要筹备好GPG秘钥先装置GPG软件,关上网站:https://www.gnupg.org/download/下载安装文件,请抉择适宜您的操作系统的,我的抉择如下图红框: 装置GPG6. 生成秘钥并上传装置实现后,在控制台执行<font color="blue">gpg2 --gen-key</font>开始创立秘钥依据提醒输出账号、邮箱、明码等:GnuPG needs to construct a user ID to identify your key.Real name: zq2599Email address: zq2599@gmail.comYou selected this USER-ID: "zq2599 <zq2599@gmail.com>"Change (N)ame, (E)mail, or (O)kay/(Q)uit? O操作实现后失去如下信息:gpg: key 11027EJIHGFEDCBA marked as ultimately trustedgpg: directory '/Users/will/.gnupg/openpgp-revocs.d' createdgpg: revocation certificate stored as '/Users/will/.gnupg/openpgp-revocs.d/561AEE4EA92EE3E4C389941811027E9876543210.rev'public and secret key created and signed.pub rsa3072 2021-11-10 [SC] [expires: 2023-11-10] 561AEE4EA92EE3E4C389941811027E9876543210uid zq2599 <zq2599@gmail.com>sub rsa3072 2021-11-10 [E] [expires: 2023-11-10]如上所示,失去了pub key等于<font color="red">561AEE4EA92EE3E4C389941811027E9876543210</font>执行以下命令,将秘钥同步到云端,留神keyserver,网上能够搜到很多个,集体实际操作中,上面这个是能够胜利的:gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 561AEE4EA92EE3E4C389941811027E98765432107. maven全局配置试想把sonatype的账号密码写在我的项目的pom.xml中,再上传到github让所有人都看到?置信您肯定不违心这样,所以还是放在maven的全局配置中比拟平安,毕竟是保留在本人的电脑上关上maven的配置文件<font color="red">settings.xml</font>,在servers上面减少一个server节点,这是个账号密码的配置,对应的是<font color="blue">https://issues.sonatype.org</font>的账号密码:<server> <id>ossrh</id> <username>zq2599</username> <password>12345678</password></server>在<font color="blue">profiles</font>下减少一个<font color="red">profile</font>节点,<font color="blue">gpg.passphrase</font>的内容是方才创立gpg秘钥时输出的明码:<profile> <id>gpg</id> <properties> <!-- 因为我的电脑装的gpg2,所以须要指定执行gpg2,否则会报错 --> <gpg.executable>gpg2</gpg.executable> <gpg.passphrase>abcdefgh</gpg.passphrase> </properties></profile>波及到账号密码的全局配置就实现了,接下来关上您的java工程,咱们去批改pom.xml的配置8. maven我的项目配置首先要搞清楚公布仓库的地址在哪,官网领导如下,给出了snapshot和release的仓库地址: ...

January 19, 2022 · 3 min · jiezi

关于云计算:云用户的真实需求从多云混合云到集成

在云用户中,对“混合云”和“多云”这两个术语评估的两极分化水平较为重大。从之前的状况来看,混合云的应用表明工作负载正在从公有数据中心转移到公共云。当初,它意味着本地应用程序与云中的服务之间的集成。 多云的起源状况相似——最后是工作负载依据价格和性能等状况从一个云迁徙到另一个云。然而,这些用例却难以被发现。当初,多云只是意味着用户正在应用多个云平台。 在大多数企业中,公司都在应用来自多个云的服务。只有有一种办法能够集成服务并在没有过多工具的状况下治理它们,工作负载在哪里运行就变得简直无关紧要。 高质量云服务的遍及使用户可能应用来自最佳提供商的服务来满足其特定需要。它可能是来自亚马逊的对象存储、来自谷歌的计算、来自 Salesforce 的 CRM 以及来自 Splunk 和 Datadog 的治理服务。涣散耦合的服务创立的应用程序是云服务的交融,通过网络组合,成为云原生应用程序。 该设计模式与90 年代前期提倡的面向服务的架构 (SOA) 十分类似。只管它们变成事件驱动,而不仅仅是 API 驱动的。 当互联网的应用在 20世纪90 年代首次呈现快速增长时,大多数用户的带宽极低,人们在电子邮件和网络之外应用的服务数量也很少。当工夫来到 2022 年,当初咱们领有速度极快的互联网、有数的云服务、智能设施,以及对最新信息的一直谋求。 API 与事件驱动架构 云中有两种风行的交互模型。第一个是 REST API(或 RESTful API)。REST 局部代表具象状态转换,API 代表应用程序编程接口。RESTful API 是零碎互相交互的一种形式,就像对话一样。在 RESTful 架构中,有申请和响应并重复进行,始终继续到确定信息为止,这须要同步通信。 相比之下,事件驱动的架构就像从水龙中喝水——其中事件是异步流式传输的,用户基于公布/订阅模型(称为 Pub/Sub)生产主题。 事件驱动架构能够采纳多种形式,但最常见的两种是 Webhook 和流式传输。在事件驱动的架构中,数据是实时提供的,而不是作为对查问的响应(与 API 办法一样)。 例如,在 Webhook 的状况下,咱们要求事件的生产者通知咱们工作何时实现,而后咱们会在事件产生时收到告诉,这就是异步通信。 在流式传输的状况下,咱们会随着状态的变动接管事件。这些事件可能是对数据库的更改、将文件上传到存储 blob 或实现无服务器性能。 事件驱动架构的衰亡 为什么事件驱动很重要?因为这些事件用于触发和通信解耦的服务。事件只是零碎中状态的变动,它能够携带状态或标识符。这些事件可用于触发工作流。云之间的这些工作流突破了孤岛,提供数据同步或简单工作的实现。 云中的事件驱动架构 当初,云的构造曾经变成了 Kubernetes。它无处不在,并容许在容器中运行的应用程序的可移植性。用户通常在容器或无服务器性能中部署全时运行的微服务。这些函数可能应用事件互相通信。有许多事件流技术,一些能够逾越多个云,而另一些则特定于每个云。 Amazon Kinesis提供了一种在 AWS 中治理事件流的办法。Eventarc是 Google Cloud 的解决方案,用于将事件从 Google 服务发送到能够从 Pub/Sub 主题接管音讯的指标或服务。Microsoft Azure 的事件网格在 Azure 云中治理从源到目的地的事件路由。这些解决方案是繁多云事件流解决方案的示例。 ...

January 18, 2022 · 1 min · jiezi

关于云计算:Kubernetes-HPA-基于-Prometheus-自定义指标的可控弹性伸缩

在《Kubernetes 的主动伸缩你用对了吗?》一文中具体阐明了如何应用 Kubernetes 的主动伸缩。在 Kubernetes 中弹性伸缩次要有三种:HPA、VPA、CA。本文不再具体阐明,有趣味的能够看那篇文章。这里次要来说下 Pod 程度缩放 HPA。 随着 Kubernetes v1.23 的公布,HPA 的 API 来到了稳定版 autoscaling/v2: 基于自定义指标的伸缩基于多项指标的伸缩可配置的伸缩行为从最后的 v1 版本 HPA 只反对 CPU、内存利用率的伸缩,到起初的自定义指标、聚合层 API 的反对,到了 v1.18 版本又退出了配置伸缩行为的反对,HPA 也越来越好用、牢靠。 依附 CPU 或者内存指标的扩容并非应用所有零碎,看起来也没那么牢靠。对大部分的 web 后端系统来说,基于 RPS(每秒申请数)的弹性伸缩来解决突发的流量则会更加靠谱。 Prometheus 也是当下风行开源监控零碎,通过 Prometheus 能够获取到零碎的实时流量负载指标,明天咱们就来尝试下基于 Prometheus 的自定义指标进行弹性伸缩。 注:目前 HPA 的缩容0 (scale to 0),则须要在 feature gate 关上 alpha 版本的 HPAScaleToZero 以及配置一个对象或者内部指标。即便是关上了,从 0 到 1 的扩容须要调度、IP 调配、镜像拉取等过程,存在肯定的开销。如果升高这部分开销,这里先卖个关子,后续的文章进行补充。 文章中应用的所有代码都能够从这里下载。 整体架构 HPA 要获取 Prometheus 的指标数据,这里引入 Prometheus Adapter 组件。Prometheus Adapter 实现了 resource metrics、custom metrics 和 external metrics APIs API,反对 autoscaling/v2 的 HPA。 ...

January 18, 2022 · 4 min · jiezi

关于云计算:Ubuntu16桌面版编译OpenCV4的java库和so库

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览作为一名java程序员,如果想在Ubuntu16桌面版上应用OpenCV4的服务,能够下载本人所需版本的OpenCV源码,而后本人入手编译java库和so库,这样就能够在java程序中应用了本文具体记录OpenCV4的下载和编译过程,而后写一个java程序验证是否能够胜利调用OpenCV4的库,总的来说分为以下几步:装置必要利用配置java环境配置ANT环境下载源码编译前的配置编译装置验证留神:<font color="red">本文的操作全副以非root账号执行</font>环境和版本操作系统:16.04.7 LTS(桌面版)java:1.8.0_311ANT:1.9.16OpenCV:4.1.1接下来开始操作,我这里是个新装的污浊版Ubuntu16装置利用执行以下命令装置所有利用,如果有个别提醒失败的能够多试几次:sudo apt-get install -y unzip build-essential curl cmake cmake-gui git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev配置java环境下载JDK8,解压后是名为<font color="blue">jdk1.8.0_311</font>的文件夹,将该文件夹挪动到这个目录上面:<font color="red">/usr/lib/jvm/</font>关上文件<font color="blue">~/.bashrc</font>,增加以下内容:export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_311export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH配置ANT下载ANT,地址是:https://dlcdn.apache.org//ant...解压后是名为<font color="blue">apache-ant-1.9.16</font>的文件夹,将该文件夹挪动到这个目录上面:<font color="red">/usr/local/</font>关上文件<font color="blue">~/.bashrc</font>,增加以下内容:export ANT_HOME=/usr/local/apache-ant-1.9.16export PATH=$ANT_HOME/bin:$PATH执行命令<font color="blue">source ~/.bashrc</font>查看java和ANT装置是否实现:will@hp:~$ java -versionjava version "1.8.0_311"Java(TM) SE Runtime Environment (build 1.8.0_311-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)will@hp:~$ ant -versionApache Ant(TM) version 1.9.16 compiled on July 10 2021下载源码执行以下命令即可:curl -fL -o opencv-4.1.1.zip https://codeload.github.com/opencv/opencv/zip/4.1.1; \unzip opencv-4.1.1.zip; \rm -rf opencv-4.1.1.zip; \mkdir opencv-4.1.1/build; \mkdir opencv-4.1.1/build/install编译前的配置进入目录<font color="blue">opencv-4.1.1/build/</font>执行cmake,生成配置信息:cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX=./install ..要留神的是,下面的<font color="blue">-D BUILD_SHARED_LIBS=OFF</font>参数非常重要!没有该参数时生成的libopencv_java411.so大小只有1532128,有了该参数libopencv_java411.so大小是78169672上述命令执行结束后,请查看控制台输入的信息,如下图所示,"java"必须呈现在<font color="blue">To be build</font>的栏目中,否则正式编译时不会编译java相干的库: ...

January 18, 2022 · 1 min · jiezi

关于云计算:常见的多云架构模式部署和网络拓扑详解

本文次要介绍常见的多云架构模式、部署和网络拓扑、不同模式的疾速快照,这些模式分为分布式部署和冗余部署。 分布式部署模式 当须要利用云提供商的某些个性、属性或性能时,这些模式最有用。 1、分层混合模式 经典分层通常由前端和后端应用程序组成。与最终用户、客户、消费者或他们的组合打交道。前端是无状态的,其中性能和弹性对于应答不可预测的工作负载十分重要。加上通常要解决大量变更,所以麻利思维形式是非常无益的。后端依据法规要求平安地存储数据,并且不应该频繁地进行更改。 这种架构模式思考到应用程序的迁徙,首先抉择一个不太简单的应用程序,而后一一进行。有 6 种云迁徙策略,通常称为“6 R”(Rehost、Replatform、Repurchase、Refactor、Retain、Retire)。因而,须要针对每种状况做出架构决策。 迁徙后,通过 API 网关拜访后端,集中处理横切关注点,例如安全性、速率限度、API 策略等。 分层混合模式 当处于迁徙过程中并且公司无奈承诺一次性实现所有迁徙时,这是一个很好的模式。 2、分区多云模式 如果企业更加关注企业的可移植性,那么此模式提供了依据须要将工作负载从一个云提供商转移到另一个云提供商的能力。其次要劣势是升高锁定危险、从每个提供商那里抉择最佳性能的能力以及局部监管起因。 在多个云环境中实现工作负载可移植性和统一的工具会减少开发、测试和经营工作量,可见便携性是有代价的。为了最大限度地进步可移植性,请思考容器和 Kubernetes。 分区多云模式 3、云剖析模式 企业架构通常由事务和剖析零碎组成。交易系统用于执行财务、销售、库存、定价等日常操作。因为不同的性质和变化率,交易系统通常与其余零碎脱钩。 这种模式的想法是在云中领有剖析工作负载,并在须要时反馈数据。云存储能够通过数据湖模式实现,并应用存储桶来解决入口流量。 云剖析模式 4、边缘混合 在某些状况下,企业不能齐全依赖于连贯;例如间歇性连贯的车辆、具备超出链路能力的可用性服务水平协定的工厂、须要解决要害事务的商店以及链路停机是不可能的。 边缘混合模式通过在网络边缘本地运行工夫和业务要害型工作负载来解决这些挑战,同时将云用于所有其余类型的工作负载。在边缘混合设置中,互联网链接是一个非关键组件,用于治理目标以及同步或上传数据,通常是异步的,但不波及工夫或业务要害事务。 倡议在边缘环境和云之间放弃 CI/CD 实际统一。 边缘计算混合模式 5、分布式部署模式总结 在决定适当的架构时要思考 5 个相干方面:更改速度(敏捷性)、易于扩大、网络拓扑选项、平安问题和可靠性。 分布式部署模式 冗余部署模式 当企业须要减少整体架构的容量或弹性时,这些模式更加有用。 1、混合环境 在这种模式下,公共云环境用于开发、测试和 UAT,公有数据中心用于生产。应用此架构的起因可能包含监管限度、仅在本地可用的生产硬件和阻止云中的生产工作负载的第三方许可。 混合环境模式 所有环境必须在性能上等价,即操作系统和库的架构、API 和版本是等价的,并且零碎在不同环境中的行为雷同。然而,暂存和性能测试环境须要在本地实现。 如果开始应用云计算,并且想先替换较低的环境,这种模式能够很好地工作,并且这种模式具备在须要时轻松创立和敞开环境的敏捷性。 2、业务连续性混合云和多云 在这种模式下,劫难复原环境在云中施行,提供了老本劣势,即可能为 DR 测试创立它,而后将其敞开。此外,在触发 DR 的状况下,应用基础架构即代码能够更快地创立 DR 环境,从而缩小理论复原工夫。 业务连续性混合模式 此模式的另一种抉择是将生产环境放在一个提供程序,而后故障转移到另一个提供程序,然而,这种状况并不常见,因为通常能够在一个提供程序中实现可用性需要。 3、云暴发 如果应用程序具备突发性工作负载且稳定不可预测,并且不心愿在一年中的大部分工夫为某些密集工作负载时段适度配置。这种模式是一种绝对适合的抉择,对于能够进行扩大和缩减的前端无状态状况特地有用。 云暴发模式的想法是应用公有计算环境作为基准负载,并在企业须要额定容量时长期暴发到云中。 云暴发模式 如果企业曾经领有在一年中大部分工夫作为根底的本地投资,那么这种模式是一个不错的抉择,企业将不须要在全年放弃额定的容量。 4、冗余部署模式总结  冗余部署模式 对这些架构模式做出决策很简单,并且通常会波及到有不同关注点的多个公司利益相关者。本文能够使大家理解不同状况下的绝对适合的抉择,每种状况都须要进行彻底的衡量剖析,以应用最合适的模式来实现企业的解决方案。

January 17, 2022 · 1 min · jiezi

关于云计算:2022年你还要做开源软件么

「关注」并「星标」咱们, 每天接管对于亚马逊云科技的最新资讯! 不平庸的2021曾经轻轻走远:仍旧蔓延的疫情始终到年末的 Log4j 的重磅炸药,基本上各个大厂都在连夜整修零碎来填补安全漏洞。Log4j 目前应用在百万台机器当中:它默默的记录着系统日志,帮忙开发者找到谬误起因,基本上是一个不可或缺的工具。 可是,作为使用量这么大的包,真正资助它的只有3集体。保护基本上靠社区同学加班加点地在业余时间实现。你可能会好奇,既然这么多人用,为什么开源软件仍旧没有取得资金?目前开源环境的生态是怎么样的?从企业的角度登程来深度分析上面两个问题: 为什么企业要把程序开源?为什么企业要持续投入开源以及倒退中的窘境**企业中所有软件的开发都是以营利为基本指标进行的,无论开源与否。 许多难以了解的行为和后果,如果从这一点来登程那么也说的通。 为什么企业要把程序开源?第一种起因便是因为无人保护,同时感觉持续投入也没有太多意义,索性丢进去造福社区。比方赫赫有名的 Hadoop 当年也是因为 bug 太多,做不上来了,索性交给社区看看有没有大佬能修一修而后所有人一起用。而后它在一群开发者手里变成了古代分布式计算的基底。这样做的益处是可能给企业缩小保护老本,同时也可能给公司赢得一个开源翻新的好名声。 第二种起因是为了缩小保护老本。和第一种起因的区别是企业并没有放弃这个软件。这类软件相对来说开发比拟成熟,在企业中已被宽泛应用,然而因为没有太多能够开发的空间,索性让社区来保护一起找 bug。这种也是目前很多公司抉择的模式,然而仍以大厂居多。它能够帮忙公司倒退一个生态圈,让更多的开发者认同公司理念,甚至变成一个信奉。 第三种起因是为了迅速占据市场,利用开源软件收费的劣势来倒退商业。这一点在大厂和初创公司中都很常见,首先先以收费的劣势迅速打入市场,扩充用户使用量。在前期以本人的架构和平台推出免费版来帮忙用户缩小开发和保护老本。这类软件往往都还在开发之中,能够同时倒退社区以及缩小开发成本实现双赢。然而这条路自身不是很好走,因为程序自身不成熟带来的就是较高的学习以及开发成本。如果可能保持下来做完,能够实现久远的营利。 第四种起因是因为自身开源软件也是服务于公司的某个业务。推出一份官网的应用套件能够帮忙用户缩小开发成本:通过集成各类软件和代码,方便使用的客户来构建本人的业务逻辑。严格意义上来说,这不算是真正的开源软件,只管代码全副公开,实际上还是服务于公司能够赚钱的一系列服务。最常见的就是各类教程代码 repo,以及工具接口 repo。 为什么企业要持续投入开源?其实在没有 github 前,大家做程序个别就是做体验版和免费版。比方 WinRAR, 有免费版和体验版的区别。时至今日,仍然有很多软件抉择了这条路。前面公司发现,如果把软件开源,大家既可能应用体验版的内容,同时也能够帮忙一起修 bug。那何乐而不为呢?很多初创公司抉择了这条路,通过开源来不断完善本人的产品。同时开发一条绝对成熟的干线来欠缺本人的免费版本。 很多大厂投入开源的软件的起因是它能够帮公司赚钱,如果不投入人力在外面,本身的服务也会受影响。一个开源我的项目,往往很多公司都在踊跃投入在外面,毕竟是有付费用户在一直应用的。然而带来的问题就是,当初开源的公司自身并没有取得大部分利润。利润都被自身自带流量的平台拿走了。 另一个做开源软件的起因是为了可能将用户引流到本人的生态圈。当红帽发表本人不再出收费的零碎版本后,各个大厂纷纷跳出来说本人也能提供收费的版本。这样做最大的益处是缩小用户日后的迁徙老本,同时本人能够在外面增加有利于本身生态的组件。比方一个用户在应用一个大厂推出的 Linux OS 很久当前,如果当前思考上云,必定会首选对这个 Linux 零碎反对最好的大厂:因为本人无需更改任何配置,间接开一个实例便能够实现。 在应用 TensorFlow 的时候,当你在运行训练和推理工作时,会有 log 倡议你应用 GCP 中的相干服务来实现减速。比方某些硬件厂商推出本人的开源深度学习框架以及零碎,也是为了让用户进入本人的生态圈。这样通过一系列的操作,让用户应用开源软件的过程中逐渐去购买对应的免费服务以及产品。 开源的窘境 开源永远都是一把双刃剑。开源的益处是可能扩充使用量而后迅速占据市场。然而它会让同行也很快切入市场并获得领导位置。 只管能够通过一些 License 来限度公司商用的权力,然而仍旧没有方法从根本上限度企业对于它的应用。如果免费版本和开源版本的间隔不大,很多小公司往往难以在这个过程中取得很大的利润。然而没法取得很大利润不代表没有利润,毕竟用户量多了,会有一些客户抉择免费版本来缩小本人的保护老本。 其实自身把一款开源软件做好做强也是很难的。公司自身能够作为生态的助推器。其余公司也能够为本人的开源产品投入大量广告以及宣宣传,花钱买流动,做教学和买 SEO 来吸引人群。甚至也能够尝试退出一些出名社区来倒退本人的生态,比方 Apache Software Foundation,通过社区的知名度和企业分割参加到开发中。有的同学可能会感觉,酒香不怕巷子深,真的厉害的软件本人应该就能火起来,不须要宣传。 然而现实情况是,如果没有一个群体在前面投入人力和宣传,一款软件真的很难进入千家万户。毕竟没有哪个企业违心去应用一些没有宏大用户群的软件,甚至都没有据说过这个软件。 很多优良的开源软件本却因为各种起因进行在起步阶段。例如,投资人信念有余导致的资金链断裂,核心成员到职等都会击垮团队。 在大厂中,如何定义一个开源软件的投入其实很简略:如果把赚钱和构建企业生态圈作为最终目标,那么用量就是外围 KPI。 像 ONNX,如果外部应用的客户量一直增长,公司就有持续保护它的理由。然而公司往往心愿可能在短时间的大量投入取得大量回报,即做出指数型的增长。 事实上,任何事件都会有一个学习的过程,有的软件学习门槛低,能够疾速上手,那么它的确能够在短时间成为大家都在应用的软件。 有的软件自身作为一个中间件或者是工具,那么就很难在短时间内积攒大量的用户。然而随着时间推移,用户量的减少会逐渐在耳濡目染中减速产品的使用量。这个过程中另一个痛点就来了,如何晓得有多少用户应用呢?只能通过来提问题的开发者来晓得都有谁在用。然而如果软件做的太好了也不会有用户来提问题。 这种状况下,大厂也没有方法做出精确的判断,这个软件到底是胜利还是不胜利。当然如果算公司外部用户也好,毕竟在公司外部还是有一些办法来确认是否有人应用的。然而如果公司外部的用量并不算在 KPI 外面,其实开源开发团队真的会过的非常艰巨:我的项目很有可能就切断经费了。 目前如同 Log4j 的软件不在少数,作为开源软件中的佼佼者,用量大到恐怖,然而鲜有人真的违心去投入资金来反对我的项目自身倒退。它们往往自身并不出彩,不能成为独当一面的一个服务或者前端。然而却被用在了各个软件和零碎当中。很多时候,都只是这个软件的开发者们以本人的情怀在一直保护,然而这又能保持多久呢? 之前也有的软件开发者发声,说做开源产品养不活本人,只能去找工作来养活本人。所幸目前 GitHub 有了打赏机制,开源开发者总算还是有一些形式取得反对和支出。 ...

January 17, 2022 · 1 min · jiezi

关于云计算:Ubuntu16桌面版编译和安装OpenCV4

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览这是一篇笔记,记录了污浊的Ubuntu16桌面版电脑上编译、装置、应用OpenCV4的全副过程,总的来说分为以下几局部:装置必要软件,如cmake下载OpenCV源码,包含opencv和opencv_contrib,并且解压、摆好地位运行cmake-gui,在图形化页面上配置编译项编译、装置配置环境验证环境环境信息如下:操作系统:Ubuntu16.04桌面版OpenCV:4.1.1留神:<font color="red">本文全程应用非root账号操作</font>废话少说,间接在新装的Ubuntu16桌面版开始操作换源为了疾速装置依赖软件,先把源换为国内的,我这里用的是阿里云先备份源配置:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk-批改/etc/apt/sources.list为以下内容: deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse如果阿里云的源更新太慢,能够试试这个:deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricteddeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricteddeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricteddeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse更新:sudo apt-get update装置利用执行以下命令装置所有利用,如果有个别提醒失败的能够多试几次:sudo apt-get install -y unzip build-essential curl cmake cmake-gui git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev下载源码执行以下命令即可下载所有源码、解压、摆放到适合的地位:curl -fL -o opencv-4.1.1.zip https://codeload.github.com/opencv/opencv/zip/4.1.1; \unzip opencv-4.1.1.zip; \rm -rf opencv-4.1.1.zip; \curl -fL -o opencv_contrib-4.1.1.zip https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.1.1; \unzip opencv_contrib-4.1.1.zip; \rm -rf opencv_contrib-4.1.1.zip; \mv opencv_contrib-4.1.1 opencv_contrib; \mv opencv_contrib opencv-4.1.1/; \mkdir opencv-4.1.1/build用cmake-gui配置在opencv-4.1.1目录下执行<font color="blue">cmake-gui ..</font>即可启动cmake-gui页面,开始图形化配置我这里opencv-4.1.1文件夹的绝对路径是<font color="blue">/home/will/opencv-4.1.1</font>,所以下图红框1就是源码绝对路径,红框2是源码文件夹内的build子目录,配置结束后,点击红框3开始初始化配置: ...

January 17, 2022 · 2 min · jiezi

关于云计算:什么是云数据库关于IaaSPaaSSaaSDBaaS-详解

对于许多企业而言,应用基于云的数据库所取得的劣势非常显著。它的劣势在于提供可扩展性、安全性和可用性,并且比自定义和本地数据库解决方案的老本更低。 然而,云数据库的类型也有不同。个别状况下,咱们用IaaS、PaaS 和 SaaS 等术语形容不同级别的云计算,那么它们如何利用于云数据库,以及如何应用 DBaaS(数据库即服务)产品? 在本文中,咱们将理解这些不同类型的云数据库之间的次要区别,以及每个类型的优缺点,以帮忙大家确定最适宜企业本身的计划。 如图所示,在云计算环境中,软件即服务 (SaaS)、平台即服务 (PaaS) 和基础设施即服务 (IaaS) 之间的次要区别在于对底层资源和服务的形象级别。 一般来说,服务提供商从用户那里形象进去的货色越多,用户在云服务中产生价值的过程就越简略、越快。提供者代表用户解决的越少,用户对环境的管制和责任就越大。 云计算中不同形象级别 咱们也能够将这种云计算分类背地的准则利用于云数据库。与大多数基于云的工具和服务一样,企业抉择的数据库将反映其团队的市场需求、专业知识和技能、违心承当的开销和管理负担,以及我的项目的定制水平要求。 以下为每种类型的云数据库的总体概述,以及它们的优缺点。 IaaS:管制最多,工作最多 IaaS 数据库的实现是在云基础设施上进行自我管理。企业将负责操作系统、运行时和数据库软件,以及装置、配置和继续保护。除了应用云服务器和存储之外,其体验将相似于在本地运行。IaaS 数据库能够保障企业最大水平地管制其设置,这天然也意味着企业须要承当更多责任。 企业不用征用硬件并应用 IaaS 数据库操作本人的数据中心。但须要抉择云提供商基础设施,而后在提供商的参数范畴内自行装置和治理数据库。 上面让咱们一起更直观地理解一下 IaaS 的优缺点。 1、IaaS 长处 应用 IaaS,企业将有更多的数据库抉择,因为能够抉择提供不等效于 PaaS 或 SaaS 版本的数据库。应用 IaaS,能够配置本人的数据库,使其准确地依照本身须要进行工作。与所有云数据库选项一样,IaaS 提供了简直有限的可扩展性。如果企业有能力治理本人的数据库,但正在过渡到防止治理本人的数据中心,那么 IaaS 无疑更加合乎企业的需要。IaaS 使得在云中重现本地数据库基础架构变得更加容易。如果企业团队对此有丰盛的专业知识和教训,IaaS 能够更好地管制数据库软件、操作系统和其余配置选项。2、IaaS 毛病 如果抉择 IaaS 数据库,则需承担日常保护的全副责任,包含解决备份、扩大、安全性和其余注意事项。与 PaaS 和 SaaS 相比,企业的团队成员须要更多的数据库技能和云证书,尤其是与数据库操作相干的内容。反对 IaaS 数据库实现须要相当长的工夫,企业须要对我的项目的紧迫性做出衡量。PaaS会是企业最佳抉择吗? PaaS提供的数据库进一步利用了云计算的劣势。PaaS 数据库有助于主动执行供给、配置、扩大和其余集群治理工作。PaaS 能够使企业免于设置和治理基础设施。 PaaS 是 IaaS-PaaS-SaaS 间断体中的两头选项,许多云数据库都以这种形式提供。它们使团队更容易通过集群自动化工具治理他们的数据库。然而,PaaS 的用户依然须要对节点的数量和类型、容量和分片等集群细节有肯定的理解。 1、PaaS 长处 用户能够取得与 IaaS 部署相似的可扩展性劣势。通过 PaaS,供应商提供了用于供给、配置、扩大和其余常见操作的管理工具,从而简化了操作。供应商还会解决根本的治理工作,例如补丁和更新。2、PaaS 毛病 尽管与IaaS相比,它的操作累赘更轻,但依然须要布局集群、指定软件版本以及节点的数量和类型、实例大小并执行其余工作。应用PaaS还须要进行容量布局,例如峰值容量/使用率和净空,以应答增长。应用 PaaS,用户可能仍需负责局部或全副软件降级。SaaS:低配置,即时生产力 ...

January 14, 2022 · 1 min · jiezi

关于云计算:如何构建智能湖仓架构亚马逊工程师的代码实践来了

数据仓库的数据体系严格、治理容易,业务规模越大,ROI 越高;数据湖的数据品种丰盛,治理艰难,业务规模越大,ROI 越低,但胜在灵便。 当初,鱼和熊掌我都想要,应该怎么办?湖仓一体架构就在这种状况下,疾速在产业内遍及。 要构建湖仓一体架构并不容易,须要解决十分多的数据问题。比方,计算层、存储层、异构集群层都要买通,对元数据要进行对立的治理和治理。对于很多业内技术团队而言,曾经是个比拟大的挑战。 可即便如此,在亚马逊云科技技术专家潘超看来,也未必最能贴合企业级大数据处理的最新理念。在 11 月 18 日早晨 20:00 的直播中,潘超具体分享了亚马逊云科技眼中的智能湖仓架构,以及以流式数据接入为主的最佳实际。 01 现代化数据平台架构的要害指标传统湖仓一体架构的不足之处是,着重解决点的问题,也就是“湖”和“仓”的买通,而漠视了面的问题:数据在整个数据平台的自在流转。 潘超认为,古代数据平台架构应该具备几个要害特色: 以任何规模来存储数据;在整套架构波及的所有产品体系中,获得最佳性价比;实现无缝的数据拜访,实现数据的自在流动;实现数据的对立治理;用 AI/ML 解决业务难题; 在构建企业级古代数据平台架构时,这五个要害特色,本质上笼罩了三方视角 —— 对于架构师而言,第一点和第二点值得引起留神。前者是迁徙上云的一大外围诉求,后者是架构评审肯定会过问的外围事项; 对于开发者而言,第三点和第四点尤为重要,对元数据的治理最重要实现的是数据在整个零碎内的自在流动和拜访,而不仅仅是买通数据湖和数据仓库; 对于产品经理而言,第五点点明了当下大数据平台的价值导向,即数据的收集和治理,应以解决业务问题为指标。 为了不便了解,也不便通过 Demo 演示,潘超将这套架构体系,等同替换为了亚马逊云科技现有产品体系,包含:Amazon Athena、Amazon Aurora 、Amazon MSK、Amazon EMR 等,而流式数据入湖,重点波及 Amazon MSK、Amazon EMR,以及另一个外围服务:Apache Hudi。 02 Amazon MSK 的扩大能力与最佳实际Amazon MSK 是亚马逊托管的高可用、强平安的 Kafka 服务,是数据分析畛域,负责消息传递的根底,也因而在流式数据入湖局部无足轻重。 之所以以 Amazon MSK 举例,而不是批改 Kafka 代码间接构建这套零碎,是为了最大水平将开发者的注意力聚焦于流式利用自身,而不是治理和保护基础设施。况且,一旦你决定从头构建 PaaS 层基础设施,波及到的工作就不仅仅是拉起一套 Kafka 集群了。一张图能够很形象地反映这个问题: 这张图从左至右,顺次为不应用任何云服务的工作列表,应用 Amazon EC2 的工作列表,以及应用 Amazon MSK 的工作列表,工作量和 ROI 高下立现。 而对于 Amazon MSK 来说,扩大能力是其重要个性。Amazon MSK 能够主动扩容,也能够手动 API 扩容。但如果对本人的“入手能力”没有短缺的信念,倡议抉择主动扩容。 ...

January 14, 2022 · 5 min · jiezi

关于云计算:利用-Amazon-Batch-来为容器化负载调用海量云端算力

前言Apache Airflow(以下简称为Airflow) 是一项由Airbnb在 2014 年推出的开源我的项目,其目标是为了治理日益简单的数据管理工具、脚本和剖析工具,提供一个构建批处理工作流的计划。Airflow是一种可扩大的分布式工作流调度零碎,容许将工作流建模为有向无环图(DAGs),通过这种形式简化数据管道中各个解决步骤的创立、编排和监控。Airflow被广泛应用于机器学习、数据分析/解决以及各类须要流程化的场景。 在2020年初的时候,有一篇blog分析了Airflow架构,并给出了在亚马逊云科技上部署Airflow的倡议。也正因为Airflow在机器学习,数据分析等畛域用户泛滥,为了满足这部分用户的须要,亚马逊云科技在2020年11底推出了托管的Apache Airflow服务Amazon Managed Workflows for Apache airflow (以下简称为Amazon MWAA)。 https://aws.amazon.com/cn/blo...目前Amazon MWAA曾经在亚马逊云科技寰球大部分区域可用,如果要在尚未公布的区域应用Airflow,或者有定制化部署Airflow的需要,能够应用自建部署的形式。然而,部署Airflow并不是一件简略的事件,如何做好高可用,易扩大,如何保障平安,以及缩小运维难度等有很多细节。本文以在亚马逊云科技中国区部署自建Airflow为例,提出了一个参考架构,并提供了一套Amazon CDK的参考实现,让应用Amazon CDK的用户通过数行代码就能够将整套计划部署到云上。 架构考量Airflow 体系架构概述 如下图所示,Airflow次要组成部分为: Webserver:为用户提供界面用来治理,调度编排工作;Scheduler:解决触发预约的工作流,并将工作提交给执行器运行;Worker:负责解决运行工作;DAG Directory: 用来寄存用户定义的DAG文件;Metadata Database: 用来存储集群的元数据; 用户将DAG文件上传到 DAG Directory,登陆到Webserver,能够治理,调度编排工作。用户的操作被写入Metadata Database,Metadata Database记录着DAG中的工作以及后盾对应的状态,Scheduler 从Metadata Database读取数据,查看每个工作的状态,并将任务调度给Worker,Worker执行工作,更新Metadata Database中的状态信息。 Airflow On Amazon Web Services架构概述 Airflow在亚马逊云科技上进行部署时: Webserver/Scheduler/Worker三个组件,能够部署到Amazon Fargate上,充分利用无服务器架构的劣势,缩小保护工作量;DAT Directory应用Amazon S3,用户将DAG文件上传到Amazon S3,webserver/scheduler将DAG文件同步到集群;Metadata Database应用托管的数据库服务Amazon RDS,进步可用率,缩小保护工作量。整体架构图如下所示: 如下为具体的设计考量: 网络层 应用三层经典架构;Airflow Fargate集群位于Private subnet,Airflow拜访Amazon Public ECR Repository通过Amazon NAT Gateway–> Amazon Internet Gateway拜访,拜访Amazon ECS Control Plane,Amazon CloudWatch,Amazon SecretsManager则通过Amazon Interface Endpoint走内网,拜访Amazon S3通过Amazon Gateway Endpoint走内网;Amazon ElasticCache和Amazon RDS位于Private Subnet,通过Amazon Security Group的限度,只对Amazon Fargate集群凋谢。存储层 ...

January 14, 2022 · 2 min · jiezi

关于云计算:阿里云何川开放兼容的云计算巢帮助合作伙伴云化升级

简介:保障业务稳定性,提供平安的云上互联网,助力合作伙伴实现规模化,买通多渠道散发。 12月21日,在阿里云弹性计算年度峰会上,阿里云弹性计算高级产品专家何川发表了题为《凋谢兼容的云,计算巢帮忙合作伙伴云化降级》的演讲,深度解析了阿里云的新产品、企业应用云化新引擎——计算巢服务。 图:阿里云弹性计算高级产品专家何川 一、感知客户需要变动,携手合作伙伴迎接新挑战 最近几年,尤其是疫情开始之后的这两年工夫,资本市场对于企业应用和企业服务的投资十分热,这反映出大家对企服市场的看好水平。同时,咱们从很多行业报告也的确可能看到,企业应用云化的速度在晋升,SaaS的渗透率也在晋升。 在这些景象的背地,咱们发现了两个确定性的趋势。 第一,生产互联网向产业互联网的转型是不可逆转的趋势。不论从大环境上看,还是在阿里云外部市场调研中客户群的变动,整个生产互联网的红利见顶是一个十分确定的事实。 第二,传统基于IDC的IT零碎向云上转型也是一个不可逆、确定性的趋势。因为整个云平台的成熟以及云资源开箱即用的特点和劣势,很多IT设施提供商、企业客户开始基于云构建本人的IT零碎。 在整个行业大变动的同时,阿里云也在思考如何可能更好地服务客户。在生产互联网时代,咱们面临的很大客户群是互联网客户,其特点是技术驱动的,绝大部分的IT设施采纳自建模式,基于云提供的技术支持而不是依赖于更多的第三方构建业务零碎。而在产业互联网时代,客户需要产生了很大的变动,因为企业场景十分多样,规范的云产品很难满足他们的需要,所以阿里云心愿能够和合作伙伴一起来服务咱们独特的客户。 某些场景下,阿里云应该站在合作伙伴身后做好反对,以帮忙企业客户更好地搭建IT设施,帮忙合作伙伴服务好他们的客户。这是阿里云计算巢平台推出的初衷,心愿能够成为企业应用云化新引擎,就像一个乘客坐飞机,他关注的是飞机的稳定性、航行过程的舒服水平,飞机是否可能疾速、便捷地把他带到目的地。 在很多的业务场景中,那架“飞机”又是谁呢?就是咱们的合作伙伴构建的合乎客户业务场景的产品,阿里云计算巢服务就是这架“飞机”的引擎。一架飞机想要腾云而起,一个合作伙伴的产品想要腾云而起,引擎是必不可少、还要帮忙他飞的又高又稳。 二、阿里云计算巢助力合作伙伴云化降级通过十二年的积淀,阿里云的技术能力,包含IaaS能力和PaaS层的产品,阿里云的PaaS产品是基于IaaS层的能力构建的,如果阿里云可能把本人孵化PaaS产品的能力,对外开放提供给合作伙伴,让合作伙伴基于同样的IaaS层云平台构建本人的产品,就有可能催化SaaS市场的市场空间,与合作伙伴一起更好地服务客户。 阿里云计算巢并不是一个全新的产品,它是阿里云多年积攒下来的技术和产品能力的封装和集成透出。阿里云多年来始终致力于升高产品的应用门槛,而计算巢服务则是通过场景化地封装,解决合作伙伴在交付部署、运维治理、服务降级——在服务客户的全链路过程中碰到的各种各样的问题。 通过计算巢,阿里云凋谢了过来十二年积攒的底层技术能力,包含凋谢阿里云的服务目录,它蕴含了阿里云整个生态的客户以及在这个生态中的获客机会。 合作伙伴面临的四大业务挑战 在最早开始布局计算巢产品的时候,咱们从合作伙伴那里收到了十分多的间接反馈。通过对反馈进行形象、剖析,咱们发现他们面临着四大业务挑战。 第一,如何保障产品服务的稳定性。第二,平安问题,蕴含隐衷爱护和网络安全。第三,如何实现规模化。第四,如何进行多渠道拓展。 计算巢到底提供哪些价值?阿里云计算巢又是如何帮忙合作伙伴应答业务挑战的呢?以下来逐点开展讲讲: 1、保障业务稳定性 首先,产品服务稳定性。阿里云有这样一个合作伙伴,最开始做SaaS,并且做的十分好。随着业务的倒退,他们的头部客户须要做私有化部署,而私有化部署不仅在IDC,还有在云上。每个用户须要在其本人的VPC中构建资源,当客户扩大到几十个的时候,他们原来组织架构曾经没有方法撑持业务持续往前,并且重大影响到前期的整个业务布局。对这样的合作伙伴,计算巢就是要升高他们服务这么多客户的老本。 传统的私有化部署面临着数据孤岛问题,每个环节都是独自的,无奈提前预判,只有当用户反馈的时候你才晓得问题出在哪儿,而后再去排查。尽管在排查问题的时候,通过SOS等监控工具能够取得应用层的一些监控数据进而进行判断,但有时也很难判断这个问题到底出在应用层还是出在基础设施层。如果遇到网络抖动,状况会更加简单。 接入计算巢之后,其底层是对立的阿里云平台,阿里云能够在取得用户受权的状况下,把基础设施层面的数据监控的信息和其余的业务信息,同步提供给合作伙伴,使得合作伙伴能够在事先、事中、预先取得平面的保障,从被动响应变成被动防备。 2、平安网络连接 合作伙伴们遇到的另一个问题就是如何理解阿里云几十个安全类的产品。他们心愿阿里云通知他们特定的业务场景应该应用什么样的产品组合。计算巢不是把这些产品组合通知他们,而是帮忙他们把这些产品进行场景化的封装。 此外,不少客户在云上通过公网连贯,而公网肯定是有平安、时延、流量和带宽等问题。计算巢通过构建对立的大内网,帮忙合作伙伴与客户构建一个平安的云上互联网。 3、助力规模化 在规模化上,合作伙伴要解决的问题是如何疾速规范化地将服务笼罩几十个、几百个甚至上千个企业客户。传统的交付形式显得十分耗老本、精力,并且治理上有大量、根底的反复工作。计算巢能够使得所有的规范产品的交付以较低边际老本的形式实现,特地是在用户侧,能够实现自助选用。同时,也能够帮忙合作伙伴实现规模化的产品交付,进而晋升他们的服务质量。 4、多渠道散发 最初一点是对于计算巢的散发和如何买通多渠道。阿里云有很多企业客户,然而对于SaaS类的合作伙伴,如何去触达To B的场景,如何触达小微企业,是他们须要思考的问题。其实通过计算巢,能够让合作伙伴的产品接入到阿里云的所有生态体系,从而触达到千万级别的企业客户群。 有了全新的多渠道散发形式,原来须要不同的部署环境、不同的形式接入到不同渠道的形式曾经不复存在,原来须要半个星期或者半个月接入工夫老本可能明天变成了半天到一天的工夫。 三、如何接入计算巢产品?明天什么样的产品能够接入到计算巢?阿里云计算巢欢送所有的行业、所有背景的合作伙伴退出进来,把本人的企业应用和SaaS化的企业应用部署在下面,部署到阿里云的生态体系中。 当然,合作伙伴的接入到计算巢平台的老本是绝对比拟低的,因为不要求合作伙伴在利用架构上做任何扭转,咱们只是在服务下面制订一些规范,合作伙伴通过咱们定义的SPI接入进来就能够,对合作伙伴的业务侵入简直为零。 接入到计算巢平台之后,计算巢有残缺的业务和市场的单干打算能够反对合作伙伴,包含在入驻时提供的认证体系及业务培训反对;同时,提供专门的单干反对群,技术专家进行答疑解惑、来实现整个接入的流程与反对。 目前,畅捷通、数云、Avaya、Fortinet 等ISV合作伙伴已入驻计算巢并取得授牌认证。将来,阿里云心愿有更多的合作伙伴接入计算巢,以计算为巢,共筑云计算时代的企业应用新生态。 原文链接本文为阿里云原创内容,未经容许不得转载。

January 14, 2022 · 1 min · jiezi

关于云计算:通过-Amazon-CloudWatch-配合-Amazon-ElastiCache-for-Redis-遵循监控最佳实践

在维持 Amazon ElastiCache 资源的可靠性、可用性与性能方面,监控始终是最为重要的伎俩之一。在本文中,咱们将独特理解如何应用 Amazon CloudWatch 及其他内部工具维持衰弱运作的 Redis 集群,并避免其意外中断。咱们还将具体探讨对扩大需要进行预测及筹备的几种可行办法。 将 Amazon CloudWatch 与 Amazon ElastiCache配合应用的劣势Amazon ElastiCache 与 Amazon CloudWatch 相结合,可能极大晋升资源相干外围性能指标的可见性。此外,Amazon CloudWatch 警报还可能帮忙您设置指标阈值并触发告诉,确保在须要采取预防措施时及时做出揭示。 随工夫对趋势加以监控,还能够帮忙您检测工作负载的持续增长。您能够为数据点设置最长达455天(15个月)的工夫周期,在此窗口内察看 Amazon CloudWatch 指标的扩大状况,据此预测资源的后续利用率与应用状况。 监控资源Amazon ElastiCache Redis 集群的运行状况由要害组件(例如CPU、内存以及网络)的利用率决定。这些组件的适度应用可能导致系统等待时间缩短以及整体性能降落。另一方面,适度配置则可能导致资源得不到充分利用,重大影响老本的优化成果。 Amazon ElastiCache 提供的指标使您可能监控集群;截至本文撰稿时,亚马逊云科技曾经公布18项新的 Amazon CloudWatch 指标。 面向 Amazon ElastiCache 的 Amazon CloudWatch 指标次要分为两类:引擎级指标(由Redis INFO命令生成)以及主机级指标(来自ElastiCache节点的操作系统)。这些指标以60秒为距离对每个缓存节点进行测量并进行公布。只管 Amazon CloudWatch 容许您为每项指标任意指定统计信息与检测周期,但只有通过精心设计、相干组合能力真正服务于零碎运行。例如,CPU 使用率中的“均匀”、“最小”以及“最大”等统计信息十分重要,但“总和”信息则根本没有任何理论价值。 CPU Redis 能够应用不同的 CPU 执行快照保留或者UNLINK等辅助操作,但只能通过繁多线程运行命令。换句话说,Redis 每次只能解决一条命令。 思考到 Redis 的单线程属性,Amazon ElastiCache 提供 EngineCPUUtilization 指标,用以提供对 Redis 过程自身负载状况的准确可见性,从而更好地帮忙您理解 Redis 工作负载运行状态。 不同的用例对于高 EngineCPUUtilization 的容忍度都有所区别,其中不存在通用性质的阈值。但作为最佳实际,本文倡议大家确保您的 EngineCPUUtilization  始终低于90%。 应用应用程序及预期工作负载对集群进行基准测试,能够帮忙您将 EngineCPUUtilization 与零碎理论性能关联起来。咱们建议您针对 EngineCPUUtilization 在不同层级上设置多项 Amazon CloudWatch 警报,以便在达到每项阈值(例如 WARN 为65%,HIGH 为90%)时,抢在集群性能遭逢理论影响前向您发出通知。 ...

January 14, 2022 · 3 min · jiezi

关于云计算:4种高速安全混合云解决方案助力您的云迁移之旅

概述企业上云是企业在数字化转型的要害一步,数据表明寰球有88%的企业将上云作为优先策略,但同时,86%的企业基础架构收入中仍在本地的零碎部署上,这阐明企业向云端迁徙还须要一段时间。同时,私有云、混合云、多云的多种形式接入已成为企业的支流抉择。亚马逊云科技心愿把云迁徙变得更加简略,所以亚马逊云科技始终致力于更新和迭代混合云的性能,帮忙客户实现高速、平安、平滑、高可用的混合云结构解决方案。 本文通过Amazon Direct Connect、Transit VIF、Amazon Transit Gateway Connect等亚马逊云科技网络服务,举荐了以下几种混合云计划:   想要理解更多亚马逊云科技最新技术公布和实际翻新,敬请关注2021亚马逊云科技中国峰会!点击图片报名吧~ 计划一:混合云组网利用直达虚构接口(Transit VIF)实现客户本地公有云和云上网络的高速互联 随着云计算的倒退,企业公有云和私有云互联互通已成为企业广泛的抉择。利用亚马逊云科技的Amazon Direct Connect Gateway的直达虚构接口(Transit VIF),能够轻松帮忙客户搭建一个高速、低提早且平安的混合云。 目前,亚马逊云科技北京区域和宁夏区域的Amazon Direct Connect曾经反对连贯Amazon Transit Gateway。借助此性能,客户能够应用1/10/100 Gbps Amazon Direct Connect将多个亚马逊云区域中的数千个VPC连贯到他们的本地公有云。 Amazon Direct Connect引入了一种称为直达虚构接口的新型虚构接口(Transit VIF),以反对与Amazon Transit Gateway的连贯。客户能够在任何Amazon Direct Connect 接入点应用1/10/100Gbps Amazon Direct Connect创立Transit VIF。通过创立Transit VIF,客户能够让其本地公有云和亚马逊云上数千个VPC互联,买通南北向流量,实现混合云组网的疾速一建部署。 相比于本地公有云通过VGW和VPC建设点到点的Amazon Direct Connect专线不同,应用Transit VIF能够帮忙本地公有云和亚马逊云上的上千VPC同时互联,让客户能够通过一条专线、一次部署、一键结构点到多点的本地到云上的网络,实现混合云组网。 利用Amazon Transit Gateway Connect实现客户SD-WAN网络和云上网络的定制化互联 随着SD-WAN的蓬勃发展,目前曾经有大量的客户实现了企业网络的SD-WAN革新。很多企业心愿除了通过专线的形式连贯亚马逊云之外,还能够疾速高效的将亚马逊云上资源与企业SD-WAN网络互联互通。亚马逊云科技的Amazon Transit Gateway Connect服务正是为满足此类客户的需要应运而生。 目前,亚马逊云科技北京区域和宁夏区域推出了Amazon Transit Gateway Connect服务,给客户提供平安通道和SD-WAN接入云上VPC的能力。 Amazon Transit Gateway Connect是Amazon Transit Gateway新推出的一项性能,它通过将软件定义的广域网(SD-WAN)设施本地集成到亚马逊云中,简化分支机构的连贯。客户当初只需在SD-WAN利用上单击几下,就能够应用通用路由封装(GRE)和边界网关协定(BGP)等标准协议,将其SD-WAN边缘无缝扩大到亚马逊云。Amazon Transit Gateway Connect让客户无需在SD-WAN设施和亚马逊云之间设置多条平安通道,只须要和云上的SD-WAN厂商利用或客户自有的虚拟化利用之间建设一条平安通道,即可实现客户本地公有云和亚马逊云上数千个VPC互联,这大大简化了客户整体网络设计并升高了经营老本。 ...

January 14, 2022 · 1 min · jiezi

关于云计算:使用Amazon-CDK部署基于Amazon-Fargate的高可用易扩展的Airflow集群

前言Apache Airflow(以下简称为Airflow) 是一项由Airbnb在 2014 年推出的开源我的项目,其目标是为了治理日益简单的数据管理工具、脚本和剖析工具,提供一个构建批处理工作流的计划。Airflow是一种可扩大的分布式工作流调度零碎,容许将工作流建模为有向无环图(DAGs),通过这种形式简化数据管道中各个解决步骤的创立、编排和监控。Airflow被广泛应用于机器学习、数据分析/解决以及各类须要流程化的场景。 在2020年初的时候,有一篇blog分析了Airflow架构,并给出了在亚马逊云科技上部署Airflow的倡议。也正因为Airflow在机器学习,数据分析等畛域用户泛滥,为了满足这部分用户的须要,亚马逊云科技在2020年11底推出了托管的Apache Airflow服务Amazon Managed Workflows for Apache airflow (以下简称为Amazon MWAA)。 https://aws.amazon.com/cn/blo... 目前Amazon MWAA曾经在亚马逊云科技寰球大部分区域可用,如果要在尚未公布的区域应用Airflow,或者有定制化部署Airflow的需要,能够应用自建部署的形式。然而,部署Airflow并不是一件简略的事件,如何做好高可用,易扩大,如何保障平安,以及缩小运维难度等有很多细节。本文以在亚马逊云科技中国区部署自建Airflow为例,提出了一个参考架构,并提供了一套Amazon CDK的参考实现,让应用Amazon CDK的用户通过数行代码就能够将整套计划部署到云上。 架构考量Airflow 体系架构概述 如下图所示,Airflow次要组成部分为: Webserver:为用户提供界面用来治理,调度编排工作;Scheduler:解决触发预约的工作流,并将工作提交给执行器运行;Worker:负责解决运行工作;DAG Directory: 用来寄存用户定义的DAG文件;Metadata Database: 用来存储集群的元数据; 用户将DAG文件上传到 DAG Directory,登陆到Webserver,能够治理,调度编排工作。用户的操作被写入Metadata Database,Metadata Database记录着DAG中的工作以及后盾对应的状态,Scheduler 从Metadata Database读取数据,查看每个工作的状态,并将任务调度给Worker,Worker执行工作,更新Metadata Database中的状态信息。 Airflow On Amazon Web Services架构概述 Airflow在亚马逊云科技上进行部署时: Webserver/Scheduler/Worker三个组件,能够部署到Amazon Fargate上,充分利用无服务器架构的劣势,缩小保护工作量;DAT Directory应用Amazon S3,用户将DAG文件上传到Amazon S3,webserver/scheduler将DAG文件同步到集群;Metadata Database应用托管的数据库服务Amazon RDS,进步可用率,缩小保护工作量。整体架构图如下所示: 如下为具体的设计考量: 网络层 应用三层经典架构;Airflow Fargate集群位于Private subnet,Airflow拜访Amazon Public ECR Repository通过Amazon NAT Gateway–> Amazon Internet Gateway拜访,拜访Amazon ECS Control Plane,Amazon CloudWatch,Amazon SecretsManager则通过Amazon Interface Endpoint走内网,拜访Amazon S3通过Amazon Gateway Endpoint走内网;Amazon ElasticCache和Amazon RDS位于Private Subnet,通过Amazon Security Group的限度,只对Amazon Fargate集群凋谢。存储层 ...

January 14, 2022 · 2 min · jiezi

关于云计算:无服务器应用DevOps最新实践内附完整演讲视频

本文内容选自2021中国DevOps社区峰会 · 大连站,孙华老师分享的《无服务器利用DevOps最新实际》文字实录和视频回放。 扫码查看视频回放 以下是演讲文字实录: 大家好,我是孙华,亚马逊云科技无服务器产品专家。很快乐明天有机会跟大家交换无服务器利用DevOps最新实际。明天在我这边45分钟的工夫外面,想跟大家介绍一下什么是无服务器利用,如何开发部署无服务器利用,怎么做CI/CD和监控,如何做到平安的部署等等。 什么是无服务器利用 在亚马逊云科技,咱们认为无服务器计算帮您做到无需治理服务器就能够运行你的代码。你提供代码,定义一下您的代码在什么事件下运行。比方当用户拜访您的网站时,亚马逊会主动提供计算资源,运行你的代码,为用户展现您的网站的内容。 对于亚马逊来说,无服务器计算意味着您不须要部署、装置、降级服务器,同时还能够帮您主动扩大利用。例如,您的APP利用,当用户数量疾速减少的时候,Serverless会帮您主动减少计算资源,保障客户能够失去疾速响应。无服务器利用依照代码理论运行的时长来计费,避免浪费资源。 常见的利用,负载总会有波峰波谷的。例如一个游戏,在白天和夜晚的用户访问量可能相差十倍。如果依照峰值部署须要的服务器,会有大量的服务器闲置。Serverless依照代码理论运行时长计费,您能够节俭很多的老本。无服务器服务是内置高可用的。亚马逊的无服务器计算服务的计算资源散布在多个可用区。如果一个可用区呈现问题,会在其余可用区持续运行,同时其余的可用区有足够的冗余容量来承载这些额定的负载。这样的高可用冗余的计算集群,老本是相当可观的。然而对于用户来说,当您应用这样的Serverless服务时,只须要依照您的代码运行的理论时长,依照毫秒计费。 亚马逊的无服务器计算服务Amazon Lambda到往年曾经公布了7年了。大量用户把Amazon Lambda用在各种场景。首先是IT自动化。在亚马逊上所有服务都提供API,您能够轻松的通过这些API去实现自动化运维。比方您在云上搭建了开发测试环境,这些环境在大家上班之后都是闲置的。咱们能够定义一个定时规定,在上班之后运行一个Amazon Lambda函数去敞开这些环境外面的服务器,在晚上下班之前再运行一个Amazon Lambda函数去启动这些服务器。这样即可用节省成本,又能够让大家有足够的资源能够应用。另外Amazon Lambda每个月提供一百万次调用的收费额度。很多IT自动化的用量根本不产生费用,您能够收费应用。 下一个数据场景就是数据处理。用户上传到图片到Amazon S3对象存储上,咱们要去生成缩略图,或者辨认图片外面有哪些对象。Amazon S3能够在图片上传时主动调用Amazon Lambda进行解决。同时在Amazon IoT的场景中, 大量Amazon IoT的设施采集的数据,能够写入Kinesis数据流,通过Amazon Lambda进行数据解码和转化,用户能够疾速建设实时的监控报表和预警系统。 第三个场景是用户对于Amazon Lambda相熟之后,开始利用Amazon Lambda开发反对业务的微服务,比方Web利用或者手机利用的后端服务。 第四种场景是机器学习,特地是机器学习的推理。机器学习的科学家和工程师通常不心愿去治理服务器,无服务器能够帮忙他们疾速把训练好的模型部署成生产可用的API。 能够总结一下后面提到的特点: 无服务器计算,第一就是不便、快捷,不须要去部署服务器、装置操作系统、装置利用须要的依赖等等,间接把代码提交下来配置好事件源就能够了。第二个就是性能,咱们有一些客户,提供电子发票服务。电子发票是PDF文件,须要转换成缩略图,展现给客户。这个客户原来应用内部的服务去生成PDF的缩略图,每个月要花七八万的费用。通过应用Amazon Lambda,在PDF文件上传到Amazon S3时触发Amazon Lambda函数来做这个事件。发现原来须要10秒能力实现,当初用Amazon Lambda只须要2秒,老本由原来的8万降到当初的不到100元。这也体现了Amazon Lambda能够帮忙客户降低成本。第三点是平安。应用Amazon Lambda,服务器的操作系统和运行时的平安都是由亚马逊来治理的,您只须要负责利用和数据的平安。 因为后面的个性,咱们能够看到在7年中,有十分多的用户开始应用这个服务,这些利用在下面有上万亿次的应用。 如何开发部署无服务器利用? 咱们看一下Serverless利用怎么开发的,其实十分的简略,有几个货色,有一个事件源,触发一个函数的处理器,前面在代码外面能够拜访任何的服务,后端也好或者API也好。 开发也很简略,编写代码、部署到Amazon Lambda、在事件触发时,代码主动运行。当事件产生的时候,Amazon Lambda主动触发你的代码。 这是一个很简略的例子,Amazon Lambda事件外面包含事件源传递过去的数据。这个函数体外面有本人的逻辑代码进行进去,最初返回后果就能够了。 如果要开发Web利用,你能够在前端应用API Gateway提供Http,在您的Amazon Lambda外面,能够间接应用常见的Web框架。 这是一个用Express.js开发Serverless Web利用的例子,通过Serverless把Express.js利用包装起来。通过这形式能够做成你喜爱的Web利用框架来开发Serverless Web利用。 咱们如何把Web利用打包到Amazon Lambda下面?在re:Invent 2020的时候,Amazon Lambda 发表反对容器镜像。Amazon Lambda 反对以容器镜像形式打包和部署函数代码。以前如果太大的依赖库话,可能无奈打包到250MB的Amazon Lambda函数内,所以,应用对立的工具构建容器和基于Amazon Lambda 的利用,反对最大10GB的容器镜像,亚秒级主动扩大,高可用,集成200多事件源。 ...

January 14, 2022 · 1 min · jiezi

关于云计算:COSCon-21-亚马逊云科技技术专家带你借助开源工具做云上开发

开源社寄语第六届中国开源年会(COSCon'21)在2021.10.30-31如期召开。往年的开源寄语,咱们可能想到是三个关键词: 开心 往年的COSCon,咱们的主题是“开心开源 Happy Hacking”,就是心愿所有的开源人,都可能感触到开源给大家带来的幸福、愉悦、开心、高兴的感觉。更心愿可能将这种开心的感觉传递进去,吸引更多的敌人,退出开心开源的小家庭! 出圈 随着越来越多的敌人开始关怀开源,开始询问“开源与咱们是否会有关系”?咱们认为开源这件事件要出圈了,它要从软件开发 IT 畛域走进来,包含开源的方法论要从技术畛域走到非技术畛域。再比如说,开源教育、开源合作、开源翻译、或者是开源创作、开源XX,一旦你把 Open 这种方法论注入到其余畛域的时候,它会发明出更多的可能性。  助跑 如果抚今追昔,咱们兴许能够说:过来的20年是中国开源的跋涉之年。将来的中国开源,将进入腾飞甚至腾飞的时代。而2021年是中国开源的“助跑阶段”。咱们正在调整姿势,正在蓄力,正在会集各方的关注与投入。前景广大,将来可期! 对于云计算(C)论坛云计算与开源建设不同层面的基础设施,开源技术是代码层面的基础设施,云计算是资源层面的基础设施。一方面云计算畛域开源技术倒退迅猛,无效推动技术创新,引领新技术门路;另一方面云计算模式无效推动开源参加企业建设商业模式,丰盛开源技术的应用模式。本次COSCon'21云计算论坛邀请多个云计算畛域开源我的项目深度参与者分享,包含Apache APISIX、Apache EventMesh、JuiceFS 、Vineyard 、Sealos等。 云计算(C)论坛出品规范 1.云计算畛域开源技术分享,重点介绍技术劣势及翻新点; 2.云计算畛域开源技术利用实际分享,重点介绍企业外部云计算畛域开源技术的利用问题和解决思路; 3.云计算畛域开源产业分享,梳理云计算畛域的开源技术发展趋势。 重磅大咖刘勇:亚马逊云科技翻新解决方案架构师 从事IT行业十多年,善于大数据处理,机器学习,数据密集型零碎架构设计。目前在亚马逊云科技解决方案研发核心从事解决方案开发。 演讲主题:《通过开源工具在亚马逊云分钟级创立残缺的Web利用》 内容摘要: 通过亚马逊云科技开源的Amazon CDK工具能够应用您最相熟的编程语言JavaScript, Python, Java, C#甚至是Go语言创立云上资源,开启云端开发。本演讲将率领你入手实现一个分钟级部署好玩的Web利用。 指标听众:计算机机器学习从业者。 席位无限,“码”上报名

January 14, 2022 · 1 min · jiezi

关于云计算:基于云上-Arm-架构赋能数值天气预报

风雨以后,众志成城。天气预测是科技界的难题,咱们始终在致力尝试,用新的云科技来持续尝试。 背景介绍Weather Research and Forecasting Model(WRF)被誉为是次世代的中尺度天气预报模式,很多气象机构都应用WRF来做气象方面的钻研与预测。因为地理信息与实时气象数据量宏大,以及计算逻辑简单,须要高性能的计算集群作为基础设施。Amazon能够提供丰盛的、弹性扩大的高性能计算资源,如64位Arm Neoverse内核定制而成,为在Amazon EC2中运行的云工作负载提供更高的性价比的Graviton2实例。 Amazon Graviton2与第一代Amazon Graviton处理器相比,Amazon Graviton2处理器不论在性能还是性能上都实现了微小的飞跃。它们都反对Amazon EC2 T4g、M6g、C6g和R6g实例,及其具备本地基于NVMe的SSD存储的变体,而且与以后这一代基于x86的实例1相比,这些实例为各种工作负载(包含应用程序服务器、微服务、高性能计算、电子设计自动化、游戏、开源数据库和内存中的缓存)提供高达40%的性价比晋升。 充分利用私有云的弹性,能够使得气象钻研和预测既高效、又经济,并能够以更灵便的形式提供给客户。 本文将具体向您介绍在Amazon上应用Amazon Graviton2实例搭建Amazon ParallelCluster集群、构建WRF、并介绍如何通过WRF并行计算做气象预测的整个流程,让您更轻松地在Amazon中国区开启气象的钻研和预测。  想要理解更多亚马逊云科技最新技术公布和实际翻新,敬请关注在上海、北京、深圳三地举办的2021亚马逊云科技中国峰会!上海站第一天曾经圆满闭幕,今天还有更多嘉宾带来精彩分享,敬请期待~ 构建Amazon ParallelCluster集群Amazon ParallelCluster是一个Amazon反对的开源集群管理工具,它在开源 CfnCluster 我的项目上构建,依据您提交的工作主动设置和治理计算资源和共享文件系统。在Amazon ParallelCluster v2.8.0或更高的版本上,ParallelCluster启用了Ubuntu 18.04和Amazon Linux 2上的Arm实例反对,使得咱们能够实现更高性价比的高性能计算(HPC)。 此外,Amazon ParallelCluster反对各种批处理打算程序,如Amazon Batch、SGE、Torque 和 Slurm,本文将应用Slurm作为批处理程序,ParallelCluster还反对自动化集成Amazon FSx for Lustre并行文件系统和DCV远程桌面。以下是ParallelCluster架构图: 1.启动跳板机实例 关上Amazon治理控制台,抉择EC2服务,点击【启动实例】启动一个新的实例。这台实例对应上图中的跳板机,用于ParallelCluster的集群配置和治理,对性能没有高要求,应用T2.micro或同类型的机型即可。 2.装置Amazon CLI与ParallelCluster 通过ssh登录到跳板机内,装置awscli和parallelcluster命令。 $ pip3 install awscli -U --user$ pip3 install aws-parallelcluster -U --user在装置之前能够用pip—version查看是否曾经装置pip,如果没有装置能够应用以下命令装置,参见: https://pip.pypa.io/en/stable... 3.配置IAM凭证 关上Amazon控制台,抉择IAM服务,抉择一个有足够权限的IAM用户(如Administrator权限),创立新的拜访密钥,并记录创立的拜访密钥的ID与公有拜访密钥(Access Key与Secret Key),用于配置实例的拜访权限。 回到管制实例中,配置IAM Credentials,Access Key ID与Secret Access Key别离填写之前生成的密钥ID与公有拜访密钥。 $ aws configureAWS Access Key ID [None]: ABCD***********AWS Secret Access Key [None]: wJalrX********Default region name [us-east-1]: cn-northwest-1Default output format [None]: json4.初始化ParallelCluster 通常,要配置ParallelCluster集群,您能够应用命令pcluster configure,而后提供申请的信息,例如 Region、Scheduler和EC2实例类型,最初生成~/.parallelcluster/config 配置文件。 此外,您也能够通过创立一个根本配置文件,而后定制该文件以蕴含ParallelCluster特定选项来实现疾速配置。 上面的命令生成一个新的密钥对,查问跳板机实例的元数据以取得子网ID、VPC ID,最初生成配置文件。此外,您也能够间接编辑这个配置文件来增加和更改配置选项。 设置默认区域Amazon_DEFAULT_REGION ...

January 14, 2022 · 2 min · jiezi

关于云计算:从技术新趋势到云原生应用开发云计算下一个十年将走向何方

从最后的陈腐词,到现在造成微小的行业和生态,云计算已蓬勃发展十余年。在这十余年间,一直有新理念、新技术涌现,以致 IT 行业产生了翻天覆地的变动。作为一名新时代的开发者,把握技术的倒退方向,在这个一直变动的世界显得至关重要。 12 月 18 日亚马逊云科技深圳 User Group Community Day 举办。流动率领大家盘点了亚马逊云科技 re:Invent2021 寰球大会的技术创新精髓,解读云计算的最新动向。同时,来自亚马逊云科技的四位开发者围绕云原生利用开发的摸索与实际进行分享,波及无服务器、容器、云原生等多个前沿技术话题探讨。 re:Invent 2021 翻新技术盘点re:Invent2021 寰球大会虽已圆满落下帷幕,但开发者对于这场盛会探讨的激情却丝毫没有退却。物联网、容器、无服务器、机器学习、5G、机器人……数十项前沿畛域的新产品、新性能公布,其中局部可能代表云上世界将来的倒退方向。亚马逊云科技首席开发者布道师王宇博,在本次 Community Day 上从开发者关注的角度,为大家解读了 re:Invent 2021 的技术创新精髓。 在亚马逊云科技所提供的二百多项全功能服务的背地,领有一个外围的驱动力即 API。自 2002 年,贝索斯向全公司公布指令“从今天起,所有的团队都要以服务接口的形式,提供数据和各种性能”后,亚马逊电商零碎都以 API 的形式进行连贯、交互,这促使亚马逊平台的疾速演进。这条准则起初同样也成为亚马逊云科技构建云服务的基石。在始终奉行这条准则的 15 年间,亚马逊云科技总结出 6 条应用 API 的相干教训。 API 是永远的永远不要毁坏向后兼容性从客户场景登程逆向工作让 API 的故障模式有据可查创立具备明确、特定目标,自描述的 API不惜一切代价防止泄露实现细节在介绍完亚马逊云科技泛滥服务背地的外围驱动力后,王宇博别离从开发工具、云原生架构、机器学习、社区这四个开发者最关怀的维度分享了往年 re:Invent 上的翻新和冲破。 01 开发工具 始终以来,亚马逊云科技提供泛滥开发工具帮忙开发者在云端疾速的构建和开发。本次 re:Invent,又全新公布了三大 SDK,别离反对 Swift、Kotlin 和 Rust 语言,进一步满足开发者应用相熟的语言在云端疾速构建的须要。 此外,王宇博还就基础架构即代码 (IaC) 进行介绍。基础架构即代码是在开发畛域中十分热门的话题,通过可编程的形式帮忙开发者疾速的获取和配置资源,通过代码买通软件和硬件。亚马逊云科技次要有两款服务是针对基础架构即代码畛域。第一个是 Amazon CloudFormation,以模板的形式帮开发者创立、配置、治理资源,第二是 Amazon CDK,可能帮忙开发者以相熟的语言定义云基础设施,并通过 Amazon CloudFormation 进一步实现。第三,亚马逊云科技在全栈利用的开发方面公布了一款名为 Amazon Amplify Studio 的产品,可能以低代码的形式构建 Web 利用和 UI,并能够联合 Amazon Amplify 疾速构建全栈利用,买通云端全栈利用开发的全流程。 ...

January 14, 2022 · 2 min · jiezi

关于云计算:再一次重构云计算底座-Amazon-Graviton3

「关注」并「星标」咱们, 每天接管对于亚马逊云科技的最新资讯! 2021亚马逊云科技 re:Invent 寰球大会式公布了最新一代的云原生通用处理器 Amazon Graviton3 以及相干计算实例。从2019年 Amazon Graviton,2020年 Amazon Graviton2 到明天的 Amazon Graviton3,每一次都从芯片开始不断改进计算服务。与 Amazon Graviton2 相比,Amazon Graviton3 集成了550亿个晶体管,计算性能将进步25%,浮点和加密性能将进步两倍。 在机器学习方面,Amazon Graviton3 包含对 bfloat 16数据的反对,将可能提供高达3倍的性能。在性能飞跃的同时,Amazon Graviton3 能耗比照上一代产品降落了60%。 想让处理器性能更强,业界有不同的做法。 第一个办法是晋升处理器频率。更高的频率意思是指处理器能够运行的更快,但这也意味着芯片会要应用更多的电量,而更高的电力意味着高老本,更多的热量,较低的效率。那在这一背景下亚马逊云科技在设计时 Amazon Graviton3 是如何抉择呢?咱们抉择是晋升单个外围的性能,从而晋升每一个循环当中所做的工作负载数量。这样绝大多数工作负载都能够在 Amazon Graviton3 上取得晋升25%的性能晋升。 第二计划是减少更多的核,然而往往更多的核数在理论负载中的性能较低。当咱们做测试的时候发现,内存带宽将极大的影响计算机型,所以在 Amazon Gravtion3 外面咱们并不是应用更多的核,而是改良内存带宽。 C7g实例由新的 Amazon Graviton3 处理器反对, 也是寰球首个采纳最新 DDR5 内存的实例,与上一代 C6g 实例相比,性能进步多达25%。 由 Amazon Graviton3 处理器反对的 C7g 实例与由 Amazon Graviton2 处理器反对的以后一代 C6g 实例相比,可将计算密集型工作负载性能进步多达25%。Amazon Graviton3 处理器与 Amazon Graviton2 相比,为科学计算、机器学习和媒体编码工作负载提供高达2倍的浮点运算性能,为加密工作负载速度晋升高达2倍,为机器学习工作负载提供高达3倍的性能。Amazon Graviton3 处理器的能效也更高,与同类型 Amazon EC2 实例比照,可节俭高达60%的能源消耗。 ...

January 14, 2022 · 1 min · jiezi

关于云计算:超详细的编码实战让你的springboot应用识别图片中的行人汽车狗子喵星人JavaCVYOLO4

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览在《三分钟:极速体验JAVA版指标检测(YOLO4)》一文中,咱们体验了YOLO4弱小的物体辨认能力,如下图,原图中的狗子、人、马都被辨认并标注进去了: 如果您之前对深度学习和YOLO、darknet等有过理解,置信您会产生疑难:Java能实现这些?没错,明天咱们就从零开始,开发一个SpringBoot利用实现上述性能,该利用名为<font color="blue">yolo-demo</font>让SpringBoot利用辨认图片中的物体,其要害在如何应用曾经训练好的神经网络模型,好在OpenCV集成的DNN模块能够加载和应用YOLO4模型,咱们只有找到应用OpenCV的方法即可我这里的办法是应用JavaCV库,因为JavaCV自身封装了OpenCV,最终能够应用YOLO4模型进行推理,依赖状况如下图所示: 关键技术本篇波及到JavaCV、OpenCV、YOLO4等,从上图能够看出JavaCV已将这些做了封装,包含最终推理时所用的模型也是YOLO4官网提前训练好的,咱们只有晓得如何应用JavaCV的API即可YOVO4的paper在此:https://arxiv.org/pdf/2004.10...版本信息这里给出我的开发环境供您参考:操作系统:Ubuntu 16(MacBook Pro也能够,版本是11.2.3,macOS Big Sur)docker:20.10.2 Communityjava:1.8.0_211springboot:2.4.8javacv:1.5.6opencv:4.5.3实战步骤在正式入手前,先把本次实战的步骤梳理分明,前面循序渐进执行即可;为了缩小环境和软件差别的影响,让程序的运行调试更简略,这里会把SpringBoot利用制作成docker镜像,而后在docker环境运行,所以,整个实战简略来说分为三步 :制做根底镜像、开发SpringBoot利用、把利用做成镜像,如下图: 上述流程中的第一步<font color="blue">制做根底镜像</font>,曾经在《制作JavaCV利用依赖的根底Docker镜像(CentOS7+JDK8+OpenCV4)》一文中具体介绍,咱们间接应用镜像<font color="red">bolingcavalry/opencv4.5.3:0.0.1</font>即可,接下来的内容将会聚焦SpringBoot利用的开发;这个SpringBoot利用的性能很繁多,如下图所示: 整个开发过程波及到这些步骤:提交照片的网页、神经网络初始化、文件解决、图片检测、解决检测后果、在图片上规范辨认后果、前端展现图片等,残缺步骤曾经整顿如下图: 内容很丰盛,播种也不会少,更何况前文已确保能够胜利运行,那么,别犹豫啦,咱们开始吧!源码下载本篇实战中的残缺源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blo...):名称链接备注我的项目主页https://github.com/zq2599/blo...该我的项目在GitHub上的主页git仓库地址(https)https://github.com/zq2599/blo...该我的项目源码的仓库地址,https协定git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该我的项目源码的仓库地址,ssh协定这个git我的项目中有多个文件夹,本篇的源码在<font color="blue">javacv-tutorials</font>文件夹下,如下图红框所示: <font color="blue">javacv-tutorials</font>外面有多个子工程,明天的代码在<font color="red">yolo-demo</font>工程下: 新建SpringBoot利用新建名为<font color="blue">yolo-demo</font>的maven工程,首先这是个规范的SpringBoot工程,其次增加了javacv的依赖库,pom.xml内容如下,重点是javacv、opencv等库的依赖和精确的版本匹配:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> <artifactId>yolo-demo</artifactId> <packaging>jar</packaging> <properties> <java.version>1.8</java.version> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version> <springboot.version>2.4.8</springboot.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${springboot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!--FreeMarker模板视图依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>org.bytedeco</groupId> <artifactId>opencv-platform-gpu</artifactId> <version>4.5.3-1.5.6</version> </dependency> </dependencies> <build> <plugins> <!-- 如果父工程不是springboot,就要用以下形式应用插件,能力生成失常的jar --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.bolingcavalry.yolodemo.YoloDemoApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build></project>接下来的重点是配置文件<font color="blue">application.properties</font>,如下可见,除了常见的spring配置,还有几个文件门路配置,理论运行时,这些门路都要寄存对应的文件给程序应用,这些文件如何获取稍后会讲到:### FreeMarker 配置spring.freemarker.allow-request-override=false#Enable template caching.启用模板缓存。spring.freemarker.cache=falsespring.freemarker.check-template-location=truespring.freemarker.charset=UTF-8spring.freemarker.content-type=text/htmlspring.freemarker.expose-request-attributes=falsespring.freemarker.expose-session-attributes=falsespring.freemarker.expose-spring-macro-helpers=false#设置面板后缀spring.freemarker.suffix=.ftl# 设置单个文件最大内存spring.servlet.multipart.max-file-size=100MB# 设置所有文件最大内存spring.servlet.multipart.max-request-size=1000MB# 自定义文件上传门路web.upload-path=/app/images# 模型门路# yolo的配置文件所在位置opencv.yolo-cfg-path=/app/model/yolov4.cfg# yolo的模型文件所在位置opencv.yolo-weights-path=/app/model/yolov4.weights# yolo的分类文件所在位置opencv.yolo-coconames-path=/app/model/coco.names# yolo模型推理时的图片宽度opencv.yolo-width=608# yolo模型推理时的图片高度opencv.yolo-height=608启动类<font color="blue">YoloDemoApplication.java</font>:package com.bolingcavalry.yolodemo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class YoloDemoApplication { public static void main(String[] args) { SpringApplication.run(YoloDemoApplication.class, args); }}工程已建好,接下来开始编码,先从前端页面开始前端页面只有波及到前端,欣宸个别都会发个自保申明:请大家原谅欣宸不入流的前端程度,页面做得我本人都不忍直视,但为了性能的残缺,请您忍忍,也不是不能用,咱们总要有个中央提交照片并且展现辨认后果不是?新增名为<font color="blue">index.ftl</font>的前端模板文件,地位如下图红框: ...

January 14, 2022 · 6 min · jiezi

关于云计算:失去了SDK云计算将会怎样

前言最近,我花了一些工夫在编译、优化我的一台运行OpenWRT的路由器,型号是 Linksys WRT 1900ACS 。为了扩大路由器的性能,就须要在OpenWRT上开发一些新的性能,尤其是须要应用到亚马逊云科技上的一些乏味的服务。当我习惯性地开始应用Amazon SDK 的时候才忽然意识到,在一台硬件配置不高,软件极度精简的零碎中应用这些 SDK 无疑是一件极为侈靡的想法。即便如我手上的这台硬件配置颇高的路由器,也不过只有128M 的存储、512M的内存资源而已。 这或者让我的工作更加乏味,让我能够更深刻地去钻研亚马逊云科技的API的调用机制以及如何更无效应用,而不是依赖于高度封装好的SDK。这个工作的次要挑战是胜利的执行通过身份验证的Amazon REST API申请,例如EC2 的平安组、VPC的ACL规定、Amazon S3上文件的存取以及其它一些有意思的性能。 为什么?我的工作并非如“黑客”那样的非法应用零碎。事实上亚马逊云科技早就针对REST API 的调用提供了规范的调用接口,其中最要害的环节就是名为Signatura Version 4 的API申请报头的签名过程。在亚马逊云科技的文档中对这个流程有具体的介绍,但我置信应该只有很少的人可能读完这个文档,起因是因为这个过程切实是繁-琐-无-比。理智的开发者通常会疏忽这些API而更习惯于应用各类亚马逊云科技的SDK。甚至,某些简略的工作也齐全能够通过Amazon-Cli,应用一段脚本来解决问题。 然而,就像我的状况一样。某些场景下可能无奈应用实用于工作平台或者编程语言的SDK,这些需要包含但不仅限于这些 1.资源限度。例如嵌入式环境中 2.性能要求。例如性能较低的CPU这是我做的一个简略的性能比照。场景是针对S3 上的一个文件下载到本地 3.SDK的缺失。例如macOS 上的Amazon SDK 4.短少特定的语言的SDK。例如Rust等 (注:rusoto为非官方的SDK包) 5.现有SDK性能的缺失。例如 Amazon Transcribe 实时转录的性能 5.缩小依赖。例如应用Python 的boto3, 就须要装置这样的一些依赖项python3、python3-yaml、python3-pyasn1、python3-botocore、python3-rsa、 python3-colorama、python3-docutils、python3-s3transfer 等等 此外,理解并把握了Amazon REST API 的细节,对于开发人员在进行系统优化、架构设计以及晋升零碎安全性等方面肯定大有裨益。 咱们须要的工具 对于这项工作,咱们将会用到: 1.python3+ (python2 实践上也能够实现,但我没有去尝试)2.能够装置Python 的requests 包(pip3 install requests)。也能够应用Python内置的urllib而不必requests。 2.文本编辑器 (例如我罕用的vim) 3.curl (用来申请 Web 服务的命令行工具) 4.openssl (平安通信的根底软件包) 5.sed (一种流编辑器,罕用于Linux 脚本中) 咱们将应用这些工具别离在Python程序以及shell 脚本中实现对于Amazon  API的调用。通常,亚马逊云科技的SDK (例如用于Python的boto3)会帮忙咱们的利用主动实现申请的签名,因而对于开发者来说这个环节是通明的。而对于明天的这个工作咱们将须要本人入手实现最重要的签名的操作。 ...

January 13, 2022 · 1 min · jiezi

关于云计算:云消费模式转变满足企业的个性化需求是成功混合云的核心

在当今世界的云部署中,企业的古代数字分布式个性须要一系列基础设施选项,以容许每个客户利用混合云技术来更好地满足他们的独特需要,同时优化相干老本。 面对基础设施的复杂性,咱们如何能力实现这种灵活性,并且依然在古代 IT 堆栈中适应肯定水平的遗留 IT,其中经营模型仍在为下一代用例从新设计和构建? 在上世纪后半叶,企业买家和集体消费者都开始想要以他们爱好的形式提供的货色(产品、服务和介于两者之间的所有)。不论是企业还是集体都意识到,他们能够依照本人想要的形式领有定制化的产品或服务。 个性化需要的力量和客户关系治理 (CRM) 的衰亡发明了一种新型买家。当初,无论是集体消费者还是企业洽购的用户,领有抉择自在都更加合乎其需要。 购买力偏好 如果咱们将这种购买力偏好与古代数字社会构造的事实联合起来,并思考云计算当初如何形成所有商业的根底,就能了解为什么每个云都须要不同,并以此来吸引消费者。 例如,局部云部署将针对输出/输入事务周长进行优化,局部将针对 CPU 速度进行优化,局部会将具备杰出的执行剖析调用的节奏,而另一些将针对存储容量进行优化等等。咱们正在多云部署中跨本地公有-公共混合结构构建这些云实例,其中一些多云复杂性进一步扭转了场面。 除了部署的特定类型的云之外,每个组织在云演进的路线上都有不同的地位。只管有许多云原生组织,但大量遗留 IT 资产也须要设计到以后 IT 堆栈的古代构造中。 企业须要以最灵便的混合形式配置、服务(部署)和交付(保护)他们的云,并以正确的形式为业务应用该 IT 资源. 云中的凌乱 在这种对灵活性和抉择的需要中,云创立过程中也呈现了一些凌乱,其中一些是因为具备不同治理界面的独立云环境造成的。作为其进入市场和创立品牌形式的一部分,云服务提供商天然会辨别他们的产品。但这些区别很少减少任何有凝聚力的多云联合的概念。 将这些因素增加到不可协商的合同和其余限度因素(例如预留实例合同),云环境开始变得更难应用。 通常依据企业外部排查,会发现云资源(计算、存储、剖析、网络等)通常散布在简单的不同团队构造中。当这些不同的团队、部门和部门应用不同的软件免费、门户和数据交换渠道时,就会失去简单的云。 对立的治理立体 因为这种成分组合形成了大部分常见的云部署环境,那么咱们就能够了解对立治理立体如何提供清晰视图。从这个更高的功率高度,咱们能够在不同的较低级别的云根底上利用雷同的技术来实现内置网络和应用现有平安设置的能力。 对立的治理立体不仅反对多个用例,它还提供全面的集中管理和治理,无论哪个(或多个)用户组拜访其资源。 每个企业员工都须要以不同的形式部署和运行云。开发人员须要云服务来进行疾速部署和测试;业务经理须要云服务来展现具备简化用例动静的高可用性拜访,经营人员须要云平安、可见、功能强大,同时还易于保护和更新。 云的需要多样 从云计算的现状来看,依据剖析公司Gartner 的数据理解到,到 2021 年底,最终用户在公共云服务上的收入从 2020 年的 2700 亿美元增长到 3323 亿美元,增长 23.1%。从软件即服务 (SaaS)、基础设施即服务 (IaaS) 和桌面即服务 (DaaS) 到自托管公共云,在不同的云生产模式上的收入模式也不再是一刀切。 能够将云计算服务类比为为顾客提供美食服务,如果有一个繁多的“膳食”来自云计算部署,那么简直每个人都心愿它有不同的滋味、不同的尺寸、造成特定的形态或模具并在不同的盘子上交付……也有些人会想要一个可近程拜访的外卖订单。 并且,除了“诞生在云中”的小公司外,当初的企业依赖于大量现有的软件和应用程序,这些软件和应用程序不能简略地搁置在云原生替代品上。技术供应商必须对客户的需要放弃同理心,以保护现有的应用程序资产。 淘汰遗留应用程序老本昂扬,须要破费大量工夫和精力,但企业不应受到这些限度的妨碍。此外,与公共云平台、公有云平台、混合(公共和公有)云平台以及传统/非云企业基础设施相干的所有权老本可能差别很大,因而理解不同的部署模型如何与它们的现有工作负载和业务需要相匹配至关重要。 抉择当代云不仅意味着可能向上和向下的部署云实例的资源能力,也意味着抉择现实硬件的能力,管理程序和云层给定的工作负载或更宽泛的工作所需的过程。 如果一家企业对本人的云生产有这种能力,那么能够认为它领有了本人的云计算。将组织从传统技术的锚定效应以及许可证可移植性限度造成的连累和加速效应中解放出来,企业能够在任何模式的任何硬件上应用他们想要的云。 采纳渐进式办法实现超交融基础设施(HCI)软件解决方案,企业能够实现他们从真正无效的混合云模型中寻求的个性化。混合多云平台部署应具备在公有云或多个公共云中运行应用程序所需的灵活性、简略性和老本效益。 所有这些都产生在部署环境中,云运营商和管理员能够应用单个治理立体来真正治理他们的公有和公共云基础设施。当企业能够将他们的云资产作为一个繁多的云来治理和经营时,他们能够从中取得更高的敏捷性,从而达到一个新的灵活性档次。

January 13, 2022 · 1 min · jiezi

关于云计算:如何做好数字化体验管理了解一下

简介:本文次要分为三局部,第一局部是数字化体验的必要性,从数字化体验治理对业务的影响和数字化体验治理对企业的价值两个方面来介绍其必要性;第二局部,ARMS 在数字化体验治理上的产品能力介绍;第三局部,联合客户案例进行最佳实际分享。 作者:徐葛 大家好,我是阿里云云原生 ARMS 产品经理徐葛,明天给大家带来可观测系列课程的第三节课 -《业务&数字化体验治理场景解读》。本文次要分为三局部,第一局部是数字化体验的必要性,从数字化体验治理对业务的影响和数字化体验治理对企业的价值两个方面来介绍其必要性;第二局部,ARMS 在数字化体验治理上的产品能力介绍;第三局部,联合客户案例进行最佳实际分享。 数字化体验治理的必要性为什么咱们须要数字化体验治理呢?国外调研报告显示,70% 用户反馈网页关上速度会间接影响用户在线上网站进行购物的志愿。亚马逊也发现网站加载速度每减少 100 毫秒,整体销售额将缩小 1%。 总的来看,用户体验将会间接影响到业务体现。那么数字化体验对于企业来说,会带来哪些价值?咱们认为数字化体验的价值体现在三个方面: 第一个就是量化,置信大家都可能听过一句话 --「如果说你不可能量化它,你也没方法优化它」因而,把主观的用户体验量化成具体指标,同时提供可视化的剖析能力,来帮忙企业理解整体用户终端的体验程度与存在的问题。同时除了可能量化咱们本身产品的用户体验指标,咱们也能够取得所在行业的基准指标,甚至是竞品体验指标。有了量化数据,咱们能够通过数字化体验工具实现对数据的洞察与利用。比如说,对可用性和页面性能的问题定位,对问题影响面的定界,去剖析这个问题到底是地区问题、运营商问题,还是说设施问题造成的。最初,有了这些洞察论断当前,ARMS 用户体验交互工具也会对体验问题提供优化倡议,帮忙咱们去针对性的修复问题。更快的发现问题,缩小业务影响,同时升高整体故障修复工夫。 因为数字化体验对企业来说是如此重要, ARMS 在数字化体验场景提供了比拟全方位的工具,针对数字化体验个别有两种形式,一种叫合成观测,咱们比拟熟知的概念叫拨测。另外一种叫实在流量观测。针对于合成 ARMS 这边提供了云拨测产品,针对于实在流量,ARMS 这边提供了前端性能剖析与 APP 性能剖析两款产品。 简略来说,云拨测就是通过事后建设好的不同地区、不同运营商、不同设施和不同类型的检测点,对指标网址进行主动式模仿拜访,获知可用性以及性能相干指标。同时,得益于云拨测的黑盒模式,还能够对竞品的体验指标进行采集和剖析。在实在流量观测方面,ARMS 分为针对于 web 的前端性能剖析和针对于 APP 的性能剖析。针对 web 前端观测,ARMS 反对对网站、H5、小程序进行治理,第一是提供经营相干的剖析能力,包含 PV/UV 等数据以及页面性能相干的剖析,另外还能够针对于 API 申请联合 ARMS 利用性能剖析提供端到端的链路关联剖析能力。在挪动端上,APP 性能剖析可针对于 iOS 利用和 Android 利用实现解体剖析、性能剖析、近程日志拉取,以及不同设施、不同运营商、不同网络的多维分析能力。 那么这两者有什么区别,它们别离适宜于哪些场景呢?这里简略总结一下: 首先,从流量角度来看,云拨测其实不是实在流量,它是模仿拜访流量。前端性能剖析和 APP 性能剖析基于实在流量进行性能剖析,所以,从这里能够看出云拨测不须要流量,也能实现对网站或 API 接口进行性能治理。前端性能剖析与 APP 性能剖析,须要有实在流量才可能实现数字化体验治理。 其次,从模式上看,云拨测是被动伎俩,它会被动对网站或者是 APP 的提供商进行拜访,更快、更早的发现体验或其余相干问题,可能在用户之前去解决和修复这些问题。前端性能剖析与 APP 性能剖析更多的是被动式伎俩,有了用户拜访流量当前,才可能获知相干指标,从而实现对应剖析。 最初,从数据量来看,云拨测拜访频率和拜访次数都是可能设定好,当时可控的,数据量相对来说较少。而前端性能剖析和 APP 性能剖析,因为采集的是实在流量数据,所以网站及 APP 上的交互事件都会产生对应指标、日志,这都将产生大量数据。 总结来看,云拨测更多实用于获取基准体验指标,例如某地区如果没有用户流量的话,通过云拨测对网站进行拨测,获知这个地区整体性体验指标。同时,还能够对行业竞争对手网站进行拨测,获取到行业基准体验指标。而前端性能剖析和 APP 性能剖析因为基于实在流量,获取的都是网站或者 APP 的实在体验指标。比方针对某新版本公布当前,验证整体体验是否达到了预期成果。另外,云拨测适宜诊断及短期关注的体验问题,前端性能剖析和 APP 性能剖析适宜长期跟踪 APP 或网站性能,并辨认出潜在问题。也就是说云拨测可能帮忙咱们答复的是已知问题的答案,比如说这个网站到底是可不可用?然而没方法答复潜在的问题,也就是说当你还不晓得问题出在哪里的时候,这种场景比拟适宜实在流量性能剖析。 ...

January 13, 2022 · 2 min · jiezi

关于云计算:制作JavaCV应用依赖的基础Docker镜像CentOS7JDK8OpenCV4

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览在《三分钟:极速体验JAVA版指标检测(YOLO4)》一文中,咱们体验了YOLO4弱小的物体辨认能力,如下图: 如果您已看过《三分钟:极速体验JAVA版指标检测(YOLO4)》,甚至入手实际操作过,您应该会对背地的技术细节感兴趣,接下来就请随欣宸一起入手实战,从无到有将这个利用开发进去;实战内容为了缩小环境和软件差别的影响,让程序的运行调试更简略,也为了让利用能够在容器环境运行,最终整个利用会被制作成docker镜像,所以咱们的指标被设定为上面三项:开发出java版的物体辨认利用将此利用制作成docker镜像在docker环境运行这个利用基于上述指标,咱们能够确定以下操作步骤:筹备好docker根底镜像开发java利用将java利用打包成package文件,集成到根底镜像中,失去最终的java利用镜像整个流程如下图所示: 本篇的指标就是上述第一步:筹备好docker根底镜像制作根底镜像如果您有过制作java利用镜像的经验,肯定会产生疑难:如下图红框所示,个别不都是把OpenJDK的官网镜像作为根底镜像吗?为啥要用一篇文章来讲根底镜像的事件? 对于物体检测的利用来说,OpenJDK的官网镜像是不够用的,因为用java实现检测须要一个关键技术:javacv,在javacv运行过程中须要用到opencv的一些本地库,因而须要在运行环境中装置opencv如下图所示,一个利用自下而上由六局部形成,如果将底部的操作系统、JDK、OpenCV做成根底镜像就不便多了,咱们开发利用的时候只有需关注下面三层即可,而下面三层不就是个一般的maven工程吗? 至此,聪慧的您对接下来要做的事件应该很分明了:编写Dockerfile文件用来制作镜像,这个镜像中要有CentOS7 + JDK1.8 + OpenCV4分两步走我打算先做一个CentOS7 + JDK8的镜像,在此基础上再做一个集成了OpenCV的镜像,这样在一些不须要OpenCV的场景中,我还能独自应用CentOS7 + JDK1.8的镜像剖析实现,开始入手吧CentOS7 + JDK8的镜像之所以抉择CentOS作为操作系统,是因为平时工作中最罕用的就是它了纵观OpenJDK官网的各种镜像,并没有发现CentOS作为操作系统的,因而本人动手做一个吧,思路很简略:找到OpenJDK的Dockerfile文件,把它的根底镜像换成CentOS7.6即可以下是Dockerfile的所有内容,可见外围是依据不同的操作系统下载文件而后装置,逻辑简略清晰就不多说了:FROM centos:7.6.1810RUN set -eux; \ yum install -y \ gzip \ tar \ binutils \ freetype fontconfig \ ;ENV JAVA_HOME /usr/java/openjdk-8ENV PATH $JAVA_HOME/bin:$PATH# Default to UTF-8 file.encodingENV LANG C.UTF-8RUN set -eux; \ \ arch="$(objdump="$(command -v objdump)" && objdump --file-headers "$objdump" | awk -F '[:,]+[[:space:]]+' '$1 == "architecture" { print $2 }')"; \ case "$arch" in \ 'i386:x86-64') \ downloadUrl='https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_x64_linux_8u292b10.tar.gz'; \ ;; \ 'aarch64') \ downloadUrl='https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jdk_aarch64_linux_8u292b10.tar.gz'; \ ;; \ *) echo >&2 "error: unsupported architecture: '$arch'"; exit 1 ;; \ esac; \ \ curl -fL -o openjdk.tgz "$downloadUrl"; \ curl -fL -o openjdk.tgz.asc "$downloadUrl.sign"; \ \ export GNUPGHOME="$(mktemp -d)"; \# pre-fetch Andrew Haley's (the OpenJDK 8 and 11 Updates OpenJDK project lead) key so we can verify that the OpenJDK key was signed by it# (https://github.com/docker-library/openjdk/pull/322#discussion_r286839190)# we pre-fetch this so that the signature it makes on the OpenJDK key can survive "import-clean" in gpg gpg --batch --keyserver keyserver.ubuntu.com --recv-keys EAC843EBD3EFDB98CC772FADA5CD6035332FA671; \# TODO find a good link for users to verify this key is right (https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2019-April/000951.html is one of the only mentions of it I can find); perhaps a note added to https://adoptopenjdk.net/upstream.html would make sense?# no-self-sigs-only: https://salsa.debian.org/debian/gnupg2/commit/c93ca04a53569916308b369c8b218dad5ae8fe07 gpg --batch --keyserver keyserver.ubuntu.com --keyserver-options no-self-sigs-only --recv-keys CA5F11C6CE22644D42C6AC4492EF8D39DC13168F; \ gpg --batch --list-sigs --keyid-format 0xLONG CA5F11C6CE22644D42C6AC4492EF8D39DC13168F \ | tee /dev/stderr \ | grep '0xA5CD6035332FA671' \ | grep 'Andrew Haley'; \ gpg --batch --verify openjdk.tgz.asc openjdk.tgz; \ rm -rf "$GNUPGHOME"; \ \ mkdir -p "$JAVA_HOME"; \ tar --extract \ --file openjdk.tgz \ --directory "$JAVA_HOME" \ --strip-components 1 \ --no-same-owner \ ; \ rm openjdk.tgz*; \ \ rm -rf "$JAVA_HOME/jre/lib/security/cacerts"; \# see "update-ca-trust" script which creates/maintains this cacerts bundle ln -sT /etc/pki/ca-trust/extracted/java/cacerts "$JAVA_HOME/jre/lib/security/cacerts"; \ \# https://github.com/oracle/docker-images/blob/a56e0d1ed968ff669d2e2ba8a1483d0f3acc80c0/OracleJava/java-8/Dockerfile#L17-L19 ln -sfT "$JAVA_HOME" /usr/java/default; \ ln -sfT "$JAVA_HOME" /usr/java/latest; \ for bin in "$JAVA_HOME/bin/"*; do \ base="$(basename "$bin")"; \ [ ! -e "/usr/bin/$base" ]; \ alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ done; \ \# basic smoke test javac -version; \ java -version写完之后执行<font color="blue">docker build -t bolingcavalry/centos7.6-jdk8:0.0.1 .</font>即可生成镜像,如果您有hub.docker.com的账号,还能够将其推送到地方仓库,给更多人应用用history命令看看镜像内容,详情如下,共计五百多兆,曾经不小了:will@Mac-mini$ docker history bolingcavalry/centos7.6-jdk8:0.0.1IMAGE CREATED CREATED BY SIZE COMMENTa5dead4a6505 2 days ago /bin/sh -c set -eux; arch="$(objdump… 209MB <missing> 2 days ago /bin/sh -c #(nop) ENV LANG=C.UTF-8 0B <missing> 2 days ago /bin/sh -c #(nop) ENV PATH=/usr/java/openjd… 0B <missing> 2 days ago /bin/sh -c #(nop) ENV JAVA_HOME=/usr/java/o… 0B <missing> 2 days ago /bin/sh -c set -eux; yum install -y … 144MB <missing> 2 years ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B <missing> 2 years ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B <missing> 2 years ago /bin/sh -c #(nop) ADD file:54b004357379717df… 202MB我这里曾经推送到hub.docker.com下来了,执行以下命令即可下载到本地:docker pull bolingcavalry/centos7.6-jdk8:0.0.3CentOS7+JDK8+OpenCV4镜像接下来能够集成OpenCV4了,这里有两个关键点须要留神:受到JavaCV依赖的束缚,OpenCV的版本要用<font color="red">4.5.3</font>OpenCV编译的时候要求cmake版本是3.x,因而须要下载cmake对应版本最终,Dockerfile内容如下,根底镜像是后面做好的<font color="blue">bolingcavalry/centos7.6-jdk8:0.0.1</font>,先是装置一大堆编译所需的利用,而后下载cmake并装置,再下载OpenCV-4.5.3版本的源码而后编译,就这么简略(但其间的调试工作还是不少的,不说了,说多了都是泪):FROM bolingcavalry/centos7.6-jdk8:0.0.1RUN echo "export LC_ALL=en_US.UTF-8" >> /etc/profile \ && source /etc/profileRUN set -eux; \ yum install -y \ make \ gcc \ gcc-c++ \ gtk+-devel \ gimp-devel \ gimp-devel-tools \ gimp-help-browser \ zlib-devel \ libtiff-devel \ libjpeg-devel \ libpng-devel \ gstreamer-devel \ libavc1394-devel \ libraw1394-devel \ libdc1394-devel \ jasper-devel \ jasper-utils \ swig \ python \ libtool \ nasm \ build-essential \ ant \ unzip \ ;RUN set -eux; \ curl -fL -o cmake-3.12.2-Linux-x86_64.tar.gz https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz \ && tar -zxvf cmake-3.12.2-Linux-x86_64.tar.gz \ && mv cmake-3.12.2-Linux-x86_64 cmake-3.12.2 \ && ln -sf /cmake-3.12.2/bin/* /usr/bin; \ curl -fL -o opencv-4.5.3.zip https://codeload.github.com/opencv/opencv/zip/4.5.3; \ unzip opencv-4.5.3.zip; \ rm -rf opencv-4.5.3.zip; \ cd opencv-4.5.3; \ mkdir build; \ cd build; \ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..; \ make; \ make install; \ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TESTS=OFF ..;\ make -j8; \ make install执行命令<font color="blue">docker build -t bolingcavalry/opencv4.5.3:0.0.1 .</font>即可生成镜像,如果您有hub.docker.com的账号,还能够将其推送到地方仓库,给更多人应用用history命令看看镜像内容,详情如下,倒吸一口凉气,这么大的体积,敬爱的读者们会不会打死我...:will@Mac-mini centos7-jdk8 % docker history bolingcavalry/opencv4.5.3:0.0.1IMAGE CREATED CREATED BY SIZE COMMENTd1518ffa4699 5 days ago RUN /bin/sh -c set -eux; curl -fL -o cma… 819MB buildkit.dockerfile.v0<missing> 5 days ago RUN /bin/sh -c set -eux; yum install -y … 637MB buildkit.dockerfile.v0<missing> 5 days ago RUN /bin/sh -c echo "export LC_ALL=en_US.UTF… 1.84kB buildkit.dockerfile.v0<missing> 3 months ago /bin/sh -c set -eux; arch="$(objdump… 209MB <missing> 3 months ago /bin/sh -c #(nop) ENV LANG=C.UTF-8 0B <missing> 3 months ago /bin/sh -c #(nop) ENV PATH=/usr/java/openjd… 0B <missing> 3 months ago /bin/sh -c #(nop) ENV JAVA_HOME=/usr/java/o… 0B <missing> 3 months ago /bin/sh -c set -eux; yum install -y … 144MB <missing> 2 years ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B <missing> 2 years ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B <missing> 2 years ago /bin/sh -c #(nop) ADD file:54b004357379717df… 202MB我这里曾经推送到hub.docker.com下来了,执行以下命令即可下载到本地:docker pull bolingcavalry/opencv4.5.3:0.0.1这里要揭示一下,opencv的编译是十分耗时的,请确保docker宿主机的性能不要太差,也请您急躁期待编译过程至此,合乎咱们要求的根底镜像<font color="blue">opencv4.5.3:0.0.1</font>已制作实现,有了它,咱们的Java利用所需的jdk和opencv就凑齐了,在开发javacv相干的利用时,以它为根底镜像就无需再为环境和依赖库操心,终于能够聚焦java开发了你不孤独,欣宸原创一路相伴Java系列Spring系列Docker系列kubernetes系列数据库+中间件系列DevOps系列欢送关注公众号:程序员欣宸微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游Java世界...https://github.com/zq2599/blog_demos

January 13, 2022 · 4 min · jiezi

关于云计算:新品发布-Cloudpods-386-版本上线

1月12日,Cloudpods 新版本 v3.8.6 正式公布。本次更新次要修复了若干bug,倡议大家尽快降级,防止受到影响,具体更新如下: 优化 【主机】同步状态后展现最新的工作状态信息【主机】平安组名称反对中文输出【镜像】保留镜像减少进度信息问题修复 【零碎】修复零碎初始化后服务配置信息为空的问题【主机】修复云上监控数据可能为空的问题【主机】修复windows虚拟机名称超过15字符导致无奈失常启动的问题【零碎】修复云上日志增长过快导致环境磁盘有余的问题【零碎】修复日志加载问题【主机】修复克隆操作日志缺失【主机】修复 ceph 跨 pool 克隆镜像失败问题【主机】修复迁徙后复原失败的问题【主机】修复 usb 透传参数和 spice 抵触问题【主机】usb 透传应用中插拔平台无奈清理记录的问题【主机】修复迁徙后指标宿主机 id 返回不对导致的 cpu 负载过高问题【主机】修复克隆后同步状态的问题【宿主机】调整 arp gc threshold【宿主机】对立设置 ovs 网桥的 MTU降级形式 欢送交换降级详情!

January 12, 2022 · 1 min · jiezi

关于云计算:行业云说直播间智慧能源-低碳未来正式上线

直播主题:智慧能源 低碳将来上线工夫:1月13日(周四)16:00-17:30内容简介:主题1-绿色数据中心建设计划(能源云计划专家 孙启扩)主题2-伏电站智能运维平台解决方案(能源云产品经理 金明杰)主题3-智慧能源双碳云平台建设计划(能源云双碳专家 郑舒文)

January 12, 2022 · 1 min · jiezi

关于云计算:关于-k8s-你需要知道的事-云端技能包

云资源优化服务 SpotMax无缝集成了Kubernetes,可便捷实现容器的治理与自动化公布。==>>戳链接理解SpotMax在往期的“云”住民生存训练营--玩转k8s直播中,汇量科技技术VP、首席工程架构师蔡超介绍了一系列实用的k8s一线实践经验。以下是文字版内容节选。关上你的小本本,开始做笔记吧! Make the Things Immutable CI/CD过程是⼀个一直将“可变”转化为“不可变”的过程,即让利用公布变得稳固、可反复。 如图,整个流程中,咱们顺次锁定了业务逻辑、运行环境、拓普部署构造等。最初加上相干的运行时配置, 如ConfigMap中配置,就构建出了整个服务的运行时。 不可变基础设施(immutable infrastructure)是云原生畛域中一个重要概念。同样地,带着将“mutable”转为“immutable”的思维,咱们将更能领会k8s的设计理念与其深层逻辑。 Map Your Organization into K8s 为何须要 Map Your Organization into K8s(在K8s中映射组织架构)? 晚期云原生的定义蕴含了4个局部:微服务、容器化,继续公布 CD,DevOps。在这背地,人们经常会提到康威定律: “零碎的架构肯定要合乎组织的架构,有什么样的组织,也会设计出什么样的软件系统的架构。”——Melvin E. Conway康威定律曾经被大量麻利的组织所验证无效,例如 Amazon 等云原生和微服务的先行者。因而,在 k8s 中映射组织架构,是 DevOps 和微服务等云原生实际的重要一步。 Kubernetes 不仅是容器编排引擎,更是 DevOps 和继续公布的外围——开发、部署、整个继续公布的过程都构建在 k8s上。 其中,Namespace 的概念不仅能够用来组织微服务,同样能够用来实现多租户治理,这一过程可无效配合微服务和 DevOps 的开发理念、并恪守了康威定律。 咱们能够将整个应⽤相干的多个微服务、以及与之对应的我的项目、开发团队映射到 K8S中,实现更高效地构建 CD、放弃不同环境的一致性,从而便捷实现人员的权限管制和治理。 构建镜像:Less is more 制作 docker 时,镜像的 size 越小越好,即 less is more——更小的镜像,也会有更少的破绽,从而更加平安。 此外,如果镜像太大,每次启动新的 container/pod 时,pull镜像的工夫将会过长,因而,更小的镜像也能够实现疾速 scaling。 dockerfile 中的 base 抉择不同,会带来很大差异。比拟两个罕用根底镜像的大小: ubuntu:72.8M alpine:5.59M 当然,更小的镜像,镜像中的工具就会更少——这是一个Trade-Off。 然而在 production 时,仍然应该尽量将镜像的 size 管制得更小,可把调试做在 Dev 镜像外面,让非生产环境实现这一工作。在生产环境中,咱们应该用更小的镜像,实现更快的启动速度,保障更高的安全性。 ...

January 12, 2022 · 1 min · jiezi

关于云计算:三分钟极速体验JAVA版目标检测YOLO4

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览检测照片中的物体,用Java能够实现吗?能够,明天咱们用起码的工夫、最简略的操作来体验这个实用的性能,您提交一张一般照片后,会看到下图成果,原照片上的狗子、人、马都被辨认进去,每个辨认框的左上角是类别和置信度,最初,图片左上角还有本次辨认所用工夫: 接下来请随本文一起入手来实现上述成果,整个过程分三步实现:下载模型和配置文件运行docker容器,这是个web服务,咱们用浏览器拜访此服务,提交照片实现检测验证成果(在浏览器上关上web页面,提交图片,期待检测后果)危险提前告知为了简化操作,接下来会用到docker,对应的镜像体积微小,达到了恐怖的1.57G,建议您为本人的docker做好减速配置,能够缩小下载等待时间;因为opencv体积宏大,再加上javacv的依赖库也不小,这才导致超大镜像的呈现,还望您多多海涵,题目中的《三分钟》是要去掉镜像的等待时间的,您要是感觉欣宸的题目起得很无耻,我感觉您是对的…环境信息本次实战举荐的环境信息如下:操作系统:Ubuntu 16(MacBook Pro也能够,版本是11.2.3,macOS Big Sur)docker:20.10.2 Community不多说了,立刻入手!下载模型和配置文件本次实战所须要的文件有两种下载方式,您二选一即可第一种是从官网下载,从上面这三个地址别离下下载:YOLOv4配置文件: https://raw.githubusercontent...YOLOv4权重: https://github.com/AlexeyAB/d...分类名称: https://raw.githubusercontent...第二种是从csdn下载(无需积分),上述三个文件我已打包放在此:https://download.csdn.net/dow...上述两种形式无论哪种,最终都会失去三个文件:yolov4.cfg、yolov4.weights、coco.names,请将它们放在同一目录下,我是放在这里:<font color="blue">/home/will/temp/202110/19/model</font>新建一个目录用来寄存照片,我这里新建的目录是:<font color="blue">/home/will/temp/202110/19/images</font>,留神要确保该目录能够读写最终目录构造如下所示:/home/will/temp/202110/19/├── images└── model ├── coco.names ├── yolov4.cfg └── yolov4.weights运行docker容器执行以下命令即可实现服务部署(留神方才提到的两个目录都被映射到容器中了):sudo docker run \--rm \--name yolodemo \-p 8080:8080 \-v /home/will/temp/202110/19/images:/app/images \-v /home/will/temp/202110/19/model:/app/model \bolingcavalry/yolodemo:0.0.1控制台会输入springboot的启动信息: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.4.8)2021-10-19 07:39:20.112 INFO 1 --- [ main] c.b.yolodemo.YoloDemoApplication : Starting YoloDemoApplication using Java 1.8.0_292 on 06e6b68f43ca with PID 1 (/app started by root in /)2021-10-19 07:39:20.115 INFO 1 --- [ main] c.b.yolodemo.YoloDemoApplication : No active profile set, falling back to default profiles: default2021-10-19 07:39:20.997 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)2021-10-19 07:39:21.010 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2021-10-19 07:39:21.010 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.48]2021-10-19 07:39:21.083 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2021-10-19 07:39:21.084 INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 915 ms2021-10-19 07:39:21.157 ERROR 1 --- [ main] c.b.y.controller.YoloServiceController : file.encoding is utf-82021-10-19 07:39:23.449 INFO 1 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index2021-10-19 07:39:23.627 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''2021-10-19 07:39:23.640 INFO 1 --- [ main] c.b.yolodemo.YoloDemoApplication : Started YoloDemoApplication in 3.893 seconds (JVM running for 4.329)2021-10-19 07:39:49.872 INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'2021-10-19 07:39:49.872 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'2021-10-19 07:39:49.873 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms部署实现,接下来体验服务验证成果验证成果浏览器拜访<font color="blue">http://192.168.50.27:8080</font>,这里的<font color="red">192.168.50.27</font>请改成docker宿主机IP(要敞开防火墙!),可见操作页面如下图(欣宸的前端开发程度渣到令人发指,果然不是空穴来风): ...

January 12, 2022 · 2 min · jiezi

关于云计算:企业采用多云面临的挑战和解决方案

在过来的十年中,基础设施畛域产生了巨大变化,越来越多的企业将其工作负载散布在多个平台上,包含本地和云中。这导致管理工作负载的形式产生很大变动,随之而来的是复杂性和危险的减少。跨多个平台的工作负载散布有很多种,多云和混合云是最常见的。 简而言之,多云是在两个或多个云基础设施平台上部署应用程序的组件。这些平台能够是两个公共云服务提供商,或者两个公有云,或者它们的某种组合。混合云大致相同,然而它更多是指公共云和公有云的组合。 多云和混合云利用程序设计模式能够采纳多种形式,但有两种最为重要: 1)托管在不同云上的组件——最常见和最简略的模型波及拆散组件(应用程序层),以便每个不同的组件都部署在单个提供商上,整个应用程序散布在多个云中。例如,应用程序的前端可能驻留在公共云上,其中间件驻留在公有云上,其数据库驻留在本地裸机集群上。 这个例子可能波及一个流量很大的以前端为核心的 Web 应用程序,可能常常更新,它能够防止调用后端资源。在公共云上装置应用程序前端能够依据流量疾速、动静地扩大该资源,并能够简化长期(但资源密集型)程序。 将中间件放在公有云上能够实现相似但更受限的灵活性,以及更严格的安全性。在裸机上运行数据库可提供最高的可调性和性能,同时为重要并受监管的数据提供最大水平的爱护。 2)单个组件,散布在多个云中—— 较少状况下,咱们采纳单个应用程序组件并将其散布在多个云中。这种模型的挑战在于,当初在单个应用程序组件中引入了提早和其余潜在的网络危险等问题。 例如,随着企业扩充公共云服务的应用并寻求老本优化,它们常常遇到所需资源不可用的状况,在这种状况下,能够应用像Kubernetes federation这样的技术来反对容器工作负载——对等微服务水平扩大以执行单个应用程序性能——来“逾越”公共云之间的鸿沟。然而,编写在这种架构上茁壮成长的微服务和应用程序意味着要预料到一系列的提早和运行在繁多基础设施上的应用程序通常不会遇到的非凡情况。 多云劣势 帮忙开发人员更轻松地应用来自多个云提供商的资源和服务提供了许多劣势,包含以下方面。 1)杠杆——企业能够通过此形式对供应商产生肯定的影响力,以便可能协商最佳价格并确保最佳服务水平。如果企业被锁定在一个繁多的供应商(或者如果存在垄断),就会失去这种影响力,很容易受到成本上升和服务水平降落的影响。 2)价格/性能效率——拜访多个公共云的能力能够使企业可能继续优化价格/性能——不仅包含工作负载托管,还包含与服务应用程序相干的所有其余性能因素和老本(例如网络进口老本、互连性、提早)。 然而,通过在提供商和基础设施之间挪动组件和工作负载,最大限度地进步老本和性能优化的自由度,意味着限度企业对所应用的平台和提供商的高度差异化性能和服务的依赖。Kubernetes 和容器在这里能够施展重要作用,造成逾越多个云和基础设施的统一根底。 3)升高危险——云提供商的定价很简单,难以察看和预测,并且可能会在简直不引起留神的状况下发生变化。服务可能进行,提供商的政策也可能发生变化——提供商在执行方面可能出尔反尔,服务条款协定使客户在产生争议时简直没有追索权。 因而,提前打算、提供冗余并确保要害数据库和其余难以挪动的组件不会锁定到特定的提供者是十分有意义的。 4)地位——公共云提供的一项要害服务是可能将工作负载和数据放在特定区域。利用地位的能力能够进入利润丰富的市场——这对应用程序性能(例如,最小化提早)、存储和传输老本以及(在某些状况下)特定服务的可用性和规模至关重要。 5)监管合规选项——管制工作负载和数据地位(静态数据和动态数据)对于施行实现法规听从性、数据主权和数据保护的管辖策略也至关重要。合乎 GDPR、隐衷爱护和其余法规的管辖权和客户要求的能力是企业全球化倒退的保障。 多云挑战 企业须要制订策略来确保多云可能带来益处,同时不会给开发人员、DevOps 和经营团队带来额定的工作艰难。 1)一致性至关重要。通过确保跨公有云和公共云的应用程序平台统一,能够帮忙确保应用程序可能在任何中央运行而无需更改;并且能够在繁多渠道中保护配置、操作自动化、CI/CD 和其余辅助代码库。 Kubernetes 目前是用于革新公共和公有云基础设施以及裸机的最佳可用平台——提供了许多形象机制,用于将工作负载与底层基础设施隔离开来,只管存在底层基础设施问题,仍能放弃它们的生机,并容许疾速、高效、低影响的应用程序更新、扩大和生命周期治理。 2)仅Kubernetes 是不够的——组织须要在所有基础设施上提供统一的 Kubernetes,即易于定制、易于扩大、齐全可察看、蕴含电池、平安、广泛兼容和操作敌对的应用程序环境,由一个核心起源提供。繁多集群模型可放慢操作,实现容器、配置和自动化可移植性,同时还进步安全性(打消未知数和变动,从而缩小攻击面),促成策略管理并简化法规听从性。 3)应用集中管理的零碎来交付、更新和治理跨多云的集群能够大幅提高生产力;用于可察看性和手动操作的繁多治理平台、全自动且无中断的更新、用于构建自助服务应用程序和按需交付集群的一组 API。通过地方命令和管制设施“提供商”中间件操作各种公共和公有云基础设施,有助于确保企业从平台和公共云特定服务中获益,同时还能够强制执行统一的配置和行为来运行应用程序的 Kubernetes 集群。 4)抉择自在与这种模式是统一的。集中管理的多云基础架构能够让运营商和开发人员能够自由选择公共云和公有云备选计划,同时还反对应用一系列操作系统以及大量自动化、CI/CD、安全性和其余工具。 5)集中监控和容量治理也很重要,以确保企业分明地理解零碎的执行状况以及它们正在耗费的资源,这样就能够对应该在哪里运行应用程序做出正确的决定。 6)在外围要求列表中排名靠前的应该是易用性。如果零碎应用起来过于简单,或者要求开发人员必须学会解决新的或生疏的零碎,这将极大地妨碍多云的采纳。 当然,抉择多云策略并确保应用通用平台跨多个平台部署和治理统一的 Kubernetes(以及可能在 Kubernetes 之上运行的应用程序)也有一些毛病。其中最次要的是,企业可能无奈(间接)利用公共(和公有)云提供商提供的附加服务,包含他们的“一键式 Kubernetes”版本。 低准入门槛的服务(包含 Kubernetes 产品)仿佛让初创公司面临的阻力更小。然而,企业投入的越多,在没有集中式解决方案提供的形象和中介的状况下,越深刻开掘供应商服务组合,就被锁定的越深。 进入多云意味着反复(有区别地)在每个提供商上开始企业规模的工作,并保护您为此创立的所有并行工具渠道。因而,将企业的经营和业务的任何局部从一个供应商“晋升和转移”到另一个供应商成为一个多层次的挑战。

January 11, 2022 · 1 min · jiezi

关于云计算:eBPF-和-Wasm探索服务网格数据平面的未来

本文翻译自 Vivian Hu 的 《eBPF and Wasm: Exploring the Future of the Service Mesh Data Plane》。 在 2021 年 12 月 2 日,Cilium 我的项目发表了 Cilium Service Mesh 我的项目的测试版。在 2020 年 8 月 Google Cloud 发表基于 eBPF 的 Google Kubernetes 服务(GKS)的数据立体 V2 的一年后,Cilium Service Mesh 带来了 “无际车服务网格”(sidecarless service mesh)的想法。它扩大了 Cilium eBPF 产品来解决服务网格中的大部分边车代理性能,包含 7 层路由和负载平衡、TLS 终止、拜访策略、健康检查、日志和跟踪,以及内置的 Kubernetes Ingress。 Cilium 的创始人 Isovalent 在一篇名为 “How eBPF will solve Service Mesh - Goodbye Sidecars” 的文章中解释了 eBPF 如何代替边车代理。 ...

January 11, 2022 · 2 min · jiezi

关于云计算:Docker-和-Kubernetes一周即可快速入门云原生技术工坊再度来袭

只须要每天晚上花三两个小时,在一周业余的工夫里,你就能疾速入门Docker和Kubernetes!! 第一期云原生在线技术工坊曾经圆满结束,好评如潮,上面是局部参与者打卡截图: 第二期技术工坊流动再度来袭~~关注“腾讯云原生”公众号,回复“技术工坊”即可参加!! 技术工坊简介云原生在线技术工坊,由腾讯云原生【燎原社】精心打造,旨在帮忙更多对云原生技术感兴趣的开发者疾速且零碎的把握Docker 与 Kubernetes。 技术工坊配有十分具体的操作手册,蕴含具体的操作步骤、残缺的代码以及迷信的学习办法。升高了云原生技术学习的门槛,充沛做到零根底也能学习并把握云原生技术。 为什么要学习云原生?以Docker和Kubernetes为外围的云原生技术扭转了软件开发和交付的形式,让利用程序开发更容易、部署更快捷、运行更牢靠,也因而成为了云计算时代每个程序员都必备的外围技能。 无论你是哪门编程语言的程序员,无论你是开发、测试抑或运维,Docker和Kubernetes作为一个实用的工具,都十分值得你把握。 课程安顿(1 月 17 日- 1 月 23日,每晚 19:30) 学习福利加入在线学习的流动,不仅有一群人互相学习提高的气氛,还有讲师在线答疑交换。实现学习群中安排的工作,即有机会支付腾讯云原生【燎原社】送出的限量周边: 实现每日学习打卡工作,并提交一篇部署实际文章到指定平台按打卡工作实现程序 & 文章优质水平评奖第1-10名:长鹅;第11-20名:蓝鹅;第21-30名:短鹅 进阶学习技术工坊仅供入门学习,适宜小白初步建设认知。云原生技术重要且简单,腾讯云原生【燎原社】也推出了业余而又零碎的线下云原生技术实战营,须要系统化深刻学习的同学,可报名云原生技术实战营课程,腾讯云技术专家现场教学,3天搞定云原生容器化革新过程中的理论问题,还有官网认证证书加持,扫码或点击“浏览原文”一键中转: 主办方 社区合作伙伴 海报详情 对于咱们更多对于云原生的案例和常识,可关注同名【腾讯云原生】公众号~ 福利:①公众号后盾回复【手册】,可取得《腾讯云原生路线图手册》&《腾讯云原生最佳实际》~ ②公众号后盾回复【系列】,可取得《15个系列100+篇超实用云原生原创干货合集》,蕴含Kubernetes 降本增效、K8s 性能优化实际、最佳实际等系列。 ③公众号后盾回复【白皮书】,可取得《腾讯云容器平安白皮书》&《降本之源-云原生老本治理白皮书v1.0》 ③公众号后盾回复【光速入门】,可取得腾讯腾讯云专家5万字精髓教程,光速入门Prometheus和Grafana。

January 11, 2022 · 1 min · jiezi

关于云计算:Anaconda3CUDA101CUDNN76TensorFlow26安装Ubuntu16

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览本篇记录了本人在Ubuntu 16.04.7 LTS零碎上搭建TensorFlow2开发环境的过程,用于未来重装时的参考硬件是2018年购买的惠普暗隐精灵3代,显卡GTX1060,曾经装置了Ubuntu16 LTS桌面版执行本篇操作前须要装置Nvidia的驱动,详情请参考《Ubuntu16装置Nvidia驱动(GTX1060显卡)》查看驱动信息,如下图,可见CUDA版本是<font color="red">10.1</font> 版本匹配去tensorflow官网查看版本匹配关系,地址:https://tensorflow.google.cn/...如下图,在我的电脑上有三个适合的版本: 装置留神:接下来的所有操作<font color="red">并未应用</font>root账号下载anaconda3,地址:https://www.anaconda.com/prod...,如下图,可见官网最新版本对应的Python是3.8,合乎后面的TensorFlow版本匹配表中的Python版本,所以,就下载最新版吧(此刻是<font color="blue">2021.05</font>版) 因为集体习惯,我的操作都是在MacBook上近程SSH到Ubuntu16电脑上操作的,和在本地执行命令行并无区别,您能够随便减少可执行权限:chmod a+x Anaconda3-2021.05-Linux-x86_64.sh运行:bash Anaconda3-2021.05-Linux-x86_64.sh依照提醒输出回车: 翻阅文档,依照要求输出<font color="blue">yes</font>: 是否初始化,输出<font color="blue">yes</font>: 装置实现: 退出ssh从新登录,输出python即可进入anaconda环境的python:(base) will@ubuntu-hp:~$ pythonPython 3.8.8 (default, Apr 13 2021, 19:58:26)[GCC 7.3.0] :: Anaconda, Inc. on linuxType "help", "copyright", "credits" or "license" for more information.创立新的conda环境,名为<font color="blue">py38</font>:conda create -n py38 python=3.8.8激活py38:conda activate py38装置指定版本的tensorflow,指定国内源以放慢下载速度:pip install tensorflow-gpu==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple装置CUDA:conda install cudatoolkit=10.1 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/装置cudnn:conda install cudnn=7.6.5装置实现,接下来验证一下是否GPU版的TensorFlow是否装置胜利验证退出ssh,从新登录查看有哪些conda环境,以及正在应用哪个,输出命令<font color="blue">conda info --e</font>,如下,星号所在的行示意正在应用的是base环境,并非咱们要用的py38:(base) will@ubuntu-hp:~$ conda info --e# conda environments:#base * /home/will/anaconda3py38 /home/will/anaconda3/envs/py38执行<font color="blue">source activate py38</font>即可切换到py38环境间接输出<font color="blue">python</font>进入python交互模式导入tensorflow:import tensorflow as tf显示导入胜利:2021-10-08 23:08:55.391471: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1以下代码示意查看tensorflow是否失去CUDA反对,反对就会返回True,否则返回false:tf.test.is_built_with_cuda()以下代码示意查看tensorflow是否获取到GPU:tf.test.is_gpu_available()如果能获取到会返回Ture,并且输入的局部日志信息如下,可见显卡信息已胜利取到:2021-10-08 23:09:34.367795: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero2021-10-08 23:09:34.368110: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/device:GPU:0 with 5088 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1)True作为比照,下图是MabBook上的CPU版本TensorFlow执行后果: ...

January 11, 2022 · 1 min · jiezi

关于云计算:企业采用云计算如何保持适当规模顺利解决大小合适的问题

当初挑选出一个优质的云服务商并不艰难,更大的挑战在于申请适量的资源,确保它足以解决可变负载,并且不会为未应用的资源领取过多的费用。这项操作比设想中更辣手。实际上,因为过程的复杂性,创立了一个专门的术语“正确调整大小”。 调整大小是为云计算实例(容器、VM 或裸机)保留足够的资源(RAM、CPU、存储、网络)以尽可能以最低老本实现足够性能的过程。 然而,古代技术能够通过自动化资源分配流程及其老本评估来帮忙企业达到其目标。因而,企业无需准确地确定限度或提前猜想应该保留多少资源,同时对预期的账单有明确的预计。从历史上看,调整大小的过程次要是有根据地预测,在很大水平上依赖于开发人员或系统管理员的教训。 此外,因为 Web 应用程序的动静个性,调整大小通常是一个间断的过程,定期调整利用于每个软件堆栈运行实例。 那么,为什么为应用程序抉择正确的实例大小很重要? 在波及业务的大多数状况下,答案是金钱因素。云计算资源老本昂扬,因而企业更心愿尽可能减少与基础设施相干的收入。然而,如果资源节俭导致性能问题甚至停机,也会对企业造成更多损失。正确调整流程的目标在于在优化收入和将性能放弃在可承受的程度之间进行调整。 负载的动静和不可预测的性质取决于最终用户在企业网站、服务或应用程序上的流动,因而很难找到涵盖所有状况的中庸之道。通常,资源应用预估是基于对最近应用程序流动的监控来实现的,并在顶部增加一些余量以应答意外的用户涌入和负载峰值。 在初始调整大小之后,企业依然须要持续跟踪其应用程序性能,以确保预测正确且资源失去无效利用。因而,财务赤字和大量闲置资源都表明云基础设施规模的抉择并非最佳。 技术和商业结果 为什么正确调整规模的问题如此重大且难以解决? 大多数状况下,云计算以虚拟机 (VM) 的模式提供,在垂直扩大方面不是很灵便。通常,企业须要将工作负载挪动到全新的 VM 以调整单个实例中的可用资源限度。迁徙过程不是自动化的,并且简单、耗时,甚至可能导致停机。因而,企业被迫应用超出其实在需要的更大的 VM,以防呈现其应用程序在不久的将来须要更多资源的状况。 许多云服务提供商的虚拟机的垂直扩大步骤相当大(每台新机器比以前大两倍)。定价政策与订购的 VM 的大小间接相干,而不论理论耗费如何,因而财务损失可能很大。此外,一些云供应商能够将企业调配的但闲置的资源超卖给其余客户。尽管企业正在为资源付费,但并没有爱护其免受性能降落的影响。 总而言之,规模不适合会有两个次要结果: 适度调配导致云基础设施的低效利用和对理论未应用的资源的适度领取。 调配有余导致资源短缺,导致托管我的项目呈现性能问题甚至宕机,从而导致最终用户体验不佳、客户散失和支出损失。 解决方案 通过上文中对于问题的本源及其结果的形容,在适度调配和资源短缺之间找到最佳点至关重要,手动调整大小并不是十拿九稳的解决方案。因而,企业须要依附古代云托管提供商提供的工具来自动化该过程。 以下是企业应该瞄准的性能,以便主动调整我的项目实例的正确大小: 首先,云托管应该可能运行具备精密资源分配的容器。资源减少步长越小越好,因为它容许更准确地抉择所需的实例大小。 寻找古代云基础设施,其中未应用的资源返回共享池,因而不免费。这种办法(所谓的按应用付费)容许设置高扩大限度并解决负载峰值,而不会继续超额领取。 主动垂直缩放(即时调整同一容器内的资源数量)能够帮忙企业节俭大量工夫和精力。基于应用程序需要的动静资源配置是以最佳形式解决适合规模问题的必备性能。 有了满足这些要求的云托管服务提供商,企业只需为其实例设置最大资源限度,正确调整大小的指标就会主动达成。 因而,在寻找适宜本身需要的云供应商的同时进行市场考察是十分必要的,当通过新的技术和业务解决方案对大小适合的问题进行解决时,企业必将从中受害。

January 10, 2022 · 1 min · jiezi

关于云计算:Ubuntu16安装Nvidia驱动GTX1060显卡

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览台式机是2018年购买的惠普暗隐精灵3代,显卡GTX1060,本文记录了此机器装置Ubuntu 16.04.7 LTS,再装置Nvidia驱动的过程;另外还有一些避坑的小结,如果您遇到了相似问题能够拿来参考;污浊Ubuntu零碎先装置Ubuntu16 LTS桌面版U盘装置,我这里是惠普台式机,启动时呈现惠普LOGO的时候,屡次点击F10,进入bios,启动程序抉择U盘启动,而后在页面领导下顺利装置Ubuntu零碎须要留神的中央网上很多装置文档中提到了要在BIOS设置中敞开secure boot,我这里没有找到这个选项,所以就跳过了没做,仍然能够装置胜利,只是在装置完驱动后的几步操作必不可少,须要依照文章中的操作执行;开启近程ssh登录进入Ubuntu桌面,关上控制台,执行以下命令,装置ssh服务:sudo apt-get install openssh-server启动ssh服务sudo service ssh start接下来的操作,我全都是从另一台电脑ssh近程连贯到这个Ubuntu16电脑上操作的换源备份:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk批改/etc/apt/sources.list为以下内容:deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse筹备工作删除旧的驱动sudo apt-get remove --purge nvidia*屏蔽开源驱动nouveau,首先创立新文件:sudo vi /etc/modprobe.d/blacklist-nouveau.conf增加的内容如下:blacklist nouveauoptions nouveau modeset=0更新上述配置:sudo update-initramfs -u此时执行命令<font color="blue">lsmod | grep nouveau</font>还能够看见以下内容,证实方才的配置还没有失效:will@ubuntu-hp:~$ lsmod | grep nouveaunouveau 1712128 4mxm_wmi 16384 1 nouveaui2c_algo_bit 16384 1 nouveauttm 106496 1 nouveaudrm_kms_helper 172032 1 nouveaudrm 401408 7 drm_kms_helper,ttm,nouveauwmi 24576 4 hp_wmi,wmi_bmof,mxm_wmi,nouveauvideo 45056 1 nouveau为了使方才的配置失效,请立刻重启电脑<font color="blue">sudo reboot</font>重启后再次ssh登录,再执行命令<font color="blue">lsmod | grep nouveau</font>曾经看不见内容了,证实方才的配置曾经失效;装置驱动增加官网ppa源sudo add-apt-repository ppa:graphics-drivers/ppa更新sudo apt-get update查看举荐驱动:ubuntu-drivers devices抉择驱动后边有(recommended)字样的,如下图红框,我这边是<font color="blue">nvidia-430</font>: ...

January 10, 2022 · 2 min · jiezi

关于云计算:基于云原生如何实现对症下药-亚马逊云科技加速周

SpotMax 首席解决方案架构师于龙水受邀加入了亚马逊云科技新一季“合作伙伴翻新减速周”在线研讨会,并以“Mobvista 基于 EKS 云原生实际”为主题,以用云老本这一大“痛点”为外围进行了分享,为大家解说了来自 SpotMax的“良药”。 SpotMax 作为汇量科技自主研发的云资源优化综合解决方案,经验过日均千亿次广告申请的大规模可行性验证,并通过充分利用云计算基础设施的特点,弹性应用云平台的实例资源, 胜利将 Mobvista 单次广告申请老本升高了 65%。 于龙水首先提到了云计算: 云计算的特点,对软件架构提出了更高的要求,架构须要具备疾速响应弹性伸缩、按需获取、资源保护托管等性能,并实现老本把控; 随着业务需要的增长,代码架构趋于庞杂,由造成代码到实现部署这一流程的工夫成本增加,即越大越慢; 业务倒退带来的流量增大,使得企业老本在对机器负载需要的晋升下减少,即越大越贵。 综上来看,面对云计算的本身劣势与企业为求倒退而被迫付出的昂扬老本,云原生成为一种“不得不斗争”的做法。 拆了这块“积木”云计算的高速倒退使得拥抱云原生变得至关重要。 为应答这种场面,SpotMax 一开始便将本身大数据学习、追踪服务以及广告申请等服务部署在了亚马逊的私有云上,这也为 SpotMax 从单台机器转变为微服务架构的进阶之旅省了许多力量。 对于微服务,于龙水打了个比如——拆“积木”。 将一个搭好的“积木造型”进行拆解,抽离出其中的“积木组件”,并保留这些组件的原有性能持续对外展现。这些“积木组件”即为咱们所熟知的微服务——每个个体虽脱离了原有的整体,但仍能够以个体的模式来服务。 微服务这个“积木组件”,使得开发过程在原有根底上更为高效,同时大大晋升了伸缩的细粒度,加强了运维人员对资源及老本的可控性。 除此之外,思考微服务本身的耦合性与内聚度,肯定要提前做好面向生效的设计,融入混沌工程,来应答过程中的紧急状况并可能在线上实现相应的谬误测试。 通过云原生技术构建零碎构建散布式微服务架构, 再基于混沌工程构建一个旨在避免谬误和放慢复原速度的高可用零碎,同时大量应用无服务器架构,充分利用云端不同的计费模式,最大化应用价格最为低廉的 Spot。 SpotMax 便是将Mobvista本来的云单体零碎革新为了云原生架构,助其实现了老本的大幅缩减。 多维度降本,多节点增效家喻户晓,云老本的居高不下已成为泛滥上云企业的“痛”,而 Spot 这剂“药”因自带易被回收、易中断等“副作用”,加之昂扬且繁冗的运维老本,使许多企业望而生畏。 基于SpotMax 长期的实践经验,为更好的“隔靴搔痒”,于龙水介绍了“1+1>2”的产品服务组合模式——SpotMax主打产品 MaxGroup +可视化 DevOps 服务平台 MaxCloud。 MaxGroup 作为 SpotMax 自研的产品服务,可能帮忙企业无效治理 Spot 机器,以预弥补的形式来应答 Spot 本身的不稳定性;当遇到 Spot 长期回收或中断的状况,MaxGroup 可能及时实现相应的补充或替换,在保障服务稳固运行的同时,确保老本的可控性。 MaxGroup数据面板 MaxCloud 则是基于云原生技术栈的可视化 DevOps 服务平台,旨在帮忙企业简化利用部署治理流程,一站式实现利用部署和运维工作,从而晋升效率、降低成本。MaxCloud 领有跨云个性,可实现一键部署至寰球,开箱即用。 MaxCloud界面展现 基于云原生技术,SpotMax 充分利用低廉的 Spot 实例帮忙企业优化本身架构老本;MaxCloud 可视化 DevOps 服务平台可能让企业实现一站式部署升高人力老本。真正实现“云效合一”。 ———————————— 残缺视频请戳: https://www.bilibili.com/vide... 扫描下方二维码,即刻下载完整版PPT ...

January 7, 2022 · 1 min · jiezi

关于云计算:天空计算云计算的下一个时代

依据加州大学伯克利分校的两位卓越计算机科学传授Ion Stoica和 Scott Shenker 的说法,咱们行将从云计算时代过渡到“天空计算”时代。 顾名思义,天空计算是云平台之上的一层——其指标是实现云之间的互操作性。 Stoica 传授曾正确预测云计算的将来,早在 2009 年 2 月,他和伯克利的一群学者发表了一篇对于过后新兴的云行业的有影响力的论文。 过后,亚马逊网络服务刚刚成立几年,谷歌惟一的云产品是 App Engine,微软的 Azure 尚未正式公布。2009 年的论文得出的论断是,“幻想已久的计算作为一种实用工具的愿景终于呈现了。” 只管云计算的确在 2010 年代从根本上扭转了 IT 行业以及应用程序的构建和部署形式,但也存在一个显著的问题——云计算并没有像互联网或网络那样成为一种公用事业。 到 2021 年,没有一个繁多的底层云平台具备一套任何人都能够应用的凋谢规范。取而代之的是,云计算曾经演变成一系列在很大水平上彼此不兼容的专有平台:亚马逊网络服务(AWS)、微软 Azure、谷歌云等。因而 Stoica 传授的论文中呈现了“一个更加商品化的云计算版本,称之为天空计算”的愿景。 施行多云平台 从实质上讲,这是对于启用多云利用程序开发。“为了实现效用计算的愿景,应用程序应该可能在任何云提供商上运行(即,一次编写,随处运行),” Stoica 传授的论文断言。 实质上,天空计算反对多云利用程序开发。 开发人员为何要为多云环境构建应用程序?传统观点认为,抉择一个云提供商并应用该公司提供的服务套件会更容易。然而,该论文回绝了这一观点,而是倡议具备“计算密集型工作负载”的应用程序更适宜多云环境。 因为计算更简略,不须要解决进口费用,将数据放入云中无需花钱,但将数据从云中取出须要破费很多,特地是正在进行训练或高参数调整的机器学习中。这些都是计算密集型的工作,因而将这些工作转移到能够更快、更便宜地实现的中央是很有意义的。当然,如果挪动计算,还须要挪动训练数据——但总的来说,与训练或调整模型的老本相比,挪动这些数据的老本黯然失色。”\该论文倡议天空计算由三层组成:“一个用于覆盖低级技术差别的兼容层,一个将作业路由到正确云的云间层,以及一个容许云之间就无关问题达成统一的对等层。” 这三层反映了互联网自身的设计形式——例如,互联网协议 (IP) 提供了网络间兼容性。 天空计算由三层组成:兼容性、云间和对等。 兼容层将使应用程序开发人员可能轻松地抉择他们的应用程序并将其从AWS 迁徙到 Google Cloud。多云的用武之地是云间层,因为它将容许应用程序跨多个云提供商运行——这取决于用户的需要。以下是 Stoica 传授的解释: 现实状况下,通过云间层,用户能够为其工作指定首选项——比方想最小化老本,或最小化工夫,或者须要在本地解决这些数据——云间层将决定在何处运行客户工作以满足这些偏好。 对于数据本地性示例,应用程序必须应用特定地理位置的起因可能是地缘政治或其余起因。如果一个应用程序想要解决一些不得来到某个国家/地区边界的数据,并且该国家/地区只有一个云数据中心。在这种状况下,云间层会主动将该应用程序路由到该云数据中心。但所有其余应用程序可能应用不同的云平台,具体取决于应用程序开发人员定义的云间规定。 谁来提供这个云间层?Stoica 传授认为它能够由现有的云平台提供,或者可能会呈现一种新型的“虚构云”公司来专门从事这种路由性能。他倡议应用“无基础设施云”这一术语,因为云间层不须要基础设施(服务器、数据库等)。 云计算头部企业如何应答? 随着多云成为天空计算的优先事项,一个要害的挑战将是购买当今市场当先的云平台——尤其是 AWS、微软和谷歌。 那么哪些次要平台会率先迈向天空计算,他们的动机是什么? 依据经济学实践,在市场上排名第二或第三的云(例如谷歌)最有可能做到这一点,因为这是他们取得更多市场份额的一种形式。如果他们提供更快或更便宜的基础设施,天空云平台将使他们更容易从其余云中取得更多工作负载。 然而,应用程序开发人员不肯定须要大型云平台的许可能力取得“天空计算”性能。 当初能够做到开发一个应用程序——比方机器学习管道——并进行数据处理、训练和服务来为模型提供服务。能够在谷歌上承受培训,在亚马逊上服务。 明天应用多云的问题在于,它是“蠢笨”且“不是主动的,而是手动的”,当然还有进口费用。 天空计算可能会扩大云提供商的软件即服务业务。 大公司面临的另一个挑战是,他们会将此视为其外围云平台的商品化。但 Stoica 指出,这些企业的其余部门将受害——例如,对于微软的 Office 团队,“这将容许他们在亚马逊的云或谷歌云上运行 Office。” 因而,天空计算可能会扩大大型云提供商的软件即服务业务。当然,微软是否违心这样做依然存疑,但如果所有的云竞争对手都转向天空计算模式,那么他们将别无选择,只能追随市场。 会呈现下一个 Kubernetes 吗? ...

January 6, 2022 · 1 min · jiezi

关于云计算:云原生爱好者周刊Grafana-Loki-免费电子书

云原生一周动静要闻: Apache Log4j 2.17.1 修复近程代码执行破绽CNCF 公布 2021 年度报告极狐(GitLab)公布业内首款“GitNative” DevOps 云一体化解决方案JetBrains 公布了带有新的近程开发性能的 IntelliJ IDEA 2021.3开源我的项目举荐文章举荐Grafana Loki 是一个优良的轻量级日志监控平台,该我的项目受 Prometheus 启发,不会为日志内容编制索引,而是为每个日志流配置一组标签。相比与轻便的 ELK 或者 EFK,很多人开始抉择 Loki 作为日志监控平台。 但 Loki 的官网文档比拟艰涩难懂,也没有相干的最佳实际,对老手不太敌对。为了让大家深刻了解 Loki 各个组件的原理,以及如何设置各个组件的参数来保障 Loki 稳固运行,国外的开发者撰写了一本 Cookbook:《Grafana Loki Deep Dive》。本书内容涵盖: 深刻了解日志抓取流程深刻了解日志查问流程缓存策略进步查问性能对 Loki 进行监控等等关注vxgongzhong号 KubeSphere云原生,后盾回复暗号 loki 即可获取本电子书 。 云原生动静Apache Log4j 2.17.1 修复近程代码执行破绽 (CVE-2021-44832)")Apache 软件基金会公布了 Log4j 2.17.1 版本以解决最近发现的代码执行破绽,跟踪为 CVE-2021-44832,该破绽会影响 Log4j 2.17.0。 该破绽的 CVSS 得分为 6.6,影响了从 2.0-alpha7 到 2.17.0 的所有 log4j 版本。版本 2.3.2 和 2.12.4 不受影响。 之前在 Log4J 库中发现的破绽是: ...

January 6, 2022 · 2 min · jiezi

关于云计算:再见-Dockerfile拥抱新型镜像构建技术-Buildpacks

作者:米开朗基杨,方阗云原生正在吞并软件世界,容器扭转了传统的利用开发模式,现在研发人员不仅要构建利用,还要应用 Dockerfile 来实现利用的容器化,将利用及其依赖关系打包,从而取得更牢靠的产品,进步研发效率。 随着我的项目的迭代,达到肯定的规模后,就须要运维团队和研发团队之间相互协作。运维团队的视角与研发团队不同,他们对镜像的需要是平安和标准化。比方: 不同的利用应该抉择哪种根底镜像?利用的依赖有哪些版本?利用须要裸露的端口有哪些?为了优化运维效率,进步利用安全性,研发人员须要不断更新 Dockerfile 来实现上述指标。同时运维团队也会干涉镜像的构建,如果根底镜像中有 CVE 被修复了,运维团队就须要更新 Dockerfile,应用较新版本的根底镜像。总之,运维与研发都须要干涉 Dockerfile,无奈实现解耦。 为了解决这一系列的问题,涌现出了更加优良的产品来构建镜像,其中就包含 Cloud Native Buildpacks (NB)。CNB 基于模块化提供了一种更加疾速、平安、牢靠的形式来构建合乎 OCI 标准的镜像,实现了研发与运维团队之间的解耦。 在介绍 CNB 之前,咱们先来论述几个基本概念。 合乎 OCI 标准的镜像现在,容器运行时早就不是 Docker 一家独大了。为了确保所有的容器运行时都能运行任何构建工具生成的镜像,Linux 基金会与 Google,华为,惠普,IBM,Docker,Red Hat,VMware 等公司独特发表成立凋谢容器我的项目(OCP),后更名为凋谢容器倡导(OCI)。OCI 定义了围绕容器镜像格局和运行时的行业标准,给定一个 OCI 镜像,任何实现 OCI 运行时规范的容器运行时都能够应用该镜像运行容器。 如果你要问 Docker 镜像与 OCI 镜像之间有什么区别,现在的答案是:简直没有区别。有一部分旧的 Docker 镜像在 OCI 标准之前就曾经存在了,它们被成为 Docker v1 标准,与 Docker v2 标准是不兼容的。而 Docker v2 标准捐给了 OCI,形成了 OCI 标准的根底。现在所有的容器镜像仓库、Kubernetes 平台和容器运行时都是围绕 OCI 标准建设的。 什么是 BuildpacksBuildpacks 我的项目最早由 Heroku 在 2011 年发动, 被以 Cloud Foundry 为代表的 PaaS 平台宽泛采纳。 ...

January 6, 2022 · 5 min · jiezi

关于云计算:自动驾驶训练如火如荼网络带宽跟不上怎么破

以后, AI、大数据、云计算等技术逐步成熟,5G 网络大规模建设等各种趋势独特推动了通信网络的代际演进。与此同时,企业通信网络数字化转型也面临着一些挑战:业务越来越简单、根底网络越来越繁琐、连接数的减少和带宽的快速增长问题等。 焱融科技以主动驾驶行业为例,剖析近年来各家主动驾驶企业倒退受限的因素。在上一篇《精选案例 | YRCloudFile 引领主动驾驶存储技术新趋势》中,根本曾经笼罩了主动驾驶企业目前所遇到的问题,然而还有一个外围限度倒退因素,咱们还没有探讨,那就是万兆网络曾经不足以匹配当今支流的算力及 NVMe 性能。 主动驾驶训练对网络环境要求极高,然而很多主动驾驶厂商现有的万兆网络在带宽和提早上无奈满足高速的主动驾驶需要。因而,焱融科技针对主动驾驶厂商的网络带宽问题方面,提出了相应的解决方案。 焱融科技将分享基于国内无人驾驶商用、集装箱物流人工智能全局化等畛域领跑市场,业务已遍布海内外 80 余个节点的的某全栈式人工智能翻新公司的产品落地案例。本次分享集中在“网络带宽受限”这一行业焦点,从“挑战剖析、解决方案和行业案例”三个方面提出观点和倡议,心愿能为更多关注主动驾驶,以及相干从业者提供破解思路。 主动驾驶的网络带宽挑战此前,国内某国内全栈式人工智能翻新公司在主动驾驶车辆训练过程中,随着训练工夫逐步增多,呈现网络数据量暴涨、应用程序激增等状况,以致该公司对网络带宽和存储性能的需要变得越来越高,原有的网络带宽和存储形式曾经不适配于以后场景。次要起因有以下: 1. 万兆网络似“小水管”,传输过程易拥挤 该公司应用的万兆网络带宽成训练瓶颈,导致底层堆砌再多磁盘,存储性能也无奈失去晋升,从而使得下层 GPU 服务器性能无奈失去充分发挥。同时,随着业务量的晋升,原有存储网络无奈很好的撑持大规模并发拜访,以致频繁呈现性能问题。 2. 海量文件需存储,性能衰减超乎设想 在主动驾驶训练过程中,数据呈现出几何式增长。小数据集达到十万级别,大数据集达到百万、千万甚至上亿级别。而且数据类型繁多、数据大小变动大,往往极易产生上亿级的海量小文件,给元数据管理、存储效率和拜访性能等方面带来微小挑战。 3. 难以解决存储产品与容器平台对接问题 存储产品对容器平台的兼容性差,块存储挂载操作简单,NAS 存储无奈细粒度治理存储等等,无奈适应下层麻利的利用需要。除此以外,还会面临对接容器编排治理平台后,存储保护简单,流程繁琐,导致容器业务中断等问题。 YRCloudFile 助力主动驾驶冲刺“最初100米”为了解决该公司在主动驾驶训练场景所面临的问题,焱融科技进行了一些系列的剖析,并从网络革新、存储部署、容器化反对、智能分层等方面提供了一整套高性能、高可用、高扩大的计划。 1. 全面降级网络带宽,迈向主动驾驶下一个台阶 在正式革新以前,焱融科技深度钻研了该公司的网络架构和原有存储体系,发现原有网络带宽成为影响存储性能晋升的要害之一。 网络拓扑图 焱融科技举荐新增 25Gb 交换机的形式,让该公司做到存储外部数据交互,克服网络带宽限度带来的存储性能瓶颈,充分发挥 GPU 服务器的性能,达到训练效率翻倍晋升的要求。 在存储革新降级结束后,焱融科技还发现,该公司现有集群的性能尽管曾经超过原有存储系统,但却没有达到预期的数值。因而,焱融科技再次针对现场环境进行剖析,提出以下几点优化措施: 增大节点上的 socks 数量,取得更大的连接数;调整线程数 workers,以匹配拜访的数量;通过上述两个步骤,调整当前的 YRCloudFile 性能失去了大幅的晋升,在肯定水平上保障了存储性能,缩小了网络带宽对存储带来的影响。 2. 海量小文件场景下,元数据处理能力是要害 针对客户海量小文件性能问题,焱融科技通过可程度扩大设计的 MDS 架构,实现 MDS 集群化。这次要思考到以下三方面: MDS 集群化有利于缓解 CPU,升高内存压力;多个 MDS 有利于企业存储更多元的数据信息;在实现元数据处理能力程度扩大的同时,晋升海量文件并发拜访的性能。目前,焱融 YRCloudFile 次要采纳动态子树 + 目录Hash两者联合的形式搭建可程度扩大设计的 MDS 架构。此种架构形式有两种益处,首先元数据的散布存储,通过扩大元数据节点,即可反对百亿级别的文件数量;其次,保障了元数据的检索性能,缩小在多个节点上进行元数据检索和操作。 3. 整合 K8S 平台,为容器化训练无缝提供数据反对 该人工智能翻新公司在车辆测试过程中,抉择了以容器为利用运行载体的 K8S 平台,运行 AI 训练和推理工作。然而,在存储系统在对接容器场景时,遇到了以下难题: ...

January 6, 2022 · 1 min · jiezi

关于云计算:企业云安全建设成难题提高云安全性的十条原则请查收

云平安是须要企业和云供应商独特承当的责任,也是一项微小的挑战,以下是设置高效护栏时须要牢记的根本规定。 依据数据预估,寰球 50%的企业曾经将数据存储在云中,这足以证实这个绝对年老的行业仍在进行爆炸性增长。当初大家都曾经理解采纳云计算的益处:进步敏捷性、易于扩大和老本效益。 但在平安方面,采纳云计算也有不太乐观的一面:对于局部企业而言,将其最有价值的大部分资产交给第三方的想法可能有些疯狂,但对于其余(绝大多数)企业来说,这样做齐全有情理。 企业能够从云提供商为爱护其数据而部署的大量平安资源中受害。本文将重点介绍云平安的基本概念,并提供十个规定以进步安全性。 责任共担模型 云中的平安遵循一种名为“共享责任模型”的模式,这意味着,要在云中操作,企业依然须要分担平安配置和治理的工作。企业的承当范畴可能会有很大的不同,因为这取决于应用的服务:如果企业订阅了基础设施即服务(IaaS)产品,则需负责操作系统补丁和更新。如果只须要对象存储,那么职责范畴将局限于避免数据失落。 基本上所有的云破绽本都能够归结为一件事:配置谬误。云提供商曾经提供了弱小的平安工具,但这些平安工具有时也会生效。员工的谬误不可避免,因而很容易造成谬误配置。这就是为什么咱们须要护栏,以帮忙缩小产生谬误的可能性或在谬误产生时缩小影响。 上面一起理解一下云平安与“传统”信息安全相比的不同之处。 理解云平安的 3 个要害 云是一个动静的环境,在这个环境中,一切都在一直变动,但安全性的指标放弃不变:确保零碎按预期工作,并且仅按预期工作。因而,许多基本概念须要从新定义: 周界:传统平安实质上是基于爱护可信周界,即所谓的“堡垒”。然而,云环境的特点是散布在互联网上,具备动静倒退的端点和许多互连层。任何云平安模型都应该以身份和拜访治理为核心,并专一于增强对可疑帐户的受权(这是行为建模等技术特地弱小的中央)。 可扩展性:存储和解决是动静的,因而云平安框架也要思考到基础设施的演变。换句话说,它须要理解零碎状态并相应地调整其策略。 监控:随着新的云资源的沉积和新的攻打媒介的发现,威逼格局正在迅速倒退。动静零碎减少的复杂性是一个不利因素:安全漏洞可能会激增,更难发现,攻打也更加简单。要跟上时代,就须要对疾速变动的安全形势做出反馈。 进步云安全性的 10 条规定 1、不要漠视开发人员凭据 作为一家每天扫描数百万公共和公有代码存储库的公司,强调健全凭证政策的重要性极其重要。企业应该确保开发人员至多只应用短期凭据,并破费工夫来进行残缺的设置,包含治理和检测。 2、始终查看默认配置 云提供商事后配置通用拜访控制策略。这些服务很不便,但常常会发生变化,因为新服务的引入并不一定合乎企业需要。通过抉择退出不必要或未应用的服务来缩小攻打的可能性。 3、列出可公开拜访的存储 一些云存储被齐全凋谢并可公开拜访的状况并不少见。无论您为对象和数据抉择何种存储办法,请查看是否只有预期的组件可公开拜访。 4、定期审计访问控制 云安全性可能取决于企业的身份和拜访管理策略。基于身份的平安零碎逐步成为主导,造成了所谓的“零信赖”策略的根底。但这些政策将被批改。施行最低特权准则是一个被动过程,波及对服务、零碎和网络的拜访进行微调。应定期安顿并严格执行手动和主动查看。 5、利用网络结构 同样的规定实用于网络:企业应该利用云提供商的管制来构建更好的、更精密的策略,以周到地划分流量。 6、使日志记录和监控具备预防性 良好的安全性离不开健全的监控和日志记录。基于危险的日志记录策略是必须的,但最重要的是,企业应该确保警报不仅已启用且无效,而且是可操作的,而不是在事件产生才查看。现实状况下,企业应该可能通过 API 或其余机制在本人的日志记录零碎上聚合云日志。 7、空虚资产清单 应用云供应商的 API 来加重库存治理的艰巨工作是很好的抉择,然而通过无关所有权、用例和敏感性的附加信息来丰盛它会更好。 8、避免域名劫持 云服务和 DNS 条目之间通常存在可传递信赖。定期检查您的 DNS 和云配置,以防止出现接管状况。 9、劫难复原打算不是可选的 云环境不能主动解决劫难复原 (DR) 问题。思考适宜云环境中灾难性事件的投资级别。设计一个 DR 程序以从内部帐户、提供商或区域设置中进行复原。 10、限度手动配置 利用云原生平安工具和控件意味着自动化。破绽源于谬误配置,而谬误配置就是谬误。须要实现的手动工作越多,就越容易呈现谬误。企业须要推动其团队更加自动化,尽可能应用平安即代码并逐渐加强不可变性(不可能再手动配置)。 论断 即便对于专家而言,云治理也很简单。对于平安人员而言,这是一个微小挑战,因为职责范畴不再是动态的,而是一直倒退以满足基础设施的需要和应答新威逼。但这对他们来说也是一个激动人心的时刻,因为他们能够利用他们所有的独创性来构建十分无效的解决方案,利用现有的云提供商的工具集,在平安要求和灵活性之间获得均衡。 企业及业务负责人能够依据以上云平安的规定构建本身防护措施,以进步在应用云计算时的安全性。

January 5, 2022 · 1 min · jiezi

关于云计算:云计算厂商们你们辜负了中国的用户

当时申明:本篇文章会比拟强烈,作为从2010年开始应用中国云计算的开发者,架构师,粗浅的感触到了这十几年中国云计算产业的倒退,但同时也深深的意识到了作为中国的一些次要的云计算玩家与海内的友商们相比,走向了一个极其,题目用了辜负二字,其实是爱之深,责之切,作为一个中国人天然心愿可能让用上真正让人自豪的云计算产品,但假相往往惨不忍睹。 罪状一:对云计算不足认知说到这一点,大家是不是很奇怪,云计算厂商竟然对云计算不足认知?而后事实上的确是这样的,有多少云计算厂商的销售或者架构师们其实对于云的了解只不过是所谓的计算,网络,存储,而且这种了解是停留在IDC时代的服务器,交换机,磁盘级别的认知上。把云当IDC卖,也不给客户输入任何云的高级最佳实际,上来就是折扣优惠,如同除了这个也没方法了,硬生生把云计算卖成了低端产业,看着AWS 23%的净利润,而中国云厂商能到20%的毛利润就了不起了。我感觉没有一个人看得起以倾销作为市场伎俩的产品,有本事一次性定价到位,还是用信息不对称的形式戕害小规模客户。 对于用户来说,云厂商不足云计算的认知,就会被客户带着走,客户要什么给什么性能,或者不同云产品间接没有任何的关联性,甚至呈现云产品A与云产品B不兼容,反而和另外的开源计划兼容....作为云计算的用户深深的感觉到中国云计算产商提供的一堆产品,实质上是一个个割裂的独立的产品,大部分只是负责有就能够了,能用就能够了,至于好不好用这不是中国云厂商的产品们须要思考的。 罪状二:勇争新时代集成商其实第一点是连续第一条罪状的恶果,最后可能来自于云自身的能力有余,须要第三方厂商提供一些相干的能力。然而忽然云厂商发现了一个乏味的景象,他们感觉本人跳下去做集成岂不是更好的抉择,营收规模也能够做得更大,只有囊括一些云产品,什么服务器,交换机,存储,打着公有云的旗号轻松集成,甚至手机,办公桌椅也能够一起打包集成,这样就更容易做大规模。(那可怜的毛利率啊),所以CDN和短信成了中国云计算厂商的营收利器(中国的运营商们特地喜爱的打工仔)。 罪状三:对于技术迭代不足信念看着大洋彼岸的Facebook(meta),Nasdaq,早几年的Saleforce都开始拥抱云计算了,而且A家吹牛都吹上了天。而后不晓得什么时刻开始,中国的云计算厂商斗争了,放弃了,自我了断了,这些年我没有看到太多的真正的云计算上的翻新,反而是各种一体机,各种公有云计划层出不穷,要是打着云的旗号去挖矿(当初也是非法行为)还能了解,然而如果仅仅是所谓平安上的斗争,其实不反向证实了这些私有云有多不靠谱么。我已经问过一个国内Top10的互联网大厂的技术合伙人,失去的论断是:“要不是国内厂商不靠谱,咱们为什么要自建数据中心,你看海内咱们就能够用AWS”,这诚然是对AWS的吹捧,也有中国的理论状况,然而当进入了集成的死亡旋涡,等于云厂商本人投降了,斗争了,最可怕的是这个私有化的版本还不见得靠谱...... 罪状四:没有承诺,自觉自研大家应该能够看到很多云厂商都号称本人有如何如何牛X的技术,提供了如何牛X的数据库,大数据技术如何如何,然而你千万别受骗,我在接触云计算的最后的阶段是基本上能抉择云厂商提供的自研的产品我也是十分乐意尝试的,毕竟这是中国团队的作品,作为一个开发出身的人也很能了解产品倒退须要工夫,我能忍耐Bug的。然而....云厂商很多时候会始乱终弃,对于自研的产品一开始推广的时候,产品经理说得像花一样,而后,一段时间后没人管了...而后产品经理到职了....始乱终弃啊!这不是渣云是什么?合着我成了KPI我的项目的垫脚石?云厂商的高层们啊,能不能轻易公布云产品啊,要晓得你们的任何一款产品,哪怕上线了就一个用户,你也不能摈弃他人,要不用户怎么敢置信你的自研产品。 罪状五:工程化水平极其烂其实云计算囊括了这么多的产品,对于一个真正的云计算客户来说,他们其实是在应用一个技术栈的汇合(stack),在我的眼里云计算厂商提供的是一整套的技术计划,而不是一个个孤零零的产品,这也是我认为云厂商真正能够称为云的根底。然而很显然,我的感觉是中国云计算的产品经理们自觉的剽窃了国外友商的性能,知其然不知其所以然,这也就算了,还退出了不少的小心理,而后将产品架构毁坏的一塌糊涂。(具体不举例了,懂得都懂),另外不重视与寰球的云计算生态接轨,如OpenAPI设计得如何?思考过使用者的感触了吗?IaC方面的反对都是差强人意,是不是写个Provider没有营收就没人有能源写好他?云市场出了Branding拉一些所谓的合作伙伴进驻,是不是真正有志愿帮忙这些成长你的平台上的云的利用胜利? 一口气写下以上内容,请中国云厂商们切勿对号入座,兴许在某一天我心愿本人会因为写下这一篇文章感到惭愧,中国云计算厂商不应该是我形容的这个样子的。回想起10年前开始应用云计算时候最晚期的云计算从业者的激情,看到明天此情此景未免感叹----去他妈的客户第一。

January 5, 2022 · 1 min · jiezi

关于云计算:随着公司迁移到云云浪费是否不可避免

事实证明,云节约是技术和业务决策者应用云计算的次要阻碍。 据DevOps.com 称,2020 年,公司在闲置和过剩资源上节约超过 170 亿美元的云收入。许多企业发现,多达 40% 的云收入被适度配置和未应用的基础设施所占用。 采纳私有云的初衷是为了进步员工的工作效率和敏捷性。然而,对于公司从云计算采纳中取得的每一项益处,也面临着不可预测的商业模式的长期不利因素——云收入呈指数增长并成为企业倒退的危险。 云节约导致老本升高 因为最终用户泛滥且跨多云环境频繁提供简直无限量的按需资源导致老本节约,并使这一状况一直好转。 钻研表明,近45% 的企业云估算用于非生产资源,这些资源简直只在每周 40 小时的工作工夫内应用。因为它们不须要全天候运行,这意味着这些资源有 75% 以上的工夫处于闲置状态,但仍需付费。 当企业提供超出其理论须要的基础设施时,常常会呈现老本节约;如同你只须要一辆自行车保障出行,却购买了一辆汽车。 监控不力的开发人员无奈在实现我的项目后勾销配置软件或告诉操作员,从而导致问题呈现。闲暇资源,例如在工作工夫之外提供的基础设施,是导致老本过高的常见因素。 这些云节约的因素很容易了解,这就引出了一个问题:为什么企业未能缩小云节约? 管制问题导致云节约 云节约是大多数 IT 领导者关注的焦点。然而,因为三个次要起因,企业难以缩小云节约: 云提供按需配置,因而任何人都能够在云中应用公司资金,而无需进行地方跟踪。不足围绕供给实际的执行。公司不能回绝开发人员为其开发阶段抉择高级实例。组织的可见性和跟踪能力无限,无奈在工作工夫之外为非生产工作负载勾销资源配置,或者在资源超过生存工夫 (TTL) 后清理资源。对云供给的治理不善是这些场景中的一个独特问题,因而须要解决方案在更全面的企业范畴内监督和管制云老本。 缩小云节约须要从一开始就进行系统化治理。尽管一些企业抉择手动执行这项艰巨的工作,但大部分企业则心愿通过专门构建的云基础设施自动化软件实现云配置、合规性和治理的自动化。 云基础设施自动化包含三个次要组件: 合作基础设施即代码:它提供了一种统一的办法来定义资源、主动创立这些资源,而后将代码标准化并批准为可重用的组件(模块)。多云治理:专一于跨多个提供商的资源的供给、治理、合规性和操作一致性。自助服务基础设施:使最终用户可能在地方 IT 设置的护栏内配置他们须要的基础设施,并在数千人配置时保护基础设施的精确记录。除了标准化和简化基础设施配置之外,自动化解决方案的最大劣势在于可能主动勾销配置未应用或闲暇的资源,而无需为团队成员手动安顿揭示或工作。 施行系统控制 自动化 IT 基础设施是管制显著影响盈利能力和竞争力的失控老本的关键因素。但并非所有基础设施自助服务和自动化工具的性能创立都雷同。 在评估选项时,须要寻找反对企业老本优化策略的解决方案,包含: 可重用的基础设施即代码。 为云经营提供一种办法来创立和公布事后验证和批准的模板,应用基础设施即代码,帮忙他们从重视老本的基础设施开始。多云。 反对多云性能和可利用于任何云或基础架构的老本治理办法。主动执行护栏。 在整个环境中主动施行供给护栏的工具,以实现与企业估算和指标统一的操作一致性。可见性和跟踪。 抉择解决方案,它应具备基础设施的实时、集中视图,并提供记录审计和清理未应用或孤立局部的能力。 通过云管制实现商业价值 业务和 IT 领导者越来越多地采纳基础设施即软件工具,这能够无效地治理和管制他们的云收入。他们意识到管制过高的云老本是公司长期应用云计算和继续数字化转型工作中必不可少的一步。 云联壹云等基础设施自动化平台可帮忙组织放慢云计算应用,同时打消不必要的收入和不统一的配置实际,从而显着升高经营老本并提高效率。 这能够帮忙企业放弃在估算范畴内,以保留回旋余地并取得更多优化云收入的抉择,同时放慢他们启动为业务带来价值的新我的项目的能力,并帮忙制订长期、可持续增长的经营打算。

January 4, 2022 · 1 min · jiezi

关于云计算:云计算厂商们你们辜负了中国的用户

当时申明:本篇文章会比拟强烈,作为从2010年开始应用中国云计算的开发者,架构师,粗浅的感触到了这十几年中国云计算产业的倒退,但同时也深深的意识到了作为中国的一些次要的云计算玩家与海内的友商们相比,走向了一个极其。题目用了辜负二字,其实是爱之深,责之切,作为一个中国人天然心愿可能让用上真正让人自豪的云计算产品,但假相往往惨不忍睹。 罪状一对云计算不足认知说到这一点,大家是不是很奇怪,云计算厂商竟然对云计算不足认知?然而事实上的确是这样的,有多少云计算厂商的销售或者架构师们其实对于云的了解只不过是所谓的计算、网络、存储,而且这种了解是停留在IDC时代的服务器,交换机,磁盘级别的认知上。把云当IDC卖,也不给客户输入任何云的高级最佳实际,上来就是折扣优惠,如同除了这个也没方法了,硬生生把云计算卖成了低端产业,看着AWS 23%的净利润,而中国云厂商能到20%的毛利润就了不起了。我感觉没有一个人看得起以倾销作为市场伎俩的产品,有本事一次性定价到位,还是用信息不对称的形式戕害小规模客户。 对于用户来说,云厂商不足云计算的认知,就会被客户带着走,客户要什么给什么性能,或者不同云产品间接没有任何的关联性,甚至呈现云产品A与云产品B不兼容,反而和另外的开源计划兼容...作为云计算的用户深深的感觉到中国云计算产商提供的一堆产品,实质上是一个个割裂的独立的产品,大部分只是负责有就能够了,能用就能够了,至于好不好用这不是中国云厂商的产品们须要思考的。 罪状二勇争新时代集成商其实第一点是连续第一条罪状的恶果,最后可能来自于云自身的能力有余,须要第三方厂商提供一些相干的能力。然而忽然云厂商发现了一个乏味的景象,他们感觉本人跳下去做集成岂不是更好的抉择,营收规模也能够做得更大,只有囊括一些云产品,什么服务器,交换机,存储,打着公有云的旗号轻松集成,甚至手机,办公桌椅也能够一起打包集成,这样就更容易做大规模。(那可怜的毛利率啊),所以CDN和短信成了中国云计算厂商的营收利器(中国的运营商们特地喜爱的打工仔)。 罪状三对于技术迭代不足信念看着大洋彼岸的Facebook(meta),Nasdaq, 早几年的Saleforce都开始拥抱云计算了,而且A家吹牛都吹上了天。 然而不晓得什么时刻开始,中国的云计算厂商斗争了,放弃了,自我了断了,这些年我没有看到太多的真正的云计算上的翻新,反而是各种一体机,各种公有云计划层出不穷,要是打着云的旗号去挖矿(当初也是非法行为)还能了解,然而如果仅仅是所谓平安上的斗争,其实不反向证实了这些私有云有多不靠谱么。 我已经问过一个国内Top10的互联网大厂的技术合伙人,失去的论断是:“要不是国内厂商不靠谱,咱们为什么要自建数据中心,你看海内咱们就能够用AWS”,这诚然是对AWS的吹捧,也有中国的理论状况,然而当进入了集成的死亡旋涡,等于云厂商本人投降了,斗争了,最可怕的是这个私有化的版本还不见得靠谱...... 罪状四没有承诺,自觉自研大家应该能够看到很多云厂商都号称本人有如何如何牛X的技术,提供了如何牛X的数据库,大数据技术如何如何,然而你千万别受骗,我在接触云计算的最后的阶段是基本上能抉择云厂商提供的自研的产品我也是十分乐意尝试的,毕竟这是中国团队的作品,作为一个开发出身的人也很能了解产品倒退须要工夫,我能忍耐Bug的。然而....云厂商很多时候会始乱终弃,对于自研的产品一开始推广的时候,产品经理说得像花一样,而后,一段时间后没人管了...而后产品经理到职了....始乱终弃啊!这不是渣云是什么?合着我成了KPI我的项目的垫脚石? 云厂商的高层们啊,能不能轻易公布云产品啊,要晓得你们的任何一款产品,哪怕上线了就一个用户,你也不能摈弃他人,要不用户怎么敢置信你的自研产品。 罪状五工程化水平极其烂其实云计算囊括了这么多的产品,对于一个真正的云计算客户来说,他们其实是在应用一个技术栈的汇合(stack),在我的眼里云计算厂商提供的是一整套的技术计划,而不是一个个孤零零的产品,这也是我认为云厂商真正能够称为云的根底。 然而很显然,我的感觉是中国云计算的产品经理们自觉的剽窃了国外友商的性能,知其然不知其所以然,这也就算了,还退出了不少的小心理,而后将产品架构毁坏的一塌糊涂。(具体不举例了,懂得都懂),另外不重视与寰球的云计算生态接轨,如OpenAPI设计得如何?思考过使用者的感触了吗?IaC方面的反对都是差强人意,是不是写个Provider没有营收就没人有能源写好他? 云市场出了Branding拉一些所谓的合作伙伴进驻,是不是真正有志愿帮忙这些成长你的平台上的云的利用胜利? 一口气写下以上内容,请中国云厂商们切勿对号入座,兴许在某一天我心愿本人会因为写下这一篇文章感到惭愧,中国云计算厂商不应该是我形容的这个样子的。回想起10年前开始应用云计算时候最晚期的云计算从业者的激情,看到明天此情此景未免感叹———去他妈的客户第一。

January 4, 2022 · 1 min · jiezi

关于云计算:快速搭建实验环境使用-Terraform-部署-Proxmox-虚拟机

自从用上 m1 的电脑,本地开发环境偶然会遇到兼容性的问题。比方之前尝试用 Colima 在虚拟机中运行容器运行时和 Kubernetes,其理论应用的还是 aarch64 虚拟机,理论应用还是会有些差别。 手上有台之前用的黑苹果小主机,吃灰几个月了,实属节约。正好元旦假期,有工夫折腾一下。 CPU: Intel 8700 6C12TMEM: 64G DDR4DISK: 1T SSD折腾的目标: 将平台虚拟化提供多套试验环境疾速创立销毁试验环境体验基础设施即代码 IaaS次要用到的工具: 虚拟化工具 Proxmox VETerraform:开源的基础设施即代码工具terraform-provider-proxmox:Terraform Proxmox Provider,通过 Proxmox VE 的 REST API 在创立虚拟机。装置 Proxmox 虚拟化工具从官网 下载 ISO 镜像,写入到 U 盘中。macOS上举荐应用 balenaEtcher 写盘。 电脑上插入 U 盘并从 U 盘启动,依照步骤一步步实现设置。 官网的 wiki 装置步骤很具体。 装置实现之后就能够创立虚拟机了,能够用命令行 qm create 或者 https://localhost:8006 Web UI来创立。 这样毕竟还是有点麻烦,每次都要执行很多操作。虽说能够编写脚本,然而通用型不够好。因而咱们抉择 Terraform,实现基础设施即代码。 创立 Ubuntu Cloud-Init Template这里选用 Cloud-Init 的形式,从 cloud-init template 来克隆虚拟机。cloud-init 的虚拟机能够实现一些高级定制的初始化工作,有趣味的参考 Cloud Init 文档。 ...

January 4, 2022 · 3 min · jiezi

关于云计算:新品发布-Cloudpods-385-版本上线

Cloudpods是一个开源的Golang实现的云原生的多云和混合云交融平台。 Cloudpods不仅能够治理本地的虚拟机和物理机资源,还能够治理其余私有云和公有云平台的资源。 12月31日,Cloudpods 新版本 v3.8.5 正式公布。 本次更新次要蕴含对前段用户反馈问题的修复和一些小的性能优化迭代。 首先,咱们针对这段时间用户反馈的一系列问题进行了改良,例如局部用户反馈应用5.4内核有兼容性问题,咱们把默认的内核切换回来原来的3.10内核,另外还包含对减少虚构磁盘总是应用virtio-scsi接口等用户反馈问题的修复。 其次,咱们在3.8版本上还有一些小的性能迭代。(大的性能迭代将在3.9与大家见面) 在公有云方面,全新allinone部署的第一个节点会默认开启EIP网关性能,使得EIP性能实现了开箱即用,欢送大家试用。此外,还包含反对了USB透传及克隆/迁徙速度优化,反对了网络拓扑的查看等。 在云管方面,咱们持续对接其余资源,如AWS平台的NATGateway资源、谷歌云负载平衡反对及Azure平台减少数据库监控等。 最初,咱们对费用图表进行了优化,不仅反对用户不便查看图表,而且用户能够依据本身需要导出PDF及相应的源数据进行个性化剖析。 本次更新干货满满,欢送大家下载安装或降级体验,具体更新如下: 新性能(New Features) 【主机】反对USB设施透传【网络】新增网络拓扑【监控】对接Azure平台RDS、Redis及LB资源监控【主机】虚拟机新增推送配置操作【主机】虚拟机克隆/迁徙减少进度提醒【主机】通过 DHCP 下发 ntp 服务信息【网络】AWS反对同步NATGateway资源【网络】对接谷歌云平台LB资源【部署】反对EIP网关自动化部署【费用】二次定价反对公有云平台(企业版)优化(Enhancements) 【主机】Web Console控制台减少主机名称和IP信息提醒【主机】优化克隆速度【零碎】新建资源反对备注信息及列表反对备注搜寻【主机】新建平安组规定同时反对输出备注信息【主机】调用vmrc软件兼容edge浏览器【主机】反对中文名称的平安组关联实例【主机】减少创立资源失败主动更换同配置套餐开关【认证】减少域下统计资源【零碎】所有服务的容器镜像时区对立应用UTC工夫【命令行】climc 反对 json 格局输入【费用】费用图表反对Excel及PDF格局导出(企业版)【费用】费用优化新增年优化金额(企业版)问题修复(Fixes) 【主机】修复平安组模版下载谬误【主机】修复回收站革除时ID可能反复问题【主机】修复迁徙失败问题【主机】修复减少磁盘驱动不统一问题【主机】修复GPU卡计费问题(企业版)降级形式 欢送交换降级详情!

December 31, 2021 · 1 min · jiezi

关于云计算:深度解读企业云上办公利器无影云电脑

简介:信息化过程高速倒退的明天,用户桌面办公的需要正一直发生变化:近程办公,BYOD的需要一直增长;疾速交付,高效运维的需要接连回升;数据及网络安全的关注度继续进步;整体办公老本在进一步优化。相对而言,云上办公成为了企业首要的关注点。 信息化过程高速倒退的明天,用户桌面办公的需要正一直发生变化:近程办公,BYOD的需要一直增长;疾速交付,高效运维的需要接连回升;数据及网络安全的关注度继续进步;整体办公老本在进一步优化。相对而言,云上办公成为了企业首要的关注点。 放眼桌面办公的进化史,从传统PC到VDI再到DaaS化,整个进化门路围绕着用户桌面办公的几大痛点:老本、平安、高效、易用。 传统的PC电脑老本投资大、交付周期长、受供应链牵制、扩散办公保护艰难、数据安全能力差,因而桌面VDI(桌面虚拟化)诞生了,解决了传统PC扩散办公的难题,对数据安全有肯定晋升。 不过VDI仍存在较多问题没能解决:初期投资大,私有化难治理;企业资产的布局能力弱,服务器资源效率不高,外部资源难以平衡;运维能力弱,企业的扩张无奈应答指数级增长的运维需要。 由此,阿里云基于无影云电脑提出了DaaS化(Desktop-as-a-Service)一站式的云上办公空间计划。 无影云电脑联合各种云产品造成的解决方案,为客户交付残缺的办公生态,不仅可能优化企业办公老本,满足近程办公需要,还能让运维更为便捷,基础设施运维由阿里云搭建,企业只需关注简化的策略。并且保障了数据安全,数据保留在云端,不落地,升高数据泄露危险。另外,无影云电脑系统利用生态提供凋谢的环境,反对跨端、跨零碎、跨利用、多协定接入。 一图看懂无影架构下图展现的为无影云电脑办公解决方案架构图,分为接入侧和云侧两大部分。 先来看云侧,最底部是阿里云提供的基础设施,蕴含网络、存储、计算能力(CPU、GPU)形成无影的基底。往上为云桌面管控平台,通过构建桌面/利用、用户、模板治理及数据安全管控能力,使无影在桌面管控层面实现性能多样化。 两头局部次要针对于用户服务,包含了贮存、桌面/桌面池的构建,利用和通用服务器的相干能力。其中,在贮存方面,由无影云盘及阿里云NAS产品进行了整体计划的构建,保证数据存储共享及平安。服务器方面,针对于不同的通用服务器(编译服务器、邮件服务器等),无影可能进行对接和买通,确保服务器平安上云。 再往上是数据进口层面,为了保障数据安全,无影云电脑在网络安全管控、数据防透露、桌面平安治理、行为审计四个维度做出了保障。将无影本身策略管理能力、阿里云平安团队构建的网络安全能力,以及通用服务器和第三方生态的平安零碎进行了整合。 紧接着往上是无影集成的利用市场,除了Windows零碎下的native利用,无影也可能将SaaS级利用进行引入,欠缺办公环境。并反对企业进行利用治理,包含商业软件的引入,企业外部软件的上传。除此之外,也可能反对互联网下载应用软件进行装置的模式,以及服务器相干的利用应用。 最初,云端无影的所有底层能力都能赋能于不同的企业应用场景,如平安办公、软件开发、图形设计、外包运维、教育教培等。 在用户首次接入无影时须要抉择应用的规格族。无影云电脑目前的规格族次要面向两类场景:一类针对于纯CPU的办公开发为主场景,分为面对一般办公开发场景的通用办公型,以及对性能要求较高的高主频办公型。 另一类是GPU实例的规格族,次要解决渲染、设计等场景需要。在每个规格族上面,无影也提供了多种规格。以通用办公型举例,从2核4G到16核32G,这个范畴内用户均可能按需抉择,实现老本优化。 无影终端的设计定位与落地门路接下来从接入侧看,无影提供了多种供用户抉择的终端模式,用户可应用传统的设施进行利旧(比方Win、Mac零碎下载软终端连贯无影云桌面),还反对更加灵便的Web客户端和挪动客户端(IOS,安卓零碎)进行桌面连贯。另外,无影也领有专用的终端产品,满足用户BYOD需要。 在无影终端产品设计上,无影团队进行大量用户需要的钻研,并联合用户生存和工作状态,把用户定义为四类: A类为Business客户,次要为大中型企业,多为平安办公和开发场景。 B类为Co-Creator客户,次要为小型企业/翻新团队,有单干协同办公的需要。 C类为Consumer客户,这类客户有挪动办公,内容生产的需要。 D类为Cloud Entertainment客户,这类客户心愿在云上进行娱乐相干场景操作,对云的性能需求要求较高。 面对这四类不同的需要,无影产品团队在终端设计上,从难易度、可触达性、效率、体验,四个维度有着不同的终端产品布局。 在后期概念导入期,针对于A、C、D三类用户需要市场,首先诞生了两类产品。第一类为盒子类产品AS01、AS02,次要针对办公市场和消费市场,满足疾速企业上云的需要。另一种是C-key卡片机ASC01,体积小,便于携带,用一根TYPE-C线即可连贯无影云电脑,针对挪动办公场景,集体及中小企业用工场景。 第二个阶段细分市场扩张期,也是无影产品团队目前身处的阶段,目标是通过更多状态的终端产品,满足细分场景不同用户的需要。比方通过一体机(已公布)US01、US02的状态,切入实体办公场景,满足业余设计需要。以及挪动产品状态(未公布),如无影笔记本电脑、无影的pad,这类产品可能让用户随时随地接入无影,减少便捷敌对的用户体验。 最初是面向未来的生态赋能期,旨在无影与各产业之间的互相赋能。无影将来将专一于硬件及OS的生态建设,通过制订规范,建设认证,把硬件计划形象成可疾速交付的产品,交付给合作伙伴,并让更多产业的力量可能退出无影生态,包含对全外设的反对,提供给终端用户多种多样的云终端场景应用体验。 无影企业办公解决方案针对于平安办公、设计办公、分支机构办公、教育办公等场景,无影PDSA团队已构建了成熟可用的解决方案。 1、平安办公场景企业平安办公场景次要面临两大难题:数据安全管控、响应市场变动的资源弹性和灵活性。 首先最外围的难题是数据安全管控。一是人员流动下数据安全存在危险,二是传统PC端数据留存在本地,当硬件损坏、数据失落,硬件遗失等状况产生时有数据泄露的可能性。三是须要避免病毒&流氓软件入侵。四是接入平安问题。近程办公场景下的接入平安无奈保障,存在第三方VPN、外设等平安危险,账号密码易泄露。 其次是业务调整难题。随着企业组织的扩充,业务的新增,IT运维策略无奈即时应答企业组织变动。另外,面对短期我的项目,企业通常无工夫或无条件购买PC设施,我的项目进度推动慢。 因而,依据企业平安办公的痛点,无影团队对平安办公场景进行了解决方案架构。 如图所示,首先将传统的PC运行环境进行云化。在公司外部,员工能够通过外部网络接入。员工在家办公或出差办公,也能够用便携设施,电脑,pad,手机等形式,进行平安网络的接入。 另外,企业的线下环境,比方AD域控服务,OA服务,文件服务等外部零碎,会通过云企业网CEN,把云上无影和线下环境进行买通。另外,无影云电脑也会提供AD connector帮忙企业将AD环境的买通,实现域控策略的链接,由此实现平安办公上云。 此计划外围价值在于全过程的数据安全及网络安全层面,确保所有环节上云后办公环境更平安: 1)数据不落地。无影云电脑会将所有数据贮存在云端,同时反对PDS云盘,企业共享NAS进行数据存储,所有部门敏感、秘密数据都能失去保障。 2)外设管控。企业能够通过无影云电脑安全策略的定制,对数据安全增强管控,比方限度外设端口的接入、网址黑白名单、粘贴板的应用等。 3)保障接入平安。数据传输方面采纳串流技术,协定加密,只传输图像,并不进行业务数据的传输。并反对与企业治理平台AD对接,反对多因子认证、SSO单点登陆等性能。 4)资源弹性。面对业务弹性,业务扩张或者调整,无影能够轻松应酬,通过即时开明,灵便上线,算力弹性膨胀、按量付费,帮忙企业面对业务扩张时可随时设施调整应用状况。 5)软件对立治理。而对于桌面装置软件,无影提供了无影利用核心,有着丰盛的正版软件库。同时反对纳管企业自有软件或license,并且可对所有利用进行治理,按需分配。 该计划胜利助力中华保险企业搭建云上平安办公环境,阿里云团队为中华保险构建了金融级公共云服务,可使得员工通过帐密+令牌平安登录,SSO单点登录。无影的根底策略管理性能,提供了外设/水印等灵便平安管控策略。另外,集成阿里云防火墙和云平安核心等产品,晋升网络访问控制并提供防病毒能力。控制台对立治理无影云桌面与其余云产品,云上资源弹性扩容,即用即购,晋升桌面管理效率。 2、设计办公场景设计办公场景痛点次要针对于性能、平安、协同、老本四个维度。 针对于性能层面,设计办公次要的问题是性能告警。传统PC电脑受限于实体硬件性能限度,无奈即时裁减迭代。大型渲染工作,PC或工作站须要24小时甚至更长时间继续工作,硬件损耗极大。 另外,数据安全问题,设计类数据多为敏感数据,本地设施容易外泄。且传统PC或工作站呈现硬件故障时,设计数据失落难复原。 同时协同办公需要也很显著,设计师须要带着设计稿到客户公司去交换,传统PC或者工作站无奈反对近程办公需要。且设计工程文件须要协同调整,不同地区的设计文件无奈共享,合作能力差。 再是设施老本高的难题。设计场景对设施的性能要求较高,设施更新周期个别较短,资源节约是该类企业面临的治理问题。 依据设计办公场景痛点,无影团队对设计办公场景进行了解决方案架构。 首先,为了更好实现不同区域的设计师工作的协同,不同区域的设计师能够就近开明无影云桌面,通过专线进行网络连接,配置平安网关保障网络安全。通过云企业网将多地区工作环境进行连贯,实现资源互通。最初,无影PDSA团队对设计业余软件和专属工具进行了调优和适配,保障线上和线下的操作体验统一。 同时,针对于设计场景无影云电脑还提供了其余应用价值: 1)云端GPU办公,反对长时间稳固运行。无影提供的高性能GPU图形化处理器,解决大型渲染工作,PC或工作站须要长时间工作,硬件损耗极大的需要 2)节约老本,缩小资源耗费。因为设计师并不是所有工夫都应用无影进行工作生产,购买时可抉择按量购买,只计算应用时耗费的资源,节省成本。 3)数据不落地,爱护数据安全,云上多正本存储,轻松应答不可控危险,可靠性更高。 4)近程办公,多端接入的个性,可能让设计师将高性能计算能力随身携带,在任何环境灵便向客户展示本人的设计成绩。 设计场景的典型案例是火星时代教育。火星时代教育专一于艺术教育,对于云上办公需要较大。无影团队通过引入网络专线接入阿里云环境,并进行了业余软件的适配工作,包含对数位板,专用的外设,键盘,软件等的调配。传统带GPU的PC电脑,设计渲染时功耗十分高,而无影将GPU汇合在云端后,客户应用无影的GPU即可实现设计渲染,起到节能减排的作用。 3、分支机构的办公场景分支机构办公场景最大的难题分为两方面,治理问题和平安问题。 治理问题:外围问题是IT资产治理难度大,企业业务上线和降级效率低,没有专属运维人员的分支机构产生数据事变时数据恢复效率低。 平安问题:分支机构人员操作行为不可控,存在安全隐患;数据落在分支机构本地,存在泄露危险;从第三方渠道近程接入公司内网,存在网络安全危险。 另外,分支机构办公的环境较为简单,蕴含企业线下的IDC环境、总部的线上环境、分支机构的线上环境以及挪动办公环境,该计划针对四个环境进行了链接和买通。 第一步通过云企业网的连贯,AD Connector的接入,以及平安网关的建设,把各个扩散的办公环境与总部数据中心连接起来。第二步,通过无影云电脑将企业整体办公环境上云。第三步,通过利用核心进行利用的治理和散发,由此解决了分支机构的治理问题和平安问题。 另外,从治理和平安两个维度,无影也为分支机构提供了额定价值: ...

December 31, 2021 · 1 min · jiezi

关于云计算:在-KubeSphere-中使用-Rook-构建云原生存储环境

作者:尹珉Rook 介绍Rook 是一个开源的云原生存储编排器,为各种存储解决方案提供平台、框架和反对,以便与云原生环境进行原生集成。 Rook 将分布式存储系统转变为自治理、自扩大、自修复的存储服务。它使存储管理员的部署、疏导、配置、配置、扩大、降级、迁徙、劫难复原、监控和资源管理等工作自动化。 简而言之,Rook 就是一组 Kubernetes 的 Operator,它能够齐全管制多种数据存储解决方案(例如 Ceph、EdgeFS、Minio、Cassandra)的部署,治理以及主动复原。 到目前为止,Rook 反对的最稳固的存储依然是 Ceph,本文将介绍如何应用 Rook 来创立保护 Ceph 集群,并作为 Kubernetes 的长久化存储。 环境筹备K8s 环境能够通过装置 KubeSphere 进行部署,我应用的是高可用计划。 在私有云上装置 KubeSphere 参考文档:多节点装置 ⚠️ 留神:kube-node(5,6,7)的节点上别离有两块数据盘。 kube-master1 Ready master 118d v1.17.9kube-master2 Ready master 118d v1.17.9kube-master3 Ready master 118d v1.17.9kube-node1 Ready worker 118d v1.17.9kube-node2 Ready worker 118d v1.17.9kube-node3 Ready worker 111d v1.17.9kube-node4 Ready worker 111d v1.17.9kube-node5 Ready worker 11d v1.17.9kube-node6 Ready worker 11d v1.17.9kube-node7 Ready worker 11d v1.17.9装置前请确保 node 节点都装置上了 lvm2,否则会报错。 ...

December 31, 2021 · 6 min · jiezi

关于云计算:新年将至惊喜来袭

December 31, 2021 · 0 min · jiezi

关于云计算:光速从0到1掌握Prometheus和Grafana腾讯云专家5万字精华教程免费送

作者黄雷,腾讯云高级工程师,曾负责构建腾讯云云监控新一代多维业务监控零碎,善于大规模分布式监控零碎设计,对 golang 后盾我的项目架构设计有较深了解,后退出TKE团队,致力于钻研 Kubernetes 相干运维技术,领有多年 Kubernetes 集群联邦运维治理教训,目前在团队次要负责大规模集群联邦可观测性晋升,主导研发了腾讯云万级 Kubernetes 集群监控告警零碎,智能巡检与危险探测系统。 摘要如果问笔者,在治理 Kubernetes 集群的时候,有什么开源组件是肯定会用的,那笔者感觉 Prometheus 肯定会是其中之一。Prometheus 领有强劲的性能,沉闷的生态,便捷的部署形式,还有灵便的 PromQL,特地适宜用于 Kubernetes 场景下的 master,节点,利用等各个层级的监控数据采集和聚合,再配合炫丽的 Grafana 面板(如下图),堪称是云原生监控的最佳计划。 诚然 Prometheus 和 Grafana 非常弱小,然而刚接触的时候,还是有肯定的学习老本,不易上手,这点笔者特地有感触。记得几年前笔者还未负责团队云原生可观测性晋升的时候,就常常听到边上一刚接触 Prometheus 的哥们成天和笔者吐槽,“哎,Prometheus 的语法怎么这么简单”,“这货色太恶心了,这怎么写啊”。过后笔者还讥笑他夸大,但当我也开始学习 Prometheus,开始配 Grafana 面板的时候,也收回过一样的吐槽声,例如下边的语句。 max(label_replace( label_replace( label_replace( kube_deployment_status_replicas_unavailable, "workload_kind","Deployment","","") ,"workload_name","$1","deployment","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace( label_replace( label_replace( kube_daemonset_status_number_unavailable, "workload_kind","DaemonSet","","") ,"workload_name","$1","daemonset","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace( label_replace( label_replace( (kube_statefulset_replicas - kube_statefulset_status_replicas_ready), "workload_kind","StatefulSet","","") ,"workload_name","$1","statefulset","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace( label_replace( label_replace( (kube_job_status_failed), "workload_kind","Job","","") ,"workload_name","$1","job_name","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace( label_replace( label_replace( (kube_cronjob_info * 0), "workload_kind","CronJob","","") ,"workload_name","","cronjob","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__)笔者这几年在应用 Prometheus 的过程中积攒了肯定实践经验,也踩了不少坑。 ...

December 31, 2021 · 1 min · jiezi

关于云计算:新兴边缘云和基础计算设施详解

现在,寰球 Web 服务次要由公共云提供服务。当它们达到云边缘时,会被移交给电信有线和挪动无线接入网络,以交付给终端用户。 尽管这种交付办法可能满足大部分要求,但要害工作服务(具备毫秒或更低范畴内的严格提早要求)不能以这种形式工作,因为云到客户端的均匀提早很容易超过几十毫秒并且可能会依据网络负载激烈稳定。 须要超低提早的新兴服务(例如主动驾驶、用于智能基础设施和制作的大规模机器类型通信以及物联网 )导致边缘云和相干计算基础设施的呈现,以提供通过机器学习智能减速交付。 只管大家统一认为云边缘是须要更智能解决的中央,但对于在哪里构建这些边缘基础设施,以及它们是否等同于5G挪动边缘计算(MEC),人们却没有多少共识。此外,5G预计将在连贯边缘和客户端设施到云的过程中施展关键作用。 云计算重塑了互联网 Web 2.0 的呈现导致在上述节点到节点物理传输互联网络之上创立了消费者到服务和服务到服务交付笼罩范式。然而,Web 2.0 次要是基于公共云基础设施构建的,该基础设施在繁多治理域(如 AWS)内具备寰球影响力。公共互联网的角色曾经降级为 5G 及更高版本的新“接入网络”,这是云边缘的终点。 5G具备低提早、网络切片和网络性能虚拟化(NFV)等特点,旨在创立一种新的动静挪动接入网络,与私有云具备等同智能,其边缘网络在物理上离客户端更近。挪动边缘表演内容或数据缓存的角色,并作为客户端和原始云源之间的代理。 从概念上讲,边缘云能够被视为专用于特定应用程序的合成虚构互联网计算平台,其中边缘节点表演具备云“外围”的互联网“背板”缓存的角色。能够从边缘节点中受害的利用示例包含 VR/AR,物联网和医疗保健设施。 边缘云和边缘推理的衰亡 边缘云不仅仅是公共云的边缘。相同,它自身就是云,目标是创立全服务边缘智能。尽管从利用和经营的角度来看,公共云曾经成为企业数据中心的延长,但边缘云很可能作为第三方服务构建在挪动运营商的挪动边缘基础设施上,或者在传统电信运营商的接入网络和核心办公室之上。 此外,边缘云在概念上是小型边缘数据中心,它们之间可能存在点对点连贯和服务漫游(或联结)协调,它们可能不是独立运行而是一起运行——以提供将来简单的网状服务,具备机器学习推理智能。 这导致了集成两个不同的云架构的微小挑战,以实现无缝的端到端服务,同时优化端到端的流量。从流量治理的角度来看,边缘云和公共云这两个截然不同的自治零碎的拆散,使得为真正的端到端流量优化成为一个微小的挑战——次要是因为不足跨云流量的可见性和智能。 此外,每个云的流量特色也有很大不同。尽管公共云能够承当准动态云内流量,不受边缘和客户端相干激增的影响,而边缘云必须解决所有按需的flash人群流量和服务多样性——这须要具备利用qos感知的简单的边缘推理智能。 扩散的 Web 3.0 服务和起源的多样性 与Web 2.0不同的是,Web 2.0催生了可能通过聚合解决数十亿用户的超大型集中式网站,而Web 3.0承诺发明一种新的分散式互联网服务秩序——同时均衡隐衷和数据货币化需要。通过应用诸如互联网行星文件系统(IPFS)(容许点对点内容传输)、区块链(去中心化交易执行)和Solid(社会关联数据,一套基于关联数据准则构建分散式社交应用程序的约定和工具)。 Solid是模块化和可扩大的;它尽可能地依赖于现有的W3C规范和协定。它容许将内容与应用程序解耦,并实现与内容无关的应用程序基础设施架构,例如上述的边缘云。兴许这些新技术带来的最粗浅的变动是对象将按名称拜访和解析,并且能够驻留在多个地位——这无效地发明了源的多样性。 从流量治理的角度来看,Web 3.0 带来了一系列新的挑战。首先,去中心化将以后的核心辐射式内容散发范式逆转为一个分布式参与者充当辐条将流量发送到作为核心的请求者的范式。其次,分布式事务的所有成员从操作的角度来看都应该在逻辑上组合在一起,只管它们的数据不同,因为分布式事务只有在所有子事务实现或达到共识配额后才实现。 此外,更靠近申请源的云边缘将成为信息交融的核心——而不是像 Web 2.0 那样的外围,随之而来的是 TLS/证书、DNS 平安、负载平衡等扩大挑战。 边缘的多样性 如果不理解服务漫游在 5G 挪动边缘的全副影响,则思考云边缘将是不残缺的。 实时 5G 利用(例如无人机和主动驾驶汽车)要求挪动边缘反对的服务能够从一个 MEC 漫游到另一个 MEC,而不会失落状态信息或导致边缘到云的连贯。因为 5G MEC 可能位于中程地位,因而假如 MEC 站点之间具备连接性——反对诸如城域以太网、DWDM 光纤环路或 MPLS 电路。 为了在数据和状态共享方面放弃最大的灵活性,除了计算节点虚拟化之外,跨 MEC 的边缘存储虚拟化可能是不可避免的。 尽管预期客户端到 MEC 的提早放弃在低毫秒范畴内,但某些应用程序可能须要极短的提早——在几十微秒的范畴内,或高达 10 毫秒或更长。因而,微秒级提早可能只能在 DU 自身内适应或间接通过反对 ML 的 RU 加强——而能够容忍更长提早的边缘可能不须要 5G 的 uLLC 反对,从而能够部署其余无线和有线接入技术。 ...

December 30, 2021 · 1 min · jiezi

关于云计算:存储行业激烈搏杀挖一挖焱融科技业务增长的背后故事

数字化时代,各行业的数据量呈爆炸式增长,信息存储状态日趋多样,存储市场也随之产生了天翻地覆的变动。VMware 提出 SDDC 和 SDS、戴尔收买 EMC、IBM 收买 Cleversafe、微软收买 Avere Systems、谷歌收买 Elastifile 等等事件都在表明,寰球存储行业正向着分布式、云化、闪存化的方向倒退。存储作为云计算的三驾马车之一,已成为将来数据行业的重要载体。 尽管存储作为将来数据行业的重要载体,有着不可代替的位置。但从大环境来看,存储行业内有华为、浪潮;外有 IBM、EMC,能够说是巨头林立,岂但业务壁垒高,竞争也很强烈。涉足这种近乎关闭的存储市场,须要很大的勇气。 为了深刻理解守业公司为何冲入巨头林立竞争激励的存储行业?摸索两头遇到了哪些挑战?又是如何一步步开辟出来一条新赛道?存储又如何面对将来的多云时代等问题。InfoQ 专访了焱融科技创始人兼 CEO 王海涛,深刻分析焱融科技在存储行业的多年思考、实际和应答形式等。同时也心愿此文能为正在摸索存储畛域的企业和用户带来更多的参考和启发。 巨头林立的存储行业,靠什么开辟新赛道存储行业巨头林立,初创公司想冲破困局,开拓一条新赛道势必会面临诸多挑战,首当其冲的就是信赖挑战。存储作为每个公司的数据撑持,其重要性显而易见,再加上存储偏关闭的环境,这些因素使得泛滥企业在抉择或替换存储产品的时候都会慎之又慎,对于一个初创型公司来说更是艰难。要想破局,冲破这些窘境,建设企业信赖基石,王海涛认为做好以下几件事是要害。 首先,继续深耕存储畛域是建设信赖的根底。 以焱融科技为例,目前公司外部大多数员工在云计算和存储畛域都有很深的积攒,这使得焱融科技成立晚期,比拟容易获取到企业客户的好感和认同,其中就有一些种子客户违心尝试焱融科技的产品。 有了后期的积攒,焱融科技后续更大的指标之一就是对晚期客户做到足够的技术支持和疾速的产品迭代撑持,通过继续一直地打磨产品,让客户对产品和服务满意。尽管焱融科技在知名度上比不上大厂,但得益于产品的自主牢靠,焱融科技能够在任何代码级别问题上进行查找、FIX,实现疾速应答客户需要,同时利用产品的先进性,帮忙客户更好的适应企业外部面对存储的挑战。正因为焱融科技继续专一和深耕存储行业,在近日 Gartner 公布的中国首个《2021 中国软件定义存储竞争格局报告》(Competitive Landscape:Chinese Infrastructure Software-Defined Storage Vendors) 中,焱融科技是惟一入选专一于文件存储方向的厂商。 其次,满足企业场景需要是存储企业迈向下一步倒退的要害。 王海涛示意,因为每个行业的业务模型、IO 模型不一样,针对同一文件可能就会有程序读取、大文件读取、海量小文件读取、随机写入等等不同的 IO 逻辑。如何满足不同行业客户的需要,是存储企业须要重点关注的方向。 为此,焱融科技时常会花大量的工夫钻研每个行业的技术逻辑,并基于钻研后果对产品进行继续优化和迭代,自此,缓缓造成行业的技术壁垒和劣势。 目前,焱融科技曾经在 AI、主动驾驶和 GIS(地理信息系统)畛域获得了不错的成果。 2019 年,焱融科技服务了一家国内出名语音训练 AI 公司,这家公司次要有两个业务场景,一是以读写为主的机器学习训练场景,二是满足随机读取上亿级别的小文件时,存储性能不下滑的需要。为了满足上述两个需要,焱融科技在 AI 场景下做了许多优化,包含 SSD 智能 Cache、客户端预读机制、NR 替换算法等。通过针对行业继续优化的逻辑,焱融科技逐步造成了本身在 AI 行业的技术劣势。 在 GIS、影视渲染行业,行业特点会更显明。以某 3D 影视渲染企业用户为例,该客户的需要是在 Windows 场景下,应用上千台 Maya(开源模型动画设计软件)并行拜访同一个存储集群。为了更进一步理解客户需要,焱融科技团队钻研了传统 Windows 解决方案。他们从中发现,该计划是基于开源的 SMB 协定开发,两头存在一个较大的问题——难扩大。 对此,王海涛介绍到,“SMB 协定就像高速公路的进口,进口路线宽度无限,当车辆达到肯定水平时,很容易呈现拥挤的状况,导致底层性能再好也无奈施展实力”。鉴于此状况,焱融科技决定做独立的 Windows 客户端,以此来适配 Windows 场景。 ...

December 30, 2021 · 1 min · jiezi

关于云计算:Apsara-Stack-技术百科-标准化的云时代一云多芯

简介:随着往年云栖大会现场平头哥的自研云芯片倚天710公布,以及泛滥新兴厂商的芯片公布,将有越来越多的类型芯片进入到支流市场,“多芯”的架构将在数据中心中越来越常见,阿里云混合云在平安和稳固的根底上,将“多芯”的差别转变为“一云”的标准化云服务,助力企业业务跑的更快、更稳。 芯片作为半导体行业的外围产物,能够说是整个信息时代倒退的根底,在人们衣食住行越来越数字化降级的明天,小到工作应用的手机和笔记本,家庭用到的路由器、冰箱、空调、电视,大到交通路网的信号灯零碎、车辆的控制系统,都离不开芯片这个“大脑”,通过接管信息和收回指令,维持着整个零碎的失常运行。 而在云计算畛域,尤其是混合云场景所依赖的通用服务器市场,同时存在着X86、ARM、RISC-V、MIPS等多种不同指令集类型的芯片,这就让心愿上云和在云上的企业主们犯了难,本人机房里曾经有了很多X86架构的服务器,将来扩容或新增某些产品时还能不能引入新的芯片架构?企业扭转芯片路线只能放弃原有的服务器资产? 一些云厂商给出的是计划将每一种类型的芯片集群都独自建云,在造成多云后通过云治理平台从软件层面进行对立治理。看似是通过多云合作解决了不同芯片架构的问题,但认真思考下会发现依然有很多需要无奈满足,例如多朵云分资源池化后难以进行资源对立调度,无奈充沛的利用到不同业务的峰值和低谷来进行弹性,建多云、或多个AZ对客户的机房布局、建设估算等都有肯定要求,多云的计划并不能解决所有的问题。 除此之外多朵云还会导致运维简单,包含部署、降级和扩容等须要独自治理、运维治理老本高,租户操作体验差。 针对上述这些痛点,阿里云混合云给出了“一云多芯”的答案。针对客户业务特点及业务倒退布局,提供不同维度的混部能力满足客户“多芯”需要。 什么是一云多芯?所谓一云多芯是指用一套云操作系统来治理不同架构的硬件服务器集群,飞天云操作系统能够将服务器芯片等硬件封装成规范算力,无论底层是X86与ARM的并存、ARM不同厂商架构间并存、亦或是计算节点与存储节点不同芯片架构并存时,给客户提供体验统一的云计算服务。简略来说,就是从根本上解决不同类型芯片共存所带来的多云治理问题,真正造成一朵云,最大限度利用云上资源池的弱小算力。 一云多芯次要实用的场景有如下两个: 1、新建云平台时为了满足合规要求,企业进行强管控躲避与繁多芯片进行绑定,须要在单机房应用两种及以上类型芯片,或一云多Region下主Region和单元Region应用不同类型芯片; 2、已有云平台扩容,满足业务规模增长或新业务上云的需要,须要在云平台扩容新的产品,或者已有的云产品进行扩容,无论是新增产品还是已有产品扩容都能够应用不同芯片;扩容另外一个单元Region与已有云平台造成多Region架构,或者容灾AZ与已有云平台造成同城容灾架构,都反对应用不同的芯片。 一云多芯提供哪些能力? 针对客户不同的业务场景,以不同粒度(产品单集群、产品多集群、AZ、Region、云)划分不同档次的混部能力,提供一云多芯的全栈混合云产品,在性能、性能、可靠性、安全性等应用体验统一的前提下,开释异构多元算力。 在单机房场景中,反对从产品间、产品集群内、产品多集群的混布。 1、产品间混布:一朵云内,可反对将不同产品部署在不同的芯片上,例如依据业务需要能够在OSS和RDS等云产品上别离部署不同类型芯片; 2、多集群混布:一个产品如果有多个集群,可反对不同集群反对部署不同的芯片上,用户应用/创立资源时能够抉择不同的芯片集群; 3、集群内混布:集群内反对部署在不同的芯片上,由零碎主动调度,租户无需感知硬件类型,更易于治理或者业务扩容。 在多机房场景中,针对典型的一云多Region场景和同城容灾场景提供撑持。 1、多Region混部:主Region和单元Region抉择不同的芯片进行部署,适宜在多个地区有分公司的集团型或大型企业 ; 2、多可用区混部:多个可用区反对应用不同芯片建设,组建同城容灾混部,每个可用区能够部署一种芯片,是业界首家实现一云多Region的多集群的简单场景的混布。 除混布能力外,对于一云多芯的云平台来讲,环境底层硬件、下层操作系统和软件都是异构多样化的,期间任何一个环节的细小问题,都可能影响一云多芯生产环境应用,如何做到正确辨认,无效治理,进而达成高效协同是相当大的挑战,为了寻求在稳定性与性能间的最佳均衡,阿里云混合云团队保持从底层到下层的各项性能调试优化,业余保障后期验证适配工作,使生产环境能够疾速就绪。 结语随着往年云栖大会现场平头哥的自研云芯片倚天710公布,以及泛滥新兴厂商的芯片公布,将有越来越多的类型芯片进入到支流市场,“多芯”的架构将在数据中心中越来越常见,阿里云混合云在平安和稳固的根底上,将“多芯”的差别转变为“一云”的标准化云服务,助力企业业务跑的更快、更稳。 原文链接本文为阿里云原创内容,未经容许不得转载。

December 30, 2021 · 1 min · jiezi

关于云计算:性能提升40阿里云神龙大数据加速引擎获TPCxBB世界排名第一

简介:神龙大数据减速引擎,针对大数据罕用组件,如Spark、Hadoop、Alluxio等,联合阿里云神龙架构的个性,进行软硬一体化优化,造成举世无双的性能劣势,最终,使简单SQL查问场景性能相比社区版spark晋升2-3倍,应用eRDMA减速Spark性能晋升30%。 近日,Benchmark Express-BigBench(简称TPCx-BB)颁布了最新的世界排名,阿里云自主研发的神龙大数据加速器荣获TPCx-BB@3000世界排名第一。 TPCx-BB测试分为性能与性价比两个维度。其中,在性能维度,在本次排名中,阿里云当先第二名高达41.6%,达到了2187.42 BBQpm,性价比当先第二名40%,升高到346.53 USD/BBQpm。 (TPCx-BB@3000性能维度排行) (TPCx-BB@3000性价比维度排行) TPCx-BB是由国内标准化测试权威组织(TPC)公布的基于零售业场景构建的端到端大数据测试基准,反对支流分布式大数据处理引擎,模仿了整个线上与线下业务流程,有30个查问语句,波及到描述性过程型查问、数据挖掘以及机器学习的算法。TPCx-BB的测试具备数据量大、特色简单、起源简单等特点,与实在业务场景较为靠近,对各行业的基础设施选型有着重要参考意义。 TPCx-BB的测试后果,能够全面精确的反映端到端的大数据系统的整体运行性能。测试涵盖了结构化、半结构化和非结构化数据,可能从客户理论场景角度更全面的评估大数据系统软硬件性能、性价比、服务和功耗等各个方面。 阿里云自研的神龙大数据减速引擎MRACC(ApasaraCompute MapReduce Accelerator),是这次荣登世界第一的杀手锏。神龙大数据减速引擎,针对大数据罕用组件,如Spark、Hadoop、Alluxio等,联合阿里云神龙架构的个性,进行软硬一体化优化,造成举世无双的性能劣势,最终,使简单SQL查问场景性能相比社区版spark晋升2-3倍,应用eRDMA减速Spark性能晋升30%。 具体来说,针对大数据工作重IO个性,MRACC在网络和存储方面联合云上的架构劣势进行软硬件减速,包含软件的SQL引擎优化,应用缓存、文件裁剪、索引等优化伎俩,并尝试将压缩等运算卸载到异构器件;还应用eRDMA进行网络减速,将shuffle阶段的数据交换运行在eRDMA网络,使得延时升高、CPU利用率大幅晋升。 MRACC与神龙云服务器的联合,给云上大数据带来了新的设想空间,给用户带来了更高的性能和性价比。 原文链接本文为阿里云原创内容,未经容许不得转载。

December 30, 2021 · 1 min · jiezi

关于云计算:数字证书对保护云计算平台安全的重要性正在不断提高

大量企业正在从传统的外部IT环境转向基于云计算的平台,从而进步业务效率和有效性,但也引入了数据泄露、未经受权的拜访和简单的身份治理等平安威逼。 发展趋势 当初越来越多的公司将云环境用于服务模型,如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。这些是容许应用虚拟机、存储、负载平衡器、数据库、Web服务器和第三方提供和托管的应用程序。 截至2021年,大概50%的公司数据存储在云端。这一比例在2015年只有30%,并随着公司越来越多地将其资源转移到云环境中,在进步业务灵活性的同时进步安全性和可靠性成为企业的关注的焦点。 下图中云平安联盟(云计算要害重点畛域的平安指南)概述了云环境的特点及其服务模型。 企业在施行上述几种服务模型并将数据存储在不同的中央时,通常应用多云环境并与各种提供商单干。这些提供商对其云环境和保留的数据的平安负有局部责任,这是在与客户创立的服务级别协定中制订的。但大多数平安问题依然属于企业自身的责任范畴,并且审计和管制这些内部提供商也须要工夫和资源。 对平安的影响 云环境给企业带来了各种平安挑战。咱们在这里探讨一些关键问题。 1、数据泄露 当企业数据存储在本地时,IT部门能够进行相对管制。他们对此负有全副责任,并能够随时查看是否存在可能或理论的违规行为。当数据迁徙到云端时,此存储服务的提供商会为企业进行监控,企业将会开始依赖第三方来爱护其数据安全。 企业将不可避免地失去局部管制。而且,近年来云端产生了许多数据泄露事件——包含一些波及雅虎、阿里巴巴、LinkedIn等出名公司的数据泄露。数据泄露以及其它基于云的平安威逼,可能导致敏感数据失落、名誉侵害以及违反相干法规的罚款。 2、未经受权的拜访 当数据存储在本地,爱护数据免受内部威逼和未经受权的拜访要艰难得多。因为云提供商为多个组织存储数据,因而会成为黑客的次要指标。 3、身份治理 为了使员工和零碎可能平安地与云端的数据、应用程序或基础设施一起工作,须要正确辨认他们。这意味着云环境及其托管组织须要晓得试图拜访环境者的身份,以及他们是否被容许这样做。但应该如何辨认谁被容许拜访?如何进行治理呢?这就是数字证书发挥作用的中央。 在云端应用数字证书的重要性 为了加重云环境带来的平安威逼,企业能够应用精心治理的数字证书。例如X.509数字证书,X.509是一个规范,定义了许多互联网协议(如TLS/SSL)中应用的数字证书格局,用于平安浏览网页。这些证书绑定到密钥对,密钥对一起启用加密操作,如平安拜访或数据加密。它们通常用于使人们或机器在拜访环境时可能平安地进行身份验证,或加密正在存储或传输的数据。 X.509数字证书可用于: 1)加密存储在云中的数据。数据加密是可用于确保数据机密性的技术措施。因为这意味着,即便存在破绽,数据对黑客也没有用,因为他们无奈解密。 2)在云环境中不同地位或提供商的环境之间设置平安(TLS)连贯。 3)通过避免未经受权者读取或泄露数据,在传输过程中保持数据的机密性。 此外,它容许企业确保只有受权人员或零碎能力拜访云环境,因为它只信赖组织签发的证书,如果受权方没有受信赖的证书,则无奈取得拜访权限。 总之,通过应用和治理本人的数字证书,能够从新控制数据并进行拜访——即便数据正在挪动到云端或曾经保留在云端。 如何治理数字证书? 上述策略要求审慎应用和治理数字证书及其相应的密钥对。证书管理系统(CMS)是治理每个有权拜访云环境的人或零碎的证书的平安、高效的形式。 例如,Windows Hello for Business(WhfB)基于证书构造,并应用数字证书来确保安全拜访Azure环境。但证书须要妥善治理,以确保适合的人可能以最佳形式应用WhfB。 通过应用灵便的CMS,企业能够确保遵循正确的政策,并让适合的人员或零碎取得正确的数字证书。CMS还将帮忙企业尽可能多地自动化该流程。甚至能够将CMS连贯到容器(蕴含所有依赖项的整个软件应用程序),以便企业通过标准化API治理相干数字证书。 应用CMS的另一个劣势是,企业能够管制本人的证书和密钥,而不是将其移交给云提供商,咱们称之为“自带钥匙”(BYOK)。 云计算的应用只会一直减少,通过利用应用集中管理的数字证书的数字策略,企业及受权人员能够平安拜访其云环境和曾经保留的数据。

December 29, 2021 · 1 min · jiezi

关于云计算:TKE-用户故事-作业帮-PB-级低成本日志检索服务

作者吕亚霖,2019年退出作业帮,作业帮架构研发负责人,在作业帮期间主导了云原生架构演进、推动施行容器化革新、服务治理、GO微服务框架、DevOps的落地实际。 莫仁鹏,2020年退出作业帮,作业帮高级架构师,在作业帮期间,推动了作业帮云原生架构演进,负责作业帮服务治理体系的设计和落地、服务感知体系建设以及自研mesh、MQproxy研发工作。 摘要日志是服务察看的次要形式,咱们依赖日志去感知服务的运行状态、历史情况;当产生谬误时,咱们又依赖日志去理解现场,定位问题。日志对研发工程师来说异样要害,同时随着微服务的风行,服务部署越来越分散化,所以咱们须要一套日志服务来采集、传输、检索日志 基于这个状况,诞生了以 ELK 为代表的开源的日志服务。 需要场景在咱们的场景下,顶峰日志写入压力大(每秒千万级日志条数);实时要求高:日志解决从采集到能够被检索的工夫失常 1s 以内(顶峰期间 3s);老本压力微小,要求保留半年的日志且能够回溯查问(百 PB 规模)。 ElasticSearch 的有余ELK 计划里最为外围的就是 ElasticSearch, 它负责存储和索引日志, 对外提供查问能力。Elasticsearch 是一个搜索引擎, 底层依赖了 Lucene 的倒排索引技术来实现检索, 并且通过 shard 的设计拆分数据分片, 从而冲破单机在存储空间和解决性能上的限度 写入性能 ElasticSearch 写入数据须要对日志索引字段的倒排索引做更新,从而可能检索到最新的日志。为了晋升写入性能,能够做聚合提交、提早索引、缩小 refersh 等等,然而始终要建设索引, 在日志流量微小的状况下(每秒 20GB 数据、千万级日志条数), 瓶颈显著。离现实差距过大,咱们冀望写入近乎准实时。 运行老本 ElasticSearch 须要定期维护索引、数据分片以及检索缓存, 这会占用大量的 CPU 和内存,日志数据是存储在机器磁盘上,在须要存储大量日志且保留很长时间时, 机器磁盘使用量微小,同时索引后会带来数据收缩,进一步带来老本晋升。 对非格式化的日志反对不好 ELK须要解析日志以便为日志项建设索引, 非格式化的日志须要减少额定的解决逻辑来适配。存在很多业务日志并不标准,且有收敛难度。 总结:日志检索场景是一个写多读少的场景, 在这样的场景上来保护一个宏大且简单的索引, 在咱们看来其实是一个性价比很低的事件。如果采纳 ElasticSearch 计划,经测算咱们须要几万核规模集群,依然保障不了写入数据和检索效率,且资源节约重大。 日志检索设计面对这种状况, 咱们无妨从一个不同的角度去对待日志检索的场景, 用一个更适宜的设计来解决日志检索的需要, 新的设计具体有以下三个点: 日志分块同样的咱们须要对日志进行采集,但在解决日志时咱们不对日志原文进行解析和索引,而是通过日志工夫、日志所属实例、日志类型、日志级别等日志元数据对日志进行分块。这样检索系统能够不对日志格局做任何要求,并且因为没有解析和建设索引(这块开销很大)的步骤, 写入速度也可能达到极致(只取决于磁盘的 IO 速度)。 简略来说, 咱们能够将一个实例产生的同一类日志按工夫程序写入到一个文件中, 并按工夫维度对文件拆分. 不同的日志块会扩散在多台机器上(咱们个别会依照实例和类型等维度对日志块的存储机器进行分片), 这样咱们就能够在多台机器上对这些日志块并发地进行解决, 这种形式是反对横向扩大的. 如果一台机器的解决性能不够, 横向再扩大就行。 那如何对入日志块内的数据进行检索呢?这个很简略, 因为保留的是日志原文,能够间接应用 grep 相干的命令间接对日志块进行检索解决。对开发人员来说, grep 是最为相熟的命令, 并且应用上也很灵便, 能够满足开发对日志检索的各种需要。因为咱们是间接对日志块做追加写入,不须要期待索引建设失效,在日志刷入到日志块上时就能够被立即检索到, 保障了检索后果的实时性。 ...

December 29, 2021 · 2 min · jiezi

关于云计算:企业如何更经济高效地使用云和迁移到云

现在企业上云曾经成为不可逆的潮流,然而对于云经营,特地是如何更经济高效地应用云和迁徙到云等方面仍有疑虑,以下将会对相干内容进行探讨。 云与外部部署 之前常常看到公共云计算比外部部署贵很多的舆论。如果不加束缚,并且只思考计算和存储的设施和根本费用,则的确会得出这个论断。 注意事项 在进行偏心的云与外部部署比拟时,须要思考许多因素,例如: 泛滥服务/保护合同会谈等所有反对基础设施的老本(交换机、路由器、布线、支持软件等)业务工夫老本——例如须要期待多长时间将该LUN 增加到服务器中?数据中心开销(包含电力、网络冗余等)业务连续性/弹性开销(备用数据中心等)企业对 IT 资源的理论利用率 — 企业为领有备用可用性的计算领取了多少费用?可能疾速响应一直变动的业务和 IT 需要当以上因素综合起来,你可能会得出不同的论断。从实质上讲,这意味着企业必须在设施的使用寿命内摊派计算的全副老本(包含上述因素)。即便外部部署的老本略低,但这兴许并不值得,因为运行数据中心并非外围业务。 在进行比拟评估时,还应与财务团队单干,查看理论的外部部署相干收入。 单体工作负载 一个微小的挑战是较旧的单体工作负载,它们的构建通常很少思考计算成本与利用率。此类工作负载旨在 24x7 全天候运行,并且在须要时闲置。 一些应用程序将利用负载平衡器在可用服务器之间调配工作负载,并确保整体可用性。这样做次要是为了确保即便单个或两个服务器呈现故障或离线进行保护,实用的服务依然可用。 在应用程序闲暇期间,很少会出于其余目标重新部署计算外围。这当然能够实现,但须要付出大量致力来治理计算的重新分配。而且在非工作工夫不须要进行大量计算,硬件将会处于闲置状态。 混合云 有些状况下,的确应该应用外部部署。麦当劳西班牙的 CIO 指出,他们的每家商店都须要有本人的本地计算,以便商店即便在互联网中断的状况下也能经营。 本地 IT 基础设施将用于自动化治理、物联网数据的捕捉等。在这些状况下,领有(适当大小的)本地脚印通常是有意义的。然而,聚合数据并执行其余性能的后端服务能够基于云。 S&P Global 和 Dow Jones 等指数公司须要运行计算密集型的模仿,通常须要数千个内核——但仅限于短时间暴发。如果他们运行轮换模仿打算,他们可能可能在每 24 小时内放弃其外部部署计算基础设施的大量应用,因而证实在外部运行是正当的。 但大多数企业的计算需要都有顶峰和低谷,在闲暇期间简直没有什么可做的,因而领取闲暇的计算工夫并不是一个理智的抉择。 迁徙到云 企业如何在正当治理老本的同时迁徙到云?在数据中心迁徙过程中,企业通常会同时为两种服务付费。这也实用于云。 退出数据中心业务 运行数据中心若非公司的外围业务,则企业需将治理和经营开销都由云服务提供商负责。另一个益处在于,企业能够轻松部署和治理相干服务。 自助服务反对 在治理外部部署的 IT 基础设施中,配置占了显著老本。提供虚拟机和连贯存储通常须要专业知识。 到目前为止,云的最大劣势是即时配置。只需点击几下,不到几分钟,企业就能够部署新的计算和其余服务,无需期待提供设施。并且,如果该部署不是企业所须要的,能够疾速地将其删除,企业只需在部署该资源时为其付费。 晋升和转移 迁徙到云的第一种办法是“晋升和转移”,即现有的应用程序简略地按原样迁徙到云中。如果自觉执行,额定的老本可能比拟微小。然而,如果通过技术来节省成本,同样能够将老本管制在正当范畴内。 云反对企业的应用程序 现实状况下,企业能够从新编写应用程序工作负载以奇妙地利用云,新应用程序应该从一开始就启用云,只应用所需的云性能。当然,开发须要一些工夫,所以这应该是企业长期打算的一部分。 云老本节约技术 有许多技术能够升高云老本。云的个别教训法令是计算低廉而存储便宜。因而,现实状况下,企业应该只应用所需的最大量的计算和存储。上面有一些最常见的策略可供操作。 标记企业资源 现实状况下,企业的所有云部署都应进行标记,以辨认相干的老本核心、我的项目或相似内容,以便进行适当的穿插免费。它还能够帮忙企业确定谁“领有”某些资源。 例如AWS 帐户和 Azure 订阅能够应该用于隔离不同的业务畛域并进步安全性。Azure 提供了“资源组”,用于对共享雷同生命周期的我的项目(即与特定应用程序部署相关联的所有资源)进行分组。 整顿存储空间 企业应确保本身有一个良好的数据保留打算,它会抛弃不再须要的数据。这不仅是一种良好的做法,会升高存储老本,而且在越来越多的状况下,这也是一项法规听从性要求。 能够做一些简略的事件,例如辨认和删除反复数据;整合数据源;革除旧的日志文件;归档未应用的数据(但可能仍须要保留一段时间)等等。 企业还应确定工作负载在一周或一个月内的计算、内存和存储利用率。通常,企业的均匀计算利用率为 2% 到 4%,两头会有一些突发。这些暴发很可能产生在工作(或购物)工夫。 企业可能正在外部部署的24 核内存丰盛的服务器上运行应用程序。但利用率有余,兴许 8 个内核和一半的内存就足够应用。即便对于本地零碎,这也是一个很好的做法。 ...

December 28, 2021 · 1 min · jiezi

关于云计算:物联网之智慧农业应用分析大数据之数据挖掘技术的应用

2021年亚马逊云科技新疆昌吉社区首次交流会,聚焦“云计算、物联网、大数据、人工智能”现状,携手泛滥业内当先技术践行者,围绕亚马逊云科技牢靠的技术与服务,带来多维前瞻视角分享,拓展新疆计算机专业老师的视线,助力相干企业走进古代智慧农业、大数据等先进的信息技术,同时促成对亚马逊技术的宽泛理解。 本次分享邀请了深圳市睿海智电子科技有限公司总经理尹武博士。尹武博士毕业于英国纽卡斯尔大学无线通信业余博士学位,获享受深圳市政府特殊津贴,曾在华为、中兴通讯和光启研究院等国内出名团体和研究院负责研发部门负责人、项目经理,主持参加多个国家省市重点项目。此次他将分享物联网和5G技术利用报告以及智慧农业技术利用案例剖析,为新疆的智慧农业倒退提供借鉴。 本次分享还邀请了厦门大学信息学院高级工程师林世明, 他将从大数据概念动手,发现和开掘暗藏在数据背地的信息,阐释数据挖掘、机器学习、深度学习之间的关系,以及评估模型的好坏指标等等方面对大数据技术进行全面介绍,最初通过具体的案例解说数据挖掘技术的利用。 本次分享还将带来亚马逊云科技的最新业界前沿利用停顿,等你来加入! 工夫地点2021年12月29日新疆昌吉市绿洲路新疆农民大厦 日程15:30-16:00 PM 签到16:00-16:15 PM 主持人收场和User Group介绍16:15-17:00 PM 尹武博士 物联网技术与利用钻研17:00-17:15 PM 合影和茶歇17:15-18:00 PM 林世明高级工程师 大数据技术与利用18:00-18:45 PM 亚马逊云科技神秘讲师 嘉宾介绍 尹武博士,深圳市睿海智电子科技有限公司总经理,毕业于英国纽卡斯尔大学无线通信业余博士学位,获享受深圳市政府特殊津贴,广东省通信类教授级高工,深圳市海内高层次 B 类人才,联合国国际电信联盟、国内粮农组织物联网特聘专家,国家千人打算候选人,是多个重点高校物联网业余的客座教授和硕士生导师,国内通信顶尖级高校英国 Surrey 大学高级客座研究员,广东省物联网产学研联盟主任并提名副秘书长,深圳科协委员,广东省企业科技特派员,以及深圳市高技术转移联合会副会长。 林世明,厦门大学信息学院高级工程师,昌吉学院计算机工程系副主任(援疆)。次要钻研方向:软件开发与数据挖掘。主持、参加9项横纵向课题,包含参加1项国家天然基金项目,6项教育部产学协同育人我的项目,3项横向课题。撰写科研论文多篇,其中SCI5篇,领有软件著作权3项。 亚马逊云科技神秘讲师 礼品专区线下的流动,除了干货满满的分享内容,还有精彩的茶歇和诚意满满的周边礼品!咱们心愿大家的相聚不仅仅是技术交换,还能结交更多气味相投的敌人,一起碰撞出更加精彩的火花。 主办方亚马逊云科技 User Group 昌吉社区 合作伙伴思否、稀土掘金、InfoQ、CSDN 还在等什么,快快点击下方链接进行报名吧!https://www.caws-ug.cn/event-...

December 28, 2021 · 1 min · jiezi

关于云计算:TKE用户故事-作业帮检索服务基于Fluid的计算存储分离实践

作者吕亚霖,2019年退出作业帮,作业帮基础架构-架构研发团队负责人,在作业帮期间主导了云原生架构演进、推动施行容器化革新、服务治理、GO微服务框架、DevOps的落地实际。 张浩然,2019年退出作业帮,作业帮基础架构-高级架构师,在作业帮期间,推动了作业帮云原生架构演进、负责多云k8s集群建设、k8s组件研发、linux内核优化调优、底层服务容器化相干工作。 背景大规模检索系统始终都是各个公司平台业务的底层基石,往往是以千台裸金属服务器级别的超大规模集群的形式运行,数据量微小,对于性能、吞吐、稳定性要求极为刻薄,故障容忍度很低。 除了运行层面外,超大规模集群和海量数据场景下的数据迭代和服务治理也往往是一个微小的挑战:增量和全量的数据散发效率,短期和长期的热点数据追踪等都是须要深入研究的问题 本文将介绍作业帮外部设计实现的基于 fluid 计算存储拆散架构,可能显著升高大规模检索系统类服务的复杂度,使得大规模检索系统能够像失常在线业务一样平滑治理。 大规模检索系统所面临的问题作业帮的泛滥学习材料智能剖析和搜寻性能中都依赖于大规模数据检索零碎,咱们的集群规模在千台以上,总数据量在百 TB 级别以上,整个零碎由若干分片组成,每个分片由若干服务器加载雷同的数据集,运行层面上咱们要求性能达到 P99 1.Xms,吞吐量顶峰百 GB 级,稳定性要求 99.999% 以上。 以往环境中为了进步数据读取效率和稳定性,更多的在思考数据本地化存储,咱们的检索系统每日产生索引项并须要进行 TB 级别的数据更新,这些数据通过离线建库服务产出之后,须要别离更新到对应的分片中,这种模式下带来了许多其余挑战,比拟要害的问题集中在数据迭代和扩展性上: 数据汇合的离散:因为理论运行中,每个分片的每个节点都须要复制下来本分片所有数据,由此带来了同步数据下发艰难的问题。理论运行中如果要同步数据到单服务器节点,须要应用分级下发,先下发一级(十级)由一级分发给二级(百级)再分发给三级(千级),这个散发周期长且须要层层校验来保证数据准确性。业务资源弹性扩缩较弱:原先的零碎架构采纳的是计算和存储紧耦合,数据存储和算力资源严密捆绑,资源灵便扩大能力不高,扩容往往须要以小时为单位进行,不足应答突发峰值流量扩容能力。单分片数据扩展性有余:单分片数据下限受分片集群内的单机存储下限限度。如果达到存储下限,往往须要拆分数据集,而这种拆分不是由业务需要驱动的。而数据迭代和扩展性的问题又不得不带来了老本压力和自动化流程上的单薄。 通过对检索系统运行和数据更新流程的剖析,以后面临的关键问题是因为计算和存储的耦合所带来的,因而咱们思考如何去解耦计算和存储,只有引入计算存储拆散的架构才可能从根本上解决复杂度的问题 计算存储拆散最次要的就是将每个节点存储本分片全量数据的形式拆离开,将分片内的数据存储在逻辑上的近程机器上 然而计算存储拆散又带来了其余的问题,比方稳定性问题,大数据量下的读取形式和读取速度,对业务的入侵水平等等问题,尽管存在这些问题,然而这些问题都是可解决以及易解决的 基于此咱们确认计算存储拆散肯定是该场景下的良方,能够从根本上解决零碎复杂度的问题。 计算存储拆散架构解决复杂度问题为了解决上述计算存储拆散所须要思考的问题,新的计算存储拆散架构必须能达到以下指标: 读取的稳定性,计算存储拆散究竟是通过各种组件配合替换掉了原始文件读取,数据加载形式能够替换,然而数据读取的稳定性仍然须要和原始放弃等同程度。每个分片千节点同时数据更新场景下,须要最大限度的晋升读取速度,同时对网络的压力须要管制在肯定水平内。反对通过 POSIX 接口读取数据,POSIX 是最具备对各种业务场景的适应性的形式,这样无需侵入业务场景下,屏蔽了上游变动对上游的影响。数据迭代的流程的可控性,对于在线业务来说,数据的迭代理当被视为和服务迭代等同的 cd 流程,那么数据迭代的可控性就及其重要,因为自身就是 cd 流程的一部分。数据汇合的可伸缩性,新的架构须要是一套可复制,易扩大的模式,这样能力面对数据汇合的伸缩、集群规模的伸缩具备良好的应答能力。为了达成上述指标,咱们最终选用了 Fluid 开源我的项目作为整个新架构的要害纽带。 组件介绍Fluid 是一个开源的 Kubernetes 原生的分布式数据集编排和减速引擎,次要服务于云原生场景下的数据密集型利用,例如大数据利用、AI利用等。通过 Kubernetes 服务提供的数据层形象,能够让数据像流体一样在诸如 HDFS、OSS、Ceph 等存储源和 Kubernetes 下层云原生利用计算之间灵便高效地挪动、复制、驱赶、转换和治理。而具体数据操作对用户通明,用户不用再放心拜访远端数据的效率、治理数据源的便捷性,以及如何帮忙 Kuberntes 做出运维调度决策等问题。 用户只需以最天然的 Kubernetes 原生数据卷形式间接拜访形象进去的数据,残余工作和底层细节全副交给 Fluid 解决。Fluid 我的项目以后次要关注数据集编排和利用编排这两个重要场景。 数据集编排能够将指定数据集的数据缓存到指定个性的 Kubernetes 节点,而利用编排将指定该利用调度到能够或曾经存储了指定数据集的节点上。这两者还能够组合造成协同编排场景,即协同思考数据集和利用需要进行节点资源调度。 咱们抉择应用 fluid 的起因检索服务曾经实现容器化革新,人造适宜 fluid。Fluid 作为数据编排零碎,使得下层无需晓得具体的数据分布就能够间接应用,同时基于数据的感知调度能力,能够实现业务的就近调度,减速数据拜访性能。Fluid 实现了 pvc 接口,使得业务 pod 能够无感知的挂载进入 pod 外部,让 pod 内能够像应用本地磁盘一样无感知。Fluid 提供元数据和数据分布式分层缓存,以及高效文件检索性能。Fluid+alluxio 内置了多种缓存模式(回源模式,全缓存模式),不同的缓存策略(针对小文件场景的优化等)和存储形式(磁盘,内存),对于不同的场景具备良好的适应性,无需太多批改即可满足多种业务场景。落地实际缓存节点和计算节点的拆散: 尽管应用 fuse 和 worker 联合部署能够取得更好的数据本地性能,然而在在线场景下,咱们最终选用了缓存和计算节点拆散的计划,起因是通过缩短肯定的启动工夫换来更优的弹性是值得的,以及咱们并不心愿业务节点稳定性问题和缓存节点的稳定性问题纠缠在一起。Fluid 反对 dataset 的可调度性,换言之就是缓存节点的可调度性,咱们通过指定 dataset 的 nodeAffinity 来进行数据集缓存节点的调度,从而保障缓存节点可高效,弹性化的提供缓存服务。在线场景的高要求: 对于在线业务场景,鉴于零碎对于数据的访问速度、完整性和一致性有较高的要求,因而不能呈现数据的局部更新、非预期的回源申请等; 所以对数据缓存和更新策略的抉择就会很要害。 ...

December 28, 2021 · 1 min · jiezi

关于云计算:下一个云计算时代将如何发展

依据 IBM 报告显示,繁多的云办法行将淘汰。Digital Bulletin通过多位专家的见解理解推动这一趋势呈现的的次要起因以及技术人员应该如何布局云计算的将来。 依据 IBM 钻研显示,繁多云办法的时代曾经完结。这是 Big Blue 对云转型进行的寰球钻研的次要内容。 它显示了企业在云计算方面的行为产生微小转变,只有 3% 的受访者示意在 2021 年应用繁多公有云或公共云,低于 2019 年的 29%。IBM 示意,数据显示混合云或多云是当初占主导地位的 IT 架构。 IBM 云平台负责人 Howard Boville 示意:“在企业的云之旅开始时,许多公司涉足了几种不同的云,但这些云所造成的复杂性和互相关联的局部,有可能使它们面临重大的平安威逼。” 调查结果证实,平安、治理和合规性工具必须跨多个云运行,并从一开始就嵌入到整个混合云架构中,以便数字化转型取得成功。 事实上,五分之四的受访者示意,工作负载齐全可移植且没有供应商锁定对其数字打算的胜利极其重要。 此论断与微软在其 Ignite 流动中公布的一项重要布告相吻合。这家科技巨头走漏了许多新技术,这些技术将使其客户可能在其本人的数据中心内以及 AWS、甲骨文和谷歌等公司领有的数据中心内运行软件服务,例如数据库工具。 微软云人工智能主管 Scott Guthri在承受路透社采访时示意,这一决定对于压服一些客户在无奈应用微软数据中心的状况下运行其服务至关重要。 “从过往状况看,更高级别服务的挑战始终是‘锁定’的问题——如果我只能在你的数据中心应用它们会怎么?” 他说。“这种口头自在使客户在应用这些服务时感觉更加舒服。” 与简直所有企业技术趋势一样,疫情在减速扭转基础设施偏好方面施展了核心作用。 BM 的报告的确表明,混合云是次要的 IT 架构,这是疫情开始时组织挪动速度的间接后果。身为Zscaler 欧洲、中东和非洲地区 CISO 的 Marc Lueck 示意,这种转变并非是战略性地精心策划,而是因为公司必须疾速适应并彻底转变其 IT 基础架构。 以前,许多公司采纳繁多的办法来提供云服务,但当初这种状况曾经齐全扭转。当企业面临这种状况时,他们很快意识到为特定应用程序抉择最佳平台的益处。这意味着他们须要放弃这种繁多的策略,让服务在几周内运行,而不是在疫情呈现之前的几年内运行。 MariaDB 产品营销高级总监 Andrew Oliver 示意,有许多因素正在吸引企业从繁多源云转向更简单的基础设施安顿。 企业谋求混合云策略有几个起因。在某些行业,例如制造业,纯正的公共云部署既不现实也不实用——例如,提早造成至关重要影响的制作车间零碎。 如果本地零碎呈现问题,这些企业将公共云用作劫难复原站点以放弃失常运行。进入公共互联网的提早对于他们的日常经营来说是不可取的。 “作为‘劣势’策略的一部分,一些公司也采纳混合模式。他们为高频数据保留本地零碎——即便最终数据存在于 DBaaS [数据库即服务] 上。其余是因为安全策略或法规而混合的,局部是因为它们具备遗留零碎并随着工夫的推移更新应用程序而迁徙。起因不止一个——而且起因也因行业而异。” Lueck 示意,这些数据表明,依赖繁多公共云或公有云的公司曾经达到了临界点,但仍有一些场景可能最适宜这种办法。 繁多的云办法容许组织理解他们的 IT 环境,这意味着他们将从平安角度取得更多的可见性。CISO 角色中最艰难的因素之一是理解必须爱护的内容,因而可见性至关重要。如果没有特定的工具,多云脚印会使这变得艰难。 在某些状况下,多云可能是首选,但实质上是要找到平衡点。如果组织可能了解治理、拜访和可见性方面的艰难,那么他们就能够评估环境须要具备多大的弹性能力更快地取得成功。 ...

December 27, 2021 · 1 min · jiezi

关于云计算:云原生爱好者周刊OCI-镜像管理新工具-regclient

云原生一周动静要闻: OpenKruise v1.0 公布SlashData 最新报告:560 万开发者应用 Kubernetes,一年增长 67%WasmEdge 0.9.0 公布Security Profiles Operator v0.4.0 公布云原生实战课程第二期公布开源我的项目举荐文章举荐云原生动静OpenKruise v1.0 公布日前,OpenKruise v1.0 公布。 OpenKruise 是一个 CNCF 沙箱级别的我的项目。OpenKruise 是 Kubernetes 的扩大组件套件,次要专一于应用程序自动化,例如部署、降级、操作和可用性爱护。OpenKruise 提供的大部分性能次要基于 CRD 扩大构建。它们能够在纯 Kubernetes 集群中工作,没有任何其余依赖。 新版本次要变动如下: 原地降级环境:OpenKruise 从很早的版本开始就反对原地降级,次要用于 CloneSet 和 Advanced StatefulSet 等工作负载。与降级过程中从新创立 Pod 相比,就地更新只需批改现有 Pod 中的字段。在多个命名空间上分配资源:对于Secret、ConfigMap 等命名空间范畴的资源须要散发或同步到不同命名空间的场景,原生 K8s 目前只反对用户一对一的手动散发和同步,十分不不便。因而,面对这些须要跨命名空间进行资源分配和继续同步的场景 , 新版本提供了一个工具,即 ResourceDistribution 来主动实现。目前,ResourceDistribution 反对两种资源—— Secret 和 ConfigMap。容器启动优先级:同一个 Pod 中的容器可能存在依赖关系,这意味着一个容器中的利用程序运行依赖于另一个容器。OpenKruise 提供了一个名为 Container Launch Priority 的个性 ,它能够帮忙用户管制容器在 Pod 中启动的程序。kubectl-kruise 命令行工具:OpenKruise 已经为一些编程语言提供 SDK,比方 kruise-api 和 client-java,能够导入到用户的我的项目中。另一方面,一些用户还须要在测试环境中应用命令行操作工作负载资源。然而,原始 kubectl 中的 rollout、set image 命令只能用于内置的工作负载,比方 Deployment 和 StatefulSet。因而,OpenKruise 当初提供了一个名为 kubectl-kruise 的命令行工具,它是 kubectl 的一个规范插件,能够用于 OpenKruise 工作负载类型。SlashData 最新报告:560 万开发者应用 Kubernetes,一年增长 67%SlashData 为 CNCF 开发的最新云原生开发情况报告显示,Kubernetes 在过来 12 个月中获得了令人瞩目的增长——目前有560 万开发人员应用Kubernetes,比一年前减少了 67%, ...

December 27, 2021 · 2 min · jiezi

关于云计算:CNCC-演讲实录|-焱融-YRCloudFile-在-AI-训练中的性能优化实践

近日,计算机领域学术界、产业界、教育界年度盛会 2021 中国计算机大会在深圳召开。本次大会 NVIDIA 专家团队受邀参会,焱融科技作为 NVIDIA 初创减速打算中优良成员独特参加其中。英伟达初创减速打算 NVIDIA Inception 是英伟达提供的一个减速人工智能守业公司倒退的寰球生态我的项目,该我的项目旨在造就尖端的人工智能初创企业,为各个行业带来革命性的变动。 大会现场,焱融科技 CTO 王鹏飞发表主题演讲《新型存储架构 YRCloudFile 在 AI 训练中的性能优化实际》,通过分享焱融科技服务过的 AI 客户实战经验,深入浅出地剖析如何利用焱融 YRCloudFile 解决 AI 训练过程中的存储难题。 以下是 CNCC 大会现场在 NVIDIA 专场的演讲实录,浏览时长 10 mins,Enjoy~ 本次主题演讲分为三个局部存储集群面临的挑战YRCloudFile 解决 AI 训练难题计划YRCloudFile 最佳利用实际作为一家专一于软件定义存储技术的企业,焱融科技自 YRCloudFile 公布以来,长期深耕 AI 畛域,在行业内积攒了泛滥我的项目及实战经验,帮忙语音辨认、视觉辨认、主动驾驶等 AI 企业晋升训练效率,凭借高性能、高可用、高扩大、云上部署等个性,满足企业用户各种场景下的需要。 YRCloudFile 在国内多种云环境下,率先提供高性能文件存储的产品。在寰球 IO500 性能测试中,YRCloudFile 进入世界前六。同时,YRCloudFile 也是国内首个进入 CNCF Landscape 的容器存储产品。 文件系统在存储畛域次要分为三大类:对象存储、块存储和文件存储。其中,文件存储接口是下层利用最罕用的拜访形式,有超过 70% 的利用在应用文件接口。在上述存储类型中,每个都有各自的特点和劣势,然而如果想要给 AI、主动驾驶、HPC、生命科学等新型利用场景提供更好的服务,就须要一款优质的存储产品。 YRCloudFile 作为高性能、高可用、高扩大的分布式文件存储产品,实际上是专门针对上述场景进行了优化,可能反对企业对高性能、海量小文件、容器存储等方面的需要。YRCloudFile 自公布以来,长期关注“数据耗费小户”——AI,试图通过业余、当先的存储技术,帮忙企业继续优化数据处理流程。因而,咱们将从 AI 训练背地的存储难题切入,分享焱融科技的破解之法。 AI 训练背地的“血”与“泪”AI 训练过程是十分考究的,它不仅须要大量的训练数据,而且还要兼顾性能、运行效率和数据安全。 以后,AI 训练通常会应用 GPU 服务器,其性能在算法层面会比 CPU 的体现更好一些,然而 GPU 服务器并不等于 AI 的基础架构。首先在大规模 AI 集训中,大量的数据须要传输,然而 GPU 的速度是十分快的,通常 IO 工作应用的 CPU、存储和网络难以满足 GPU 性能的需要。其次,随着容器化逐步成为 AI 集群的趋势,如何将数据提供给 K8S 平台上容器化的 AI 训练集群应用也成为一个要害难题。 ...

December 27, 2021 · 1 min · jiezi

关于云计算:ColimaMacOS-上的极简容器运行时和-Kubernetes支持-m1

Colima 是一个以最小化设置来在MacOS上运行容器运行时,以及 Kubernetes。反对 m1(文末探讨),同样也反对 Linux。 Colima 的名字取自 Container on Lima。Lima 是一个虚拟机工具,能够实现主动的文件共享、端口转发以及 containerd。 Colima 实际上是通过 Lima 启动了名为 colima 的虚拟机,应用虚拟机中的 containerd 作为容器运行时。 应用Colima 的应用很简略,执行上面的命令就能够创立虚拟机,默认是 Docker 的运行时。 首次运行须要下载虚拟机镜像创立虚拟机,耗时因网络状况有所差别。之后,启动虚拟机就只须要 30s 左右的工夫。 colima startINFO[0000] starting colimaINFO[0000] creating and starting ... context=vmINFO[0119] provisioning ... context=dockerINFO[0119] provisioning in VM ... context=dockerINFO[0133] restarting VM to complete setup ... context=dockerINFO[0133] stopping ... context=vmINFO[0136] starting ... context=vmINFO[0158] starting ... context=dockerINFO[0159] done此时,在宿主机上就能够应用 Docker 相干的命令了: docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdocker pull busyboxdocker imagesREPOSITORY TAG IMAGE ID CREATED SIZEbusybox latest b34806a1af7a 2 weeks ago 1.41MB也能够应用 Lima 的命令行 limact工具查看虚拟机的状况: ...

December 27, 2021 · 2 min · jiezi

关于云计算:SOFAStack-背后的实践和思考|新一代分布式云-PaaS-平台打造企业上云新体验

近几年云计算的倒退如火箭般迅猛,异构改革突飞猛进,这是基础设施层明确的发展趋势。值得关注的是,随着基础设施的复杂度越来越高,也为整个基础设施的对立资源调度带来了极大挑战。 在越来越简单的异构基础设施上,存量利用和增量利用应该如何上云?面对大量异构基础设施带来的挑战,企业如何最大化上云价值? 12 月 15 日,在以“引领分布式云改革,助力湾区数字经济”为主题的寰球分布式云大会上,蚂蚁团体数字科技事业部产品总监马振雄分享了分布式云异构基础设施之上,蚂蚁团体在构建分布式云 PaaS 平台 SOFAStack 背地的实际和思考。 PART. 1 服务网格定义新的利用上云门路随着云原生的倒退,企业在技术升级的过程中随同着大量的历史包袱,这些历史包袱是所有存量的异构性能,这些异构性能有以下几个特色:技术架构异构、通信协议异构、开发框架异构。 这些存量的利用如何在异构的基础设施上对立纳管,背地就波及到了利用的全生命周期,从研发时的利用革新老本,到运行时如何对异构利用做对立服务治理,再到运维时如何对基础设施进行对立元数据管理、对立变更、对立容灾、对立应急以及资金平安,这些都是存在于 PaaS 层的挑战。 如果说 IaaS 层的对立资源调度以资源为视角和出发点,那么在下层 PaaS 则须要以利用为视角思考整个分布式基础设施的复杂度到底会带来哪些挑战,以及企业应该如何应答。 企业存在大量的历史包袱,历史包袱形形色色,如果要把这些历史包袱全副革新成分布式应用或者云原生利用,背地须要的代价十分低廉,很难有一家企业在短时间内违心累赘起这样的工夫和老本,彻底将所有的历史包袱云原生化。 相比于其余上云形式,Service Mesh 可能实现跨平台、跨协定,并且业务代码无侵入革新,从而疾速地将利用植入 Sidecar 实现 Mesh 化,取得分布式红利、平安可观测,并且整个架构平滑演进。企业在架构降级过程中能够循序渐进、循序渐进,并且实现端到端的平安可信以及全链路可观测能力。 总体来说网格服务首先升高了传统利用革新成分布式、云原生利用的老本问题;其次是解决了所有企业新老零碎的互联互通和对立纳管的问题;第三是让企业应用架构在降级过程变得更平滑;第四是让所有企业保留本人存量零碎的技术栈,且保留了企业本身自主可控性要求。 Forrester 长期以来对蚂蚁团体的翻新技术放弃关注,Forrester 首席分析师、Serving Technology Executives 服务技术决策者戴鲲公布《蚂蚁团体服务网格总体经济影响》,并分享了他对于 Mesh 的钻研, 将来要实现开发的智能化,须要通过微服务来进行智能化过程,不再像以前一样零敲碎打。对传统利用进行定制化,要通过网格服务动静地组装,实现云上开发。 通过对蚂蚁团体客户的访谈,Forrester 发现无论是传统金融机构还是互联网金融机构,都面临在混合架构下存在的共性挑战,包含基础设施升级换代、利用开发降级、云上云下交互等方方面面。Forrester 发现网格服务从单体利用革新老本节俭到运维平安管理效率晋升等方面都有显著的收益,通过钻研三年数据测算,应用蚂蚁服务网格产品后,客户的投资回报率达到 99%。 PART. 2 SOFAStack 实现异构对立运维与弹性容灾基于本身的技术积攒和场景打磨,蚂蚁数字科技定义了分布式云 PaaS 平台在运维态的六大能力,包含对立元数据管理、对立集群资源管理、对立变更能力、对立应急能力、对立容灾能力,和对立端到端从业务、利用到基础设施的可观测能力。在此基础上,蚂蚁数字科技从新定义 SRE,实现对立利用运维能力。 行业个别认为 SRE 中的“R”(Reliability)是可靠性,蚂蚁数字科技联合本身十几年来对业务可用性和连续性的极致谋求,经验了十多次双十一大规模验证,对 SRE 进行从新定义,将 SRE 里的 R 从 Reliability 转变为 Risk,意味着蚂蚁本身的保障体系是以危险为外围。最终通过十几年来的技术积淀,打造了本人的技术危险保障平台 TRaaS。也正是因为这十几年积淀的精髓,能力让蚂蚁做到业务、利用、基础设施的运维无人值守,运维“主动驾驶”。 蚂蚁的技术危险防控体系从上到下别离代表了三个指标:高可用、资金平安、低成本。三个组织保障:团队、文化、制度。再到需要、研发、公布以及监控的四条防线,最终积淀出一套残缺的技术危险保障体系的平台能力,整个平台由四个能力板块组成,包含了从应急、变更到容量、资金平安。 应急平台建设起了以危险为外围的事先、事中、预先的故障危险保障体系,别离对应故障危险检测能力、故障定位能力、故障应急和自愈能力,以及故障的回溯能力。变更平台建设起了以变更为外围的事先、事中、预先的变更危险主动剖析、进攻、阻断能力。容量平台建设起了对于全局数据中心和零碎整体瓶颈的主动探测、容量布局和容量保鲜能力。最初的资金平台,通过对业务利用无侵入地建设起了资金核查第二道防线,帮忙企业彻底躲避资金平安危险,缩小资损。 如果说第一个外围的挑战解决的是研发态和运行态的问题,第二个外围挑战解决运维态问题,第三个外围挑战,要解决的是从整体架构上解决容灾态的问题。 随着分布式云基础设施的蓬勃发展,企业数据中心从集中化走向离散化,这意味着企业任何一个利用随时随地能够跑在全国的任何一家数据中心机房的任何一个节点。这种变动背地,从利用视角来看,迫切需要整体的零碎利用架构,撑持业务冲破地区和城市级别的有限可扩大能力。基于蚂蚁对于业务连续性的极致谋求,蚂蚁在撑持业务倒退过程中,建设起了金融行业超大规模的三地五核心,并积淀了一套异地多活单元化架构,解决企业在容灾、弹性、灰度方面的三大痛点。 ...

December 23, 2021 · 1 min · jiezi

关于云计算:焱融科技与趋动科技携手解决一站式存算难

以后,数字经济正处于高速倒退阶段,人工智能作为数字经济的技术引擎之一,在赋能数字经济的同时,也推动了整个计算产业往“智慧计算”方向演进,使得巨量模型和海量数据对算力和存储的需要呈指数级增长。为了助力企业用户在人工智能畛域疾速地倒退与翻新,焱融科技与趋动科技近期发表,将联手推出一站式存储算力联结解决方案,帮忙企业通过 Kubernetes 对立治理调度 CPU 和 GPU 资源。 焱融科技是一家专一于软件定义存储的高新技术企业,其外围产品焱融 YRCloudFile 高性能分布式文件存储产品及数据存储解决方案,可能为各大企业日益增长的海量数据提供优质的存储、治理和应用服务。 自成立以来,焱融科技已成长为国内当先的分布式文件存储技术厂商,其产品和服务取得了科大讯飞、图森将来、新石器等泛滥机构的反对,撑持着 AI、主动驾驶、GIS 等数字经济时代要害畛域的倒退,解决了泛滥客户在混合云时代数据根底建设的关键问题,让数据存储更高效、更有价值。 趋动科技是一家 2019 年成立于北京中关村科学城的国家高新技术企业,专一于为企业用户构建数据中心级 AI 算力资源池和 AI 开发平台。 趋动科技的 OrionX 猎户座 AI 算力资源池化软件可能帮忙用户进步资源利用率和升高 TCO,进步算法工程师的工作效率。趋动科技的双子座 GEMINI AI 训练平台,为客户提供弱小的 AI 算力治理服务以及高效的算法开发和训练反对,可能化繁为简,帮忙企业建好 AI 平台、管好 GPU、用好 AI 服务。趋动科技的产品失去了包含互联网、金融、电信运营商和高校等大量行业头部客户的认可。 单方单干指标是实现产品独特优化、促成整个存算生态的倒退。 单干方向首先会基于产品性能晋升,单方将利用各自产品劣势,为企业用户提供 “YRCloudFile+OrionX” 的一站式存算计划,进一步晋升单方硬件基础架构能力,为企业用户提供更高效、更业余的服务。另一方面,单方也将启动生态单干,各自依靠已有资源,踊跃布局“衰弱生态服务圈”,努力实现“1+1>2”的聚合效应。 在重点行业利用上,单方曾经针对教育行业 AI 实训科研平台提供了存算解决方案。通过 K8S 对立治理调度 CPU 和 GPU 资源的解决方案,既满足了学校对于资源分配的需要、实现对 AI 教学平台资源的整体调度和治理,又能让多名同学共享资源,互不烦扰,使教学效率失去大幅度晋升,让师生更专一 AI 教学自身。 “YRCloudFile+OrionX”存算解决方案图 软件定义的灵便麻利决定了它在人工智能倒退历程中的重要位置。 焱融科技与趋动科技将继续深入单干,联合单方前沿科技与产品的独特劣势,协力打造出高性能、低成本、不断创新的存算解决方案,使企业用户领有更好的抉择。

December 23, 2021 · 1 min · jiezi

关于云计算:Jaeger知识点补充

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 《Jaeger实战(Java版)》系列全文《分布式调用链跟踪工具Jaeger?两分钟极速体验》《Jaeger开发入门(java版)》《Java利用日志如何与Jaeger的trace关联》《Jaeger的客户端采样配置》《极简!一个注解就能创立Jaeger的Span》《Jaeger知识点补充》本篇概览本文是《Jaeger实战(Java版)》系列的终篇,一起学习和实战是一段欢快的时光,现在终于到了说再见的时候,最初将平时积攒的三个有用的知识点奉上,既作为结尾,也心愿能为您的开发带来帮忙:批改服务名敞开span上报的日志all-in-one镜像的长久化存储 批改服务名在Jaeger的web页面上看到的服务名,默认用的是spring.application.name配置的值,如果您不称心,能够自行定制,配置项是<font color="blue">opentracing.jaeger.service-name</font>,如下图红框所示,我这里改成了中文名: 运行起来后,在Jaeger的web页面展现如下图红框: 敞开span上报的日志以下是一段日志,只有后面两行是咱们写代码的时候用<font color="blue">log.info</font>办法打印进去的,剩下的四行都是Jaeger SDK输入的00:18:12 [http-nio-8080-exec-1] INFO c.b.j.p.c.HelloController [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] start hello from [1632269892342]00:18:12 [http-nio-8080-exec-1] INFO c.b.j.p.c.HelloController [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] hello00:18:12 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] Span reported: 49476da841cd354b:991b82965543f8da:e6333b3a1c14f544:1 - mockBizChild00:18:12 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] Span reported: 49476da841cd354b:e6333b3a1c14f544:b595271a496cb0cb:1 - mockBiz00:18:13 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] Span reported: 49476da841cd354b:45e256ba3deed679:b595271a496cb0cb:1 - SET00:18:13 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId= spanId= sampled=] Span reported: 49476da841cd354b:b595271a496cb0cb:6322077c0edb62cc:1 - hello上述日志中,Jaeger SDK输入的那些内容,个别状况下用途不大,能够用以下红框中的配置敞开掉: ...

December 23, 2021 · 1 min · jiezi

关于云计算:阿里云李克边缘云技术发展与实践

简介:7年磨砺,阿里云边缘云的技术积攒和积淀哪了些?往年全面降级后的技术状态具备什么个性?它能够成熟地赋能哪些商业化技术利用场景?阿里云资深技术专家李克带来分享。 备受关注的2021寰球分布式云大会·深圳站于12月15日隆重召开,分布式云是2021年寰球十大重要策略科技趋势之一,利用分布式架构技术创新,连贯边缘节点、公有云和私有云的闲置资源组成分布式混合云发展潜力有限。在12月15日下午举办的边缘计算论坛上,阿里云资深技术专家李克为咱们带来了《阿里云边缘云技术倒退》为题的精彩演讲,分享阿里云在边缘云技术方面的积淀、摸索和实际,如何为行业提供广覆盖、低成本、高牢靠的边缘基础设施。 7年磨砺:阿里云边缘云的技术积攒和积淀李克首先介绍了阿里云边缘云技术倒退的状况,自2017年阿里云策略布局边缘计算技术畛域起,阿里云作为国内当先CDN服务商,在智能调度、拓朴感知、故障逃逸、分布式管控、自动化的装机运维配置等技术方面有深厚的积淀,联合阿里云飞天操作系统的小型化、交融计算能力以及弱小网络的多点协同能力,实现从CDN向边缘云的产品状态演进。历时7年建设了2800+寰球节点,实现了阿里云边缘云的技术积攒,为边缘云商业化打下了殷实根底,在IaaS的底层上,打造一些通用的PaaS能力,来进行更好的业务场景反对,比方云原生平台、视图计算平台、寰球交互通信网络等。同时阿里云边缘云已积攒100+篇专利,公布国内首部《边缘云计算技术及标准化》白皮书,牵头国内首个边缘云国标立项,参加制订团标《信息技术 云计算 边缘云计算通用技术要求》和行标《边缘云服务信赖能力要求》。 全面降级:阿里云边缘云技术状态阿里云边缘云是依靠于阿里云CDN弱小的节点网络和长期的技术积攒积淀的根底上进行的产品和技术演进。面对2800+边缘云节点,百万级POD实例超大规模利用的挑战,在服务客户过程中积淀了智能调度、拓朴感知、故障逃逸、分布式管控、自动化的装机运维配置、多点协同等关键技术能力,实现边缘云ENS的高稳固和高可用。李克提出,全新降级的边缘云技术状态具备计算和网络的两大新特色 : 新算力,数字孪生与物理终端的协同计算阿里边缘云,通过对边缘算力的调度,基于物理终端接入地位、边缘节点地位和算力状态,进行边缘算力与物理终端的匹配和协同调度,在保障业务低延时响应的同时,实现终端对边缘节点算力的地位无感。面向云利用、云终端、云手机等场景,实现部署在阿里边缘云的虚构设施或算力单元,与物理终端侧的零碎或利用,以及用户的操作,实现计算协同。通过边缘云为终端解决,提供充分的低延时、弹性算力撑持,让用户领有与设施本地操作统一的业务体验。 比方某客户的流量模型呈现变动的时候,是须要可能疾速感知的,是失常的业务突增,还是因为攻打带来的异样,又如在云游戏的场景,客户的操作在端上,而游戏的渲染在云上,边缘节点的低提早,能够让用户感觉不到云游戏操作的差别; 新网络,基于分布式节点的多边协同网络阿里边缘云海量的边缘节点构建了一张无处不在的传输网,实现了终端-边缘、边缘-边缘、边缘-核心的一体化协同,为边缘计算、核心计算之间提供优质、平安的网络传输能力。同时通过网络切片进行更精细化的网络管理,可能针对不同业务,提供不同QoS的服务保障。 比方互动直播和下载对时延就有不同的要求,能够认为是一张可编程的网络在不同业务之间进行复用,并且有不同的传输保障。接下来在5G疾速倒退过程中,边缘云也必须与电信运营商严密单干,基于运营商的MEC、5G切片等外围能力,构建‘云-边-端’ 一体的交融网络。 利用落地:成熟的商业化技术利用场景李克通过3个具体场景解说了阿里云边缘云在实践中如何解决的业务痛点: CDN on ENS 为将CDN业务基于容器来部署须要将CDN业务云化,波及的技术难点次要体现在架构、稳定性、老本和性能方面,基于云原生平台部署CDN之后,取得了十分好的收益: 隔离性通过网络和应用程序的隔离,不同用户之间互不烦扰,对应的公布比拟灵便,业务出问题时候的爆炸半径也比拟小; 弹性可随时申请和开释,不必走线下的节点建设,可能很好的应答业务突发的场景; 老本优化相当于不同业务之间进行削峰填谷,晋升了资源的复用性,所有的资源都是按需应用,更好地管制好水位和老本; 创新性对传统的CDN进行了降级,除了传输之外,还能够升级成可计算CDN,比方能够提前预加载一些内容,一些浏览器的解决放到CDN边缘节点,充分利用节点能力。 目前CDN on ENS革新已在规模化部署,新建的节点都是基于容器交付,阿里云打算在将来一年半工夫内实现全量节点的CDN on ENS切换。 影子设施+边缘云,晋升瘦终端服务能力终端上云的场景,如在机顶盒场景外面存在大量的老旧设施,这些设施如果不进行降级是很难运行起来最新的智能利用,难以实现留存用户和倒退新业务的指标。这须要进行算力的上移,通过ENS的云化层和利用托管层,可能在终端和边缘节点之间建设起映射,客户的操作通过控制指令发送到影子设施,再通过流化技术输入到设施端,这项技术的价值体现在: 对于终端客户来讲,能够用较低性能的机顶盒或者手机体验到最新的利用或者游戏;对于内容提供方来说,能够更快的进行利用的降级迭代和验证;对于云计算厂商来说,能够继续打磨边缘ENS平台,以及实现资源在不同业务场景的复用。目前这种业务曾经在广电客户中大规模利用,无效帮忙客户实现降本和提效。 5G+边缘云,实现自在视角在线直播边缘云和5G联合的翻新实际场景落地,在CUBA的全明星赛中,通过边缘云计算资源和5G的大带宽能力联合,实现了直播时视角的自在拖拽。但因为分辨率和计算能力的需要,只有高端机型才可投放,重大限度了终端用户的笼罩状况;随着用户视角角度增大和清晰度晋升,现有线上投放自在视角视频,会产生肯定的卡顿景象,通过引入边缘云,视频流能够在边缘节点上进行加工和渲染,通过5G的低提早联合达到极致的用户体验。 往年是阿里云边缘云商业化的第四年,阿里云一直开掘边缘云计算在垂直畛域中的场景化利用,推动各行业利用架构降级。目前,阿里云边缘云曾经在新批发、交通、教育、家庭娱乐、生产制作等多个场景中有了很好的落地实际,从客户群体上来讲,会越来越多和非互联网接触,特地是工业、制作、能源等有机房云化和业务数字化需要的场景。 在构建生态上,李克心愿通过一套残缺的生态,可能撑持各行各业的边缘落地。一方面,阿里云会踊跃拥抱云原生,通过k8s等实现业务在不同平台之间的灵便切换,让业务更加标准和不便的应用边缘云计算的能力;另一方面会和资源提供方做好生态单干,制订资源的对接规范,除了自建节点,将来还有大量的单干节点,以及第三方节点。 在利用场景上,除了之前的计算存储网络之外,也心愿推出更多的中间件产品,使越来越多的能力积淀到边缘云上,可能满足边缘的新的业务场景。 演讲最初,李克表白了面向未来的神往:咱们的愿景是心愿边缘云可能成为新的基础设施,实现各行各业的数字化转型。阿里云心愿能和更多的行业合作伙伴一起,通过产品、技术、资源的深度交融,提供丰盛的边缘能力,撑持边缘利用场景利用,为客户继续发明价值。 原文链接本文为阿里云原创内容,未经容许不得转载。

December 22, 2021 · 1 min · jiezi

关于云计算:阿里云佘俊泉创新探索不停边缘云持续为客户创造价值

简介:在12月15日上午举办的分布式云首领论坛中,阿里云边缘云产品负责人佘俊泉学生发表了《阿里云边缘云产品翻新与场景摸索》的主题演讲,分享了阿里云在边缘云畛域的摸索和思考,如何从产品演进、技术创新、场景利用等方面助力企业晋升价值。 12月15日,以“引领分布式云改革 助力湾区数字经济”为主题的寰球分布式云大会在深圳隆重召开,本届大会由深圳科技交流服务中心、深圳市通信学会、寰球分布式云联盟、众视Tech联结主办。2021年,分布式云成为云计算畛域关注的热点。通过一年工夫的摸索与积淀,分布式云开始从实践走向实际,诸多云计算头部企业夯实分布式基础设施建设、优化分布式资源调度、开发分布式应用,为构建分布式云打下了松软的根底。 在12月15日上午举办的分布式云首领论坛中,阿里云边缘云产品负责人佘俊泉学生发表了《阿里云边缘云产品翻新与场景摸索》的主题演讲,分享了阿里云在边缘云畛域的摸索和思考,如何从产品演进、技术创新、场景利用等方面助力企业晋升价值。 阿里云边缘云产品状态和产品矩阵2021年是阿里云边缘云商业化的第四年,阿里云的边缘云是基于飞天内核的技术架构,构建出凑近客户侧的分布式小型化云计算平台。飞天是由阿里云自主研发、服务寰球的超大规模通用计算操作系统,反对多种状态,即核心Region、本地Region、边缘云节点和现场计算节点,让客户在多种状态的云上共享所有产品。 阿里云边缘云采纳对立的轻量化产品技术架构,提供了计算/网络/存储/平安/中间件的产品能力,在往年阿里云边缘云全面降级为两种产品状态:公共云产品状态,提供一站式全域笼罩、弹性交付、优质网络的分布式云网服务;混合云产品状态,提供边缘云软硬件产品&能力一体化输入,灵便的产品交付状态满足不同场景的需要,为客户提供丰盛的边缘云行业解决方案,不便客户灵便进行业务翻新、市场拓展及商业摸索。 阿里云边缘云典型利用场景与业务价值计算的实质是算力和数据有机联合,在云边端的组合中,核心云具备海量低成本算力和云原生数据,终端具备公有自治算力和本地敏感数据,边缘云产品状态的呈现就是为了更好满足客户在特定场景下的业务需要,边缘云诞生和倒退离不开客户场景的演进和迭代,在过来的4年间,阿里云已积淀一批典型边缘云应用场景: 内容散发场景演进:CDN on ENSCDN作为最成熟的边缘云利用场景, CDN on ENS 全面整合边缘算力资源,在全站减速、下载减速、直播点播及挪动减速等利用场景中极大晋升资源利用效率,通过云边协同技术升高对于核心带宽老本和资源的压力,晋升稳定性的同时晋升用户体验。如618、双十一、双十二等电商大促和春晚红包流动等超大规模的场景磨炼,充沛验证阿里云边缘云能够在确保不同业务隔离的前提下,灵便调配,达到优化和提效的指标。 政企数字化转型场景翻新:云化机顶盒通过内容上云、流化传输实现非智能终端的智能化,聚合丰盛的内容、利用和AI智能算法,解决广电行业广泛面临的终端类型多、规范不对立、利用适配难、降级老本高、服务能力受限等痛点的同时,为用户提供了更多应用服务,全面晋升用户体验。 阿里云边缘云为天猫精灵提供低时延、低成本、广覆盖的边缘云资源,实现终端晦涩视频播放及交互体验。同时阿里云边缘云通过内容上云、流化传输技术,在核心部署内容管控和经营性能,助力广电客户疾速实现大规模存量终端智能化,利用上线周期显著缩短,真正做到业务降本、提效和增收。 政企数字化转型场景翻新:云联节点“软件+硬件”整体交付服务-边缘云联节点,可帮忙企业级客户疾速构建其本地基础设施,基于边缘云开展业务翻新、市场拓展及商业摸索,助力客户业务转型。针对企业客户关怀的老本问题,云联节点最大的特点是轻量化,单节点4台服务器起,在轻量化的前提下产品能力不打折扣;在资产归属客户的状况下,阿里云负责交付到运维的全生命周期治理,升高客户的老本。 云联节点多种交付模式,自用边缘云模式针对行业大B客户的自有业务,提供分布式、小型化能力边缘与底座,同时也反对与边缘云公共云节点协同组成边缘混合云。商用云联节点是帮忙合作伙伴服务本地能够触达的最终用户,最终达到增本提效的指标。 终端云化场景翻新:云游戏针对云游戏场景,阿里云边缘云提供了由异构计算基础设施、边缘利用托管、云微端SDK组成的平面产品组合矩阵,客户可依据自研云游戏业务平台的理论状况,按需对接不同档次的边缘云服务。游戏利用上传即实现寰球边缘云节点的部署,依据用户散布就近解决数据申请。游戏散发时达到毫秒级指令失效,实现疾速散发到边缘。云游戏在边缘进行计算、剖析以及下发指令,真正做到业务的疾速响应。 继续发明客户价值 翻新摸索永不停歇除了CDN on ENS、云化机顶盒、云游戏等典型商业化场景积淀,阿里云边缘云在翻新场景利用落地的路上一直摸索:如2019年与首汽约车做了车载终端上云的MEC试点;2020年与优酷做了超高清疾速起播试点和5G全向自在视角直播试点,以及制造业上云的试点,阿里云继续关注相干畛域的业务停顿,在适合机会实现产品化和商业化。 数据无处不在,所以算力也将无处不在,边缘云肯定会成为各行各业产品数字化的基础设施。摸索和落地翻新场景的过程充斥挑战,阿里云边缘云将始终保持客户导向准则,继续为客户发明价值,帮忙客户胜利,最终达到与行业、客户双赢多赢,与大家携手共建更大更强的边缘云行业生态。 原文链接本文为阿里云原创内容,未经容许不得转载。

December 22, 2021 · 1 min · jiezi

关于云计算:Gartner-发布中国首个-SDS-市场报告焱融科技系唯一上榜专注文件存储方向厂商

近日,权威市场剖析机构 Gartner 公布首个中国区软件定义存储市场报告,焱融科技是惟一入选的专一于文件存储方向的厂商。 该报告引自权威市场剖析机构 Gartner 焱融科技自成立以来始终专一于软件定义存储,将多年积攒的存储实战经验和技术实力积淀到焱融 YRCloudFile,并向多个行业输入业余存储技术,让多家企业用户体验到高性能、高可用、高扩大的存储服务。此次,焱融科技入选 Gartner 中国区软件定义存储报告,不仅代表着焱融 YRCloudFile 达到寰球行业公认程度,更是对焱融科技多年来技术能力的高度认可。 焱融 YRCloudFile 作为一款分布式文件存储产品,既能提供高性能、高可用的文件拜访接口,又能反对 Kubernetes 等支流容器编排框架,提供高性能的容器长久化存储,帮忙企业用户解决须要低提早、高吞吐量和高扩展性的需要问题。 目前,焱融科技在 IO 读写、解决大规模数据,以及输出和输入等方面都有极高需要的人工智能、主动驾驶、GIS 等行业倒退迅速,领有超过 100+ 家企业用户。通过产品差异化劣势,焱融科技在客户数量上出现指数级别增长。 同时,焱融科技聚焦于混合云和容器的用户场景,反对为企业提供依据业务倒退需要,应用私有云、公有云,甚至于多个私有云场景,无缝地帮忙企业客户满足理论业务场景的需要。目前,焱融 YRCloudFile 曾经实现与火山云、AWS、腾讯云、京东云、挪动云、天翼云、联通云、阿里云等多家私有云服务提供商建设起敌对的非竞争单干关系。 随着存储技术的迭代和市场的疾速扩张,焱融科技将来将继续翻新,通过优质的存储产品进一步帮忙企业深挖数据价值,满足各行各业的存储需要,为产业倒退削减新动能。

December 22, 2021 · 1 min · jiezi

关于云计算:极简一个注解就能创建Jaeger的Span

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览在《Jaeger开发入门(java版)》一文中,咱们编码实现了span的创立和上报,如下图红框,尽管代码量不大,然而把这些代码写在业务代码中,侵入性太强,很多程序员都不喜爱: 明天咱们试试AOP+自定义注解来解决上述问题,如下图,<font color="blue">mock</font>是个一般办法,增加了红框中的注解<font color="red">@MySpan</font>,就会创立span而后上报到Jaeger,mock办法的代码没有任何改变: 通过下面两图的比照,可见注解十分简洁,接下来就实战上述伎俩,具体的步骤如下:新建web工程,外面有controller层,调用service层的服务Biz,服务Biz再调用另一个服务ChildBiz创立两个注解<font color="blue">MySpan</font>和<font color="blue">MyChildSpan</font>创立AOP类SpanAspect,负责解决所有被注解<font color="blue">MySpan</font>和<font color="blue">MyChildSpan</font>润饰的办法;把注解<font color="blue">MySpan</font>和<font color="blue">MyChildSpan</font>用在一般的服务Biz和ChildBiz上启动服务,验证性能;源码下载本篇实战中的残缺源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blo...):名称链接备注我的项目主页https://github.com/zq2599/blo...该我的项目在GitHub上的主页git仓库地址(https)https://github.com/zq2599/blo...该我的项目源码的仓库地址,https协定git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该我的项目源码的仓库地址,ssh协定这个git我的项目中有多个文件夹,本篇的源码在<font color="blue">spring-cloud-tutorials</font>文件夹下,如下图红框所示: <font color="blue">spring-cloud-tutorials</font>文件夹下有多个子工程,本篇的代码是<font color="red">jaeger-annonation-demo</font>,如下图红框所示: 编码创立spring-cloud-tutorials的子工程<font color="blue">jaeger-annonation-demo</font>,其pom.xml如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>spring-cloud-tutorials</artifactId> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>jaeger-annonation-demo</artifactId> <dependencies> <dependency> <groupId>com.bolingcavalry</groupId> <artifactId>common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-spring-jaeger-cloud-starter</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layers> <enabled>true</enabled> </layers> </configuration> </plugin> </plugins> </build></project>配置文件application.yml:spring: application: name: jaeger-annonation-demoopentracing: jaeger: enabled: true udp-sender: host: 127.0.0.1 port: 6831server: port: 18080启动类:package com.bolingcavalry.annonation;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class AnnonationDemoApplication { public static void main(String[] args) { SpringApplication.run(AnnonationDemoApplication.class, args); }}第一个接口Biz:package com.bolingcavalry.annonation.service;public interface ChildBiz { void mockChild();}它的实现:package com.bolingcavalry.annonation.service.impl;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;@Component@Slf4jpublic class ChildBizImpl implements ChildBiz { @Override public void mockChild() { log.info("mockChild"); }}第二个接口:package com.bolingcavalry.annonation.service;public interface Biz { void mock();}它的实现,可见其mock办法中会调用childBiz的mockChild办法:package com.bolingcavalry.annonation.service.impl;import com.bolingcavalry.annonation.service.Biz;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;@Component@Slf4jpublic class BizImpl implements Biz { final ChildBiz childBiz; public BizImpl(ChildBiz childBiz) { this.childBiz = childBiz; } @Override public void mock() { log.info("mock"); childBiz.mockChild(); }}当初一个简略的web服务开发实现,有web层也有service层,够咱们来试验了定义注解定义两个注解,一个用于创立span,另一个用于创立子span:注解<font color="blue">MySpan</font>用于心愿全新创立一个span的场景:package com.bolingcavalry.annonation.aop;import java.lang.annotation.*;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Documentedpublic @interface MySpan { String spanName() default "";}第二个是MyChildSpan,用于心愿在以后span下创立一个子span的场景:package com.bolingcavalry.annonation.aop;import java.lang.annotation.*;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Documentedpublic @interface MyChildSpan { String spanName() default "";}定义好了注解,能够开发AOP来解决注解的逻辑了AOP和注解开发接下来是明天的外围:解决注解的AOP类,中文正文曾经写得很具体,就不再赘述太多了,惟一要留神的是注解<font color="red">@Around("@annotation(mySpan)")</font>,它指定了该办法会解决所有被<font color="blue">mySpan</font>润饰的办法:package com.bolingcavalry.annonation.aop;import io.opentracing.Span;import io.opentracing.Tracer;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.Signature;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.springframework.stereotype.Component;@Aspect@Component@Slf4jpublic class SpanAspect { private Tracer tracer; public SpanAspect(Tracer tracer) { this.tracer = tracer; } /** * 获得实在办法的相干信息 * @param proceedingJoinPoint * @return */ private static String getOperationDesc(ProceedingJoinPoint proceedingJoinPoint) { Signature signature = proceedingJoinPoint.getSignature(); // 提取类名 return StringUtils.substringAfterLast(signature.getDeclaringTypeName(), ".") + ":" + signature.getName(); } @Around("@annotation(mySpan)") public Object traceSpan(ProceedingJoinPoint proceedingJoinPoint, MySpan mySpan) throws Throwable { // 类名:办法名 String operationDesc = getOperationDesc(proceedingJoinPoint); // 看办法的注解中有没有设置name String name = mySpan.spanName(); // 如果没有设置name,就给span一个默认name if (StringUtils.isEmpty(name)) { name = "span-aspect-" + operationDesc; } // 创立一个span,在创立的时候就增加一个tag Span span = tracer.buildSpan(name).start(); // span日志 span.log("span log of " + operationDesc); // 减少一个tag span.setTag("operation-desc", operationDesc); // span完结 span.finish(); return proceedingJoinPoint.proceed(); } @Around("@annotation(myChildSpan)") public Object traceChildSpan(ProceedingJoinPoint proceedingJoinPoint, MyChildSpan myChildSpan) throws Throwable { // 类名:办法名 String operationDesc = getOperationDesc(proceedingJoinPoint); // 看办法的注解中有没有设置name String name = myChildSpan.spanName(); // 如果没有设置name,就给span一个默认name if (StringUtils.isEmpty(name)) { name = "child-span-aspect-" + operationDesc; } // 从上下文中获得已存在的span Span parentSpan = tracer.activeSpan(); if (null==parentSpan) { log.error("can not get span from context"); } else { Span span = tracer.buildSpan(name).asChildOf(parentSpan).start(); // span日志 span.log("child span log of " + operationDesc); // 减少一个tag span.setTag("child-operation-desc", operationDesc); // span完结 span.finish(); } return proceedingJoinPoint.proceed(); }}注解和AOP都写好了,咱们把注解用上,看看成果如何应用注解把MySpan用来润饰BizImpl.mock办法,留神设置其<font color="blue">spanName</font>属性,作为span的name: ...

December 22, 2021 · 2 min · jiezi

关于云计算:超强预测云计算领域将如何重新洗牌

以下是对云供应商(AWS,Azure,GCP)的论断: 云供应商将越来越关注软件栈中的最低层:通过API租赁其数据中心的算力。其余纯软件提供商将在其上构建所有货色,包含数据库、运行代码等等。目前云供应商提供从开发人员体验到硬件的端到端解决方案: 如果云供应商专一于最低层,而其余(纯软件)供应商专一于下面的层会怎么样呢? 五年后,请提出这个问题,让我对本人被证实是错的感到难堪。然而接下来通过Redshift的故事能够很好地表明我的想法。 Redshift是AWS提供的一个数据仓库(又称为OLAP数据库)。在Redshift之前是一个光明的时代, 这个时代次要的玩家是Teradata,它是一个线下部署的非云产品。 守业公司感觉用SQL来搞数据仓库不靠谱,而应用了Hadoop。SQL在过后是有点逊色的,起因在预先看来是很荒诞的。我很快乐咱们曾经走出了这个时代。  总之,有一个名为ParAccel的公司搞了一个数据仓库的软件,取得AWS受权,重新命名为Redshift,并在2012年在AWS推出。  Redshift在过后是第一个在云中运行的数据仓库。这是AWS的一个明智之举,因为它升高了小公司开始做数据分析的门槛。你不须要本人建设任何基础设施,也不须要终日写自定义mapreduce和从新加载jobtracker。 你能够在AWS中启动一个Redshift集群,给它提供大量的数据,而后它就会开始工作。 Snowflake 是一个1000亿美元以上的上市公司。该公司的整个产品是一个数据仓库,看起来与Redshift相当类似。  AWS领有微小的规模经济,管制着底层根底(EC2),并且能够在构建软件方面进行更大的投资。兴许因为锁定的价值,他们甚至能够补贴 Redshift 的开发,并通过其余产品补救资金。不过,事件起了一些变动,Snowflake 的倒退曾经超过了 Redshift。 哪些力量有利于像Snowflake这样的公司?这对其余云产品意味着什么? 最底层的云服务是一种纯正的商品服务。因而,为了赚钱, 云厂商至多须要做以下一项。  靠整个软件服务栈的下层服务赚钱。用软件服务栈中上层服务来锁定客户,而后靠底层服务来赚钱。我认为这些都是有情理的,至多从历史上看是这样,但也有一些乏味的趋势在向另一个方向倒退。 下层软件的竞争正变得异样强烈。有这么多的初创公司在做,在便宜的风险投资资金的推动下,违心在构建软件上破费数十亿美元。 云计算供应商可能很快乐只在最底层赚钱。利润率并不差,而且供应商的锁定度依然很高。 初创企业正在向云计算进发 素来没有这么多公司谋求属于云供应商的服务: 这期间产生了什么?可能是很多事件的会合。我至多看到了三个不同的因素: 1、大公司的激励措施导致很难提出新的疯狂想法。与此同时,风险投资家正在向该细分市场注入资金。如果你是一个有抱负的人,你会去AWS工作吗?还是你会退出晚期初创公司,或者创立本人的初创公司?预计翻新将从大公司转向初创企业。 2、软件供应商能够同时为所有云供应商构建。我认为这对Snowflake来说是一个真正的益处,因为他们的许多晚期客户都是关怀多云的银行,它也扩充了市场规模,晋升了云供应商的影响力。 3、许多胜利的云产品最后都是外部服务。这是一个令人惊叹的产品起源,亚马逊、谷歌和微软曾经进行了大规模测试,这些工具非常适合他们的大企业客户。 但对规模、可靠性和可配置性的极度关注的另一面是,开发人员体验已成为攻打载体,特地是那些可能更关怀进步开发人员生产力的中端市场和小客户。像优步、Netflix和Airbnb这样的稍大的公司有团队来到去将外部工具商业化的历史(通常通过开源的两头步骤)。在主观上讲,这些工具往往更重视开发人员体验。 兴许领有最低层没那么蹩脚? 假如客户每年在Redshift上破费100万美元。在领取EC2经营老本和折旧后,毛利润额为50-70万美元。如果该客户将每年100万美元的估算转到Snowflake,那么大概40万美元回到AWS,使AWS的总利润约为20万美元。 这仿佛对 AWS 有点不好?这个还不能确定。依据财报,Snowflake 预计 2022 年的研发老本将占公司支出的 20%,销售和营销老本则是 48%。 那么,以 100 万美元的支出来计算,Snowflake 的老本是 70 万美元。但兴许 AWS 发明同样的支出只须要 30~40 万美元的老本。这样仿佛是正当的。 当初我想通了。AWS 面临着同样的状况,然而实际上却将构建和销售软件的所有老本“转嫁”给了 Snowflake 等企业。这对他们来说是一笔不错的交易。 AWS 建设软件服务的另一个起因是能够减少用户粘性。Redshift 自身或者并不是一棵摇钱树,但它缩小了 EC2 上的流失率。 在我负责CTO的六年中,我没有思考过来做云迁徙。与大多数公司一样,我的公司在工程师薪水上的破费比云计算自身要多得多。将贵重的工夫用在云计算迁徙上是不值得的,除非云计算开销成为毛利的重要组成部分,而这只有多数公司能够做到。 企业不能轻易抉择一个云计算提供商买下最便宜的数据库,而后在下面运行。企业心愿在雷同的云计算提供商和同一个数据中心中运行。 Snowflake、Confluent 和 MongoDB(Atlas)的注册流程中问了两个问题:1. 你的云计算提供商是哪家?2. 在哪个地区?请留神,第一个问题的选项只有 AWS、GCP 和 Azure。 ...

December 21, 2021 · 1 min · jiezi

关于云计算:云原生爱好者周刊Kubernetes-新成立发布团队

云原生一周动静要闻: Log4j 破绽引发安全事件Linux Foundation 将托管 Cloud Hypervisor 我的项目Kubernetes 1.24 公布团队正在招募BFE Server 1.4.0 和管制立体组件 v0.0.2 公布开源我的项目举荐文章举荐云原生动静Log4j 破绽引发安全事件日前,Apache Log4j 2 呈现破绽,并被黑客利用。Apache Log4j 2 是一款开源的日志记录工具,被广泛应用于各类框架中。 此次破绽是因为 Log4j 2 提供的 lookup 性能造成的,该性能容许开发者通过一些协定去读取相应环境中的配置。但在实现的过程中,并未对输出进行严格的判断,从而造成破绽的产生。因为大量的软件都应用了 Log4j 2 插件,所以大量的 Java 类产品均被波及,包含但不限于 Apache Solr、srping-boot-strater-log4j2、Apache Struts2、ElasticSearch、Dubbo、Redis、Logstash、Kafka... Apache 将破绽的严重性定为“重大”,并在周五公布了补丁和缓解措施。 KubeSphere 团队应对此破绽也推出了一个为 KubeSphere 用户提供倡议的计划。 Linux Foundation 将托管 Cloud Hypervisor 我的项目日前,非营利组织 Linux 基金会发表,将托管 Cloud Hypervisor 我的项目,为古代云工作负载创立高性能、轻量级的虚拟机监控器。该我的项目以 Rust 语言编写,十分重视安全性,其特点包含 CPU、内存和设施热插拔;反对运行 Windows 和 Linux 客户端;通过 vhost-user 进行设施卸载;占用内存小。 该我的项目失去 Alibaba, ARM, ByteDance, Intel and Microsoft 等公司的反对。 ...

December 21, 2021 · 1 min · jiezi

关于云计算:使用-KubeKey-在-AWS-高可用部署-Kubernetes

作者:李耀宗 介绍对于生产环境,咱们须要思考 Kubernetes 集群的高可用性。本文教您部署如何在多台 AWS EC2 实例疾速部署一套高可用的生产环境。要满足 Kubernetes 集群服务须要做到高可用,须要保障 kube-apiserver 的 HA ,可应用下列两种形式: AWS ELB(举荐)keepalived + haproxy 对 kube-apiserver 进行负载平衡,实现高可用 Kubernetes 集群。本教程重点介绍配置 AWS ELB 服务高可用装置。 前提条件思考到数据的持久性,对于生产环境,咱们不建议您应用存储 OpenEBS,倡议 NFS、GlusterFS、Ceph 等存储(须要提前准备)。文章为了进行开发和测试,集成了 OpenEBS 将 LocalPV 设置为默认的存储服务;SSH 能够拜访所有节点;所有节点的工夫同步;Red Hat 在其 Linux 发行版本中包含了 SELinux,倡议敞开 SELinux 或者将 SELinux 的模式切换为 Permissive [宽容]工作模式。筹备主机本示例创立 3 台 Ubuntu 18.04 server 64bit 的 EC2 云服务器,每台配置为 2 核 4 GB。 主机 IP主机名称角色192.168.1.10master1master, node, etcd192.168.1.11master2master, node, etcd192.168.1.12master3master, node, etcd留神:本教程仅作部署演示,在生产环境倡议角色拆散,独自部署 etcd 和 node 节点,进步稳定性。创立 VPC进入 AWS 控制台,在全副服务中抉择 VPC,创立一个 VPC,配置如下图所示: ...

December 21, 2021 · 3 min · jiezi

关于云计算:Jaeger的客户端采样配置Java版

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 对于采样(Sampling)采样很好了解:应用Jaeger时,未必须要将所有申请都上报到Jaeger,有时候只有抽取其中一部分察看即可,这就是依照肯定策略进行采样;Jaeger SDK是反对多种采样配置的,在分布式系统中,他们遵循的准则是前置断定(consistent upfront 或者head-based),简略来说,如果consumer服务调用provider服务,那么某一次申请只有consumer决定不采样,那么provider在解决这个申请的时候也不会采样,也就是说对于一次残缺的trace,只有最后面的服务不上报到jaeger,那么整个trace前面波及的服务都不会上报到jaegerJaeger采样配置分为客户端和服务端两种配置,默认用的是服务端配置本文咱们来理解如何在客户端(也就是接入Jaeger的利用)配置采样,并且入手验证成果,罕用的客户端采样策略有以下三种:固定:要么全副采样,要门全副不采样比例:依照指定比例采样限速:固定工夫周期内采样固定数量,例如每秒一个接下来,一一配置和体验这三种采样的成果对于实战用的工程采样配置实战不波及编码,只须要改一些配置,所以没必要声势浩大的新建工程写代码,用《Jaeger开发入门(java版)》一文中的两个maven子工程即可:服务提供方<font color="blue">jaeger-service-provider</font>和服务调用方<font color="blue">jaeger-service-consumer</font>,都做成docker镜像,用docker-compose启动,网络架构如下图: 请确保我的项目的日志模板中已增加了<font color="blue">traceId</font>、<font color="blue">spanId</font>、<font color="blue">sampled</font>等变量,如下图红框所示,有了这些配置,咱们在日志中就能看到对应的trace是否被采样(这一步<font color="red">十分重要</font>): 为了不便批改代码后重新部署启动,我写了个名为<font color="blue">full.sh</font>的shell脚本文件,运行即可将批改后的代码制作成最新的镜像并用docker-compose运行起来:#!/bin/bashecho "进行docker-compose"cd jaeger-service-provider && docker-compose down && cd ..echo "编译构建"mvn clean package -U -DskipTestsecho “创立provider镜像”cd jaeger-service-provider && docker build -t bolingcavalry/jaeger-service-provider:0.0.1 . && cd ..echo “创立consumer镜像”cd jaeger-service-consumer && docker build -t bolingcavalry/jaeger-service-consumer:0.0.1 . && cd ..echo "清理有效资源"docker system prune --volumes -fecho "启动docker-compose"cd jaeger-service-provider && docker-compose up -d && cd ..如果您用的是IDEA,在下图红框地位增加一个自定义命令,选中上述shell文件,就能够在IDEA中用run命令来编译构建部署了: 当初筹备工作曾经实现,开始实战吧,从最简略的固定采样开始;固定采样固定采样的逻辑很简略:要么全副上报,要么一个也不报固定采样的配置形式如下图红框所示: 要留神的是:依据前置断定(consistent upfront 或者head-based)准则,只有将上述配置写入<font color="blue">jaeger-service-consumer</font>我的项目的配置文件即可,至于<font color="blue">jaeger-service-provider</font>维持原状不做任何改变执行后面写的full.sh脚本,编译构建部署浏览器拜访<font color="blue">http://localhost:18080/hello</font>,产生一些web申请,多拜访几次看jaeger-service-consumer容器的日志,如下图,红框中的<font color="red">sampled=false</font>示意未采样,三此申请的日志都是如此: 再看jaeger-service-provider容器的日志,如下图红框,也全副都没有采样,这证实Jaeger的前置断定准则(consistent upfront 或者head-based)是精确的,jaeger-service-consumer是一次trace的源头,被它敞开了采样的trace,在后续的服务中也会主动敞开采样: 去Jaeger的web页面看看,空洞无物,连服务列表中都没有jaeger-service-consumer和jaeger-service-provider: 试过了全副不采样,再来试试全副采样的配置,如下图红框: 重新部署,再产生几次申请,去看jaeger-service-consumer容器的日志,如下图红框,全副都被采样了: 去看jaeger-service-provider容器的日志,也是如此,所有trace都被采样: 关上Jaeger的web页面,可见jaeger-service-consumer的三次申请对应的trace全副上报: ...

December 21, 2021 · 1 min · jiezi

关于云计算:企业多云场景下的管理方案多云统一账号管理Cloud-SSO

本篇文章介绍云联壹云多云账号对立治理性能。本文分三局部,首先介绍为什么要设计多云对立账号治理这个性能。其次,介绍此性能的具体计划和工作原理,最初,介绍如何应用多云账号对立治理性能。 为什么须要Cloud SSO 多云账号对立治理在咱们的平台中又称Cloud SSO,Cloud SSO能够了解为云平台的对立的单点登录。Cloud SSO是多云账号对立治理的其中一部分,然而其中最有特色的性能亮点。 在企业应用多云的场景中,可能会有多个私有云,每个云上可能还会有若干个账号。 在这种状况下,可能会在治理员工的账号方面遇到一些艰难。 多云场景下用户账号治理常见问题 例如局部员工想要应用某个云上的性能,咱们的管理员就得为员工在云上开设相应的账号并设置相应明码。 员工忘记明码之后,管理员须要帮忙员工重置明码。 除此之外,有可能员工本人在平台上设置的明码过于简略,存在被歹意检测并攻破的危险。 同时,在管理员给员工设置权限时,可能设置不合理,例如设置过低,或者设置过高。在权限设置过高时,员工登录到云平台上就可能会做超过其权限的操作,例如员工原本不应该去对主机进行操作,然而因为权限设置范畴过大,极有可能呈现误操作的状况。 一旦呈现员工到职的状况,对于到职员工在若干个云的若干账号里开设的相应的账号和权限,管理员须要一一清理,免得留下后续治理隐患。 多云场景下用户账号治理复杂度剖析 以上都是在多云场景中员工账号治理呈现的一些常见问题,咱们能够对其复杂度进行剖析,首先从管理者角度,也就是从企业的云账号治理的这个角度来看: 第一个维度,企业员工数量泛滥(N),账号管理员可能要为每个员工都要去开设云上账号,其次,该企业可能还会有若干个云账号(M),管理员为了去给员工在账号上开设权限,就必须登录到云账号上一一开设,一一登录并设置这些权限,而且每个云上的权限都非常复杂,有几十上百种权限组合(P)。 因而,整体来看,对于一个管理者而言,它的治理复杂度是NMP的数量级,是几何级数的复杂度。 并且管理员通常须要手动到云的控制台下来开设这些账号,设置明码和权限。整体复杂度较高,容易出错。 从员工角度看也比较复杂,员工若有登录多个账号的需要,则员工须要记住登录账号的账号名和明码。 因而,不管从治理复杂度还是应用复杂度上看,在多云的场景中,用户在云上账号的治理都很繁冗且容易出错。 多云对立账号治理的计划正是为了解决这个问题,其核心思想就是通过云联壹云一个平台,把企业的员工在多个云账号的登录权限,进行对立治理。 员工能够登录到咱们的平台,再通过咱们的平台去取得登录到各个云上的权限,并且可能无明码地跳转,通过 SSO(Single Sign-On)的形式间接跳转过来,这种形式能够大大降低企业的管理者和员工的应用复杂度,晋升效率,避免出现谬误的状况。 多云对立账号治理性能组件 多云对立账号治理性能,次要是两个组件,第一个组件是员工的账号治理,平台从管理员的角度去保护每一个员工在平台上的账号以及这个账号在每个云账号中相应的权限。 第二个组件是对立登录组件,这个组件容许企业员工登录到云联壹云之后可能登录到其余云平台,并且遵循管理员配置好的权限束缚,例如员工在某个云只有只读权限,某个云有某个产品的应用权限等。 如此实现通过一个平台对立实现企业在多个云上的多账号的员工账号治理目标。 多云对立账号治理收益 多云对立账号治理的收益其实非常明显。如果没有这样的工具,企业的多云账号治理复杂度是几何级数的。 通过云联壹云一个平台去做一个对立治理,管理员就不须要到每个云上对每一个员工的权限去做简单的设置,而是在咱们这个平台对立地定义好员工的权限范畴,针对每个员工逐个设置。 这样能够了解为复杂程度升高到员工数量的数量级,对用户而言也非常简单,用户不再须要去牢记每个平台的账号、明码,他只须要晓得登录云联壹云的账号密码。 登录之后,能够看到管理员授予的可能登录的云账号以及相应权限,并且能够一键跳转,登录到相应的云平台去实现在云平台上相应的操作,所以不论是治理复杂度还是应用难度都大大降低。 上面将介绍如何去实现通过咱们平台去其余云平台的对立的登录,无明码的Single Sign On 的体验。 3 SAML2.0简介 这背地的技术称为SAML2.0(Security Assertion Markup Language),这是OASIS(Organization for the Advancement of Structured Information Standards)规范组织定义的一套在不同的实体之间替换用户认证信息的规范。这个规范的2.0版本早在2005年便曾经公布。 为什么所有的云平台都对立采纳了SAML2.0这个规范SSO的协定去实现到这些平台的一个对立登录呢?上面咱们就对此进行具体介绍: 在SSO的技术畛域中,通常有三个实体,一个实体称为IDP,英文名称是identity provider,中文翻译为认证提供者。 这个实体用来提供用户的身份信息,它会通知别的实体这个用户是谁,有什么属性。 第二个实体的名称为SP(service Provider),中文翻译是服务提供者。 服务提供者是IDP的消费者,能够接管用户的认证信息,而后通过认证信息去确定用户是否有权限去拜访相应的服务。 在咱们这个多云的场景中,IDP就是相似云联壹云的第三方的多云对立治理的平台。 SP是各个云的云平台,例如腾讯云就是一个SP,咱们的平台云联壹云就是IDP。 第三个是UA,其实就是浏览器,所以典型场景就是用户应用浏览器去拜访Service provider,例如腾讯云的平台,而后须要有相应的认证信息,浏览器就会跳转到IDP,也就是云联壹云去认证用户,让认证用户认证通过之后再去跳转到相应的云平台去拜访相应的服务。 为什么这些云平台都会选用SAML2.0这个SSO协定实现SSO登录呢? 上面咱们一起理解一下SSO工作的流程: 在多云SSO的场景中,首先用户浏览器会被动拜访云平台控制台的URL。 这时云平台就会发现浏览器还没有认证过,云平台拜访URL时清晰地标识了用户的IDP是谁,这时腾讯云就会返回一个叫做AuthnRequest的表单返回浏览器,这个表单外面就携带了心愿IDP可能认证的申请,并且会携带这个申请定向到IDP。 浏览器收到表单之后,就会跳转到IDP,也就是云联壹云认证的URL。 ...

December 20, 2021 · 1 min · jiezi

关于云计算:问诊把脉实景三维业务发展瓶颈在哪里和御医良方

随着科技进步,社会中开始呈现越来越多将实景利用投射到虚拟环境之中的景象,人类试图通过“平行宇宙”辅助现实生活。3D 全景地图就是一个很好的形式,让人们能够做到“身未动,心已远”,提前理解目的地实景状况,以便精确判断生疏环境目的地的正确性。诸如此类的利用曾经越来越丰盛,甚至连文物保护和修复都曾经开始应用实景三维零碎。 随着时光轻轻逝去,文物古迹正在风吹雨打中逐步被泯灭,那么咱们应该采纳怎么的先进技术手段,在文物古迹受到爱护的前提下,让文物实现更长时间地保留,成为人类将来宣传教育、历史见证的“永生物”? 为此,国家文物相干爱护协会将心愿寄托全息实景三维技术,该技术联合了实景三维和全息投影,实现让钻研人员通过平安、牢靠、精准的形式,取得大到宏大的古建筑群,小到粗劣的酒壶杯盏的数据,且不会对文物有任何的损坏。 近期,自然资源部正式印发了《实景三维中国建设技术纲要(2021版)》,其中提出的建设指标为:依据新期间测绘工作“两服务、两撑持”基本定位,调动各级自然资源主管部门和社会力量,构建“散布存储、逻辑集中、时序更新、共享利用”的实景三维中国,为数字中国建设提供对立的空间基底。可见,GIS 行业开始经验从二维到三维的全面降级,迎来要害上升期。 浙江省某古建筑斗拱实景模型 将来数字世界建设的根底实际上,实景三维(3D Real Scene)是通过多种技术手段,将事实世界的天文地貌全数据集的采集、分类、加工、展示于一体的技术流程。其旨在建造一个与事实无差别的虚拟世界,实现在任何空间都能够调取和利用的数据,其中业务流程可分为“外业”和“内业”两大部分。 “外业”作为数据采集的次要过程,利用了多种技术,包含卫星、航拍、车载等载体,搭载各种可见光影像设施进行摄影测量,并且造成间断数据集;“内业”则将通过“外业”采集回来的天文数据进行加工将 2D 图像数据转化成 3D 模型,以平面的形式展示天文地貌,并且依照国家坐标系重建一个与事实雷同的 3D 图形。 “激光点云”“歪斜摄影”等技术的实现,都是将 2D 影像通过解决成为 3D 平面模型,依照对立坐标系造成实在的“虚拟世界”,与事实世界造成 1:1 镜像关系的后果。 除了上述举例的利用以外,实景三维还大量用在疆土资源管理、农林水利、资源矿产、城市规划服务、应急救灾等畛域,堪称是古代社会建设的根底组件,成为“新基建”的一部分。 实景三维在数据时代的技术瓶颈实际上,整个实景三维业务流程中采纳了多种技术,而数据处理作为实景三维业务过程中的关键步骤,如果没有这个环节,“外业”所有的成绩都不能充沛地展示,其重要性可见一斑。 以后,业内局部可分为三层探讨,由上而下别离是业务软件层、业务零碎层和数据层。随着应用软件几十年的倒退当前,现在应用软件曾经十分成熟且弱小。诸如 ContextCapture、Smart3D、Skyline 等等,根本能够实现互相通用。 接下来是业务零碎层,次要是基于 X86 硬件平台的 Windows 或者 Linux 作为对立汇编语言。从以后的情景来看,国家正在推广国产操作系统,各大厂商也在踊跃适配,置信将来国产化必然是一个趋势。 最初一层是数据层,它是所有业务的“地基”,其中蕴含了 IT 的外围三大元件—计算、网络、存储。如果没有这三大法宝,所有指标将化为泡影,“数字孪生城市”就是一句空话。因为所有数据都将在数据层进行加工,是内业生产中真正数据的载体。 实景三维建设技术路线图 目前,计算倒退曾经从 CPU 时代迈进 GPU 并发时代,在突飞猛进的算力带动下,网络需要也在暴增,背地的起因是数据依附网络提供计算。如果网络跟不上算力,则容易会呈现计算单元“空窗”的景象。故而,现在各个单位的数据中心都在降级业务网络。 尽管通过堆砌硬件的办法能迅速晋升算力和网络的性能,然而随之而来是更加严厉的问题——如何让数据存储跟上业务倒退的步调,一旦存储呈现了延后的景象,那么无论算力和网络再快都是无用之功。 存储是一个极其简单的零碎,不能像算力和网络一样,依附堆砌硬件的形式解决问题。同时,因为每一份数据都是极其宝贵的,它们对存储容器的可靠性要求极其严格。一旦存储解体,轻则业务中断,提早交付,重则数据失落,我的项目失败。 在业务疾速倒退的压力下,实景三维所应用的存储从小容量、小并发的通用型存储,逐步倒退成为海量数据、高并发的专业型存储,也从反对十几台计算并发拜访的规模,增长为反对几十到几百台计算的高并发存储,数据量也从几十 TB 增长到数百 TB 乃至 PB 级别。它们的差异就好比 U 盘和企业级存储机柜的区别。因而,存储正在成为整体实景三维内业极具代表性的倒退瓶颈。 冲破存储瓶颈,买通实景三维“最初一公里” 实景三维整体业务架构 随着实景三维对于精密度要求越来越高,地理信息数据量逐步变得越来越大。比方前文提到的文物古迹展示,8K 的成果简直能给人一种与实物无差别的体验,但其中所产生的数据也是微小的。因而,如果存储不能满足并发连贯的需要,那么再多的图形工作站也是“巧妇难为无米之炊”。 为此,实景三维对于业余存储第一条要求就呈现了,反对多计算单元的连贯并发拜访。 除此之外,实景三维在生产过程中,数据可靠性是硬性要求,前文提到“存储解体”是常见问题,不仅会让数据凭空隐没,更会导致企业业务中断,造成巨大损失。例如为期一个月的工作,在运行三周后,邻近我的项目序幕,存储系统忽然解体,导致所有过程数据都要从新计算,就算再加班加点,在残余的一周工夫内也是无奈实现既定工作,间接影响企业名誉,造成不可挽回的结果。 这时,实景三维对存储的第二条要求呈现了,可靠性要高,避免出现存储单点问题。 实景三维业务中,大多数“原材料”都是图片,依据采集设施的不同等其余条件,图片的规格大小也不同。同时,在内业生产过程中,因为采纳业务软件不同,如 ContextCapture 和 Skyline 运作机制不同,产生的碎片化文件数量也不同。因而,须要存储可能适应海量文件及碎文件治理性能。以后,通用存储在治理混合文件就比拟艰难,导致呈现文件越多,性能就越差的状况。 ...

December 20, 2021 · 1 min · jiezi

关于云计算:Java应用日志如何与Jaeger的trace关联

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览通过《Jaeger开发入门(java版)》的实战,置信您曾经能将本人的利用接入Jaeger,并用来跟踪定位问题了,本文将介绍Jaeger一个玲珑而弱小的辅助性能,用大量改变大幅度晋升定位问题的便利性:将业务日志与Jaeger的trace关联在正式开始前,咱们先来看一个具体的问题:一次web申请可能有多条业务日志(log4j或者logback配置的那种),这和您写代码执行<font color="blue">log.info</font>的次数无关,假如有10条,那么十次申请就有一百条业务日志;通过jaeger发现这十次申请中有一次耗时特地长,想定位一下具体起因,当初问题来了:一共有100条业务日志,到底哪些是和Jaeger中耗时长的那一次申请无关?您可能会说:有些业务特色如user-id,咱们能够写入span的tag或者log中,这样通过span查到user-id,再去日志中查找含有此user-id的日志即可,这样的确能够,但未必每条日志都有user-id,所以并非最佳形式好在Jaeger官网给出了一种简略无效的计划:基于MDC,Jaeger的SDK在日志中注入trace相干的变量对于MDC对于sl4j的MDC不是本篇的重点,因而只把本篇用到的个性简略说说即可,经验丰富的您如果对MDC曾经理解,请跳过此节在sl4j的配置文件中能够配置日志的格局,例如logback的配置文件如下,可见模板中新增了一段内容<font color="blue">[user-id=%X{user-id}]</font>:<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <encoder> <!--%logger{10}示意类名过长时会主动缩写--> <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{10} [user-id=%X{user-id}] %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender>再来看一段日志的代码,先调用<font color="blue">MDC.put</font>办法将一个键值对写入以后线程的诊断上下文map(diagnostic context map),键名和下面的模板中配置的<font color="red">%X{user-id}</font>截然不同:@GetMapping("/test") public void test() { MDC.put("user-id", "user-" + System.currentTimeMillis()); log.info("this is test request"); }当初把代码运行起来,打印日志看看,如下所示,之前模板中配置的<font color="red">%X{user-id}</font>已被替换成了<font color="blue">user-1632122267618</font>,就是代码中<font color="green">MDC.put</font>设置的值:15:17:47 [http-nio-18081-exec-6] INFO c.b.j.c.c.HelloConsumerController [user-id=user-1632122267618] this is test request以上就是MDC的基本功能:对日志模板中的变量进行填充,填充的内容能够用<font color="blue">MDC.put</font>办法随便设置;此刻聪慧的您应该能猜到jaeger官网的计划是如何实现的了,没错,就是借助MDC将trace信息填充到日志模板中,这样每行日志都有了trace信息,咱们在jaeger web页面中感兴趣的任何一次trace,都能找到对应的日志了对于Jaeger的官网计划Jaeger的官网计划如下图所示,SDK曾经把<font color="blue">traceId</font>、<font color="blue">spanId</font>、<font color="blue">sampled</font>写入以后线程的诊断上下文map(diagnostic context map),只有日志模板中配置上述三个变量,就会在所有业务日志中输入它们具体的值: 看起来仿佛非常简单,那就入手编码试试吧编码实战jaeger与MDC的关联只是个小性能,没必要声势浩大的新建我的项目,基于《Jaeger开发入门(java版)》的代码持续开发即可,也就是说批改两个子工程<font color="blue">jaeger-service-consumer</font>和<font color="blue">jaeger-service-provider</font>的源码,让它们的业务日志打印出Jaeger的trace信息首先从<font color="blue">jaeger-service-provider</font>工程开始,减少一个规范的logback日志配置文件<font color="red">logback.xml</font>,如下所示,日志模板中已增加了<font color="blue">traceId</font>、<font color="blue">spanId</font>、<font color="blue">sampled</font>变量:<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <!--输入到控制台--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <encoder> <!--%logger{10}示意类名过长时会主动缩写--> <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{10} [traceId=%X{traceId} spanId=%X{spanId} sampled=%X{sampled}] %msg%n</pattern> <charset>utf-8</charset> </encoder> </appender> <root level="info"> <appender-ref ref="console" /> </root></configuration>再去查看配置类,确认JaegerTracer实例化时用了MDCScopeManager参数,如下所示,咱们在上一章曾经这么做了,能够维持不变:package com.bolingcavalry.jaeger.provider.config;import io.jaegertracing.internal.MDCScopeManager;import io.opentracing.contrib.java.spring.jaeger.starter.TracerBuilderCustomizer;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class JaegerConfig { @Bean public TracerBuilderCustomizer mdcBuilderCustomizer() { // 1.8新个性,函数式接口 return builder -> builder.withScopeManager(new MDCScopeManager.Builder().build()); }}接下来是在业务代码中随便加几行打印日志的代码,如下图红框所示: ...

December 20, 2021 · 1 min · jiezi

关于云计算:被寄予厚望的-Serverless争议和问题都解决了吗

2009 年,加州大学伯克利分校公布了一篇论文 《The Berkeley View on Cloud Computing》,正确预测了接下来十年的云计算演进和遍及。 2019 年,伯克利又公布了一篇有着雷同命名格调的论文 《A Berkeley View on Serverless Computing》,再次预言将来“无服务器计算将会倒退成为将来云计算的次要模式”。无服务器被寄予厚望,但同时也存在一些争议。 现在,间隔 2014 年 Amazon Lambda 首次公布已有七年工夫,咱们回头去看,当初那些无服务器的承诺都能兑现了吗? 无服务器的承诺和争议“无服务器”术语最早呈现在 2012 年左右的一篇文章里,作者 Ken Fromm 对它的解释是: “无服务器”一词并不意味着不再波及服务器,它只是意味着开发人员不再须要思考那么多的物理容量或其余基础设施资源管理责任。通过打消后端基础设施的复杂性,无服务器让开发人员将注意力从服务器级别转移到工作级别。 尽管不少技术先知认为无服务器架构是“一项重大翻新并将很快流行起来”,但这个概念在提出过后并没有失去很好的反应。 真正让无服务器失去宽泛关注的事件是亚马逊云科技于 2014 年推出 Amazon Lambda 服务。之后, 随着谷歌和微软等企业的服务进入市场,“无服务器”才逐步成为行业“热词”。 相较于“传统服务”,无服务器计算的劣势次要有几点: 更好的主动扩缩容形式,实践上能应答突发的从“零”到“无穷大”的需要峰值。无关扩大的决定由云提供商按需提供,开发人员不再须要编写主动扩大策略或定义机器级别资源(CPU、内存等)的应用规定。传统云计算依照预留的资源免费,而无服务器依照函数执行工夫免费。这也意味着更加细粒度的治理形式。在无服务器框架上应用资源只需为理论运行工夫付费。这与传统云计算免费形式造成了鲜明对比,后者用户须要为有闲置工夫的计算机付费。作为云计算的下一个迭代,无服务器计算让开发者能够更关注于构建产品中的利用,而不须要治理和保护底层堆栈,且比传统云计算更为便宜,因而无服务器被誉为“开发新利用最疾速的形式,同时也是总成本最低的形式”。“伯克利观点”甚至认为,无服务器计算提供了一个接口,极大地简化了云编程,这种转变相似于“从汇编语言迁徙到高级编程语言”。 从诞生开始,“无服务器”就被寄托了厚望,但在倒退过程中也免不了会存在争议,之前波及到的一些问题有: 编程语言受限。大多数无服务器平台仅反对运行特定语言编写的利用。供应商锁定危险。在“函数”的编写、部署和治理形式上,简直不存在跨平台的规范。这意味着将“函数”从一个特定于供应商的平台迁徙到另一个平台十分耗时吃力。性能问题如冷启动。如果某个“函数”之前未在特定平台上运行过,或是在一段时间内未运行,那么就须要消耗一些工夫做初始化。2019 年被认为是无服务器有重大倒退的一年。在这一年的年底,亚马逊云科技公布了 Amazon Lambda 的“预置并发(Provisioned Concurrency)”性能,它容许亚马逊云科技无服务器计算用户使其函数放弃“已初始化并筹备好在两位数毫秒内响应”的状态,这意味着“冷启动”问题成为过来,行业达到一个成熟点。 尽管这项技术依然有较长的路要走,但随着越来越多的公司,包含亚马逊云科技、谷歌、微软在这项技术上的投资,咱们看到了无服务器采用率在持续增长。 据 Datadog 2021 年公布的无服务器状态报告,开发人员正减速采纳无服务器架构:2019 年之后 Amazon Lambda 的使用率显著减少,2021 年初,Amazon Lambda 函数的均匀每天调用频率是两年前的 3.5 倍,且半数 Amazon Web Services 新用户已采纳 Amazon Lambda。 尽管微软和谷歌的份额有所回升,但作为无服务器技术的先驱,Amazon Lambda 在采用率方面始终放弃领先地位,有一半的函数即服务(FaaS)用户在应用亚马逊云科技的服务。据 Amazon Web Services 颁布的数据显示,已有数十万家客户在用 Amazon Lambda 来构建他们的服务。 ...

December 17, 2021 · 3 min · jiezi

关于云计算:开源软件公司HashiCorp-上市市值超过150亿美元企业多云化成为必然选择

开源软件公司HashiCorp于北京工夫2021年12月9日晚间正式以“HCP”为股票代码在纳斯达克挂牌上市。 截至开盘,HashiCorp市值约为153亿美元,这也是迄今为止往年寰球市值最高的开源IPO。 HashiCorp 由 Mitchell Hashimoto 和 Armon Dadgar 创建,旨在从新构建云世界的基础设施治理。HashiCorp 的云基础设施自动化能够反对企业翻新,该公司提供开源技术产品,解决云采纳的外围基础设施挑战。他们的产品套件包含基础设施配置、平安、网络和应用程序部署。 简而言之,它们有助于大规模和实时地配置、爱护、连贯和运行基础设施。他们产品的指标是使 IT 运营商和从业者可能应用自动化云基础设施。 HashiCorp的产品可能使公司放慢产品上市工夫,升高经营老本,并进步其对简单基础设施部署的安全性和治理的程度。随着公司构建更多软件并迁徙到云——这是当今技术的最大趋势——HashiCorp 提供行业当先的产品,帮忙公司减速和治理这种转变。 他们的次要商业产品是 Terraform、Vault、Consul 和 Nomad。HashiCorp 的软件次要是自我管理的,客户在公共、公有和混合云环境中部署它。该公司还提供其齐全托管的云平台 —— HashiCorp 云平台,即 HCP。 HashiCorp 的开源产品在 2021 财年的下载量约为 1 亿次,这是令人难以置信的成就。该公司在其开源产品之上销售专有的商业软件,重点对象是大型企业,该策略正在见效。 HashiCorp 没有报告 ARR(年度经常性支出),但截至上个季度,该公司的隐含 ARR(季度订阅支出 * 4)为 2.949 亿美元,同比增长 50%,第四季度平均收入留存率 达124%。截至最近一个季度,HashiCorp 共有 2,101 名客户,558 名客户的 ARR 超过 10 万美元,58 名客户的 ARR 超过 100 万美元。 HashiCorp 成立于 2013 年,于 2016 年开始将其软件商业化。HashiCorp 总部位于加利福尼亚州旧金山,只管该公司大部分地区位于偏远地区,但只有约 10% 的员工在总部。该公司以近程工作为主,在寰球领有 1,400 多名全职员工。以下是公司时间表。 与大多数软件公司不同,HashiCorp 为其客户提供了宽泛的产品和部署模型。该公司的根底技术通过启用可能开释古代私有云和公有云全副后劲的经营模式来解决云采纳的外围基础设施挑战。这些产品应用通用设计准则构建,以实现基础设施自动化、宽泛的生态系统反对和从业者的自助服务。 他们的产品次要是自我管理的外部部署,客户将它们部署在公共、公有和混合云环境中。HashiCorp 云平台上HCP 占上季度总收入的 5%,但它是该业务增长最快的局部(于 2020 年公布)。该公司采纳凋谢外围软件开发模式,其所有产品都是开源的。 ...

December 17, 2021 · 4 min · jiezi

关于云计算:正确监控容器-OOMKill-的指标译

最近在Splunk工作不久,一个共事在Slack上找到我,问起我之前一篇对于《Kubernetes指标》的博文。 他的问题是对于OOMKiller应用是容器里哪个 "memory usage “的指标来决定是否应该杀死一个容器。我在那篇文章中提出的论断是。 你可能认为用container_memory_usage_bytes来跟踪内存利用率很容易,然而,这个指标也包含缓存(想想文件系统缓存)数据,这些数据在内存压力下可能会被驱赶。更好的指标是container_memory_working_set_bytes,因为这是OOM杀手关注的。这是这篇文章中最外围的阐述,所以我决定我须要模仿这次行为。让咱们看看OOMKiller在察看哪些指标。 我做了一个小东西,它会一直地分配内存,直到OOMKiller参加进来并杀死pod中的容器。 package mainimport ( "fmt" "net/http" "time" "github.com/prometheus/client_golang/prometheus/promhttp")func main() { memoryTicker := time.NewTicker(time.Millisecond * 5) leak := make(map[int][]byte) i := 0 go func() { for range memoryTicker.C { leak[i] = make([]byte, 1024) i++ } }() http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8081", nil)}见它部署在minikube中,并将内存申请和限度都设置为128MB,咱们能够看到container_memory_usage_bytes和container_memory_working_set_bytes简直1:1地互相跟踪。当它们都达到容器上设置的极限时,OOMKiller就会杀死容器,过程从新开始。 因为container_memory_usage_bytes也跟踪过程所应用的文件系统缓存,所以我又优化了下小工具,以便将数据间接写到文件系统上的一个文件。 package mainimport ( "fmt" "net/http" "time" "github.com/prometheus/client_golang/prometheus/promhttp")func main() { memoryTicker := time.NewTicker(time.Millisecond * 5) leak := make(map[int][]byte) i := 0 go func() { for range memoryTicker.C { leak[i] = make([]byte, 1024) i++ } }() fileTicker := time.NewTicker(time.Millisecond * 5) go func() { os.Create("/tmp/file") buffer := make([]byte, 1024) defer f.Close() for range fileTicker.C { f.Write(buffer) f.Sync() } }() http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8081", nil)}在引入文件系统缓存后,咱们开始看到 container_memory_usage_bytes 和 container_memory_working_set_bytes 开始呈现分叉 ...

December 17, 2021 · 1 min · jiezi

关于云计算:OpenFaaS-以自己的方式运行容器化函数

译者注:本文篇幅较长,有助于理解 FaaS 和 OpenFaaS。作者别离从开发人员和运维人员的视角来理解 OpenFaaS,对理解新的技术是个很好的形式。 本文翻译自 Ivan Velichko 的 OpenFaaS - Run Containerized Functions On Your Own Terms。 长期以来,无服务器(serverless) 对我来说无非就是 AWS Lambda 的代名词。Lambda 提供了一种不便的路径,能够将任意代码附加到平台事件(云实例的状态变更、DynamoDB 记录的更新或新的 SNS 音讯)中。然而,我时不时会想到某个逻辑,但其又没大到足以有本人的服务,同时有不适宜任何现有服务的范畴。因而,我常常将其放入函数中,以便日后应用 CLI 命令或者 HTTP 调用来调用它。 几年前,我来开了 AWS,自那当前,我始终思念部署无服务器性能的便利性。因而,当我得悉 OpenFaaS 我的项目时惊喜万分。它将在 Kubernetes 集群上部署函数变得简略,甚至仅须要 Containerd 就能够部署到虚拟机上。 有趣味?那么持续! 无服务器与 FaaS无服务器 已成为一个风行词,目前其理论含意扔不够清晰。 许多古代平台被视为 无服务器 平台。在 AWS Fargate 或 GCP Cloud Run 上部署容器化服务?无服务器!在 Heroku 上运行应用程序?也可能是无服务器的。 同时,我更喜爱将 FaaS 视为一种具体的设计模式。依照 FaaS 范式,能够部署代码片段(响应某些内部工夫执行的函数)。这些函数与事件驱动程序中的回调相似,然而是运行在其他人的的服务器上。因为操作的是函数而不是服务器,顾名思义 FaaS 是无服务器的。 source OpenFaaS 我的项目旨在将 Kubernetes 集群或者独立的虚拟机等低级基础设施转化为治理无服务器函数的高级平台。 站在开发人员的角度,这样一个平台看起来是真的无服务器的 -- 你只须要晓得特定的 CLI/UI/API 来解决 函数 形象。但站在运维的角度,须要理解 OpenFaaS 如何应用 服务器 来运行这些函数。 ...

December 17, 2021 · 5 min · jiezi

关于云计算:Jaeger开发入门java版

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 本篇概览前文《分布式调用链跟踪工具Jaeger?两分钟极速体验》咱们体验了Jaeger的根本能力,明天就来编码实际,理解如何将让本人的利用集成Jaeger;本文的指标:明天咱们要在一个分布式系统中部署和应用jaeger,应用形式包含两种:首先是SDK内置的span,例如web申请、mysql或redis的操作等,这些会主动上报,第二种就是自定义span;总的来说,明天的实战步骤如下:明天咱们要从零开发一个迷你的分布式系统,该零碎架构如下图所示,可见有两个web利用:服务提供方<font color="blue">jaeger-service-provider</font>和服务调用方<font color="blue">jaeger-service-consumer</font>,再加一个redis: jaeger-service-consumer收到用户通过浏览器发来的http申请时,会调用<font color="blue">jaeger-service-provider</font>提供的web服务,而<font color="blue">jaeger-service-provider</font>又会操作一次redis,整个流程与典型的分布式系统相似<font color="blue">jaeger-service-consumer</font>和<font color="blue">jaeger-service-provider</font>在响应服务的过程中,都会将本次服务相干的数据上报到jaeger,这样咱们在jaeger的web页面就能察看到客户的一次申请会通过那些利用,要害地位耗时多少,要害参数是哪些等等;将所有利用制作成镜像,再编写docker-compose.yml文件集成它们运行,验证参考文章本文中会将springboot利用制作成docker镜像,如果您想理解具体的制作过程,能够参考以下两篇文章:《体验SpringBoot(2.3)利用制作Docker镜像(官网计划)》《详解SpringBoot(2.3)利用制作Docker镜像(官网计划)》jaeger接入套路先提前总结Spring Cloud利用接入jaeger的套路,以不便您的应用:增加依赖库<font color="blue">opentracing-spring-jaeger-cloud-starter</font>,我这里是3.3.1版本配置jaeger近程端口创立配置类,向spring环境注册TracerBuilderCustomizer实例在须要应用自定义span的代码中,用@Autowired注解引入Trace,应用它的API定制span能够创立span,还能够基于已有span创立子span除了指定span的名字,还能借助Trace的API给span减少标签(tag)和日志(log),这些都会在jaeger的web页面展现进去以上六步就是惯例接入套路,接下来的实战就是依照此套路进行的源码下载本篇实战中的残缺源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blo...):名称链接备注我的项目主页https://github.com/zq2599/blo...该我的项目在GitHub上的主页git仓库地址(https)https://github.com/zq2599/blo...该我的项目源码的仓库地址,https协定git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该我的项目源码的仓库地址,ssh协定这个git我的项目中有多个文件夹,本篇的源码在<font color="blue">spring-cloud-tutorials</font>文件夹下,如下图红框所示: <font color="blue">spring-cloud-tutorials</font>文件夹下有多个子工程,本篇的代码是<font color="red">jaeger-service-consumer</font>和<font color="red">jaeger-service-provider</font>,如下图红框所示: 创立web工程之一:jaeger-service-provider为了方便管理依赖库版本,<font color="blue">jaeger-service-provider</font>工程是作为spring-cloud-tutorials的子工程创立的,其pom.xml如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>spring-cloud-tutorials</artifactId> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>jaeger-service-provider</artifactId> <dependencies> <dependency> <groupId>com.bolingcavalry</groupId> <artifactId>common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.opentracing.contrib</groupId> <artifactId>opentracing-spring-jaeger-cloud-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layers> <enabled>true</enabled> </layers> </configuration> </plugin> </plugins> </build></project>配置文件application.yml,留神因为前面会用到docker-compose,因而redis和jaeger的地址都无需填写具体的IP,只有填写它们的容器名即可:spring: application: name: jaeger-service-provider redis: database: 0 # Redis服务器地址 写你的ip host: redis # Redis服务器连贯端口 port: 6379 # Redis服务器连贯明码(默认为空) password: # 连接池最大连接数(应用负值示意没有限度 相似于mysql的连接池 jedis: pool: max-active: 10 # 连接池最大阻塞等待时间(应用负值示意没有限度) 示意连接池的链接拿完了 当初去申请须要期待的工夫 max-wait: -1 # 连接池中的最大闲暇连贯 max-idle: 10 # 连接池中的最小闲暇连贯 min-idle: 0 # 连贯超时工夫(毫秒) 去链接redis服务端 timeout: 6000opentracing: jaeger: enabled: true udp-sender: host: jaeger port: 6831配置类:package com.bolingcavalry.jaeger.provider.config;import io.jaegertracing.internal.MDCScopeManager;import io.opentracing.contrib.java.spring.jaeger.starter.TracerBuilderCustomizer;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class JaegerConfig { @Bean public TracerBuilderCustomizer mdcBuilderCustomizer() { // 1.8新个性,函数式接口 return builder -> builder.withScopeManager(new MDCScopeManager.Builder().build()); }}另外,因为本篇的重点是jaeger,因而redis相干代码就不贴出来了,有须要的读者请在此查看:RedisConfig.java、RedisUtils.java接下来看看如何应用Trace的实例来定制span,上面是定了span及其子span的web接口类,请留神trace的API的应用,代码中已有具体正文,就不多赘述了:package com.bolingcavalry.jaeger.provider.controller;import com.bolingcavalry.common.Constants;import com.bolingcavalry.jaeger.provider.util.RedisUtils;import io.opentracing.Span;import io.opentracing.Tracer;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import java.text.SimpleDateFormat;import java.util.Date;@RestController@Slf4jpublic class HelloController { @Autowired private Tracer tracer; @Autowired private RedisUtils redisUtils; private String dateStr(){ return new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()); } /** * 模仿业务执行,耗时100毫秒 * @param parentSpan */ private void mockBiz(Span parentSpan) { // 基于指定span,创立其子span Span span = tracer.buildSpan("mockBizChild").asChildOf(parentSpan).start(); log.info("hello"); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } span.finish(); } /** * 返回字符串类型 * @return */ @GetMapping("/hello") public String hello() { long startTime = System.currentTimeMillis(); // 生成以后工夫 String timeStr = dateStr(); // 创立一个span,在创立的时候就增加一个tag Span span = tracer.buildSpan("mockBiz") .withTag("time-str", timeStr) .start(); // span日志 span.log("normal span log"); // 模仿一个耗时100毫秒的业务 mockBiz(span); // 减少一个tag span.setTag("tiem-used", System.currentTimeMillis()-startTime); // span完结 span.finish(); // 写入redis redisUtils.set("Hello", timeStr); // 返回 return Constants.HELLO_PREFIX + ", " + timeStr; }}编码曾经完结,接下来要将此工程制作成docker镜像了,新建Dockerfile文件,和pom.xml在同一个目录下:# 指定根底镜像,这是分阶段构建的后期阶段FROM openjdk:8-jdk-alpine as builder# 设置时区RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeRUN echo 'Asia/Shanghai' >/etc/timezone# 执行工作目录WORKDIR application# 配置参数ARG JAR_FILE=target/*.jar# 将编译构建失去的jar文件复制到镜像空间中COPY ${JAR_FILE} application.jar# 通过工具spring-boot-jarmode-layertools从application.jar中提取拆分后的构建后果RUN java -Djarmode=layertools -jar application.jar extract# 正式构建镜像FROM openjdk:8-jdk-alpineWORKDIR application# 前一阶段从jar中提取除了多个文件,这里别离执行COPY命令复制到镜像空间中,每次COPY都是一个layerCOPY --from=builder application/dependencies/ ./COPY --from=builder application/spring-boot-loader/ ./COPY --from=builder application/snapshot-dependencies/ ./COPY --from=builder application/application/ ./ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]先在父工程<font color="blue">spring-cloud-tutorials</font>的pom.xml所在目录执行以下命令实现编译构建:mvn clean package -U -DskipTests再在Dockerfile所在目录执行以下命令制作docker镜像:docker build -t bolingcavalry/jaeger-service-provider:0.0.1 .至此,<font color="blue">jaeger-service-provider</font>相干开发曾经实现创立web工程之二:jaeger-service-consumerjaeger-service-consumer工程的创立过程和jaeger-service-provider一模一样,甚至还要更简略一些(不操作redis),所以形容其开发过程的内容尽量简化,以节俭篇幅pom.xml相比jaeger-service-provider的,少了redis依赖,其余能够照抄application.yml也少了redis:spring: application: name: jaeger-service-consumeropentracing: jaeger: enabled: true udp-sender: host: jaeger port: 6831配置类JaegerConfig.java能够照抄jaeger-service-provider的因为要近程调用jaeger-service-provider的web接口,因而新增restTemplate的配置类:package com.bolingcavalry.jaeger.consumer.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.client.ClientHttpRequestFactory;import org.springframework.http.client.SimpleClientHttpRequestFactory;import org.springframework.web.client.RestTemplate;@Configurationpublic class RestTemplateConfig { @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory) { RestTemplate restTemplate = new RestTemplate(factory); return restTemplate; } @Bean public ClientHttpRequestFactory simpleClientHttpRequestFactory() { SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setReadTimeout(5000); factory.setConnectTimeout(15000); return factory; }}要害代码是web接口的实现,会通过restTemplate调用jaeger-service-provider的接口:package com.bolingcavalry.jaeger.consumer.controller;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;@RestController@Slf4jpublic class HelloConsumerController { @Autowired RestTemplate restTemplate; /** * 返回字符串类型 * @return */ @GetMapping("/hello") public String hello() { String url = "http://jaeger-service-provider:8080/hello"; ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class); StringBuffer sb = new StringBuffer(); HttpStatus statusCode = responseEntity.getStatusCode(); String body = responseEntity.getBody(); // 返回 return "response from jaeger-service-provider \nstatus : " + statusCode + "\nbody : " + body; }}接下来是编译构建制作docker镜像,和后面的jaeger-service-provider一样;docker-compose.yml文件编写当初咱们要将所有服务都运行起来了,先盘点一共有哪些服务要在docker-compose中启动的,如下所示,共计四个:jaegerredisjaeger-service-providerjaeger-service-consumer残缺的docker-compose.yml内容如下:version: '3.0'networks: jaeger-tutorials-net: driver: bridge ipam: config: - subnet: 192.168.1.0/24 gateway: 192.168.1.1services: jaeger: image: jaegertracing/all-in-one:1.26 container_name: jaeger # 解决时钟漂移带来的计算出正数的问题 command: ["--query.max-clock-skew-adjustment=100ms"] #选择网络 networks: - jaeger-tutorials-net #抉择端口 ports: - 16686:16686/tcp restart: always redis: image: redis:6.2.5 container_name: redis #选择网络 networks: - jaeger-tutorials-net restart: always jaeger-service-provider: image: bolingcavalry/jaeger-service-provider:0.0.1 container_name: jaeger-service-provider #选择网络 networks: - jaeger-tutorials-net restart: always jaeger-service-consumer: image: bolingcavalry/jaeger-service-consumer:0.0.1 container_name: jaeger-consumer-provider #抉择端口 ports: - 18080:8080/tcp #选择网络 networks: - jaeger-tutorials-net restart: always至此,开发工作已全副实现,开始验证验证在docker-compose.yml所在目录执行命令<font color="blue">docker-compose up -d</font>,即可启动所有容器:will$ docker-compose up -dCreating network "jaeger-service-provider_jaeger-tutorials-net" with driver "bridge"Creating jaeger-service-provider ... doneCreating jaeger ... doneCreating redis ... doneCreating jaeger-consumer-provider ... done浏览器关上<font color="blue">http://localhost:16686/search</font>,相熟的jaeger页面: ...

December 17, 2021 · 3 min · jiezi

关于云计算:ClickHouse-技术系列-ClickHouse-聚合函数和聚合状态

简介:本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机剖析解决(OLAP)的开源剖析引擎 ClickHouse,因其低劣的查问性能,PB级的数据规模,简略的架构,被国内外公司宽泛采纳。本系列技术文章,将具体开展介绍 ClickHouse。 前言本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机剖析解决(OLAP)的开源剖析引擎 ClickHouse,因其低劣的查问性能,PB 级的数据规模,简略的架构,被国内外公司宽泛采纳。 阿里云 EMR-OLAP 团队,基于开源 ClickHouse 进行了系列优化,提供了开源 OLAP 剖析引擎 ClickHouse 的云上托管服务。EMR ClickHouse 齐全兼容开源版本的产品个性,同时提供集群疾速部署、集群治理、扩容、缩容和监控告警等云上产品性能,并且在开源的根底上优化了 ClickHouse 的读写性能,晋升了 ClickHouse 与 EMR 其余组件疾速集成的能力。拜访 https://help.aliyun.com/docum... 理解详情。 译者:何源(荆杭),阿里云计算平台事业部高级产品专家 ClickHouse 聚合函数和聚合状态ClickHouse 可能有一个独特的性能——聚合状态(除了聚合函数外)。你能够参考 和 组合子的文档。 简而言之,许多数据库应用概率数据结构,例如 HyperLogLog(简称 HLL)。它用于惟一/去重计算,你能够在Spark、ElasticSearch、Flink、Postgres、BigQuery 和 Redis 等服务中看到它的成果。但通常你只能在聚合函数中利用此函数一次,例如查问每月惟一用户数——失去一个数字,这样就知足了。因为 HLL 构造没有对应的外部格局,因而无奈重用预聚合或局部聚合的数据。而在 ClickHouse 中,你能够这样做,因为 HLL 构造是统一的。 ClickHouse 的速度十分快,其基本思路是解决原始数据而不是预聚合数据。然而让咱们做个试验。例如,咱们须要为上个月的惟一用户数计算一些指标。 构想:每天预聚合,而后汇总所有后果。这就是所谓的存储空间办法——当前你能够只汇总最初 30 个测量值来计算上个月的统计数据,或者只汇总最初 7 个测量值来计算上周的统计数据。 创立咱们的预聚合表: create table events_unique ( date Date, group_id String, client_id String, event_type String, product_id String, value AggregateFunction(uniq, String)) ENGINE = MergeTree(date, (group_id, client_id, event_type, product_id, date), 8192);这里将我的聚合申明为 AggregateFunction(uniq, String)。咱们关注的是一些独特的指标,这些指标是在 String 列上计算的(为了进一步优化,你可能应该应用 FixedString 或二进制数据)。 ...

December 16, 2021 · 2 min · jiezi

关于云计算:分布式调用链跟踪工具Jaeger两分钟极速体验

欢送拜访我的GitHubhttps://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等; 对于Jaeger开发系列(java版)本文属于《Jaeger开发系列》,是第一篇,该系列是欣宸原创,旨在通过实战演练与Java程序员一起熟练掌握Jaeger相干的技术,使之在分布式系统中施展巨作用;全系列由浅入深、从基本功能到深度定制都会波及,心愿这个系列能随同您一起成长,为您提供一些及时的参考;本篇概览作为《Jaeger开发系列》的开篇,咱们先花一分钟理解Jaeger的基本概念,再用三十秒工夫实现部署,而后三十秒体验基本功能,以最轻松的姿态和情绪开启Java程序员的Jaeger之旅;以下是我这里执行本篇实战的环境和软件:电脑:MacBook Pro,macOS Big Sur (11.5.2)---您也能够应用Linux,如Ubuntu或者CentOSDocker:20.10.7JDK:8u301接下来先从Jaeger的基本概念开始吧;对于JaegerJaeger是一套开源的分布式调用链跟踪计划,由Uber创立,起初捐献给CNCF(云原生计算基金会),官网地址:https://www.jaegertracing.io/ Jaeger的后端、Web端、本地库等都恪守了OpenTracing standard在OpenTracing规范中,一个工作的逻辑单元被称为<font color="blue">span</font>,它有本人的名称、开始工夫、时长、标签等个性,如下图: 上面是官网给出的Jaeger架构图(这是没有应用kafka做缓冲的版本),最上层一行表明Jaeger反对的语言类型,可见利用应用了SDK后,业务的span被送到jaeger-agent(通过UDP协定),而后被推送到jaeger-collector,数据被jaeger-collector写入数据库(DB),这样,用户通过浏览器拜访jaeger-query,就能看到具体的调用链追踪后果了,另外,红色虚线是管制信号(例如采样相干的参数): 对于本次体验明天的体验环境由以下内容形成,有个名为<font color="blue">jaeger-service-provider</font>的web利用,其web接口被拜访时,它会操作redis,而后将本次服务的数据上报到Jaeger,而后咱们就能够在Jaeger上看到本次服务的详细情况了: 极速部署jaeger体验环境请确保您的docker-compose性能能够失常应用创立文件<font color="blue">docker-compose.yml</font>,内容如下:version: '3.0'networks: jaeger-tutorials-net: driver: bridge ipam: config: - subnet: 192.168.1.0/24 gateway: 192.168.1.1services: jaeger: image: jaegertracing/all-in-one:1.26 container_name: jaeger #选择网络 networks: - jaeger-tutorials-net #抉择端口 ports: - 16686:16686/tcp restart: always redis: image: redis:6.2.5 container_name: redis #选择网络 networks: - jaeger-tutorials-net restart: always jaeger-service-provider: image: bolingcavalry/jaeger-service-provider:0.0.1 container_name: jaeger-service-provider #抉择端口 ports: - 8088:8080/tcp #选择网络 networks: - jaeger-tutorials-net restart: always在docker-compose.yml所在目录执行命令<font color="blue">docker-compose up -d</font>,会立刻开始下载三个镜像,而后启动服务:Creating network "jaeger-service-provider_jaeger-tutorials-net" with driver "bridge"Creating jaeger ... doneCreating jaeger-service-provider ... doneCreating redis ... done至此,jaeger体验环境曾经部署结束,咱们来体验吧体验jaeger性能用浏览器拜访:<font color="blue">http://localhost:16686/search</font> ,映入眼帘的Jaeger页面如下,相熟golang的同学都分明图标意味着什么(对于欣宸这样的Java铁粉,多想看到那里是一杯热咖啡啊...): ...

December 16, 2021 · 1 min · jiezi

关于云计算:KubeSphere-对-Apache-Log4j-2-远程代码执行最新漏洞的修复方案

Apache Log4j 2 是一款开源的日志记录工具,被广泛应用于各类框架中。近期,Apache Log4j 2 被爆出存在破绽,破绽现已公开,本文为 KubeSphere 用户提供倡议的修复计划。 此次破绽是因为 Log4j 2 提供的 lookup 性能造成的,该性能容许开发者通过一些协定去读取相应环境中的配置。但在实现的过程中,并未对输出进行严格的判断,从而造成破绽的产生。因为大量的软件都应用了 Log4j 2 插件,所以大量的 Java 类产品均被波及,包含但不限于 Apache Solr、srping-boot-strater-log4j2、Apache Struts2、ElasticSearch、Dubbo、Redis、Logstash、Kafka...更多组件能够参考 Log4j 2 相干文档。 受影响的 Log4j 版本为 Apache Log4j 2.x < 2.15.0-rc2。目前官网公布了 Apache 2.15.0-rc2 版本对该破绽进行了修复,然而该版本并非正式发行版,故存在不稳固的因素,如要降级倡议对相干数据进行备份。 同时,也提供了三种办法对破绽进行补救,为 将零碎环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true批改配置 log4j2.formatMsgNoLookups=True批改 JVM 参数 -Dlog4j2.formatMsgNoLookups=true以下三种解决办法,您能够任选其中一种进行参考。 办法一:批改零碎环境变量因为 KubeSphere 默认应用了 ElasticSearch 收集日志,所以也应该在 KubeSphere 批改相应的配置来对破绽进行修复。以下阐明如何在 KubeSphere 中进行相应的操作对 ElasticSearch 进行修复。 将零碎环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 True,为此,咱们须要批改 ElasticSearch 的 Yaml 文件,因为它是一个 StatefulSet 文件,所以须要进行如下批改: kubectl edit statefulset elasticsearch-logging-data -n kubesphere-logging-systemkubectl edit statefulset elasticsearch-logging-discovery -n kubesphere-logging-system在这两个 Yaml 文件中插入环境变量设置: ...

December 15, 2021 · 1 min · jiezi

关于云计算:Cilium-111-发布带来内核级服务网格拓扑感知路由

原文链接:https://isovalent.com/blog/po... 作者:Cilium 母公司 Isovalent 团队译者:范彬,狄卫华,米开朗基杨 注:本文已获得作者自己的翻译受权! Cilium 我的项目已逐步成为万众瞩目之星,咱们很骄傲可能成为该项目标外围人员。几天前,咱们公布了具备诸多新性能的 Cilium 1.11 版本,这是一个令人兴奋的版本。诸多新性能中也包含了万众期待的 Cilium Service Mesh 的 Beta 版本。在本篇文章中,咱们将深入探讨其中的局部新性能。 Service Mesh 测试版本(Beta)在探讨 1.11 版本之前,让咱们先理解一下 Cilium 社区发表的 Service Mesh 的新性能。 基于 eBPF 技术的 Service Mesh (Beta)版本: 定义了新的服务网格能力,这包含 L7 流量治理和负载平衡、TLS 终止、金丝雀公布、追踪等诸多能力。集成了 Kubernetes Ingress (Beta) 性能: 通过将 eBPF 和 Envoy 的强势联结,实现了对 Kubernetes Ingress 的反对。Cilium 网站的一篇文章具体介绍了Service Mesh Beta 版本,其中也包含了如何参加到该性能的开发。以后,这些 Beta 性能是 Cilium 我的项目中的一部分,在独自分支进行开发,可独立进行测试、反馈和批改,咱们期待在 2022 年初 Cilium 1.12 版本公布之前合入到 Cilium 主分支。 Cilium 1.11Cilium 1.11 版本包含了 Kubernetes 额定性能,及独立部署的负载均衡器。 ...

December 15, 2021 · 6 min · jiezi

关于云计算:解密基于阿里云Lindorm的新一代工业全链数智云平台

简介:5G、物联网等信息技术演进倒退正在推动传统制造业疾速数字化降级,领有超连贯、超感知、数智化和物联网数字生态系统的工业企业将在将来竞争中占据绝对优势,2021年12月10日,“新一代工业全链数智降级数据云平台”发布会上,阿里云Lindorm联结工业大脑iGate数据采集与剖析平台 & DTwin数字孪生零碎推出工业数据云零碎,具备云原生超交融能力,反对信息技术 (IT) 与经营技术 (OT)云端交融,为汽车、能源、钢铁、水泥等流程/离散工业企业数字化转型降级提供要害撑持。 “新一代工业全链数智降级数据云平台”发布会围绕以阿里云Lindorm数据库为外围的工业数据云平台建设外围数据采集、交融存储、剖析问题,重点分析了阿里云Lindorm与Intel、OSIsoft面向工业物联网信息经济(Infonomics)的IT & OT超交融工业数据云解决方案,旨在为制造业企业提供可落地的云端存储剖析离散、流程工业泛数据源的能力的实际参考。计划通过云端买通阿里云、Intel的IT技术积攒和OSIsoft的OT教训能力,实现对传统技术供需关系的超过,打造数据链和价值链混搭形式连贯企业和供应商的凋谢、平安、共享的制造业数据云社区生态。 此次发布会围绕阿里云Lindorm工业数据云产品计划、利用实际和关键技术三个主题层层开展。 一、Lindorm——驱动工业场景数智降级的引擎在过来数十年间,OT团队部署了自动化、流程管制和分布式管制软件系统,为工厂人员提供了可监控、管制和优化工业流程的计算资源。这些零碎积攒了对于过来和目前流程与资产的海量工业信息。同时,IT 团队施行了大量的业务零碎、信息架构和先进的剖析工具。明天,云计算和大数据技术逐步成熟带来了一个前所未有的时机。阿里云整合 Lindorm数据库和iGate & DTwin数字孪生零碎劣势能力,买通工业场景设施、数据、算法、工具和平台,为企业发明新的数字化价值,进步业务灵便度,晋升经营效率和企业整体竞争力。 二、全链一体化工业数据云平台工业数据云北向数据利用能够撑持阿里云工业大脑iGate & DTwin数字孪生零碎,具备行业当先的工业实时数采技术和残缺的软、硬件工业数字孪生能力,可能为制造业企业提供云计算、多模数据库、ML/AI、流数据计算等为代表的可视化生产管理系统撑持;阿里云合作伙伴浙江拓峰科技详细分析了产线对接可编程逻辑控制器(PLC)、近程终端单元(RTU)、数据采集与监督控制系统(SCADA)及嵌入式计算零碎的对接形式,并分享了过程监控管理系统撑持教训与技术。 图:阿里云数据工厂架构图 三、Lindorm计算引擎关键技术揭秘Lindorm计算引擎是一款基于云原生多模数据库Lindorm外围能力实现的数据库内高性能、低成本、稳固牢靠的分布式计算服务,满足用户在云原生多模数据库Lindorm撑持场景下的数据生产、交互式剖析、机器学习和图计算等场景中的计算需要,反对对海量数据的高并发解决。Lindorm计算引擎残缺反对开源Spark计算模型以及编程接口,并深度交融Lindorm存储引擎的个性,充分利用底层数据存储特色以及索引能力,高效地实现分布式计算工作。 Lindorm计算引擎具备要害个性如下: ● 多种接入形式:Proxy Service提供接入服务,用户能够通过JDBC形式对数据进行交互式剖析,也能够通过提交Jar包的形式自定义分布式计算工作;● 开箱即用:Lindorm Spark与存储引擎的权限链路以及读写链路主动买通,同时屏蔽掉了诸多底层组件细节,开发者仅需具备根底SQL常识以及Spark开发教训,即可上手;● 免运维:用户无需关注集群运维操作(配置,升降级,扩缩容等),只需通过Control Service以及Spark UI关注作业管理即可;● 弹性能力:Lindorm Spark分布式计算资源池提供极致的弹性伸缩能力,按计算需要的顶峰低谷疾速伸缩;● 按量付费:用户依照计算资源理论用量免费,无需放心闲置资源造成的老本开销。 工业客户基于阿里云Lindorm打造新一代工业全链数智降级数据云平台的客户价值能够总结为以下几点: 资产危险集中监控,晋升老本效益: 由数据驱动实现资产状态全链路实时监控治理,危险及时发现、及时培修,这个策略可能为企业带来重大的老本效益,该策略会应用经营数据(OT 数据)理解一项资产可能在何时产生故障或受到不利影响,而后应用业务数据(IT 数据)理解不同培修打算在经济方面的优缺点,实现生产资产全景实时监控,以及主动的跟踪和监测参数域优化,如品质、性能、潜在损坏或故障、瓶颈定位等。生产监控数据可用于监控服务质量和服务质量,并加强此聚合数据的后果。 设施预防性保护,升高突发故障带来的损失: 零碎提供的基于状态的保护 (CBM)计划利用实时状态监控来触发企业资产管理系统 (EAM)中的工作流,而这在传统上是由 IT 部门保护的。应用CBM,企业能够防止不必要的培修老本、 缩小复工期和缩短资产生命周期,从而缩小总体资本老本。应用更紧密的统计模型确定故障概率以优化决策反对。 IT&OT多源数据接入,云端业务导向异构数据交融: 跨地区服务治理能力可能撑持企业打造超连贯、超感知、数字化和物联网反对制作的数字生态系统,整合MES(Manufacturing Execution System)、SCADA(Supervisory Control And Data Acquisition)等零碎孤岛数据,降级端到端全景化监控治理能力,提供打算布局、生产优化和集中供应商治理能力。OT经营部门能够通过从 PLC、设施和传感器收集要害 数据来履行其职责,IT 部门则可能提供数据分析以及为数据赋予含意的其余工具。通过采纳全数字化的保护过程,IT/OT 团队能够预测任何特定设施可能产生故障的工夫,并相应地采取行动。 全景资产风险管理,升高资本收入: 笼罩全域工厂、生产线资产集中管理,其中包含生产资产监控、追踪,品质、性能及潜在危险损耗相干参数监督优化。数字化转型可能实现企业资产危险集中、无效,洞察影响生产效率的潜在因素将帮忙企业升高资本收入(CapEx)50%,节俭经营老本(OpEx)30%;面向日常设施运维的实时监测、预防性保护来躲避设施突发危险,从而升高突发故障带来的损失且,并将故障发生率缩小60%左右。 原文链接本文为阿里云原创内容,未经容许不得转载。

December 15, 2021 · 1 min · jiezi

关于云计算:阿里千万实例可观测采集器iLogtail正式开源

简介:11月23日,阿里正式开源可观测数据采集器iLogtail。作为阿里外部可观测数据采集的基础设施,iLogtail承载了阿里巴巴团体、蚂蚁的日志、监控、Trace、事件等多种可观测数据的采集工作。iLogtail运行在服务器、容器、K8s、嵌入式等多种环境,反对采集数百种可观测数据,目前曾经有千万级的装置量,每天采集数十PB的可观测数据,广泛应用于线上监控、问题剖析/定位、经营剖析、平安剖析等多种场景。 作者 | 元乙起源 | 阿里技术公众号 11月23日,阿里正式开源可观测数据采集器iLogtail。作为阿里外部可观测数据采集的基础设施,iLogtail承载了阿里巴巴团体、蚂蚁的日志、监控、Trace、事件等多种可观测数据的采集工作。iLogtail运行在服务器、容器、K8s、嵌入式等多种环境,反对采集数百种可观测数据,目前曾经有千万级的装置量,每天采集数十PB的可观测数据,广泛应用于线上监控、问题剖析/定位、经营剖析、平安剖析等多种场景。 一 iLogtail与可观测性 可观测性并不是一个全新的概念,而是从IT零碎中的监控、问题排查、稳定性建设、经营剖析、BI、平安剖析等逐步演变而来,可观测性相比传统监控,最外围的演进是尽可能多的收集各类可观测数据,来实现目标的白盒化。而iLogtail的外围定位就是可观测数据的采集器,可能尽可能多的采集各类可观测性数据,助力可观测平台打造各种下层的利用场景。 二 阿里可观测数据采集的挑战 对于可观测数据的采集,有很多开源的Agent,例如Logstash、Filebeats、Fluentd、Collectd、Telegraf等。这些Agent的性能十分丰盛,应用这些Agent的组合再进行肯定的扩大,根本能够满足外部各类数据的采集需要。但因为一些性能、稳定性、管控能力等关键性的挑战无奈满足,最终咱们还是抉择自研: 1、资源耗费:目前阿里外部有数百万的主机(物理机/虚拟机/容器),每天会产生几十PB的可观测数据,每1M的内存缩小、每1M/s的性能晋升对于咱们的资源节俭都是微小的,带来的老本节约可能是数百万甚至上千万。目前泛滥开源Agent的设计更多的是并重性能而非性能,基于现有开源Agent革新根本不可行。例如: 开源Agent广泛单核解决性能在2-10M/s左右,而咱们心愿有一个能达到100M/s的性能在采集指标减少、数据量减少、采集提早、服务端异样等状况下,开源Agent内存都会出现爆炸式增长,而咱们心愿即便在各种环境下,内存也能处在较低的水位开源Agent的资源耗费没方法管制,只能通过cgroup强行限度,最终的成果就是一直OOM,一直重启,数据始终采集不上来。而咱们心愿在指定一个CPU、内存、流量等资源限度后,Agent能始终在这个限度范畴内失常工作2、稳定性:稳定性是永恒的话题,数据采集的稳定性,除了保证数据自身采集的准确性外,还须要保障采集的Agent不能影响业务利用,否则带来的影响将是灾难性的。而稳定性建设,除了Agent本身的根底稳定性外,还有很多个性目前开源的Agent还没有提供: Agent自复原:Agent遇到Critical的事件后可能主动复原,并且提供多个维度的自恢复能力,例如过程本身、父子过程、守护过程全局的多维度监控:可能从全局的角度监控各个不同版本、不同采集配置、不同压力、不同地区/网络等属性的Agent的稳定性问题问题隔离:作为Agent,无论怎样呈现问题,都须要尽可能的隔离问题,例如一个Agent上有多个采集配置,一个配置出问题,不能影响其余配置;Agent本身呈现问题,不能影响机器上的利用过程的稳定性回滚能力:版本更新和公布是再所不免的问题,在呈现问题的时候如何疾速回滚,而且保障出问题和回滚期间的数据采集还是at least once甚至是exactly once。3、可管控:可观测数据的利用范畴十分的广,简直所有的业务、运维、BI、平安等部门都会要用,而一台机器上也会产生各种数据,同一台机器产生的数据上也会有多个部门的人要去应用,例如在2018年咱们统计,均匀一台虚拟机上有100多个不同类型的数据须要采集,设计10多个不同部门的人要去应用这些数据。除了这些之外,还会有其余很多企业级的个性须要反对,例如: 配置的远程管理:在大规模场景下,手工登录机器批改配置根本没有可行性,因而须要一套配置的图形化治理、近程存储、主动下发的机制,而且还要可能辨别不同的利用、不同的Region、不同的归属方等信息。同时因为波及到近程配置的动静加卸载,Agent还须要可能保障配置Reload期间数据不丢不重采集配置优先级:当一台机器上有多个采集配置在运行时,如果遇到资源有余的状况,须要辨别每个不同的配置优先级,资源优先供应高优先级的配置,同时还要确保低优先级的配置不被“饿死”降级与恢复能力:在阿里,大促、秒杀是粗茶淡饭,在这种波峰期间,可能有很多不重要的利用被降级,同样对应利用的数据也须要降级,降级后,在凌晨波峰过后,还须要有足够的Burst能力疾速追齐数据数据采集齐全度:监控、数据分析等场景都要求数据准确度,数据精确的前提是都能及时采集到服务端,但如何在计算前确定每台机器、每个文件的数据都采集到了对应的工夫点,须要一套非常复杂的机制去计算 基于以上的背景和挑战下,咱们从2013年开始,一直逐步优化和改良iLogtail来解决性能、稳定性、可管控等问题,并经验了阿里屡次双十一、双十二、春晚红包等我的项目的考验。目前iLogtail反对包含Logs、Traces、Metrics多种类型数据的对立收集,外围的特点次要如下: 反对多种Logs、Traces、Metrics数据采集,尤其对容器、Kubernetes环境反对十分敌对数据采集资源耗费极低,单核采集能力100M/s,相比同类可观测数据采集的Agent性能好5-20倍高稳定性,在阿里巴巴以及数万阿里云客户生产中应用验证,部署量近千万,每天采集数十PB可观测数据反对插件化扩大,可任意裁减数据采集、解决、聚合、发送模块反对配置远程管理,反对以图形化、SDK、K8s Operator等形式进行配置管理,可轻松治理百万台机器的数据采集反对自监控、流量管制、资源管制、被动告警、采集统计等多种高级管控个性三 iLogtail倒退历程秉承着阿里人简略的特点,iLogtail的命名也非常简单,咱们最开始冀望的就是可能有一个对立去Tail日志的工具,所以就叫做Logtail,增加上“i”的起因次要过后应用了inotify的技术,可能让日志采集的提早管制在毫秒级,因而最初叫做iLogtail。从2013年开始研发,iLogtail整个倒退历程概括起来大抵能够分为三个阶段,别离是飞天5K阶段、阿里团体阶段和云原生阶段。 1 飞天5K阶段作为中国云计算畛域的里程碑,2013年8月15日,阿里巴巴团体正式经营服务器规模达到5000(5K)的“飞天”集群,成为中国第一个独立研发领有大规模通用计算平台的公司,也是世界上第一个对外提供5K云计算服务能力的公司。 飞天5K我的项目从2009年开始,从最开始的30台逐步倒退到5000,一直解决系统核心的问题,比如说规模、稳定性、运维、容灾等等。而iLogtail在这一阶段诞生,最开始就是要解决5000台机器的监控、问题剖析、定位的工作(现在的词语叫做“可观测性”)。从30到5000的跃升中,对于可观测问题有着诸多的挑战,包含单机瓶颈、问题复杂度、排查便捷性、治理复杂度等。 在5K阶段,iLogtail实质上解决的是从单机、小规模集群到大规模的运维监控挑战,这一阶段iLogtail次要的特点有: 性能:实时日志、监控采集,日志抓取提早毫秒级性能:单核解决能力10M/s,5000台集群均匀资源占用0.5%CPU核可靠性:主动监听新文件、新文件夹,反对文件轮转,解决网络中断治理:近程Web治理,配置文件主动下发运维:退出团体yum源,运行状态监控,异样主动上报规模:3W+部署规模,上千采集配置项,日10TB数据2 阿里团体阶段iLogtail在阿里云飞天5K我的项目中的利用解决了日志、监控对立收集的问题,而过后阿里巴巴团体、蚂蚁等还短少一套对立、牢靠的日志采集零碎,因而咱们开始推动iLogtail作为团体、蚂蚁的日志采集基础设施。从5K这种绝对独立的我的项目到全团体利用,不是简略复制的问题,而咱们要面对的是更多的部署量、更高的要求以及更多的部门: 百万规模运维问题:此时整个阿里、蚂蚁的物理机、虚拟机超过百万台,咱们心愿只用1/3的人力就能够运维治理百万规模的Logtail更高的稳定性:iLogtail最开始采集的数据次要用于问题排查,团体宽泛的利用场景对于日志可靠性要求越来越高,例如计费计量数据、交易数据,而且还须要满足双十一、双十二等超大数据流量的压力考验。多部门、团队:从服务5K团队到近千个团队,会有不同的团队应用不同的iLogtail,而一个iLogtail也会被多个不同的团队应用,在租户隔离上对iLogtail是一个新的挑战。通过几年工夫和阿里团体、蚂蚁同学的单干打磨,iLogtail在多租户、稳定性等方面获得了十分大的提高,这一阶段iLogtail次要的特点有: 性能:反对更多的日志格局,例如正则、分隔符、JSON等,反对多种日志编码方式,反对数据过滤、脱敏等高级解决性能:极简模式下晋升到单核100M/s,正则、分隔符、JSON等形式20M/s+可靠性:采集可靠性反对Polling、轮转队列程序保障、日志清理爱护、CheckPoint加强;过程可靠性减少Critical自复原、Crash主动上报、多级守护 日志保序采集计划原理(细节可参考《iLogtail技术分享(一) : Polling + Inotify 组合下的日志保序采集计划》) 多租户:反对全流程多租户隔离、多级高下水位队列、采集优先级、配置级/过程级流量管制、长期降级机制 多租户隔离整体流程(细节可参考《iLogtail技术分享(二):多租户隔离技术+双十一实战成果》) 运维:基于团体StarAgent主动装置与守护,异样被动告诉,提供多种问题自查工具规模:百万+部署规模,千级别外部租户,10万+采集配置,日采集PB级数据3 云原生阶段随着阿里所有IT基础设施全面云化,以及iLogtail所属产品SLS(日志服务)正式在阿里云上商业化,iLogtail开始全面拥抱云原生。从阿里外部商业化并对外部各行各业的公司提供服务,对于iLogtail的挑战的重心曾经不是性能和可靠性,而是如何适应云原生(容器化、K8s,适应云上环境)、如何兼容开源协定、如何去解决碎片化需要。这一阶段是iLogtail倒退最快的期间,经验了十分多重要的改革: 对立版本:iLogtail最开始的版本还是基于GCC4.1.2编译,代码还依赖飞天基座,为了能实用更多的环境,iLogtail进行了全版本的重构,基于一套代码实现Windows/Linux、X86/Arm、服务器/嵌入式等多种环境的编译发版全面反对容器化、K8s:除了反对容器、K8s环境的日志、监控采集外,对于配置管理也进行了降级,反对通过Operator的形式进行扩大,只须要配置一个AliyunLogConfig的K8s自定义资源就能够实现日志、监控的采集 iLogtail Kubernetes日志采集原理(细节可参考《Kubernetes日志采集原理分析》) 插件化扩大:iLogtail减少插件零碎,可自在扩大Input、Processor、Aggregator、Flusher插件用以实现各类自定义的性能 iLogtail插件零碎整体流程(细节可参考《iLogtail插件零碎简介》) 规模:千万部署规模,数万内外部客户,百万+采集配置项,日采集数十PB数据 四 开源背景与期待闭源自建的软件永远无奈紧跟时代潮流,尤其在当今云原生的时代,咱们深信开源才是iLogtail最优的倒退策略,也是开释其最大价值的办法。iLogtail作为可观测畛域最根底的软件,咱们将之开源,也心愿可能和开源社区一起共建,继续优化,争取成为世界一流的可观测数据采集器。对于将来iLogail的倒退,咱们期待: iLogtail在性能和资源占用上相比其余开源采集软件具备肯定劣势,相比开源软件,在千万部署规模、日数十PB数据的规模性下为咱们缩小了100TB的内存和每年1亿的CPU核小时数。咱们也心愿这款采集软件能够为更多的企业带来资源效率的晋升,实现可观测数据采集的“共同富裕”。目前iLogtail还只是在阿里外部以及很小一部分云上企业(尽管有几万家,然而面对寰球千万的企业,这个数字还很小),面对的场景绝对还较少,咱们心愿有更多不同行业、不同特色的公司能够应用iLogtail并对其提出更多的数据源、解决、输入指标的需要,丰盛iLogtail反对的上下游生态。性能、稳定性是iLogtail的最根本谋求,咱们也心愿可能通过开源社区,吸引更多优良的开发者,一起共建iLogtail,继续晋升这款可观测数据采集器的性能和稳定性。原文链接本文为阿里云原创内容,未经容许不得转载。

December 14, 2021 · 1 min · jiezi

关于云计算:OPPO云VPC网络实践

1 OPPO 云网络现状随着OPPO业务的疾速倒退,OPPO云规模增长迅速。大规模虚构实例的弹性伸缩、低延时需要对网络提出了诸多挑战。原有基于VLAN搭建的公有网络无奈解决这些问题,给网络运维和业务的疾速上线带来了挑战。 梳理存在的次要问题如下: 网络不足集中的控制系统,业务开明以手工配置为主,主动开明能力简直没有,为前期保护、降级埋下隐患。虚构网络和物理网络耦合严密,没有做到业务拆散。虚构网络的MAC或者路由会传递到物理设施上,对物理设施的二、三层表项的容量提出了很高的要求。虚构实例大规模扩容后可能会使硬件设施上的路由表项耗尽,导致业务无奈应用。虚构网络不足安全策略,已有的安全策略不能很好的管控虚构网络之间的互访互通,网络访问控制机制不健全。虚构网卡带宽无奈反对高性能业务。网络的虚构网卡只反对veth/tap设施,网络带宽不高,满足不了网络数据密集型业务的需要。虚构网络系统没有实现管制和转发拆散,管制面故障或者降级会影响业务。2 虚构网络选型剖析上述问题的根本原因之后,决定抉择目前业界支流的SDN网络技术来解决上述网络隔离和运维自动化能力有余的问题,抉择智能网卡OFFLOAD性能来实现虚构实例的网络减速,选用虚构公有云(VPC)技术来治理不同用户的业务网络、进步零碎的健壮性、安全性。 SDN的数据面采纳开源的OVS来实现,次要起因是OVS曾经在数据中心中大规模利用,其转发性能、稳定性和安全性曾经失去实践证明,其保护老本也绝对升高。 VPC 控制器、VPC 网络接口(CNI)插件、VPC网关、VPC 负载平衡(Load Balance)决定采纳自研的形式实现,尽管社区曾经有相似的计划(Neutron/OpenDaylight),然而这些我的项目都比臃肿,侧重于电信业务场景,保护老本较高,不能间接利用于数据中心互联网业务场景,并且和已有的平台零碎,集成开发工作也比拟多。而自研也有很多长处,比方新性能开发疾速不在依赖社区、定制开发不便、轻量化、性能高、稳定性强。 3 VPC网络计划整个VPC网络系统架构如下图所示。VPC控制台提供对立业务入口和便捷的界面操作,业务操作可视化,要害数据存于数据库中,便于保护和应用。 VPC SERVER 是整个零碎的核心,对云平台提供高效,简洁的业务接口。是整个零碎的音讯转发枢纽。 FlowEngine 是位于计算节点的OVS 控制器,它采纳规定推理的形式计算流表,批示OVS如何转发业务报文。FlowEngine与VPC Server一起称作网络的地方中枢。 VPC CNI Agent负责计算节点网卡资源的治理和调配,同时对云平台提供了创立、删除等业务接口。它采纳智能网卡虚拟化(SR-IOV)技术实现虚构实例的网络减速。 VPC网关分为东西向的分布式网关和南北向的集中网关,提供不同子网的通信,解决了集中网关的单点故障问题。南北向的集中网关反对VXLAN隧道,实现虚构网络和物理网络的互通,并且反对横向扩大和DPDK减速技术。 VPC LB实现四层负载平衡,对外提供业务的高可用计划。 3.1 VPC网络类型以后VPC网络反对租户网络、公共网络和弹性IP网络。租户网络中虚构实例之间能够相互拜访,只能通过VPC 网关拜访内部网络,虚构实例的IP地址不会公布进来,因此不能被内部主机拜访。只有绑定上弹性IP才能够对外间接提供服务,这种网络特地适宜于开发测试环境向生产环境的切换,有利于业务的疾速公布。 租户网络也能够借助LB网关,公布虚构IP(VIP)路由,对外提供业务。 公共网络相似于传统的VLAN网络,它的网段会被VPC网关公布到上联设施上,间接能够和IDC网络互通。不便部署根底虚构云平台的监控服务以及公共服务。 3.2 租户隔离的隧道VXLANVPC 网络的类型为VXLAN隧道,每个子网调配惟一的VXLAN隧道ID,同平安组技术一起应用保障不同用户网络的齐全隔离,解决了业务上云的平安危险。 OVS的数据面转发由本地控制器来管制,控制器故障不会影响其余节点的通信和已有隧道业务流的转发。 采纳智能网卡的VXLAN 卸载性能,不会因为VXLAN的性能损耗影响业务转发,同时节俭了主机的CPU资源。 3.3 VPC 隧道封装阐明3.3.1 VXLAN隧道隔离VPC网络反对虚拟机和容器位于同一个二层网络,从网络角度看,他们都在同一个VPC子网内。不同节点虚构实例互访,须要借助VXLAN隧道实现。同子网虚构实例通信,报文的VXLAN ID是本子网的ID,异子网虚构实例通信,报文的VXLAN ID是目标子网的ID。 虚构实例拜访VPC内部网络须要借助VPC网关,VPC网关采纳软件实现,通过DPDK和高速网卡减速,运行在X86服务器上即可。以后也反对第三方VPC网关,VPC网关能够通过HTTP API或者BGP-EVPN接口与VPC SERVER 交互VXLAN的路由信息。 3.3.2 VPC 负载平衡VPC 负载平衡采纳全NAT形式实现,报文封装在VXLAN报文中进行转发。路由和隧道信息由VPC SERVER同步给LB控制器,LB 控制器负责将路由信息更新到对应的网元。 从上图能够分明的看出报文的交互计划,LB网元会放弃业务的会话session,反对轮巡、最小负载优先等调度算法。反对一致性哈希算法,无缝迁徙业务性能。 LB网元采纳DPDK和高速网卡实现,报文转发速率(PPS)能够达到800万以上 ,会话数目能够达到10万以上,时延小于1ms。满足互联网及IOT场景高并发业务要求。 3.4 VPC性能指标VPC 虚构实例透传VF网卡后,转发性能能够到 25000Gbit/s。PktGen 测试报文转发速率(PPS) 能够达到2400万,带宽能够达到25Gbps。带宽和PPS都能够达到虚构的tap设施的两倍以上,同时升高了网络转发的CPU使用率。 VPC租户隔离的个性很好的解决多个租户内百万虚构实例的疾速互访问题。单实例和LB性能的进步了解决了现网中百万节点数据计算的带宽瓶颈。大大提高了零碎的业务承载能力。VPC网络技术赋能AI和大数据计算平台。 4 收益与瞻望上线运行后,VPC架构简化了网络架构,进步了网络的安全性、进步了零碎的业务承载能力及运维效率,为用户带去良好的体验并失去客户的统一赞叹。 ...

December 14, 2021 · 1 min · jiezi