关于images:buildctl

一. buildctl因为应用containerd,而 ctr 没有构建镜像的性能,应用 buildkit 可代替参考一 buildkit装置https://github.com/moby/buildkit/releasescp buildkitd /usr/local/bin/cp buildctl /usr/local/bin/# 须要启动 buildkitd ,故作为system启动vim /lib/systemd/system/buildkitd.service[Unit]Description=/usr/local/bin/buildkitdConditionPathExists=/usr/local/bin/buildkitdAfter=containerd.service[Service]Type=simpleExecStart=/usr/local/bin/buildkitdUser=rootRestart=on-failureRestartSec=1500ms[Install]WantedBy=multi-user.target# 能够选多种 type 类型buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. -output type=docker,name=sughoot:v1beta2 | docker loadbuildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. -output type=image,name=sughoot:v1beta2,push=truebuildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. -output type=tar,name=sughoot:v1beta2,dest=out.tar

September 22, 2023 · 1 min · jiezi

web端ES绘图之image2D

作者:心叶时间:2019-05-29 22:31 一.简介首先,让我们来了解一个这个库主要解决的问题是什么,如何使用以及问题反馈等基本信息。 1.1 关注的问题本库致力于提供更简单的Web端二维绘图接口,主要包括这些方面:画笔、辅助计算、结点操作和一些零碎的小工具方法。我们希望绘图是简单而有趣的、高效而愉悦的! 主要是在svg和canvas2D上绘图,虽然有提供比如Maritx4坐标变换等三维相关方法,这是考虑到一些潜在的需求。 1.2 如何使用如果你开发的是一个web项目,直接在页面引入打包后的文件后即可(在代码中通过image2D或$$调用): <script src="./build/image2D.min.js" type="text/javascript"></script>如果你想通过npm方式管理,首先你需要通过命令行安装image2D,就像这样: npm install --save image2d安装好了以后,在需要的地方引入即可: import $$ from 'image2d';1.3 获取帮助在使用image2D的时候,如果遇到任何疑惑或问题,包括建议或对未来版本的想法,请先在 Github issue 上查找是否存在相似内容,然后进行补充或追问,当然也可以增加新的话题进行交流,除非特殊情况,你会在48小时内获得 作者 回复。 二.结点操作为了绘图的方便,我们提供了最基本的结点相关操作。因为这些操作是为了绘图而开发的,可能和纯粹的结点操作方法在设计上有所不同,请知悉。 2.1 结点对象所有的结点操作都是由结点对象提供的,因此,我们首先来看看如何创建一个结点对象: var imageObject=$$(selector[, context]);如上所示,通过执行$$或image2D方法即可获取一个结点对象,我们可以传递二个参数来确定当前结点对象维护的结点是哪些。 结点对象维护了一些结点,调用结点对象上的方法,就是对维护的这些结点进行操作。 第一个参数selector(称为选择器)是必须的,用以确定当前维护的结点是哪些。 第二个参数context是可选的,默认选择器在全局查找,你也可以通过传递一个dom结点指定查找上下文(id选择器会忽略此参数直接在全局查找)。 选择器 任何合法的选择器都应该是下列中的某一种: 模板字符串,比如'<g>'、'<canvas>非常抱歉,您的浏览器不支持canvas!</canvas>'等。ID选择器,比如'#demo'会选中id是'demo'的第一个标签。class和标签选择器,比如'.cls'、'div'、'div.cls'和'g.info.warn'等。全部选择器,也就是字符串'*',会选中全部结点。非查询选择器,包括:结点,结点数组和结点对象。这类选择器不会进行查找,直接把传递的结点作为维护结点,因此也会忽略查找上下文。筛选函数,传递一个函数,函数形参是当前面对的结点,通过返回true或false来判断是否把当前面对的结点加入结点对象中。创建好了结点对象以后,后续依旧可以对维护的结点进行筛选后获取新的结点对象: var new_imageObject=imageObject.filter(filterback);返回新的结点对象,不会修改原来的结点对象。其中filterback叫做筛选函数,有二个形参,分别是当前面对结点序号和维护了当前面对结点的结点对象,通过返回true或false来判断是否把当前面对的结点加入新创建的结点对象中。 2.2 编辑把当前维护的结点加到目标结点内部的结尾: imageObject.appendTo(target[, context]);target是一个合法的选择器即可,context是一个结点,表示目标结点查找上下文,可选,默认全局查找,下同。 把当前维护的结点加到目标结点内部的开头: imageObject.prependTo(target[, context]);把当前维护的结点加到目标结点之后: imageObject.afterTo(target[, context]);把当前维护的结点加到目标结点之前: imageObject.beforeTo(target[, context]);从页面中删除当前维护的结点: imageObject.remove();设置或获取结点中的文本: imageObject.text([content]);2.3 样式和属性修改或获取结点样式: imageObject.css();通过不同的参数来确定是获取样式还是设置样式,具体有下列参数选项可选: (key):获取指定样式。(key,value):设置指定样式。():获取全部样式。(json):设置大量样式。设置或获取结点属性: imageObject.attr();和样式css方法类似,也是通过具体参数来确定是获取还是设置样式: (attr):获取属性。(attr,value):设置指定属性值。(json):设置大量属性。2.4 事件相关给维护的结点绑定事件: imageObject.bind(eventType, callback);获取鼠标相对当前维护的元素左上角位置: imageObject.position(event);2.5 数据绑定绘图就离不开数据,把数据和结点关联起来,会简化结点管理和数据保存问题,这里涉及四个核心方法:data、datum、enter和exit,还有一些相关方法(因为结点对象的各个方法之间不完全是独立的)。 把数据绑定到一组结点或返回第一个结点数据: imageObject.datum();通过具体的参数来判断是获取还是绑定,有下列参数选项可选: ():不带任何参数表示获取数据。(data):带一个参数表示设置结点对象维护的全部结点数据为data。(data, calcback):和带一个参数类似,只不过绑定的数据是经过calcback函数重新计算后返回的值,该函数有二个形参:data和index。把一组数据绑定到一组结点或返回一组结点数据: ...

