软佳科技有限公司 - 论坛

InfoQ

0 会员 以及 5 访客 正在阅读本主题.

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_eBay PB级日志系统的存储方案实践
« 回复 #5505 于: 九月 13, 2019, 10:01:30 pm »
eBay PB级日志系统的存储方案实践

CAL(Central Application Logging) 系统主要负责收集和处理eBay内部各个应用程序池的日志,日处理超过3PB的数据,供运维团队和开发团队日常监控使用。


CAL系统通过HTTP接口接受应用产生的日志,将日志持久化到经NFS挂载的网络存储上, 用户(运维团队和开发团队)可以通过CAL系统方便地查找、查看日志。同时,日志也会被导入Hadoop进行进一步的分析形成报告。该系统自21世纪初至今,已经有10多年的历史了。


CAL从第一天起就运行在Netapp的商业存储上。随着业务的发展,业务产生的数据量急剧增加,单个存储集群已经无法承载 CAL的流量和性能需求,存储团队和业务团队通过增加集群来解决性能问题。一直到2018年,CAL在每个数据中心已经需要25个集群才能支撑起其性能需求。


虽然统计上,CAL只使用了eBay 5%的NFS Filer总容量,但实际上却消耗了50%的总性能。性能和容量的巨大偏离,使得实际成本已经比该存储方案的裸$/GB成本高了一个数量级。


高成本,叠加上由eBay业务驱动的每年30%自然增长,这套架构亟需重构优化。


Source: eBay PB级日志系统的存储方案实践

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
82天突破1000star,项目团队梳理出软件开源必须注意的8个方面

一、开发


在开源项目的开发过程中要注意以下几点



  • 首先,要给自己的项目取一个合适的名字,取名规则这里不再赘述,需要强调的一点是:项目名称不能与GitHub上已开源过的项目名称相同。

  • 其次,选择合适的编程语言。

  • 再次,编码过程中要注意代码的规范。

  • 最后要说的就是开源协议的选择了,目前最流行的开源协议有以下六种:GPL、BSD、MIT、Mozilla、Apache和LGPL。


不同的开源协议之间的差别还是挺大的,具体如何选择,可以参考一张图看懂开源协议https://blog.csdn.net/cwt19902010/article/details/53736746),如果这些常用的开源协议都不适合你的项目,你也可以自己写一个自己的开源协议。


为了更方便查看开源协议选择图,参考图如下:



以Apache License Version 2.0协议为例,比较常用协议与Apache协议冲突情况,冲突图如下



Source: 82天突破1000star,项目团队梳理出软件开源必须注意的8个方面

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_Cellery:向Kubernetes部署应用程序的代码优先方法
« 回复 #5507 于: 九月 13, 2019, 10:01:30 pm »
Cellery:向Kubernetes部署应用程序的代码优先方法

本文要点



  • 尽管微服务架构(MSA)有很多好处,但管理数百个松耦合的微服务很快就会变得很麻烦。这就是设计基于单元格的架构(CBA)的原因。

  • CBA是一种微服务架构模式,它的主要要求是将多个微服务(及其他组件)分组成称为单元格的构建块,以方便管理和重用。

  • 从零开始在容器编排平台上创建CBA很费力。在撰写本文时,Kubernetes是业界广泛采用的容器编排平台;然而,使用YAML编写用于此目的的Kubernetes工件并不是一项简单的任务。

  • Cellery遵循代码优先的方法,处理实现CBA的底层复杂性。

  • Cellery包含一个SDK、一个运行时和一个管理框架。


Cellery简介


Cellery到底是什么,它如何帮助我们在Kubernetes上部署和管理应用程序?Cellery是一种在Kubernetes上构建、集成、运行和管理复合应用程序的代码优先方法。这种复合应用程序的构建块称为单元格——其名称为Cellery,而不是Celery。为了帮你理解单元格和Cellery,让我们看看如何使用Cellery部署、管理和观察一个已有的由谷歌编写的Kubernetes应用程序。但是,在此之前,让我们先了解下单元格是什么以及单元格的工作原理。


单元格是什么?


