5人5月用容器技术保卫蓝天

摘要:让我们走进四川国蓝中天与华为云的合作案例,一起看看容器技术是如何保卫蓝天的。

本文分享自华为云社区《锚定云原生发展!华为云DTSE助力国蓝中天破解容器难题》,作者: 华为云赋能云团队 四川鲲鹏&欧拉生态创新中心 。

“一旦发现区域内的污染源,就会精准锁定、自动派单、闭环监管。”在成都经开区大气智能大数据监管中心里,由192块55英寸LCD屏组成的指挥大屏上滚动显示着上百个实时传回的画面。

在先进人工智能算法加持下,目前中心已经实现了对成都经开区进行千米级和小时级的全时、全域、全面的城市空气质量推断和预测,极大提升了政府大气监测能力,为大气治理提供了有力手段。

其背后,四川国蓝中天环境科技集团有限公司功不可没。作为一家深耕数据科学与人工智能的环境综合管治一站式解决方案服务商,国蓝中天开发的Alpha生态大脑系列核心产品,在人工智能算法的加持下,基于“固定+移动”双网监测,结合城市地理、工商等基础数据以及气象、交通、企业排放等动态数据,实现全面域网格化污染演算、污染溯源等,用自主开发的核心技术构建起了绿色智能城市管理新生态。

“自建容器”痛点初显

蓝天保卫岂能被“容器”管理拖累

考虑项目的规模,通过容器与弹性化服务编排构建服务运行环境成为国蓝中天的最佳解决方案。然而,随着Alpha生态大脑不断学习进化,业务服务不断扩大,计算节点的不断增多,最初的自建容器管理方案在日常运维中存在一定的运维压力。

一方面企业现有的自建容器需要配置专人管理,影响了企业日常运维效率,也为突发状况下应用运行的安全性、可靠性等埋下一定隐患。

另一方面,企业自建容器和其他组件服务动态扩缩容能力较差。当遭遇业务高峰时,可能由于集群中没有足够多的节点来调度新扩容的Pod,而导致需要为紧急集群增加节点,这对于企业来说意味着更僵化的调度能力和更高昂的经济、时间成本。

在综合比较后,考虑业务更好的发展,进一步降低运维成本、压力与风险,国蓝中天便携手华为云就企业的服务运行方案进行了分析与升级改造。过程中,一支由开发者技术服务DTSE (Developer Technical Service Engineer)构成的5人工程师小组进驻到国蓝中天。

5月光阴磨利器

华为云方案为保卫蓝天出力

最终历时5个月,华为云四川代表处DTSE针对国蓝中天当前的技术方案进行分析,采用华为云平台的IaaS、云容器引擎 CCE及MapReduce等底层平台能力构建起云原生时代的容器部署体系,建设成效得到了国蓝中天的好评。

与自建容器不同,华为云“云容器引擎CCE”能够提供高可靠、高性能的企业容器应用管理服务,支持Kubernetes社区原生应用和工具,帮助企业简化云上自动化容器运行环境的搭建。其面向云原生2.0打造的CEE Turbo更支持对容器集群、计算、网络、调度的全面加速,为开发者发力云原生时代提供了更为成熟、便捷、好用的技术方案。

目前,国蓝中天已在业务运行中成功使用华为云“CCE+MRS”方案替代自建服务,项目运维成本降低50%。该方案深度结合华为云开放能力,轻松实现容器部署弹性扩缩,可根据用户的业务需求和预设策略,自动调整计算资源,使云服务器或容器数量自动随业务负载增长而增加,随业务负载降低而减少,保证业务平稳健康运行。

与此同时,华为云DTSE更联合国蓝中天基于新的容器部署方案对整体框架进行优化升级,引入华为云“云数据库RDS”和“GaussDB ”等一系列组件,有效提升系统运营稳定性,规避业务暴增带来的系统宕机风险,提升系统的运行稳定性和可靠性,为国蓝中天业务发展增添了一份保障。