May 29, 2019 · 2 min · jiezi

阿里研究院入选中国企业智库系统影响力榜

2019年2月1日,上海社会科学院智库研究中心发布《2018年中国智库影响力评价与排名》。阿里研究院入围三项排名榜单,位居企业智库系统影响力榜单第2位,中国智库社会影响力榜单第13位,中国智库综合影响力排名榜单第42位。阿里研究院成立于2007年4月,发轫于网商研究,生长于阿里巴巴生态,基于前瞻的理念与洞察,海量的数据,丰富的案例、复杂演化的生态。经过10多年的不懈耕耘,已经在宏观经济、新消费与新零售、新金融、互联网与高科技、涉农、物流与供应链、互联网 + 制造业、生态系 统与服务业、全球化与 eWPT、创新创业、就业、财税、数据经济与前沿技术、数字 经济新治理等领域取得丰硕的成果,近5年累计产出近百份报告,大量数据、观点被国家决策部门、国内外研究机构、研究 学者引用,被国际权威机构认定为全球领 先的企业型智库机构。>>>点击查看2018年度报告集锦2016年9月,清博指数在国内首次推出智库网络影响力指数(WebInfluenceIndexofThinkTank),在智库网络影响里排行榜中,阿里研究院作为民间智库,以高达909的WII-TT指数位居排行榜第五名。2017年年初,根据国家信息中心发布《2017中国大数据发展报告》,阿里研究院排名报告“十大最具影响力大数据社会智库”第三位,其中自媒体影响力排名社会智库第二位。上海社会科学院智库研究中心发布《2017中国智库报告》,阿里研究院入选科技类智库专业影响力智库前十。2019年1月31日,美国宾夕法尼亚大学智库研究项目组(TTCSP)发布《全球智库报告2018》,阿里研究院位列中印日韩区域智库榜单第70位,是第15位入选此榜单的中国智库。上海社会科学院智库研究中心作为首创中国智库排名先河的智库评价机构,自2014年起连续六年发布《中国智库报告——影响力排名与政策建议》。《2018中国智库报告》(以下简称《报告》)聚焦“改革开放40周年与智库高质量发展”主题,立足中国智库发展现状,紧密结合中国改革创新与转型发展对智库建设的实际需求,力图对提升中国特色新型智库的影响力和国际话语权提出相应的对策建议。《报告》坚持以评促建、国际视野、决策导向、立足国情、易于操作的原则,紧密结合中国智库发展现状,贴近中国改革创新与转型发展对智库建设提出的实际需求。《报告》坚持评价的原创性与独立性,在国际通行标准的基础上,结合中国智库发展特点,构建中国特色新型智库评价体系,在评价方法和评价结果上,与《全球智库报告》形成对照。《报告》以中国智库的“4+1”评价标准(决策影响力、学术影响力、社会影响力、国际影响力,以及智库的成长能力),设计客观评价指标体系;采取多轮主观评价和部分客观指标相结合的评价方法,以问卷调查和专家评议相结合的方式开展研究。《报告》坚持用户评价、同行评价与社会评价相结合的设计思路,兼顾样本“点”上的专业性、代表性及调查“面”上的差异性、多样性;邀请党和国家主要决策咨询成果用户单位对入围智库进行打分,“用户评价”结果按60%权重以定量方式记入决策影响力。《报告》注重实地调研,广泛开展与各类智库从业人员面对面的交流,充分收集中国智库内部资料和评价数据,弥补主观评价法可能存在的缺陷。本文作者:阿里研究院阅读原文本文来自云栖社区合作伙伴“ 阿里研究院”,如需转载请联系原作者。

February 20, 2019 · 1 min · jiezi

我在达摩院,破了第一个案件