让我们看一下,为什么需要在微服务架构中使用复合组件。


微服务是构建复杂且不断演化的应用程序的热门选项,它可以缩短上市时间,加快创新速度。每个服务都可以由专门负责该服务的团队独立开发,并且他们可以自由选择任何他们认为合理的技术。最重要的是,微服务是可重用的,每个服务都可以独立伸缩,使团队可以使用最能满足服务资源需求的最佳部署基础设施。开发人员可以对其服务进行本地更改,并在测试完成后立即部署这些更改。那么,这有什么挑战吗?


微服务(包括无服务器函数)的使用正在快速增长,因为组织的目标是提高开发速度和可伸缩性,而且它们还必须调整为面向业务能力的团队。在拥有数十个或数百个应用程序的企业中,管理如此多的松耦合微服务,不仅会成为运营的噩梦,也在团队沟通以及服务发现、版本控制和可观察性等方面提出了挑战。更多的服务、更多的沟通路径、更复杂的网络安排以及更多的潜在故障区。这就有了对高级结构的需求,将多个微服务和无服务器函数聚合到易于管理和重用的构建块中。


基于单元格的架构是一种微服务架构模式,它将系统的微服务、数据和其他功能组件(包括前端应用程序、遗留服务、代理、网关和遗留系统适配器)分组为内聚的、可单独部署的架构单元(称为单元格)。


Source: Cellery:向Kubernetes部署应用程序的代码优先方法

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_Apache Beam 架构原理及应用实践
« 回复 #5508 于: 九月 14, 2019, 04:12:55 pm »
Apache Beam 架构原理及应用实践

Apache Beam 是什么?


1. Apache Beam 的前世今生



大数据起源于 Google 2003年发布的三篇论文 GoogleFS、MapReduce、BigTable 史称三驾马车,可惜 Google 在发布论文后并没有公布其源码,但是 Apache 开源社区蓬勃发展,先后出现了 Hadoop,Spark,Apache Flink 等产品,而 Google 内部则使用着闭源的 BigTable、Spanner、Millwheel。这次 Google 没有发一篇论文后便销声匿迹,2016年2月 Google 宣布 Google DataFlow 贡献给 Apache 基金会孵化,成为 Apache 的一个顶级开源项目。然后就出现了 Apache Beam,这次不它不是发论文发出来的,而是谷歌开源出来的。2017年5月17日 发布了第一个稳定版本2.0。


2. Apache Beam 的定义



Apache Beam 的定义如上图,其定位是做一个统一前后端的模型。其中,管道处理和逻辑处理是自己的,数据源和执行引擎则来自第三方。那么,Apache Beam 有哪些好处呢?


Apache Beam 的优势


1. 统一性



Source: Apache Beam 架构原理及应用实践

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_Java字节码增强探秘
« 回复 #5509 于: 九月 14, 2019, 04:12:55 pm »
Java字节码增强探秘

1. 字节码


1.1 什么是字节码?


Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用javac命令编译源代码为字节码文件,一个.java文件从编译到运行的示例如图1所示。



图1 Java运行示意图

对于开发人员,了解字节码可以更准确、直观地理解Java语言中更深层次的东西,比如通过字节码,可以很直观地看到Volatile关键字如何在字节码上生效。另外,字节码增强技术在Spring AOP、各种ORM框架、热部署中的应用屡见不鲜,深入理解其原理对于我们来说大有裨益。除此之外,由于JVM规范的存在,只要最终可以生成符合规范的字节码就可以在JVM上运行,因此这就给了各种运行在JVM上的语言(如Scala、Groovy、Kotlin)一种契机,可以扩展Java所没有的特性或者实现各种语法糖。理解字节码后再学习这些语言,可以“逆流而上”,从字节码视角看它的设计思路,学习起来也“易如反掌”。


本文重点着眼于字节码增强技术,从字节码开始逐层向上,由JVM字节码操作集合到Java中操作字节码的框架,再到我们熟悉的各类框架原理及应用,也都会一一进行介绍。


1.2 字节码结构


.java文件通过javac编译后将得到一个.class文件,比如编写一个简单的ByteCodeDemo类,如下图2的左侧部分:


Source: Java字节码增强探秘

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_2019年,这8款自动语音识别方案你应该了解!
« 回复 #5510 于: 九月 14, 2019, 04:12:55 pm »
2019年,这8款自动语音识别方案你应该了解!



基于计算机的人类语音识别与处理能力,被统称为语音识别。目前,这项技术被广泛用于验证系统中的某些用户,以及面向谷歌智能助手、Siri或者Cortana等智能设备下达指令。


从本质上讲,我们通过存储人声与训练自动语音识别系统以发现语音当中的词汇与表达模式。在本文中,我们将一同了解几篇旨在利用机器学习与深度学习技术解决这一难题的重要论文。



Deep Speech 1: 实现端到端语音识别的向上扩展


本文作者来自百度研究所的硅谷人工智能实验室。Deep Speech 1不需要音素字典,而是使用经过优化的RNN训练系统,旨在利用多个GPU实现性能提升。该模型在Switchboard 2000 Hub5数据集上实现16%的错误率。之所以使用GPU,是因为其需要投入数千小时进行模型数据训练。此外,该模型还能够有效应对嘈杂的语音采集环境。


Deep Speech: Scaling up end-to-end speech recognition


Source: 2019年,这8款自动语音识别方案你应该了解!

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_为什么时至今日编码面试依然这么糟糕?
« 回复 #5511 于: 九月 14, 2019, 10:19:24 pm »
为什么时至今日编码面试依然这么糟糕?


“我们有90%的工程师在用你写的软件,但你不能在白板上写出反转二叉树的代码实现,所以你被拒了!”



Homebrew的创始人Max Howell在2015年的这条推特吐槽了谷歌的编码面试,收到了1万多个赞,引发了热烈的讨论。但是一直到2019年的现在,编码面试仍然在互联网面试中占据重要地位,一直被吐槽,从未被动摇。本文作者曾是一名经历编码面试被拒的候选人,后来又成为了一名Facebook的编码面试官,他在文中分享了这种视角的变化,深入分析了编码面试占据重要地位的原因和一些改进的想法。


你很紧张。电话面试即将开始。这可能是你今年获得理想工作的唯一机会。这一切都归结为一点 —— 你要在45分钟内证明你解决问题的能力和编码水平。


电话突然响起。


你接起电话,只能听到心跳的声音。在简短的寒暄之后,面试官将第一个问题粘贴到你的共享编码环境中,并开始解释问题。


你的大脑一片空白。你太紧张了,在巨大压力下你无法清晰地思考。


你不停地看表。5分钟过去了。


沉默。


你知道面试官一直在等你说些什么。你试图用你的想法打破沉默,但这只会破坏你的思考过程。

你又看了看表。 20分钟过去了。


Source: 为什么时至今日编码面试依然这么糟糕?

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_作为初创公司的第一位数据工程师,我从中学到了什么
« 回复 #5512 于: 九月 15, 2019, 10:06:35 am »
作为初创公司的第一位数据工程师,我从中学到了什么


一个没有数据工程经验的人成了一家初创公司的第一位数据工程师,这是一项艰巨的挑战,但回报也是很可观的。



公司在招人的时候不仅要找到合适的人,还要让他们相信加入公司是正确的选择。


当我收到EmCasa公司的面试邀约的时候,我是另外一家公司的数据科学家。他们想找一位可以帮助他们组织数据的人。我问他们现在已经有哪些数据了,他们真诚地回答我:“我们只有PostgreSQL数据库里的几张表,还尝试使用了一些BI工具,仅此而已”。听了他们的话,我也很诚实地告诉他们:我没有亮眼的学位,之前也没做过数据工程师,不懂Spark,不会Airflow,不是ETL方面的专家,也不懂测试和Git之类的东西,我也不是一名开发人员。但我见过很多东西,有一些很好,有一些还不错但仍有提升的空间,还有一些完全不行。我的想法是要尽量避免去尝试已知不可行的东西。


我不知道他们是怎么想的,总之最后我成了他们公司的第一位数据工程师。


