年终总结的意义在于,总结过去,展望未来。在这即将过去的 2017 年,技术圈发生了哪些年度大事件?让 InfoQ 陪您一起盘点。2018 会如何精彩,我们一起期待!注:因篇幅有限,烦请各位读者评论区查漏补缺!
那些重磅的技术发布
Java 9 发布
2017 年 9 月 22 日,在历经多次跳票之后,Java 9 终于在千呼万唤中正式发布。后,Java 9 终于在千呼万唤中正式发布。JDK9 提供超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具 jshell,以及安全增强、扩展提升、性能管理改善等。同时发布的还有 Java EE 8 。
Visual Studio 2017 发布
Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试、实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航、IntelliSense、重构、代码修复和调试等等。无论使用哪种语言或平台,都能节省开发者在日常任务上花费的时间和精力。此外,该版本还带来了一个新的轻量化和模块化的安装体验,可根据需要量身定制安装。多个增强功能汇集在一起,使 Visual Studio 2017 的启动速度比 Visual Studio 2015 快 3 倍,解决方案加载时间缩短 2-4 倍。
SQL Server 2017 发布
美国时间 2017 年 10 月 2 日,微软最新一代数据库 SQL Server 2017 正式发布。SQL Server 2017 带来了一系列全新的功能与设计,体现了微软在数据平台建设方面的最新思考和实践。微软 SQL Server 数据库,是商业关系型数据库阵营中的杰出代表,在 DB-Engines 数据库流行度排行榜上常年位居前三。
Go 1.9 发布
发行说明中最突出得的是包含语言,标准库,以及运行时的诸多变化。这个版本中的大部分工作都是对运行时和工具的改进。对语言的最重要的改变是引入类型别名:支持渐进代码修复。新的 math/bits 包提供了无符号整数的位计数和操作功能,如果可能的话,由特殊 CPU 指令实现。sync package 增加了一个新的 Map 类型,提升并发访问安全。等等。
TensorFlow 1.0 发布
Google 2 月中旬在加利福尼亚州山景城举行了首届 TensorFlow Dev 峰会,在会上,Google 宣布正式发布 TensorFlow 1.0 版本。TensorFlow 是谷歌在 2015 年发布的第二代开源机器学习系统,目前已被广泛应用。随着完善和成熟,也增加了许多功能,包括分布式训练,支持 Hadoop 分布式文件系统(HDFS)和良好的 Parsey McParseFace 语言解析器等等。
Swift 4.0 发布
在上个版本发布一年之后,苹果开发者 Ted Kremenek 宣布 Swift 编程语言发布 4.0 版,改进了稳定性,提供了更强的鲁棒性,保持与 Swift 3.0 的源码兼容,改进了标准库,引入了新功能如归档和序列化。语言方面的变化包括:更快更易于使用的 String 实现,维持 Unicode 正确性,加入支持创建、使用和管理字串;改进 Collection 类型的创建、使用和管理,等等。包管理器引入了新的工作流特性和更完整的 API。更多可浏览发布公告。
Apache Kafka 1.0 正式发布
Kafka 从首次发布之日起,已经走过了七个年头。从最开始的大规模消息系统,发展成为功能完善的分布式流式处理平台,用于发布和订阅、存储及实时地处理大规模流数据。来自世界各地的数千家公司在使用 Kafka,包括三分之一的 500 强公司。而更为激动人心的是,Kafka 现在正式迎来了 1.0.0 版本!
Android 8.0 发布
谷歌正式发布了 Android 8.0 的正式版,其正式名称为:Android Oreo(奥利奥)。Android 8.0 主打最近大热的人工智能,通过让机器自己学习进而提升效率,设备可以自动去识别和判断软件的使用频率来选择关闭或者保留,而不是通过长时间未使用而进行关闭,从而达到省电省资源的目的;而且通过人工智能,机器可以自动去管理推送和位置更新等服务,让用户可以省去管理定位等服务的时间;新的系统还重新设计了部分页面、UI 和图标,对通知中心等界面还做了大规模的改动与设计;引入了画中画的强化版,除了可以随意拖动小屏幕位置外还能更加流畅的对主界面进行操作,大大提升效率。
iOS 11 发布
苹果发布了 iOS 11 正式版。苹果新闻稿称它是 iPad 迄今为止最重大的软件更新,引入了大量增强现实应用,新的 Dock 方便用户在多个应用之间切换,改进照片应用和语音助手 Siri,改变 App Store 设计,等等。Ars 发表了一篇长文评测,赞同苹果的说法,称新系统给 iPad 带来了巨大变化。许多 iPad Pro 用户表示,iOS 11 让他们可以真正在平板上工作了,在响应和流畅上平板胜过了 macOS 或 Windows 笔记本电脑。
Spring 5.0 版本发布
Spring 官方博客 9 月 28 日撰文宣布了 Spring Framework 5.0 GA 版本的正式发布。该版本耗时 2 年,带来了一系列全新特性,包含对 JDK 9 和 Java EE 8 API(如 Servlet 4.0)的支持,全面集成 Reactor 3.1、JUnit 5 和 the Kotlin 语言,以及一个响应式 Web 框架 Spring WebFlux。Spring 5.0 最低要求 JDK8。
Node.js 发布 v8.0.0
Node.js 基金会宣布发布 Node.js v8.0.0。新版主要的特性包括:npm 客户端升级到 5.0.0 版;基于 Chrome JS 引擎 V8 升级到 v5.8;Node.js API (N-API) 允许创建原生扩展,编译一次可在多个 Node 版本中使用;更新 async_hooks 模块;完整支持 WHATWG URL API 解析器;Buffer API 引入了大量新变化;新的 util.promisify () API; console 模块加入 console.log () 和 console.error (),等等。Node.js v8 将是下一个长期支持版(LTS)。
React v16.0 发布
开源 JavaScript 库 React 发布了 v16.0。主要新特性包括:新的渲染返回类型,改进错误处理,Portals,重写了服务器渲染器,支持串流,改进了服务器端渲染,支持定制 DOM 属性,以及最瞩目的一个变化是许可证从“BSD+ 专利”改为 MIT,昨天发布的 React 15.6.2 也切换到了 MIT 许可证。此前由于许可证争议,许多知名项目在采用 React 上犹豫不决甚至拒绝,Facebook 因此决定切换到更方便使用的 MIT。
.NET Core 2.0 终于发布
.NET Core 2.0 的最终版本终于发布了。这是 .NET 开源跨平台的一个重大里程碑, 也是很多支持者、社区、公司共同努力的结果。开发者们可以采用命令行、自己喜欢的文本编辑器、Visual Studio 2017 15.3、Visual Studio Code、或者 Visual Studio for Mac 开始首个 .NET Core 2.0 项目的开发。 .NET Core 2.0 也已经可以支持生产环境的负载,无论是运行在你自己的硬件设备还是你最喜爱的云平台(如 Microsoft Azure)。
开源让世界更美好
百度开源其 RPC 框架 brpc
9 月 14 日,百度正式在 GitHub 上基于 Apache 2.0 协议开源了其 RPC 框架 brpc。brpc 是一个基于 protobuf 接口的 RPC 框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有 RPC 协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc 的性能领跑于其他同类 RPC 产品。brpc 开发于 2014 年,主要使用的语言是 C++ 和 Java,是百度内部使用最为广泛的 RPC 框架,它经受了高并发高负载的生产环境验证,并支撑了百度内部大约 75 万个同时在线的实例。
宜信正式开源其支撑 AIOps 三大利器:UAVStack,Wormhole,DBus
9 月 11 日,宜信正式在 GitHub 上基于 Apache2.0 协议开源其支撑 AIOps 三大利器:UAVStack,Wormhole,DBus。宜信智能运维目标是建立以任务机器人为中心的系统“自主运行闭环”,分三步实现:全维监控,全维关联,全维智能。任务机器人通过 UAVStack 感知现实世界,DBus+Wormhole 的数据计算支持其自主决策。其中,UAVStack 提供了面向应用 / 主机性能,日志,服务图谱,调用链,线程分析,多模式报警等全方位监控运维能力,全维度监控数据是智能运维的基石。DBus 提供了多源数据流清洗 / 格式化 / 计算能力,类似数据管道,实时地将全维监控数据统一成 UMS 格式推送到数据计算端。Wormhole 是大数据流处理和计算平台,提供基于 UMS 格式全维监控数据的机器学习和统计模型计算能力。
苹果在 GitHub 上正式开源 iOS 内核源码
尽管苹果公司长期以来一直强调其曾为各类开源项目作出重要贡献,但其所掌握的众多技术显然仍属于闭源阵营。然而,来自库比蒂诺的这位技术巨头如今开始在 GitHub 上公布负责支持其旗舰级操作系统的 XNU 内核源代码。所谓 XNU,实际上是“XNU is Not Unix(是 XNU,不是 Unix)”的缩写,属于 macOS(包括以往全部版本)以及 iOS 所使用的类 Unix 内核。通过公开内核代码,苹果公司将帮助开发人员更轻松地理解其设备与更高软件层同内核之间的协作原理。目前尚不清楚此举能够具体为开发人员带来多大程度的帮助,但这应该属于苹果方面为了吸引更多开发支持者而采取的举措之一。
Facebook 开源大规模预测工具 Prophet
Facebook 开源了一个可以通过 Python 和 R 语言使用的预测工具 Prophet。Facebook 表示,Prophet 相比现有预测工具更加人性化,并且难得地提供 Python 支持。另外,它生成的预测结果足以和专业数据分析师媲美。从 Facebook 官方声明来看,推出 Prophet,是希望用它来替代 forecast,成为最受欢迎的预测工具。
Google 开源 Abseil
Google 公开了其项目内部使用的一系列 C++ 库,随后还会公开其 Python 库。Abseil 已在 Google 历经十多年的开发,它的目的是为 Google 编程人员在各种项目上的工作需求提供支持,这些项目包括 Protocol Buffers、gRPC 和 TensorFlow 等。
阿里宣布 Atlas 开源
3 月 13 日,手机淘宝安卓客户端容器化框架 Atlas 正式宣布开源。Atlas 由阿里巴巴移动团队自研,以容器化思路解决大规模团队协作问题,实现并行开发、快速迭代和动态部署,适用于 Android 4.x 以上系统版本的大小型 App 开发。
https://github.com/alibaba/atlas
阿里巴巴开源自研容器技术 Pouch
11 月 19 日上午,在中国开源年会现场,阿里巴巴正式开源了基于 Apache 2.0 协议的容器技术 Pouch。Pouch 是一款轻量级的容器技术,拥有快速高效、可移植性高、资源占用少等特性,主要帮助阿里更快的做到内部业务的交付,同时提高超大规模下数据中心的物理资源利用率。开源之后,Pouch 成为一项普惠技术,人人都可以在 GitHub 上获取,GitHub 项目地址:
https://github.com/alibaba/pouch
腾讯开源基于微服务的平台 Tars
Tars 取名于电影“星际穿越”中的机器人,是腾讯内部使用将近十年的基于微服务的统一应用框架 TAF(Total Application Framework),目前腾讯有 160 多个业务(如手机浏览器、应用宝、手机管家等)在 1.6 多万台服务器上使用 Tars。
Tars 主要是支持多语言的高性能 RPC 开发框架和配套一体化的服务治理平台,可以帮助企业或者用户以微服务的方式快速构建稳定可靠的分布式应用。目前开源的 Tars 支持 C++、Java 两种语言,同时 Node.js 语言的 Tars 开源地址为:
https://github.com/Tencent/Tars
微信开源 PhxQueue
PhxQueue 是微信开源的一款基于 Paxos 协议实现的高可用、高吞吐和高可靠的分布式队列,保证 At-Least-Once Delivery,在微信内部广泛支持微信支付、公众平台等多个重要业务。开源地址:
https://github.com/Tencent/phxqueue
SkyWalking 加入 Apache 孵化器
2017 年 12 月 8 日,Apache 软件基金会孵化器项目管理委员会 ASF IPMC 宣布 “SkyWalking 全票通过,进入 Apache 孵化器”。SkyWalking 开源项目由吴晟于 2015 年创建,同年 10 月在 GitHub 上作为个人项目开源。SkyWalking 项目的核心目标,是针对微服务、Cloud Native、容器化架构,提供应用性能监控和分布式调用链追踪能力。
CarbonData 成为 Apache 软件基金会顶级开源项目
2017 年 4 月,Apache 软件基金会宣布,华为贡献给 Apache 社区的开源项目 CarbonData 从 Apache 孵化器毕业,正式成为 Apache 顶级项目(TLP)。CarbonData 是一种大数据高效存储格式解决方案。针对当前大数据领域分析场景需求各异而导致的存储冗余问题,CarbonData 提供了一种新的融合数据存储方案,以一份数据同时支持多种大数据应用场景,并与 Apache 社区的 Hadoop、Spark 等组件实现无缝集成。华为从 2013 年开始研究 CarbonData 解决方案,并在 2015 年将该方案开源贡献给 Apache 社区。
里程碑式的大事件
谷歌在中国成立人工智能研究中心
在 Google Developer Day China 2017 峰会的现场,eveloper Day China 2017 峰会的现场,Google Cloud 人工智能和机器学习团队的首席科学家李飞飞正式宣布谷歌 AI 中国中心成立。该中心由李飞飞和 Google Cloud 研发负责人李佳博士共同领导。李飞飞将会负责中心的研究工作,也会统筹 Google Cloud AI, Google Brain 以及中国本土团队的工作。除了发表自己的研究成果,谷歌 AI 中国中心也非常期待能在中国本土合作上有所建树,为更广大的学生及研究人员提供高质量 AI 及机器学习的教育支持。
李飞飞表示:“我们很珍惜这次 Google 与中国顶尖 AI 人才合作的机会,这些人才,势必也是全球顶尖的 AI 人才。千里之行,始于足下,我们由衷希望,这将成为谷歌 AI 中国中心长期发展的第一步。”
阿里巴巴成立达摩院
10 月 11 日上午,在 2017 杭州·云栖大会上,阿里巴巴集团正式宣布成立承载“NASA 计划”的实体组织——“达摩院”,进行基础科学和颠覆式技术创新研究。未来 3 年内,阿里巴巴在技术研发上的投入将超过 1000 亿人民币。同步揭晓的“达摩院”学术咨询委员会阵容空前强大,首批公布的十人中有三位中国两院院士、五位美国科学院院士,其中包括人工智能领域世界级泰斗 Michael I. Jordan、“人类基因组计划”领军人物 George M. Church。作为最高学术咨询机构,学术委员会对研究方向、重点发展领域、重大任务和目标等学术问题提供咨询建议。
百度推出 Apollo 计划
2017 年 4 月 19 日,百度宣布开放自动驾驶平台,在这个取名“Apollo”的新计划中,百度表示将向汽车行业及自动驾驶领域的合作伙伴提供一个开放、完整、安全的软件平台,帮助他们结合车辆和硬件系统,快速搭建一套属于自己的完整的自动驾驶系统。据百度方面称,即将推出的 Apollo 项目提供一套完整的软硬件和服务的解决方案,包括车辆平台、硬件平台、软件平台、云端数据服务等四大部分。
苹果在贵州建立数据中心
Apple 宣布在中国业务扩张,在贵州省建立其在中国的第一个数据中心。通过与当地的互联网服务公司,云上贵州大数据产业发展有限公司合作,该数据中心将会和 Apple 在全世界所有其他数据中心一样,100% 由可再生能源供电。具体的合作细节方面,苹果公司将在贵安新区注册实体公司,与云上贵州公司合作建设 iCloud 贵安新区主数据中心,由云上贵州公司运营,苹果公司提供技术支持。云上贵州公司将运营支撑 iCloud 服务的全国数据中心,主数据中心将在贵安新区建设,投资将达到 10 亿美元。
AWS 宁夏区域开放
2017 年 12 月 12 日,西云数据与 AWS(亚马逊)共同宣布:由西云数据运营的 AWS 宁夏区域正式开放。加上此前 AWS 中国与光环新网合作开放的北京区域,这是 AWS 在中国开放的第二个区域。加上此前的孟买、首尔、新加坡、悉尼、东京,本次开放的宁夏区是 AWS 在亚太地区开放的第七个区域。
频发的网络安全事故 MongoDB 勒索事件
2017 年 1 月,无须身份验证的开放式 MongoDB 数据库实例遭受多个黑客组织的攻击,被攻破的数据库内容会被加密,受害者必须支付赎金才能找回自己的数据。攻击者利用配置存在疏漏的开源 MongoDB 数据库展开了一系列勒索行为。
此次针对 MongoDB 的攻击非常简单,利用了配置有误且可公开访问的数据库,无须具备相应的管理员凭据即可展开攻击。一旦攻击者登录到开放的数据库,随后会全面夺取控制权并窃取或加密数据库,被勒索的受害者必须支付赎金才能找回自己的数据。一些安全战略师表示这次 MongoDB 事件是意料之中,甚至还有人不解“攻击者为什么等到现在才开始下手”。在一些技术实践者看来,最大的安全问题,很可能源自不规范的使用,而不是 MongoDB。
Elasticsearch 遭大范围劫持
同样是在 2017 年 1 月,经过在 MongoDB 各服务器间长达数日的肆虐,一群恶意分子又开始将其劫持矛头指向 ElasticSearch 服务器,并要求受害者支付类似的赎金。第一波针对 ElasticSearch 服务器所有者的打击发生于 1 月 12 日,其中部分受害者通过 ElasticSearch 论坛反映了相关情况。
根据已经报告的勒索说明,攻击活动似乎全部源自同一黑客组织,名为 P1l4tos。留言中写明:如果希望恢复你的数据库,向以下钱包中发送 0.2 比特币。作为持续关注此前 MongoDB 攻击活动的安全研究人员之一,Niall Merrigan 已经开始追踪本轮 ElasticSearch 攻击活动。截至本文撰稿(1 月 20 日前)时,Merrigan 在 twitter 上的最新报告称已经有超过 800 台服务器遭受劫持。
WannaCry 病毒肆虐
WannaCry(又称为 WanaCrypt0r 2.0)是一款电脑勒索病毒,通过电子邮件传播。该病毒会加密用户的数据,然后要求用户付款作为解锁数据的交换。从 2017 年 5 月 12 日开始,该病毒攻击了包括西班牙、英国、意大利、俄罗斯、中国在内的众多国家。据《卫报》报道,在西班牙,包括电信公司 Telefónica 在内的许多大公司都被感染。在英国,国民健康服务体系(NHS)因为受到攻击而运营中断,X 光检查无法进行,检查结果和病历无法访问。在中国,众多高校内网因 WannaCry 病毒攻击而告瘫痪。
Structs 2 爆高危漏洞,影响范围极大
Apache Struts2 作为世界上最流行的 Java Web 服务器框架之一,3 月 7 日带来了本年度第一个高危漏洞——CVE 编号 CVE-2017-5638。其原因是由于 Apache Struts2 的 Jakarta Multipart parser 插件存在远程代码执行漏洞,攻击者可以在使用该插件上传文件时,修改 HTTP 请求头中的 Content-Type 值来触发该漏洞,导致远程执行代码。Struts 作为一个“世界级”开源架构,影响了包括中国、日本、北美、欧洲在内的绝大部分互联网世界。
GitLab 误删除事件
2017 年 1 月 31 日 18:00(UTC 时间),GitLab 通过推特发文承认 300GB 生产环境数据因为 UNIX SA 的误操作,已经被彻底删除(后发文补充说明已经挽回部分数据),引起业界一片哗然。2017 年 2 月 1 日 18:14(UTC 时间),GitLab.com 恢复在线。通过使用一个之前的 6 小时备份数据库,GitLab 申明 1 月 31 日下午 17:20(UTC 时间)至晚上 23:25(UTC 时间)之间的数据已经被恢复并可以在生产环境使用,包括项目、问题、合并请求、用户、注释等等。
AWS 宕机事件
2017 年 3 月,AWS S3 服务中断,主要影响美国东海岸 US-EAST-1 区的 S3 储存服务,到 5:08 pm ET 亚马逊宣布所有服务恢复正常。此次事故影响了大量流行的网站和服务,其中包括 Airbnb、 Pinterest、Time,、CNBC、Docker、IFTTT、isitdownrightnow.com、Medium、Microsoft’s HockeyApp、News Corp、Quora、Razer、Slack、SEC 和 Zendesk 等。
他们是小人物,却溅起了大水花
网传华为清退 34 岁员工事件
有关华为裁员的传闻成为坊间热议话题。这些传闻引用的是华为内部论坛“心声社区”的帖子,一位匿名发帖人声称,听见主管表示“华为中国区开始集中清理 34+(34 岁以上)的交付工程维护人员,研发开始集中清退 40+(40 岁以上)的老员工”。此后华为官方表示,网上所传华为正在清理 34 岁以上员工消息,纯属谣言。对于该消息,华为内部员工称,” 从没听说过,我都快 40 了,仍在岗位上,而且华为一直重视员工成长。”
WePhone 开发者自杀
9 月 8 日,有消息称 WePhone 开发者苏享茂因遭遇骗婚被前妻所逼,遭索要 1000 万元和房产赔偿后自杀身亡。在某海外社交媒体上,一个疑似苏享茂本人的账号发文称,他在世纪佳缘上结识了自己的妻子翟某某,随后遭遇骗婚。翟某某以威胁其产品功能处于灰色地带并对其举报为名,要求索要 1000 万赔偿,并附带一处三亚的房产。
中兴 70 后程序员坠楼身亡
网友寒夜来客 12 月 14 日发在美篇上一篇文章称,她老公欧某某于 12 月 10 日在中兴通信跳楼身亡。欧某某出生于武冈市法新的一个农村家庭,从小学习成绩优秀,本科考入北京航空航天大学,毕业后曾在深圳华为公司工作 8 年,在此期间又通过自己的努力考取南开大学的硕士研究生。如今突然发生这种悲剧,令人惋惜!
微博服务器宕机,程序员新婚当天修服务器
十一期间,鹿晗、关晓彤微博公布恋情。此微博刚一发出就引爆网络,甚至因流量过大一度引发服务器瘫痪。名为“丁振凯”的网友在微博中自称是加班的程序员之一,他发微博说自己“一边结婚一边扩容”,并在下午 4 点多服务器稳定后“埋怨”鹿晗,称:“服务器稳定了,岳父喊我喝酒去了,都是鹿晗干的好事!”。随后,鹿晗看到这名工程师结婚加班的事,托工作人员向那位工程师转达他的歉意。