1在发达国家,“警民比”达到万分之四十,即使放眼在国际社会,平均也在万分之三十。在中国,“警民比”标准只有万分之十二,在部分地区,每万人中甚至只有四、五名民警。由于警力严重不足,基层民警始终处于超负荷工作状态。位于桐乡市的濮院派出所,即是如此。秦朝始建的京杭大运河穿境而过,濮院曾以“日出万匹绸”成为“嘉禾一巨镇”,总面积64平方公里,人口约20w,然而辖区派出所民警只有数十位。在这里,民警们站在打击犯罪、维护稳定的最前端,接警出警、打击罪犯、治安巡逻防范、调解纠纷……基层一线民警,几乎24小时都围绕着老百姓转。而在最近,濮院派出所的民警们大为兴奋,许多因线索不足而迟迟未破的陈年旧案,迎刃而解,破案率大幅上升。有心犯案的人,闻风丧胆,也被此威慑收手,整个辖区的案情数量有了明显下降。这个成绩让同行们纷纷侧目,组团过来取经。然而,令他们惊讶的是,在这份优秀成绩单后面,靠的不是持续通宵熬夜,也不是大量增加援手,而是悄悄请来了一位“华生”。原来,来自达摩院机器智能实验室的算法专家默照,与团队共同研发了“渐进式视频搜索引擎”,帮助公安民警开启千里眼模式,将视频监测范围扩大到全城,只要犯罪嫌疑人没逃出城区,30分钟内就能被定位。在过去,案发后查看视频记录,大概需要人肉不眠不休地看2天才能锁定嫌疑人,现在通过搜索引擎20分钟就能找到。这个搜索引擎,如今成为民警身边得力的助手“华生”。但是除了默照外,没人知道,“华生”刚来到派出所时,并不受待见,还是靠了一根烟才找到活干。22008年,默照被中国科技大学的电子工程与信息科学系录取。“当时最想报的是建筑系,后来听说要买画具材料啥的,费钱,怕家里负担大就没报。”默照来自于四川乐山市一个偏远山区,说话时总会微微带着笑。带着与生俱来的质朴与乐观,默照在汇集了严济慈、华罗庚、钱学森等一批著名科学家的中科大,从本科一直读到博士,以第一作者发表高水平学术论文4篇,国家发明专利申请受理3项,在大规模视频识别与计算加速方面,造诣不浅。从现实世界的“建筑师”,阴差阳错成为数据王国里的“建模师”,默照用近十年练就一身的“技术功夫”,也找到了自信。接下来,就是找一个可以大展拳脚的平台,“最好越大越好”。在默照眼里,这个平台非阿里巴巴达摩院莫属。面试时,与华先胜老师的对话,更让他坚定了这个想法。这位达摩院“核心大脑”之一、视觉识别和搜索领域世界级科学家,为他展现了更大的可能性:“在这里,你要攻克的不是一个模型、算法、数据集,而是整个城市成千上万的云上视频,甚至更大,供你去发挥。”默照当下拍胸脯,“只要有足够多的数据、算力,剩下的交给我就好了。”当时他还不知道,横亘在自己面前的,远不止是技术挑战那么简单。3入职不久,默照加入了城市大脑团队。它的使命之一,是连通城市信息孤岛,挖掘城市数据价值。过去20年,中国持续投入城市信息化建设,特别是公安交警部门,始终走在前列,为城市积累了丰富的数据资源。但是没有机器智能的帮助,一个城市一天产生的视频,光靠人力可能100年都看不完。这些宝贵的数据,绝大多数没有发挥作用,就已经被默默删除了。而当人们需要的时候,又不得不重新回到数据的汪洋大海里,人肉搜索。为了解决这个困扰警界多年的“顽疾”,2018年4月,桐乡市濮院镇派出所上线试点“渐进式视频搜索引擎”,将视频监测范围扩大到全城,力图迅速定位犯罪嫌疑人。这个引擎属于浙江公安大脑•乌镇的一部分,视觉部分由默照负责,具有举足轻重的意义。一旦成功,中国民警们将有机会第一次掌握真正的“千里眼”,犯罪分子无所遁形。不料,默照刚到濮院派出所的第一天,却吃了个闭门羹。在濮院派出所,民警几乎没有闲下来的一刻:记笔录,接电话,看视频,没人理会这位带着书生味的博士。“每当分析案情时,他们都是扎推讨论。我试着凑过去,都没人搭理。”默照的回忆带着些许自嘲。读研时,写下人生第一行代码;博士第四年,才发表第一篇顶会paper。看似稍显瘦弱的默照,有着一颗异于常人的强大内心,习惯了在逆境中越挫越勇。接下来,默照继续厚脸皮,像只跟屁虫一样围着办案民警转,有机会就讨教学习,趁机推销。他深信,这套世界一流的技术解决方案,能够为破案贡献一份力,然而眼前连停下来听他讲话的对象都没有。持续不懈地转了几天后,一位年轻的民警看不下去了,把默照拉到一旁,悄悄给他出了个主意。当晚,这位几乎没碰过烟的博士,跑到镇上便利店买了包烟。第二天抓住休息时间散发,与民警们掏心窝闲聊,一来二去,聊开了。这时,默照终于了解到为何民警们态度如此冷淡。原来,濮院派出所之前布置过“类似这样的所谓‘高科技’产品”,但都效果平平。在扎根基层一线数十年的办案民警看来,这样的系统不过是个“花瓶”,中看不中用,真正管用的是摸打滚爬、含泪沐血换来的实战经验。更何况,这种新系统都要重学一遍,对于工作压力繁重的他们来说,更是兴趣缺缺。了解情况后,默照当即打了包票:“我来做,你只用看几眼就行!”随后,他借机详细介绍了这套系统背后的技术原理,这些话他在心里不知反复练习了多少次,终于等到这一天。民警们开始动心起来,最后终于有人表示,“我不知道靠不靠谱,但是如果你们不行,估计其他人也不行!”就这样,一根烟,像一把小火,把彼此生疏的严冰给化出了条缝。但想要取得完全的信任,只有用结果说话。4在实验室里,如果假设验证不行,可以换个模型,从头再来;但这一回,默照清楚自己只有一次机会。一旦搞砸,不仅整个团队数年心血可能流产,更重要的是,某种意义上,民警们已将“达摩院”视为业界技术的代表,如果这一战失败,他们对技术的信任将再难挽回。有一种选择,叫只能成功不能失败。默照义无反顾扎了进去。濮院派出所每月接到的案件里,20%左右的普通案件因线索少破案难,很可能会长久躺在卷宗中。默照接到的就是这样一件典型的财物盗窃案,因为线索少,找不到突破口:2018年4月初,濮院村民建国放在村里某楼大厅的钱包被盗,损失总价值一千余元。接到报案后,民警们立刻分析小区视频,锁定犯罪嫌疑人,截取出一张较为清晰的半身正面照和一张普通摄像头下的骑车照。然而棘手的是,这名犯罪嫌疑人具有明显的反侦察意识和手段,活动范围不规律,刻意隐藏行动路线。在接下来的几天里,民警们没有搜查到更多线索,案件陷入停滞状态。对默照来说,这次技术挑战将会是空前的特殊。近年来,随着大数据的发展、算力的空前提升,机器智能成为大热方向,运用在IoT、教育、医疗、物流等各个领域。机器智能的“核心中枢”——算法,诞生在信息搜索场景里,第一优先考虑的是“精度”(precision)。比如,某位消费者想买件“A字格子裙”,她会在淘宝搜索框输入这些文字,随后系统会结合用户历史数据,在数亿商品中找到最可能受到青睐的商品,呈现在她面前。如何让消费者最快找到心仪之物,这是算法有生以来的最高使命之一。然而,这与破案的要求恰恰截然相反。对于民警来说,线索如同破案的生命线,贯彻始终。任何一条信息,都有可能成为破案的关键、证据链里不可或缺的一环。因此,在破案场景中,搜索算法的召回率(recall)要求逼近100%。“如果某片草原上有500只羊,我们希望每一只都能落在搜索范围里。”在算法领域中,召回率和准确率是一对永恒的矛盾。既要广而全,又要精而准,所有人都知道,这注定无法两全。想要破局,需要两把钥匙,缺一不可。第一把钥匙,是默照与团队研发的“阿里云城市视觉智能引擎”。它的行人识别算法,被国际权威顶会录用,行人首位命中率指标为97.3%,优于当时所有方法,做到了世界第一。针对实战,在骑车人识别、小目标检测、精细化属性识别、人车互搜等方面完成了从无到有的技术积累、突破。默照当下就以濮院镇永越村为中心,圈定初步搜索摄像头范围,通过仅有的半身照,短短20分钟就提取出嫌疑人当天下午的活动轨迹点位图。来时轨迹一旦确认,这无疑给案件撕开一个巨大的突破口子。民警的积极性大涨,立刻调出路口摄像头监控视频,分析出嫌疑人进入案发地点前的活动方向,从而大大缩小了搜索范围。接下来,破局的另一把钥匙,掌握在民警的手里。5之前虽被冷落,但是经过多日的朝夕相处,默照对他们的认识更近了一层。民警们无一不熟悉濮院地形、风土民情,能够合理预判、决策果断。更令人惊奇的是,他们拥有像鹰一样锐利的眼神,直指目标对象。即使照片再模糊,往往看一眼即可辨认出嫌疑人,十有八九不会看走眼。“有时候,视频里的人影只有模糊一个小点,一般人根本看不出,我们的搜索引擎也是。但是民警瞄一眼,就能立刻指出来,‘就是他!’”默照感慨,技术初看起来很神奇,能完成人类做不到的事,但是人类总有一部分能力,是技术永远无法替代的。这是人类千万年进化来、不曾被破译的秘密。就这样,利用最初两张照片的线索,默照将全辖区范围内的相似目标逐一筛出来,经由民警肉眼识别后,再将新确认的照片放入目标素材库里进行搜索,通过反馈确认、多次搜索,渐进式地提升搜索的精度。如此一来,通过民警与搜索引擎的多次交互,既能迅速获得全部线索,又能保证准确率。这就是“渐进式视频搜索引擎”名字背后的含义。“华生”再给力,破案依然少不了福尔摩斯。两者合力,方能攻无不克。很快,民警发现嫌疑人进入某封闭式小区,超过一个小时都没再出来。距破案只剩一步之遥!为了最终确定,默照和民警利用跨天搜索技术分析近期视频,查到该嫌疑人数次将自行车停放在门口,步行进入小区。“这个小区只有一个出口,只要有两小时以上没出来,大概率跑不了。”民警心里已经十拿九稳。与此同时,民警进一步查询案件数据库,发现该嫌疑人为入室盗窃的惯犯,此前已经有多次犯罪记录,半年前刚刚释放。一切水落石出!濮院派出所当即决定实施抓捕,当晚在该小区布控,蹲点等候,终于在翌日晚7点,成功抓获犯罪嫌疑人。这位惯犯怎么也没料到,自己行走“江湖”多年,第一次出手这么快就被捕。从默照接手案件,到嫌疑人落网,仅仅不到30个小时!当晚,听完汇报的公安局局长,非常激动。这是城市大脑解决的第一个案件,也是公安界盼了数十年的好消息。从此,公安民警有更多能力做到大案和小案一起抓,全力创建一个平安的社会治安环境,人民群众将拥有更多幸福感和安全感。经过此次案件后,民警的态度有了彻底的转变。默照每天一早来派出所,总会有民警主动来找他:“这是嫌疑人照片,小哥帮我看下”。他们约默照吃夜宵,当初反对声音最大的民警甚至开起玩笑:“我有女儿的话,一定要嫁给你。”搜索引擎上线后,破案件数大幅提升,警情数量下降12.6%。很快,类似的技术也在桐乡市其他派出所、衢州、余杭投入使用,一时间技术震慑力远震四方。6“城市大脑”不仅能抓人,“寻人”也同样拿手。4月中旬,衢州市红十字会应急救援队发出一条信息:一位80岁爷爷,在当天下午3点发现出走。接警15分钟后,民警利用“渐进式视频搜索引擎”迅速定位到地点,获得宝贵线索,而在过去,人工搜寻通常需数小时。在打击非法捕捞牟利、保护重大财产方面也建树颇丰。衢州警方通过嫌疑人面部清晰照片,迅速搜集到长达一个月时间的连续犯罪证据,顺藤摸瓜找到关联人员,推断出销赃轨迹。最后在菜市场成功将犯罪团伙捕获,成功破获价值100万余元非法捕捞案。从发现到抓捕,仅仅用了5天。2018年的乌镇互联网大会期间,这套系统肩负了协助安防的重要任务。不到一个月的时间里,连续为十多个案件提供重要线索。以永乐新村电动车失窃案为例,在视频接力失效情况下,提供跨度两天多达18个点位,完整还原嫌疑人活动轨迹;助力民警进行目标行踪规律的分析,准确定位嫌疑人当前点位,实现高效抓捕。同时,这些扎根在现实场景、经过大规模实战检验过的成果,也形成了多篇精彩的论文,几乎在国际学术顶会里拿了“大满贯”——AAAI 2018、ACM MM 2018等均被收录。对现在的默照而言,发顶会paper,做一两个点的优化,依然是值得庆祝的事。但是,当看到以往躺在纸张上的算法模型,被真正应用在社会生活中,产生看得见的价值,这更让他激动。“每一天叫醒我的不是闹钟,而是有太多有趣的事情想去做。”提起现在在做的事,默照显得有些兴奋,眼里好像有光在闪耀。去年他刚刚成功晋升,马不停蹄地投入到安防领域标准AI解决方案的制定中。一旦完成,将对整个业界带来革命性的影响。“我觉得自己特别幸运,能遇到这么好的机会,还有一帮靠谱的兄弟。”当初手把手教默照写代码的同班同学岳西,如今也成了同一个团队的战友,这让他非常开心。越努力,越幸运,也许这是对默照的最好注脚。7每一次技术革命,都会推动城市文明前进一步。蒸汽机时代,城市的标志是修公路。电力时代,城市的发展是铺电网。我们身处的互联网时代,数据成为重要的资源,城市需要构建一个数据大脑来再一次提升文明。就像160年前伦敦第一次开通地铁,135年前曼哈顿第一次建设电网,城市大脑将成为一个全新的城市基础设施。随着城市大脑成为首批国家新一代人工智能开放创新平台之一,达摩院机器智能实验室,肩负起了研发和应用智能技术来改变城市管理和发展的历史使命。在阿里,像默照这样的算法工程师,还有很多很多。大而实在的应用场景为技术创新提供了良好的土壤,他们紧贴业务场景,让算法模型与用户需求真正产生化学反应,使技术在实践中突破创新,在实践中成长演化,在实践中落地生根。这是一个美好的时代,也必将是一个伟大的时代。本文作者:孝杨阅读原文本文来自云栖社区合作伙伴“阿里技术”,如需转载请联系原作者。