在加入这家公司后,一切都像他们之前所说的那样。我有足够的施展空间,可以按照我认为的最好的方式去做每一件事情。第一周,我们就制定了一些季度OKR:



  • 从Facebook Ad、Google Ad、SalesForce和其他第三方服务获取数据;

  • 实现一个BI平台;

  • 将物业估价算法准确度提高20%;

  • 将评估模型设计成独立的API;

  • 更新和改进Web爬虫。


为了从第三方服务提取数据,我们开始调研ETL解决方案,比如StitchData、Fivetran、Segment、Alooma、Rivery,等等。要为每个第三方服务API构建自定义集成方案需要花费很多时间,但我们速度要快,而使用ETL服务解决方案可以为我们节省几个月的开发和维护时间。我们决定使用Rivery,并在两周内搭建了一个Redshift集群,用来每天更新来自第三方服务的数据。这个时候,Luca加入了我们,成了我们的BI分析师。他现在有很多数据可以玩了。我们还使用Metabase作为仪表盘。到目前为止,一切都很顺利。我们终于有了真正的数据,而不只是PostgreSQL里的几个表了!


Source: 作为初创公司的第一位数据工程师,我从中学到了什么

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_基于NVMe SSD的分布式文件存储UFS性能提升技术解析
« 回复 #5513 于: 九月 15, 2019, 04:14:57 pm »
基于NVMe SSD的分布式文件存储UFS性能提升技术解析

为了应对 IO 性能要求很高的数据分析、AI训练、高性能站点等场景,UFS团队又推出了一款基于 NVMe SSD介质的性能型UFS,以满足高IO场景下业务对共享存储的需求。性能型 UFS 的4K随机写的延迟能保持在 10ms 以下,4K随机读延迟在5ms以下。


性能的提升不仅仅是因为存储介质的升级,更有架构层面的改进,本文将从协议、索引、存储设计等几方面来详细介绍性能型UFS升级改造的技术细节。


协议改进


此前容量型UFS设计时支持的协议为 NFSv3,其设计理念是接口无状态,故障恢复的逻辑简单。此外NFSv3 在Linux和Windows上被广泛支持,更易于跨平台使用。但是NFSv3的设计缺点导致的高延迟在高IO场景下是不可接受的,所以在性能型UFS中,我们选择仅支持性能更好、设计更先进的 NFSv4 协议。


NFSv4 与 NFSv3 相比,更先进的特性包括:支持有状态的lock语义、多协议间的compound机制等。特别是compound机制,可以让多次 NFS 协议交互在一个 RTT 中完成,很好地解决了NFSv3性能低效的问题。一次典型的 open for write 操作,在 NFSv3 和 NFSv4 上分别是这样的:



Source: 基于NVMe SSD的分布式文件存储UFS性能提升技术解析

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性

首先我们必须承认,Java 8 是一个里程碑式的版本,这个相信大多数Java程序员都认同,其中最知名的是 Streams & Lambda ,这让 Functional Programming 成为可能,让 Java 换发新的活力。这也是即便 Oracle 不在支持 Java 8 的更新,各个云厂商还是积极支持,站点为 https://adoptopenjdk.net/,可以让 Java 8 能继续保留非常长的时间。


目前非常多的同学日常开发并没有切换到 Java 8 后续的版本,所以这篇文章,我们打算写一个后 Java 8 时代的特性,主要是偏向于开发的,不涉及 GC , Compiler , Java Module , Platform 等,如果一一解释,估计非常长的文章,当然后续可以写另外文章介绍。下面的这些特性会影响到我们日常的代码编写。


考虑到 Java 13 马上发布,所以版本覆盖从 9 到 13 ,与此同时 Java Release 的方式调整,一些特性是在某一版本引入(preview),后续收到反馈后做了非常多的增强和完善,这里就不一一说明特性是哪个版本的,你可以理解为后Java 8版本后的特性大杂烩。参考资料来源于官方 features 和 pluralsight 上每一个版本的 Java 特性介绍。


var 关键字(局部变量类型推导) Local-Variable Type Inference


