为什么大公司一定要使用 DevOps?

究竟什么是DevOps? 要想回答这个问题,首先要明确DevOps这个过程参与的人员是谁,即开发团队和IT运维团队。那么,DevOps的意图是什么呢?即在两个团队之间,建立良好的沟通和协作,更快更可靠的创建高质量软件。

事实上,并不是这两个团队之间的协作帮助交付了更好的软件,而是“开发”和“运维”团队之间的统一导致了软件的改进,并以更快的速度交付。我们不要忘记DevOps工具在实现自动化方面所扮演的角色。

开发和运维“一体”的感觉是由开发人员和操作工程师之间的技能组合和实践的桥接以及自动化(DevOps)工具的实现引起的。世界各地的大型互联网公司都已采用DevOps方法来彻底改进其性能、安全性和团队动态。

在本篇文章中,让我们看看什么是DevOps,以及它为什么如此重要。我们将跟踪DevOps软件开发方法的演变,然后探索什么是DevOps及其生命周期,并通过评估世界顶级公司,来看看如何使用DevOps来获得益处。

继续阅读

HTTPS工作原理

在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效地防止这些问题。本文我们就了解一下 HTTPS。

一、什么是 HTTPS

HTTPS,是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。经常会在 Web 的登录页面和购物结算界面等使用 HTTPS 通信。使用 HTTPS 通信时,不再用http://,而是改用https://。另外,当浏览器访问 HTTPS 通信有效的 Web 网站时,浏览器的地址栏内会出现一个带锁的标记。对 HTTPS 的显示方式会因浏览器的不同而有所改变。

继续阅读

程序员吐槽:我永远不会再为 Oracle 工作了

近日,某网友在 Hacker News 上发起了一个 “你见过的最糟糕的代码是什么?” 的问题,引起了广泛关注和讨论,评论数已接近600条。其中,一位 ID 为“oraguy”的程序员对 Oracle 数据库代码的吐槽,更是引发热议。

内容大意如下:

Oracle 数据库 12.2。它有近 2500 万行 C 代码。

这有多恐怖,简直难以想象!你无法在不破坏成千上万个现有测试的情况下更改产品中的单行代码。好几代程序员在有限的项目期限内编写了这些代码,其中充斥着大量的垃圾代码。

非常复杂的逻辑、内存管理、上下文切换等,这些都用数千个 flag 连接起来。整个代码充斥着神秘的宏命令,如果不拿出笔记本,并且手动去展开相关的宏命令,就无法理清楚这些命令。甚至可能需要一两天才能真正理解某个宏命令的作用。

有时你需要理顺 20 个不同 flag 的值和效果来预测代码在不同情况下的行为方式。有时多达数百个 flag !这一点也不夸张。

这个产品仍然存活并且仍然可用的唯一原因是数百万次的测试!

以下是 Oracle 数据库开发人员的日常:

  • 开始处理一个新的 bug 。
  • 花两周的时间试图理解 20 个不同的 flag ,这些 flag 以神秘的方式相互交互,导致这个困境。
  • 再添加一个 flag 来处理新的特殊场景。添加几行代码来检查此 flag ,并解决有问题的情况,规避该 bug 。
  • 将更改提交到包含大约100-200台服务器的测试服务器集群,这些服务器将编译代码,构建新的 Oracle 数据库,并以分布式方式运行数百万个测试。
  • 回家。第二天来上班,继续处理别的 bug 。测试可能需要20-30个小时才能完成。
  • 再回家。再来上班,检查你的集群测试结果。顺利的话,会有大约100个失败的测试。倒霉的话,将有大约1000个失败的测试。随机选择一些测试并试图搞清楚你的假设出了什么问题。或许还需要考虑10多个 flag 才能真正理解 bug 的本质。
  • 再添加一些 flag 以尝试解决问题。再次提交更改以进行测试。再等20-30个小时。
  • 来来回回重复两周,直到你得到了将这些 flag 组合起来的“神秘咒语”。
  • 终有一天,你会成功,不再出现测试失败。
  • 为你的新更改添加100多个测试,以确保下一个不幸接触这段新代码的开发人员永远不会破坏你的修复。
  • 提交最后一轮测试的成果。然后提交以供审核。审查本身可能还需要2周到2个月。所以现在继续去处理下一个 bug 。
  • 在2周到2个月之后,一切已就绪,代码将最终合并到主分支中。

以上就是对在 Oracle 修复 bug 的程序员日常生活的描述,一点也不夸张。现在想象一下开发新功能会有多么恐怖。开发一个小功能需要6个月到1年的时间(如果是添加一种新的身份验证模式,比如支持 AD 身份验证,可能需要2年)。

这款产品本身就是一个奇迹! 继续阅读

自动化来势汹汹,未来的程序员该何去何从?

特色

编者按:AI、自动化,这些技术进步不仅威胁到到了其他行业的工作,甚至有声音认为,连开发这些技术的程序员其自嘲的“码农”地位都将不保。比方说,OpenAI前研究科学家Andrej Karpathy就认为,在AI引领的软件2.0趋势下,传统程序员真的有可能要失业了。不过,跟Tyler Elliot Bettilyon相比,这些都是对程序员未来的片面看法,相对而言,他对程序员未来的工作前景分析更加全面客观,值得从业者好好看看,思考未来作何选择。