January 23, 2019 · 1 min · jiezi

80后阿里P10,“关老板”如何带着MaxCompute一路升级?

我是个幸运的人。虽然幸运不能被复制,但是眼光和努力可以。关涛/关老板,80后的阿里P10,阿里巴巴通用计算平台负责人,阿里巴巴计算平台研究员。12年职场人生,微软和阿里的选择。关涛的花名取自谐音:观涛。有种看海观涛的闲适,但在MaxCompute技术团队里,因为团队既要做核心技术也要“落地拿结果”承担阿里云的客户规模和营收,像一个小的创业公司,因此大家更喜欢叫他”关老板”,一下子就世俗亲近了起来。关老板是个北方人,大高个也带着些书生气。因为工作的关系,带领着一支跨国团队,两岸四地奔波(太平洋两岸,北京、杭州、西雅图、加州),说话间偶尔喜欢中英文match一下。“我是一个兴趣驱动型的人,职业生涯总的来说,还算挺幸运的,做自己感兴趣的事情,走上IT这一行……”如果有认识关涛的人,应该会忍不住说上一句:这家伙,运势太好了吧。一路保送,没考过什么试,大学选择计算机的原因也很任性,喜欢玩游戏。研究生毕业后就进入了微软,是微软最年轻的技术管理者之一,后来去了阿里云,不到3年时间,已经是P10,阿里巴巴通用计算平台MaxCompute团队负责人。“特别久以前,大概初中的时候有了自己的第一台电脑,大名鼎鼎的486,带一个数学协处理器,主频266MHz,内存有4MB。”喜欢玩游戏的都知道,往往会碰见有些关卡比较难,闯不过去的情况。当时的关涛就想着:怎么能够绕开系统这些设置?于是查了很多杂志也看了很多书,试图去改游戏存档,那个阶段他第一次知道什么是十六进制,也是最初接触编程。最后自己折腾着,操纵游戏角色大杀四方,简直无敌。让程序按照自己的意愿运行的感觉,“嘿,还好玩的。”于是,开始觉得这个专业(计算机)不错。到了高中毕业的时候,因为数学竞赛被保送到南开大学,当时的一个选择是可以进数学系,南开的王牌专业,但最后,关涛还是因为兴趣选择了计算机。人生的分叉口有很多,有时候做了第1个选择,后面的路都会开始相通,看似顺势而为,其实都是选择的结果。从200公里的北京到8000多公里的西雅图工作需要定期make a little change2006年,关涛毕业了。这意味他要开始自己的职业生涯了,他有些跃跃欲试。研究生的3年,因为导师有额外要求:不能去实习,这让关涛对于招聘市场并不那么了解,对于微软同样是“没有太多的认知”。但北京有个MSRA,微软亚洲研究院,据说是当时最好的R&DCenter。抱着试试看的心态,经历了一整天的面试后,关涛顺利地拿到了offer。 他回忆:“好像也不是那么难”。在离家乡河北承德200公里远的北京,关涛一呆就是6年,是微软Bing搜索北京团队最初的几十个人之一。从偏存储层到计算层,在项目里不断地去充实自己。他是个兴趣驱动的人,但在工作中愿意变成完美主义者。在微软的第一个项目,是做一个分布式KV+ObjectStore系统,用于支持Bing搜索的图片和视频存储。2006年,还没有Hbase这样的开源系统,当时6个人的小团队完全手写一套分布式KV,最终部署在3000台机器并支持正常线上流量,在实战中接触到了分布式系统中的各种挑战,也学到了非常多的东西。“这个项目,是个好的机会与开始”。第二个项目是做搜索后台的IndexGen Pipeline:一个定制化的存储与计算系统,用于支持通用搜索100B级别的超大规模数据存储和处理,后来这个搜索后台也成为了微软Bing搜索后台的第二代架构,并服务至今。再后来就是牵头来做大数据上交互式查询(JetScopeOn Cosmos),最后基本微软一半以上的团队都在用这个系统。在关涛看来,不管是生活还是职业发展,定期去make a little change是很好的选择,保持新鲜感的同时,能看到学到更多的东西。从被别人带着写代码、到自己独立负责一些板块,再到自己带项目小组、带大一点的技术团队,这些都需要有一个自我时间界定,把握自己的发展节奏。6年微软后,他也准备make a bigger change:申请去了美国西雅图的微软总部。8000多公里以外的城市,冬天不太冷,夏天不太热,还有他最爱的单板滑雪,以至于一直坚持在每年的最后一天自驾去不同的滑雪地。在美国期间,关涛继续深入做交互式查询、StructuredData优化推动等,也积累了很多跨国技术团队管理的经验。 “美国有近40年的历史,团队成员比北京的团队更资深一些,在美国能够看到不一样的人,看到不一样的项目。”而在微软的10年时间里,关涛也关注到了国内以BAT为代表的本土企业,他们发展的很好,而且有更高的加速度……西雅图分部第22号员工10年后的回归,面对更多的挑战“当时海外办公室刚建起来,我是阿里西雅图分部的第22号员工。”“在微软10年,国内是什么情况?”好奇心不断膨胀,于是在一次偶然的机会,关涛跳去了阿里,成为了阿里巴巴通用计算平台MaxCompute团队里的一员。这是2016年1月。MaxCompute的前身是ODPS,阿里内部统一的大数据平台,目前99%的数据存储以及95%的计算能力都在这个平台上产生,如果把阿里巴巴集团的数据体系比作航母战斗群,那么MaxCompute就是中间的航空母舰。面对这样一个已经发展了近6年的相对成熟、体量极为庞大的平台,挑战非常多。而2016年1月入职阿里,2016年年会上就接过了MaxCompute的掌舵者位置,从0到1已经做完了,如何做到从1到10?留给关涛的时间并不多。他认为,大型系统逐步发展,是一个不断自我进化的过程,大数据系统也不例外。微软的经历给了他一些帮助:包括同样都是大数据引擎(规模上有较大差异),之前的技术和工程经验都能复用。而丰富的跨国技术团队管理经验也让关涛更加适应阿里的工作。**从MaxCompute1.0到MaxCompute2.0“我们是在飞行的飞机上换引擎”**关涛回忆:“当时进来的时候,MaxCompute1.0 其实是在一个技术的成熟期上,承接了阿里巴巴内部和阿里云的核心业务,而引擎升级有技术风险和问题(我们称为Regression,包括功能和性能的)。为了保证对上层透明,我们先做了一个框架升级,支持把引擎的不同版本同时部署在线上,一点一点地把流量切过来,同时观察效果。”之后再进行引擎层面的大手术。有点像是“在飞行的飞机上换引擎”。如今的MaxCompute2.0相较于1.0版本,规模达到近10万台,性能提升超过1倍以上,每年为阿里巴巴节省预算超过20亿,同时也让阿里的大数据引擎可以在未来3-5年架构上有个相对好的布局。技术团队如何管理关涛的看法是:技术管理者归根结底还是一个管理者。1、首先考虑的不是自己要做什么事情而是帮助团队做什么事情,更多的有一种“利他”的责任感。2、技术前瞻性,技术团队管理者是要带着团队有目标地、正确地往前走,把握未来方向非常重要。3、招聘层面,思考如何招到合适的人,如何进行人才布局。现在是人才在哪办公地点就在哪的阶段。从大数据角度看阿里双十一要支持好双十一,先从两个统一说起(数据统一和资源统一)。数据具有1+1大于2的特性,不同的数据融合计算能产生更大的价值。而关键就在于如何把数据都打通。几年前阿里巴巴建设中台,把内部所有的数据放在一起(物理上分布在多地的近10万台服务器上,但逻辑上统一,数据的分布和调度对用户透明),让丰富的数据帮助产品、业务前进。资源的统一化:把所有机器放在一个大的资源池里(内部称为混布项目),资源调度系统打通,对于机器的效率优化和整个系统的容灾都有非常大的帮助。做大数据的都了解,数据可以3年翻5倍,机器却不行,否则成本太高,不现实。而利用已有的服务器进行混合部署,“这也是近一年,我们重点投资的一个项目,也就是把不同BU、不同种类的机器部署在同一个资源池中。”有了这两个统一架构的前提,双十一在洪峰来临的时候,可以选择把不那么重要的工作先停掉(在百万级别的作业中基于优先级和依赖做调度),让这些机器都用来支撑洪峰。洪峰过后,又把机器主力转移到计算上,把需要的计算尽快地输出来。今年双十一,大数据集群在流量洪峰最高的几个小时,通过弹性支持了超过1/4的交易业务流量。不增加棋子,仅依靠挪动棋盘上的子,就完成布局守住将军。当然,在此之前,团队把MaxCompute已经从1.0版本切到了2.0版本,性能的提升也是支持双十一数据量的关键。在硬件只增加不到三分之一的基础上,处理数据相较去年翻了一番,达到单日处理600PB的规模。可以说,MaxCompute在这一战役中发挥得不错,甚至比去年更为优秀。**未来:云化、新硬件、非结构化计算、非关系型计算、AI是趋势DBA或将被淘汰?**去年的时候,原阿里云总裁胡晓明说:“互联网的云计算竞争是世界寡头经济的全面竞争,在我看来,就是杭州和西雅图的竞争。谁拥抱技术,谁就拥抱未来。”场主深以为然。关涛认为:目前云计算已经从互联网企业向传统企业蔓延,例如杭州的城市大脑和“最多跑一次“项目,是2G(To Government)的项目。还有基于工业大脑的工业4.0项目等。从目前的市场态度来看,企业或许可以更加开放一些,欢迎和拥抱这种技术变化,完成自我的数字化转型。“云计算不会是寡头反而会是普惠”,关涛说。前瞻话题:大数据处理领域,未来程序员应该关注什么东西?1、 新硬件的发展计算层面越来越与新硬件的创新紧密结合,硬件会带来平台革命。例如芯片类的CPU(AVX、SIMD)、ARM众核架构、GPU,FPGA,ASIC,存储类的NVM、SSD、SRM,网络类的智能网卡和RDMA等新硬件的发展,新硬件与软件的配合是值得关注的发展方向。2、 非关系型计算领域(图计算)有很多机会大数据现在还是在关系型的处理层面,包括流和批都是基于关系型数据的计算,事实上,现在非关系的计算越来越流行了,包括知识图谱、画像等越来越有价值,这些数据组织不是关系型表达,而是以点边的形式用图的方式表达,更符合物理抽象,比如人和货的关系,在风控层面,知识图谱层面,用来描述物理实体的关系更合适。明年初,将会推出MaxCompute的图计算系统MaxGraph,支持图存储、查询、模式匹配和GraphEmbedding等机器学习运算。3、 非结构化数据将变成大数据的主流越来越多的短视频、图片、语音类数据,并随着IoT的发展,可能占据80%的数据量,由于这类数据的特性在于结构各不相同,且数据非常大但是单位价值不高(相比传统结构化数据),如何快速高效的解析和处理非结构化数据,是计算平台的关键挑战。去年的时候MaxCompute发布了一个非结构化数据处理模块,能够用户自定义的方式处理包括视频音频在内的数据。4、 Al for Everything(also for BigData)DBA或将被淘汰?大数据的特点是大,不仅仅是包括数据的处理规模,还包括了整个的海量数据的管理和优化。传统数据库领域依靠DBA人力去管理的模式将不再适用。用Al优化数据分布、数据管理、做计算优化和成本优化(例如自动SubQuery合并,智能索引建立等)。“让大数据无人驾驶”,这也是未来的趋势。本文作者:晋恒阅读原文本文来自养码场专访,转发需养码场授权。