Java 支持泛型,但是如果类型非常长,你又不是特别关注,你用 var 关键字就可以啦,可以让你代码非常简洁。Java IDE 都非常好地支持 var,不用担心代码提示等问题。


Map<String, List<Map<String,Object>>>  store = new ConcurrentHashMap<String, List<Map<String,Object>>>();
        Map<String, List<Map<String,Object>>>  store = new ConcurrentHashMap<>();
        Map<String, List<Map<String,Object>>>  store = new ConcurrentHashMap<String, List<Map<String,Object>>>();
  //lambda
  BiFunction<String, String, String> function1 = (var s1, var s2) -> s1 + s2;
        System.out.println(function1.apply(text1, text2));

复制 confd 文件到 bin 目录下,启动 confd


Source: 阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_Waymo共享用于机器学习的自动驾驶数据集
« 回复 #5515 于: 九月 15, 2019, 04:14:57 pm »
Waymo共享用于机器学习的自动驾驶数据集

自动驾驶技术公司Waymo(该公司归谷歌母公司Alphabet所有)发布了一个数据集,其中包含自动驾驶汽车在5个多小时的驾驶过程中收集到的传感器数据。该数据集包含了激光定位器和摄像头在多个城市和郊区环境的多种驾驶条件下收集的高分辨率数据,其中还包含车辆、行人、骑行者和路标的标签。


Waymo团队在一篇博文中宣布发布Waymo Open Dataset,并称其为“有史以来发布的最大、最丰富和最多样化的研究用自动驾驶数据集之一”。这些数据是由Waymo在美国凤凰城、阿兹州、柯克兰、西弗吉尼亚州、山景城、加利福尼亚州和旧金山市的车辆在不同时间、不同天气情况下收集的。该数据集有1000个数据段,每段20秒,以10Hz的频率收集(也就是200000帧),其中包括:



  • 从五个激光定位器和正面及侧面的五个摄像头同步的数据

  • 传感器标定和姿态

  • 所有激光定位器画面的3D边界框都有对象标签(车辆、行人、骑行者和路标)

  • 100个数据段的摄像头数据的2D边界框有对象标签


Waymo还发布了一个谷歌Colab笔记本,包含教程和一个GitHub存储库,而后者又包含用于构建模型的TensorFlow辅助代码。这个巨大的标记数据集可以用于检测障碍物和交通标志的模型的监督机器学习,这是任何自动驾驶汽车的关键能力。激光定位器虽然可以生成一个点云图来定位三维空间中的物体,但它无法检测颜色,因此完全看不到路标上的字母。二维摄像头图像缺乏距离信息,但来自多个摄像头的图像可以通过处理重建深度。虽然Elon Musk认为激光定位器是“不必要的”,但将激光定位器的3D数据与2D摄像头数据相结合,可以简化在图像中检测障碍物距离的过程。



Lyft上个月公布了一个类似的数据集Lyft Level 5(以SAE驾驶自动化的最高级别命名)。Lyft的数据集包含5.5万帧,大约是Waymo的四分之一;与Waymo的数据集相比,Lyft获取每一帧数据所使用的摄像头更多(7个)、激光定位器则更少(3个)。两家公司都希望他们的数据能被研究团体用来改进算法和模型。Lyft在发布会上特别强调了学术研究,并计划利用他们的数据集赞助一场机器学习竞赛。


Source: Waymo共享用于机器学习的自动驾驶数据集

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
弥合AI大规模落地的巨大缺口!阿里、腾讯、百度等联合推出互联网服务AI基准


现如今,互联网服务正经历着根本性的变化,并逐渐转向智能计算时代。现代互联网服务提供商普遍采用人工智能来增强其服务。在这种背景下,研究人员提出了许多创新的人工智能算法、系统和架构,因此基准(benchmark)和评估基准的重要性也随之上升。然而,现代互联网服务采用基于微服务的体系结构,由多种模块组成。这些模块的多样性和执行路径的复杂性、数据中心基础设施的庞大规模和复杂层次结构、数据集和工作负载的保密问题对设计基准提出了巨大挑战。