其实,打赢蓝天保卫战的过程中,国蓝中天不仅仅是在容器技术上与华为云展开合作。鲲鹏硬件基座、openEuler操作系统、华为云的MRS存算分离等方案,都正在国蓝中天大气治理平台建设和业务全栈优化方面发挥作用。

而华为云DTSE将用自身专业知识躬身开发者服务,为企业提供更全面、更贴身、更多维度的技术支持,与万千开发者一起创造驱动时代发展的技术洪流,创造更多数字价值。不仅仅是支持国蓝中天自主技术改造、保护每一座城市的碧水蓝天单一领域;更创造席卷千行百业的数字创新浪潮,让数字技术为生活每一处细节带来嬗变。

如需华为云DTSE开发者支持服务,请进入在线提单:http://support.developer.huaweicloud.com/feedback/

 

点击关注,第一时间了解华为云新鲜技术~

本文转载于网络 如有侵权请联系删除

相关文章

  • 植被归一化指数

    显示遥感图像真彩色显示321标准假彩色演示432存储方案转换Roi裁剪裁剪结果波段叠加首先打开软件,把下载的河南省驻马店市部分地区遥感影像各波段添加到ENVI软件中点击“BasicTools”—“LayerStacking”,这时就打开了波段合成窗口然后点击“Importfile”,打开波段输入窗口。我们从中可以选择输入波段选择输出路径打开文件boduan.dat,图像显示正常,任务一完成任务二文件,saveas选择输入文件具体参数设置如下结果如下,图像显示正常波段运算以计算归一化差值植被指数NDVI为例。还是打开ENVI自带的can_tmr.img首先标准价彩色合成432(标准假彩色下植被呈现红色)Bandemath计算吗ndvi定义式推导IDL运算表达式是(b1-b2)/(b1+b2)因为NDVI计算的结果在[-1,1],如果不先变为浮点型,则结果只有-1,0和1三种类型,无法进一步判断植被状况。因此要先将结果变为浮点型。(float(b1)-b2)/(b1+b2)避免分母结果为0(float(b1)-b2)/(b1+b2+0.0001)在Enteranexpression处写入函

  • php网页延迟跳转至指定的网址

    目的/效果当一个ip(用户)第一次访问网站时延时跳转至a.com,如果这个ip再次访问这个页面,延时跳转b.com。a.com,b.com和用户访问次数写入到数据库里,从数据库里获取第几次访问来返回应该跳转的URL最后,这个ip跳转过数据库最后一条url后,就让他访问另外设置的一个默认url简单的三个文件url.php<?php header('Content-Type:text/xml'); header("Cache-Control:no-cache,must-revalidate"); //数据库信息 $server="localhost"; $username="name"; $password="pass"; $db="ipurl"; //创建连接 $conn=mysqli_connect($server,$username,$password,$db); //检测连接 if(!$conn){ die("Connectionfailed:

  • 带你快速掌握Scala操作———(5)

    文章目录:1、类型判断2、getClass和classOf3、抽象类抽象方法4、抽象字段5、匿名内部类6、特质(trait)7、trait作为接口使用示例|继承单个trait示例|继承多个trait示例|object继承trait8、特质|定义具体的方法9、trait中定义具体的字段和抽象的字段10、使用trait实现模板模式11、对象混入trait12、trait实现调用链模式责任链模式trait调用链1、类型判断有时候,我们设计的程序,要根据变量的类型来执行对应的逻辑。复制在scala中,如何来进行类型判断呢?有两种方式:  isInstanceOf  getClass/classOf isInstanceOf/asInstanceOf 在Java中,可以使用instanceof关键字来判断类型、以及(类型)object来进行类型转换,在scala中如何实现? scala中对象提供isInstanceOf和asInstanceOf方法。  isInstanceOf判断对象是否为指定类的对象  asInstanceOf将对象转换为指定类型复制用法//判断对象是否为指定类型 v

  • C++:19---this指针

    一、this指针介绍概念:this指针是成员函数的一个隐式参数,在类中本质上就是对象的指针(常量指针)特点:在成员函数中可通过this指针区别成员变量与形参变量this可以显式调用示例代码:classCperson { private: intage; floatheight; public: voidInitPerson(intage,floatheight); }; voidCperson::InitPerson(intage,floatheight) { this->age=age; this->height=height; }复制二、返回*this成员函数概念:返回值是*this,也就是返回调用此成员函数的对象的自身引用,返回值类型为对象引用类型classPerson { private: intage; public: Person&setAge(intage);//返回自身引用 }; Person&Person::setAge(intage) { this->age=age; return*this;//返回*this(自身引用) }复制从

  • 浏览器中的JavaScript核心BOM(浏览器对象模型)重点掌握对象之Location对象的属性与方法

    浏览器中内置对象Location详解引言正文一、Location对象的作用二、Location对象的引用三、Location对象的属性四、Location对象的方法结束语引言在学过JavaScript之后,我们都知道对象分为内置对象、宿主对象、自定义对象,我们经常用到的浏览器中的内置对象就是宿主对象的一种,浏览器的内置对象有很多,本文就来详细讲解一下Location对象的属性与方法吧。公众号:前端印象不定时有送书活动,记得关注~关注后回复对应文字领取:【面试题】、【前端必看电子书】、【数据结构与算法完整代码】、【前端技术交流群】正文因为把浏览器的所有内置对象逐个详细讲解,文章篇幅会很长,所以我把每个对象的讲解都放在不同的文章中,大家如果还想了解其他的浏览器内置对象,可以划到文章最后一部分,那里有跳转链接。一、Location对象的作用Location对象包含着关于当前网页的URL信息,并且可以对URL进行拆分、读写等各种操作。二、Location对象的引用我们可以通过浏览器的全局对象window来引用Location,像这样window.location,也可以直接通过location

  • Java 并发编程:多线程如何实现阻塞与唤醒

    线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达到很大的数量级时,并发可能带来很多隐蔽的问题。如何正确暂停一个线程,暂停后又如何在一个要求的时间点恢复,这些都需要仔细考虑的细节。Java为我们提供了多种API来对线程进行阻塞和唤醒操作,比如suspend与resume、sleep、wait与notify以及park与unpark等等。睡眠控制线程阻塞与唤醒的最简单方式就是sleep了,Java通过sleep(n)方法能让线程进入到阻塞等待状态,直到休眠时间达到指定值后自动唤醒。该方法简单也常用,但这种方式比较死板,需要我们预先确定线程进入阻塞的时间。而有些场景实际上我们根本没办法确定睡眠时间,这是sleep方式的最大劣势。sleep的使用很简单,下面为一个例子。让当前线程睡眠2000ms,最终输出为"Sleeptimeinms=2000"。挂起与恢复在Java发展史上曾经使用suspend()、resume()方法对于线程进行阻塞唤醒,它能够在代码中控制阻塞和唤醒的时间节点,比起sleep()方法更加灵活。比如线程启动后在某个时间点需要让它挂起,这可以使

  • vim安装

    环境准备请先安装CentOS(CommunityEnterpriseOperatingSystem:社区企业操作系统),最好是最新版开发工具包安装[centos@localhost~]$sudoyumgroupinstall'DevelopmentTools'复制必要编译链接库安装[centos@localhost~]$sudoyuminstallpython-develpython3-devellua-develruby-devellibX11-develgtk-develgtk2-develgtk3-develncurses-devel [centos@localhost~]$yumsearchperl|grepExtUtils [centos@localhost~]$sudoyuminstallperl-ExtUtils-Embed复制准备vim[centos@localhost~]$cd/usr/local/src [centos@localhostsrc]$sudogitclonehttps://github.com/vim/vim.git复制

  • Java线程池的四种用法与使用场景

    一、如下方式存在的问题newThread(){ @Override publicvoidrun(){ //业务逻辑 } }.start(); 复制1、首先频繁的创建、销毁对象是一个很消耗性能的事情;2、如果用户量比较大,导致占用过多的资源,可能会导致我们的服务由于资源不足而宕机;3、综上所述,在实际的开发中,这种操作其实是不可取的一种方式。二、使用线程池有什么优点1、线程池中线程的使用率提升,减少对象的创建、销毁;2、线程池可以控制线程数,有效的提升服务器的使用资源,避免由于资源不足而发生宕机等问题;三、线程池的四种使用方式1、newCachedThreadPool创建一个线程池,如果线程池中的线程数量过大,它可以有效的回收多余的线程,如果线程数不足,那么它可以创建新的线程。publicstaticvoidmethod()throwsException{ ExecutorServiceexecutor=Executors.newCachedThreadPool(); for(inti=0;i<5;i++){ finalintindex=i; Thread.sleep(10

  • Hyperledger Fabric Node.js开发中如何使用日志

    HyperledgerFabricNode.js开发中如何使用日志?本教程就来演示下如何使用hyperledgefabricnode.js客户端日志记录功能。概述hyperledgerfabricnode.js客户端日志记录使用node.jswinston开发包。当node.js应用程序首次加载hyperledger结构包时,日志记录被初始化。所有HyperledgeFabric客户端对象都将使用相同的设置(peer、orderer、ChannelEventHub)。const Client = require('fabric-client'); // the logging is now set复制有四个级别的日志记录:info,信息。warn,警告。error,错误。debug,调试。默认情况下,info、warn和error条目将发送到控制台console,不会记录debug。如何更改日志记录HyperledgeFabric客户端的日志记录由配置设置hfc-logging和环境设置HFC_LOGGING控制。将default.json配置文件中的日志设置改为一

  • LinQ To Objects 高级查询方法

     什么是LinQToObjects? 用一个例子解释,首先定义一个数组,查询数组中的最大值:int[]arr={123,2,3,45,654,2324,897,56,6554,4,3,6,8,434};复制   旧的方法:intmax=0; foreach(intainarr) { if(a>=max) max=a; } Console.Write("最大值:"+max);复制   LinQToObjects方法:Console.WriteLine("arr的最大值:"+arr.Max());复制   由此可以看出,LinQToObjects是一种新的处理集合的方法,相对于旧方法中必须编写指定如何从集合检索数据的复杂的foreach循环,而LinQ方法只需要编写描述要检索的内容的声明性代码。LinQToObjects高级查询方法<spanstyle="font-size:18px;">//LinQToObjects查询高级方法 //数组数据persons int[]arr={123,2,3,45,654,23

  • Mac下Python和Pycharm之virtualenv

    一、python如何配置virtualenv1.安装virtualenv pip3installvirtualenv pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplevirtualenv pip3install--upgradepip 2.创建目录 mkdirMyproject cdMyproject 3.创建独立运行环境-命名 virtualenv--no-site-packagesvenv#得到独立第三方包的环境 4.进入虚拟环境 sourcevenv/bin/activate#此时进入虚拟环境(venv)Myproject 5.安装第三方包 (venv)Myproject:pipinstalldjango==1.9.8 #此时pip的包都会安装到venv环境下,venv是针对Myproject创建的 6.退出venv环境 deactivate命令 7. virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令sourcevenv/bin

  • 快讯 | macOS的快速浏览缓存可能会泄露加密数据

    macOS的快速浏览机制允许用户在不需要实际打开文件的情况下查看文件的内容,但研究人员WojciechReguła表示,这个功能很可能泄露缓存文件的信息,即使文件存储在加密驱动器或文件已被删除也无法保证数据的安全。根据苹果提供的信息,快速浏览功能允许类似Finder和Mail之类的App显示文件内容的缩略图,甚至还可以直接查看Keynote、Numbers、Pages、PDF文档、图片以及其他类型文件的完整内容。快速浏览功能是以com.apple.quicklook注册的,而其中的ThumbnailsAgentXPC服务能够创建缩略图数据库并将其存储在/var/folders/…/C/com.apple.QuickLook.thumbnailcache/目录之中。而现在的问题就在于,无论文件夹存储在内部驱动器还是外部驱动器中,这个服务都会对可访问文件夹内所有支持的文件创建缩略图,而且这个功能同样适用于macOS中HFS+/APFS加密驱动器。因此,根据用户所安装的快速浏览插件,com.apple.QuickLook.thumbnailcache/目录中所存储的SQLite数据库文件将包

  • EM算法学习(二)

    在上一篇文章中,当我们得到收敛的结果以后,就需要对收敛的速度捷星一个解释,下面可以考虑该方法的收敛阶数.可以看出,EM算法其实本质上是定义了一个映射:当EM算法开始收敛时,如果收敛到映射的一个不动点,那么就可以认为设上边函数的一阶导数为一个Jacobi矩阵,其(i,j)元素为由公式可以得到下边的式子:对公式进行Taylor展开得到:根据其收敛特性可以知道,如果p=1,EM算法是线性收敛的,当p>1,如果观测的结果信息为正定的,那么收敛仍然可以认为是线性的.EM收敛的收敛率可以定义为:迭代算法的收敛率p是等于矩阵导数的最大特征根,Jacobi矩阵表示的是信息缺失的比例,所以p是一个可以有效的表示缺失信息的一个比例的标量,缺失信息的比例其实就是单位矩阵I减去已经观测到的信息占完全信息的比例,其实就是:EM算法的收敛速度与缺失信息比例这个量是紧密相关的,缺失信息比率其实就是EM算法中的映射的斜率,由这个斜率来控制EM的收敛的速度.缺失信息比率的最大特征值称为全局收敛率,但是p越大收敛速度是越慢的,所以定义了一个矩阵S=I-缺失信息比率为加速矩阵,s=1-p称为全局加速,当缺失信息比例较

  • VirtualBox 常用配置

    本文列举了VirtualBox常用配置。压缩虚拟磁盘体积碎片整理$sudoddif=/dev/zeroof=/EMPTYbs=1M $sudorm-f/EMPTY复制压缩磁盘关闭虚拟机,现在可以开始压缩虚拟硬盘了$VBoxManagemodifyhd****.vdi--compact复制改UUID$VBoxManageinternalcommandssethduuid****.vid#虚拟磁盘文件复制

  • 镭沃引领精密激光锡球焊接技术变革

    深圳市镭沃自动化科技有限公司(以下简称“镭沃”)成立于2014年,公司秉承“稳健务实、追求卓越”的经营理念,在激光加工自动化装备领域深耕近10年,一直致力于激光锡球焊接技术的突破和产业化应用,是一家集研发、设计、生产、销售和服务为一体的精密激光加工及自动化设备整体解决方案提供商。成为全球最佳智能激光解决方案提供商,是镭沃的企业发展远景。公司基于战略目标,导入了现代化的管理体系,通过了ISO9001:2015质量管理体系认证,制定并贯彻落实公司创新发展战略,每年持续加大研发投入。围绕公司核心产品,公司目前已拥有众多自主核心知识产权,且成为深圳市专精特新中小企业及国家高新技术企业。镭沃为国内首家自主开发精密激光锡球焊接自动化成套设备及产线的服务商,同时也是全球首家研发和制造全自动锡球焊接、检测及点胶一体化设备的供应商,核心产品具备“高焊接精度、高效能、非接触式、绿色无污染”等产品特性。为满足客户多样化、新工艺、新技术和质量不断提升的需求,镭沃构建SMART服务价值体系高质量服务于客户,并通过“市场分析验证——技术要求评审——满意性设计生产——客户使用反馈”,形成批量精密激光锡球焊接自动化成

  • Prometheus基于EC2的服务发现

    创建AWS用户获取AK/SK 此用户可以通过AK/SK访问AWS,且具有ec2:DescribeInstances权限 配置基于EC2服务发现 因为AWS跨区内网调用会收流量费用,为节省费用,我在每个区部署了一个Prometheus实例,所以比如B区的机器,我会加上service_type:node_exporter_b_zone的tag,这样的话就会自动拉取拥有service_type:node_exporter_b_zone这个tag的机器数据,当然前提是机器上安装了node_exporter这个组件 -job_name:'ec2-b-zone' ec2_sd_configs: -access_key:创建的id secret_key:创建的key region:us-west-1#ec2运行的region relabel_configs: -source_labels:[__meta_ec2_private_ip] regex:'(.*)' replacement:'${1}:9100' target_label:__address__ -source_labels:[__m

  • iOS设置TextField的placeholder的颜色,位置,字体,光标颜色

    转载自:Z了个Y  简书   一.设置placeholder的颜色字体 1.iOS6.0之后苹果提供了attributedPlaceholder属性可以设置 UITextField*textField=[[UITextFieldalloc]initWithFrame:CGRectMake(50,300,200,35)]; textField.borderStyle=UITextBorderStyleRoundedRect; NSString*holderText=@"这个是placeholder"; NSMutableAttributedString*placeholder=[[NSMutableAttributedStringalloc]initWithString:holderText]; [placeholderaddAttribute:NSForegroundColorAttributeName value:[UIColorgreenColor] range:NSMakeRange(0,holderText.length)]; [placehold

  • vue-cli3按需引入element

    这里只介绍一点最简单的用法

  • serial中python通信

    1、需要导入pyserial的模块 Python2.7 脚本如下: #!/usr/bin/envpython #-*-coding:utf-8-*- importsys importtime reload(sys); sys.setdefaultencoding("utf-8") importserial #导入串口模块 importthreading importtime importserial ser=serial.Serial("COM3",115200) send=ser.write("\n") send=ser.write("\n") time.sleep(2) send=ser.write("root") send=ser.write("\n") printser.portstr printsend time.sleep(2) send=ser.write("nE7jA%5m") send=ser.write("\n") printsend time.sleep(2) send=ser.write("export") send=ser.write("\n")

  • 更好用的侧边栏工具-----better-sidebar

      可能是我眼界较小,没有在市面上见过类似的侧边栏工具,所以想封装一个这样的组件。也是受我们官网的启发,效果如下: 封装思路 由两个组件组成,父组件用来包裹,子组件用来放具体内容(受element-ui组件库的时间线的启发) 支持位置自定义,返回顶部按钮可选 子组件better-sidebar-item可以自定义图标,标题,弹层,跳转链接 弹层内容通过插槽引入 最终效果 目前就能想到这么些东西,封装难度并不大,下面是使用说明: 文档地址 地址 better-sidebar(侧边栏工具) 下载依赖 npmibetter-sidebar--save 复制 引用 importVuefrom"vue"; importBetterSidebarfrom"better-sidebar"; import"better-sidebar/dist/lib/better-sidebar.css"; Vue.use(BetterSidebar); 复制 better-sidebar组件介绍 属性 类型 可选值 默认值 描述 top number - 100 侧边栏距离浏览器顶

  • HDU 5861 Road (线段树)

    Road 题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5861 Description Therearenvillagesalongahighway,anddividedthehighwayinton-1segments.Eachsegmentwouldchargeacertainamountofmoneyforbeingopenforoneday,andyoucanopenorcloseanarbitrarysegmentinanarbitraryday,butyoucanopenorclosethesegmentforjustonetime,becausetheworkerswouldbeangryifyoutoldthemtoworkmultipleperiod. Weknowthetransportplaninthenextmdays,eachdaythereisonecargoneedtotransportfromvillageaitovillagebi,andyouneedtoguaranteethatthe

相关推荐

推荐阅读