December 14, 2018 · 1 min · jiezi

重磅!阿里巴巴工程师获得 containerd 社区席位,与社区共建云时代容器标准

重磅!阿里巴巴工程师获得 containerd 社区席位,与社区共建云时代容器标准11 月 29 日,CNCF containerd 社区正式宣布:两位阿里巴巴工程师正式获得 containerd 社区席位,成为 containerd 社区 Reviewer,未来将共同参与云时代容器标准的建设。containerd 是一个工业级别的容器运行时管理引擎,代表的是 Open Containers Initiative(OCI) 标准的最佳实践。同时,containerd 也是 CNCF(云原生计算基金会)的孵化项目,正逐渐发展成 Kubernetes 生态中容器引擎首选。值得一提的是,在阿里巴巴开源容器技术 PouchContainer 的体系架构中,containerd 同样作为基础运行时的重要管理组件存在,而 PouchContainer 更加专注于上层容器功能的开发,例如 Container Runtime Interface(CRI) 接口的实现与增强,容器隔离性的增强等。Reviewer 是 containerd 社区中的核心重要角色。具体而言,reviewer 需要履行项目维护义务,比如 issue 的管理、社区提交的代码审核等。其中,社区代码合并之前,在代码审核时,reviewer 手中有着关键的一票(两票可以确保代码合入)。阿里巴巴自 8 年前的 T4 时代即开始研究容器技术,目前集团在线业务通过 PouchContainer 技术已经实现 100%容器化。PouchContainer 容器技术,已然成为 双11 大促场景下阿里巴巴的核心基础设施技术之一,为 双11 超级工程提供精细化的资源管控与优化方案。正如上文所说,containerd 作为容器技术实现的关键路径,同样举足轻重。服务好阿里巴巴集团之外,PouchContainer 的开源以及 containerd 社区的投入,可以说是阿里巴巴集团实施中台战略过程中,必须走的路径。只有这样,阿里巴巴多年积累的容器技术经验以及更多的智能化能力,才能更好地向全社会开放,为全社会服务。获得 containerd 社区席位,是一种荣耀,同样也是一份责任。未来,阿里巴巴的工程师将致力于做好国内容器市场与全球 containerd 社区的桥梁,将中国声音传递至云原生社区,并让更多从业人员享受 containerd 以及容器标准发展的红利。本文作者:amber涂南阅读原文本文为云栖社区原创内容,未经允许不得转载。