我的一位朋友最近提出了一个问题,这样的问题我在不同场合都听说过,只是形式各不相同:

你是否认为IT和一些低端的编程工作会重蹈渡渡鸟的覆辙?看起来一场大规模的就业泡沫似乎就要破裂了。在我看来,技术和低端计算机科学相关工作之所以还“久负盛名”并且拿到不菲的报酬的其中一个原因,是那些荒谬的行话以及公众对计算机的无知,但这两个在未来10年都会消失……

这个问题同时指向了两点,一是技术工作的未来,二是对软件工程领域的普遍误解。虽说有大量“荒谬的行话”没错,但是还有同样多的困难问题等着那帮有着合适技能组合的人去解决也是事实。一些软件工作绝对是要消失的,但在很多年的时间里有着合适经验和知识的一些程序员仍然会继续享有声望并且拿到可观的报酬;作为例子可以看看最近AI研究人员薪水的爆发以及可用人才的相应短缺就知道了。

在不断变化的技术业能够保持与时俱进是个挑战。通过审视取代现在哪些程序员的技术可以预测出市场的那些岗位会消失。此外,要想预测特定技能薪酬和需求变化我们应该考虑学习编程群体的壮大情况。就像Hannah指出“公众对计算机的无知”导致了那些会编程的人工资高企一样,大众对计算机的认知正在逐年变得更加娴熟。 继续阅读

浅谈人工智能:现状、任务、构架与统一

特色

作者:朱松纯
加州大学洛杉矶分校UCLA
统计学和计算机科学教授
视觉、认知、学习与自主机器人中心主任

来源:2017年11月02日 刊登于 《视觉求索》微信公众号


继续阅读

Google 发布 Android 8.0 Oreo

Google正式发布下一代Android操作系统。版本命名被证实为Android Oreo,奥利奥。

Android8

8.0系统将带来全新的提醒系统、全新的emoji 、以及画中画支持等多项新功能。

Android8 new messaging Android8 new messaging system Android8 new emoji

Nexus 5X/ Nexus 6P/ Nexus Player以及部分Pixel/Pixel C/Pixel XL版本将直接得到官方OTA升级。

关于命名。其实,一开始传出Android O是指Oreo奥利奥的时候,大多数人都以为只是个笑话。我怀疑,最终方案背后,八成有卡夫食品的推动。从结果看,Oreo已瞬间成为热词,本季销量怎么着也得上升50吧%…

这一点上,国内ROM厂商也可以动动脑筋嘛。像MIUI,版本命名如果也能与时俱进…比如,这样?;)

MIUIloganma

微软宣布调整组织架构,史蒂芬·艾洛普出局

微软日前宣布新一轮组织架构调整(Re-organization)。

特里·迈尔森(Terry Myerson)将带领新组建的Windows和设备部门(Windows and Devices Group),将硬件和操作系统归入一个部门。

微软CEO纳德拉表示,调整后的组织架构能够以更快的速度提供更好的产品和服务,并实现三大核心战略。

本次调整之后,前诺基亚CEO史蒂芬·埃洛普(Stephen Elop)将离职。此前他是推动微软收购诺基亚移动产品业务的功臣,在两者合并后加入微软。

Elop 继续阅读

Android与ChromeOS的融合与互联:Google生态系统浮出水面

刚刚落幕的2014 Google I/O (谷歌2014开发者大会)之上,Google公布了一系列振奋人心的软硬件更新。我个人四年前关于“Android与ChromeOS将走向融合”的预测,也终于在Android创始人安迪罗宾(Andy Robin)去职、桑达劈柴(Sunder Pichai)接任掌门之后一年,如约印证。

此刻,一个完整的Google生态系统正式浮出水面。Google-IO-640x353

新的变化:融合+互联

1. Android及Chrome OS的UI设计风格走向统一(Android L)
2. 新版Chrome OS开始支持Android应用直接运行,Google移动平台上的优势回流桌面系统
3. 包括Android手机,Android平板,Chromebook笔记本,Google TV,以及即将到来的Android Auto车载系统、Android Wear可穿戴设备等等在内的Google多平台硬件产品,实现#无缝互联#。应用场景众多,简单举例,终端用户将能随时用智能手表查阅手机端的各项通知、以手机解锁和登陆Chromebook笔记本、或者在Chromebook/Android平板查看短信、接听来电……简直跟苹果的Handoff一样美妙!╮( ̄▽ ̄)╭

继续阅读

任正非:只要20年后我们还活着

本文选摘自任正非先生日前在与华为消费者BG注:Business Group)管理团队的午餐会上发表的讲话。

renzhengfei

在大机会时代,千万不要机会主义,我们要有战略耐性。

消费者BG一定要坚持自己的战略,坚持自己的价值观,坚持自己已经明晰的道路与方法,稳步地前进。成吉思汗的马蹄声已经远去,现代的躁动也会平息,活下去才是胜利。

消费者BG这两年来,从过去的低能状态已经开始走到有一定能量的状态,如果没有你们上万员工的努力,也就没有消费者BG的今天,这一点我们要肯定并祝贺!

但是我们现在要清楚“我是谁,从哪里来,准备到哪里去?”

今天之所以与大家沟通,就是担心你们去追求规模,把苹果、三星、小米作为目标,然后就不知道自己是谁了。当然要向苹果、三星、小米学习他们的优处,但不要盲目对标他们。 继续阅读