这篇论文中,百度、阿里、腾讯等几家顶级互联网服务提供商联合中国的17个互联网企业共同推出了第一个具有行业标准的互联网服务AI基准——AIBench。AIBench提供了一个高度可扩展、可配置、灵活的基准测试框架。作者从三个最重要的互联网服务领域(搜索引擎、社交网络和电子商务)中确定了16个较为突出的人工智能问题领域。在AIBench框架的基础上,作者利用真实世界的数据集和工作负载,设计并实现了第一个端到端的互联网服务AI基准。在CPU和GPU集群上,作者对端到端应用程序基准进行了初步评估。与AI相关的组件显著地改变了互联网服务的关键路径和工作负载特性,证明了端到端AI应用程序基准的正确性和必要性。这篇论文是目前为止最全面的AI基准工作。我们将在AI前线第92篇论文导读中详细解读这项AI基准工作。



AIBench网页:

http://www.benchcouncil.org/aibench/index.html


1 介绍


人工智能技术的进步为图像、视频、语音、音频等处理技术带来了突破,推动了大规模人工智能算法、系统和体系结构的部署,因此现代互联网服务提供商普遍采用人工智能来增强其服务。例如,阿里巴巴提出了一种新的DUPN网络,以实现更有效的个性化。Google推出了TensorFlow系统和TPU来提高服务性能。亚马逊采用人工智能进行智能产品推荐。

 

因此,测量和评估这些算法、系统和体系结构的压力逐渐增大。首先,现实中的数据集和工作负载被互联网服务提供商视为一级机密问题,只有少数公开可用的性能模型,或针对行业规模互联网服务的研究成果可用于进一步研究。由于没有公开的互联网服务基准,只有内部的研究人员才能推动互联网服务的现状,这种不可持续的状态对推进开放式互联网服务造成了巨大障碍。

 

其次,人工智能已经渗透到互联网服务的几乎所有方面。因此,为了覆盖现实人工智能场景的关键路径和突出特点,应该提供端到端的应用基准(application benchmarks)。我们需要找到具有代表性的数据集,总结出主要的人工智能问题领域(组件基准,component benchmarks),并进一步了解什么是最密集的计算单元(微基准,micro benchmarks),在此基础上,我们可以构建一个简洁而全面的人工智能基准框架。

 

最后,从体系结构的角度来看,在早期阶段将一个完整的人工智能应用程序移植到一个新的体系结构是很困难的,甚至是不可能的。而在后期,仅仅使用微基准或组件基准则不足以对不同模块进行深入分析,或在现实应用场景中确定瓶颈问题。目前最先进的AI基准只提供了很少的微基准或组件基准,均无法覆盖行业规模的互联网服务的全部案例。因此,构建一个由全部的微基准或组件基准,以及端到端应用基准组成的互联网服务AI基准,对于弥合这一巨大缺口具有重要意义。

 

论文贡献:



  • 提出并实现了一个高度可扩展、可配置、灵活的人工智能基准框架。

  • 与17个行业合作伙伴共同确定了16个突出的人工智能问题领域,并相应地针对这些领域实施了16个组件基准。

  • 设计并实施了第一个行业规模的端到端互联网服务人工智能基准,其中包含一个底层电子商务搜索模型。

  • 在CPU和GPU集群上,实现端到端的互联网服务AI基准,并对性能、运行效率和执行时间进行了深入分析,为进一步优化提供了指导。



Source: 弥合AI大规模落地的巨大缺口!阿里、腾讯、百度等联合推出互联网服务AI基准

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_10个不为人知的SQL技巧
« 回复 #5517 于: 九月 16, 2019, 04:04:18 am »
10个不为人知的SQL技巧



从早期开始,编程语言设计者就有这样的愿望:设计一种语言,在这种语言中,告诉机器我们想要的结果是什么(WHAT),而不是如何(HOW)获得结果。SQL可以做到这点。在SQL中,我们不关心数据库是如何检索信息的,就可以得到结果。本文介绍了使用声明式SQL10个不为人知的技巧。



介绍


为了理解这10个SQL技巧的价值,首先需要了解下SQL语言的上下文。为什么我要在Java会议上讨论SQL呢?(我可能是唯一一个在Java会议上讨论SQL的了)下面讲下为什么:



从早期开始,编程语言设计者就有这种的愿望:设计一种语言,在这种语言中,告诉机器我们想要的结果是什么(WHAT),而不是如何(HOW)获得结果。例如,在SQL中,我们告诉计算机我们要“连接”(联接)用户表和地址表,并查找居住在瑞士的用户。我们不关心数据库将如何检索这些信息(比如,是先加载用户表呢,还是先加载地址表?这两个表是在嵌套循环中联接呢,还是使用hashmap联接?是先将所有数据加载到内存中,然后再过滤出瑞士用户呢,还是先加载瑞士地址?等等。)


Source: 10个不为人知的SQL技巧

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_HDFS监控背后那些事儿,构建Hadoop监控共同体
« 回复 #5518 于: 九月 16, 2019, 04:04:18 am »
HDFS监控背后那些事儿,构建Hadoop监控共同体

Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。在大数据生态圈中,HDFS是最重要的底层分布式文件系统,它的稳定性关乎整个生态系统的健康。本文介绍了HDFS相关的重要监控指标,分享指标背后的思考。


HDFS监控挑战




  • HDFS是Hadoop生态的一部分,监控方案不仅需适用HDFS,其他组件如Yarn、Hbase、Hive等,也需适用




  • HDFS API提供的指标较多,部分指标没必要实时采集,但故障时需能快速获取到




  • Hadoop相关组件的日志,比较重要,如问题定位、审计等




  • 监控方案不仅能满足监控本身,故障定位涉及指标也应覆盖




Hadoop监控方案


Hadoop监控数据采集通过HTTP API,或者JMX。实际中,用到比较多的产品主要有:CDH、Ambari,此外,还有部分工具,如Jmxtrans、HadoopExporter(用于Prometheus)。


CDH为Cloudera公司开源的一款集部署、监控、操作等于一体的Hadoop生态组件管理工具,也提供收费版(比免费版多提供数据备份恢复、故障定位等特性)。CDH提供的HDFS监控界面在体验上是非常优秀的,是对HDFS监控指标深入发掘之后的浓缩,比如HDFS容量、读写流量及耗时、Datanode磁盘刷新耗时等。


Source: HDFS监控背后那些事儿,构建Hadoop监控共同体

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

admin

  • *****
  • 0
  • +0/-0
  • 性别: 男
  • SoftPlus 资深程序员
    • 查看个人资料
    • http://www.softplus.org
InfoQ_Puppet 监控速查手册:问题 / 原因→解决方案
« 回复 #5519 于: 九月 16, 2019, 04:04:18 am »
Puppet 监控速查手册:问题 / 原因→解决方案

Puppet是基于C/S架构的集中配置管理系统,基于自有描述性语言,可以实现对配置文件、用户、定时任务、软件包、系统服务等管理,保证大规模集群基础配置一致性。


我们用Puppet管理了上千台服务器,经过多次优化监控,自动化灰度发布保证了所有集群基础配置一致性。本文探讨了如何对Puppet系统进行监控,也将典型问题和解决方案一并分享给大家。


监控选型


Foreman提供了较全面的交互设施,包括Web前端、CLI和RESTful API。在此基础之上,可以构建监控管理系统,以及实现报警等功能。


核心业务流程


可以简单将Puppet的工作流程抽象为四部分:




  • 请求阶段:Agent基于SSL将自身信息发送给Server;




  • 响应阶段:Server基于客户端信息解析相应的配置,并最终将伪代码(catalog)发送回Agent;




  • 执行阶段:Agent接收catalog并执行命令或者更新文件;




  • 汇报阶段:Agent把结果汇报给Server。





Source: Puppet 监控速查手册:问题 / 原因→解决方案

InfoQ 促进软件开发领域知识与创新的传播
http://www.infoq.com/cn/
软佳科技有限公司 http://www.softplus.org
软佳医疗软件 http://www.ynhis.com
最新Linode VPS 优惠码新用户注册省10美元:Active Linode $10 Coupon

 

Sitemap 1 2 3 4 5 6 7 8 9