December 7, 2018 · 1 min · jiezi

用Golang将图片转化成ASCII码

用Golang将图片转化成ASCII码在开始之前先看看最终效果:项目地址在这里:https://github.com/qeesung/im… , 欢迎star我们都知道图片是通过一个像素点矩阵组成的,每一个像素点都是有四个值,分别是R,G,B,A组成,其中RGB就是红色,绿区,蓝色,简称三原色,在计算机中取值从0-255,而A则是颜色的透明度,取值0.0-1.0。我们现在要做的就是将一个彩色的图片转化成一个由ASCII组成的图片,换句话说,就是将RGBA像素点的矩阵转化成一个由字符组成的矩阵,必要的时候再给字符加上颜色就可以啦。(R, G, B, A) (R, G, B, A) (R, G, B, A) char1, char2, char3(R, G, B, A) (R, G, B, A) (R, G, B, A) –> char4, char5, char6(R, G, B, A) (R, G, B, A) (R, G, B, A) char7, char8, char9那么问题又来了,R,G,B的值都是从0-255的,而字符的数量是很有限的(一般我们只会用少数几个有限的字符来表示),那么我们如何将由多种组合的R,G,B映射到一个字符上呢?convert(pixel) -> character我们不妨将RGB值和透明度和在一起,算出一个总值权重W,然后将这个值W均分到不同的字符串上,这样就完成了像素点到字符的映射,就是这么简单。注意下面的可选字符串的从左往右" .,:;i1tfLCG08@“辨识度一次增加,或者辨识度依次减少,如果不这样做,那么图片识别出来效果可能不太行。value := (r + g + b) * a / 255// Choose the char options.Pixels = " .,:;i1tfLCG08@“precision := float64(255 * 3 / (len(options.Pixels) - 1))rawChar := options.Pixels[roundValue(float64(value)/precision)]现在可以将像素转化为字符了,那么颜色怎么办?上面的操作好比只是把图片转化成了黑白的,然后把轮廓画出来来了,那么如何取颜色呢?加颜色需要注意的是,现在的颜色不再是单单的颜色了,现在的颜色包含两块,一块是字符自身的颜色,即前景色,一块是字符的后面的颜色,即背景色。我们这里不调整背景色,只渲染字符的前景色,即只渲染字符的颜色。在linux终端中,是可以通过输出特殊字符来配置输出字符颜色的,拿着就好办了,只需用图片的RGB混合一下,输出颜色就可以了,我们这里用http://github.com/aybabtme/rg…。func decorateWithColor(r, g, b uint64, rawChar byte) string { coloredChar := rgbterm.FgString(string([]byte{rawChar}), uint8(r), uint8(g), uint8(b)) return coloredChar}更多源码细节可以看这里: https://github.com/qeesung/im… 欢迎star???? ...

October 22, 2018 · 1 min · jiezi