阅读更多
Mesosphere的高级研究分析师Derrik Harris(原是GigaOM编辑,到访过CSDN)最近采访了Google负责基础设施的副总裁Eric Brew,谈到了容器技术、Kubernetes、云计算当然还有CAP。



Eric Brew,美国工程院院士和ACM Fellow,是著名的分布式系统专家,32岁就拿到加州大学伯克利分校教授个人网页),提出了分布系统中非常重要的CAP定理。他也是搜索技术先驱Inktomi(李彦宏曾经在这里任职)的联合创始人和首席科学家。他在伯克利培养了David Wagner(伯克利教授)、Armando Fox(伯克利教授,Intel )、Matt Welsh(曾在哈佛大学后来转到Google)和周枫(网易高级副总裁、有道的负责人)等人才。

下面是采访的要点:

在采访中,Brewer提到他现在主要的工作重点之一就是Kubernetes和容器,会推动Google往这个方向做更多事情。Google以及Inktomi历史上之所以都没有采用虚拟机管理集群,原因是那时候还没有或者不知道现代虚拟机技术,只能在裸硬件上用Unix的进程模型,用进程来做所有事情,在一个硬件上运行多个进程。Google主要系统自始至终都没用虚拟机,只有后来为了运行第三方的一些企业应用,才有一点。

此后,基于虚拟机的IaaS革命来了,各种开源工具和管理环境都是围绕虚拟机的管理和运行开发的。

容器和Kubernetes有一点返璞归真的意思,但抽象层次更高。Google开发Linux容器就是为了使运行在同一机器上的不同作业能够实现性能隔离,容器是Google内部非常基础的技术。



Kubernetes的架构图

Brewer承认,Kubernetes开源后的火爆超出预期,GitHub上每天多达40个提交和评论让他们忙不过来。

Kubernetes并没有使用Google内部系统Borg和Omega的代码,但开发者是同一拨人。Kubernetes尤其是pod和标签相关的一些元素,都是吸取了Borg和Omega系统的经验教训,因此要好很多。最终Kubernetes一些方面与Borg会非常相似,比如使用IP地址的方式,但有些方面比如标签,Kubernetes会比内部系统好得多。要知道,那些经验教训可是来之不易的啊。

Brewer强调,对于开发者而言,将系统部署在Kubernetes这样的容器化系统上,有很多好处。Kubernetes的作用其实是提供应用的长期视角。

容器最初的价值是开发环境(包括程序员的笔记本)与云端部署环境一致。Docker这方面非常出色,但之后呢?Kubernetes回答了这个问题:你可以运行一组容器,以可控的方式升级、导入流量,可以按容器数量扩展服务,因此负载增加时就能方便地增加容量。这些运维方面的方便是Kubernetes的重要价值。

过去几十年分布式系统的发展,Brewer认为核心是云计算兴起使开发者能够把精力花在应用本身上,不用再操心操作系统啊、安全补丁啊、服务器用多大啊、容量规划啊之类的资源运维问题,应用就是一组服务而已。比如SnapChat完全基于GAE,他们一个运维人员都没有。

当然,GAE和其他PaaS平台也有局限,就是不够通用,只能适合某些场景。比如GAE适合网站,Heroku适合与Salesforce集成相关的事情,Engine Yard适合RoR技术栈。

GAE正在试图通过托管虚拟机来逐渐变得更加通用,但是Brewer自己认为很可能能使GAE真正能通用化的是容器。“问题在于,我们是否能将GAE的优点带到容器世界。……这并非易事,但方向是这样的。”

对于自己的学术代表作CAP,Brewer说,很多NoSQL项目都用CAP定理来为自己所作的设计决策证言,但其中有些并不正确。但他认为过去十年广泛地探索不同数据管理系统,是非常有益的,从中获得了许多宝贵经验。架构师工作就是在不同场景下对互相矛盾的考虑因素进行细致而困难的微调。(另外可以参考他在IEEE Software的CAP十二年回顾文章。)

他还提到,事实上金融系统也不是基于一致性的,他们依赖的是审计和赔偿。他们甚至不知道什么CAP定理,只是按照需求做出设计决策而已。当然,他们所作的是正确的决策。比如ATM机在断网的情况下,用户还能取一次小额的现金,从而保证可用性,但不允许再次取款。

展望未来十年,Eric Brewer认为,软件开发的方式将有很大变化。应用将由许多微服务组成的,开发软件就是开发微服务而不再是库。今天,拿到一个开源项目,需要做很多事情,才能与已有系统和其他系统集成。如果能够抽象出机器细节,更关注API和代码,那么一个应用里的十个服务理论上可以用十种不同的语言。这种更以服务为中心的软件将越来越普遍,这一变革的意义与从大型机到客户端/服务器到云,可能是等量齐观的。

容器和微服务,能使整个企业更加敏捷,从而为其用户提供更多有意思的产品,它们是计算的未来。
  • 大小: 310.8 KB
  • 大小: 58.8 KB
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • OpenSmtp.Net-2-开源

    OpenSmtp.net 是一个用 C# 编写的开源 SMTP 组件。 它不依赖于 .Net Framework System.Web.Mail 类,并允许开发人员使用 MS SMTP 以外的 SMTP 服务器。 它还具有允许通过 HTTP 发送电子邮件的 Web 服务。

  • C#开发基于ESMTP协议的邮件发送系统经验总结

    用过C#内置的SMTP类的朋友大概知道,使用它发送邮件的时候,有时候总是出现莫名奇妙的错误,有时候可以发送成功,有时候说用户帐号验证失败,即使你设置了帐号验证信息,问题依旧,特别是在你使用QQ邮箱(好像163的用SMTP发送比较正常),基本上使用SMTP对象来发送邮件是不可能的事情,后来查询了一些资料,说QQ的协议好像是ESMTP协议了,也就是加强版的SMTP协议,不知道是不是,反正用QQ邮件的人...

  • 在.net中支持ESMTP身份验证的邮件发送简单讲解

    下面是一个简单的示例:(没有做任何判断与封装,仅供参考) 代码 string smtp = "mail.com"; string from = "send@mail.com"; string pwd = "pwd"; string to = "rec@mail.com"; //建立链接 TcpClient tc =...

  • 关于.NET的SMTP的问题:如不支持ESMTP(身份认证)等等

    或许大家会很失望,为什么.NET的SMTP不支持ESMTP(身份认证),现在哪个SMTP不需要身份认证吖?真郁闷,微软老是喜欢做这种鸡肋。刚开始要用.NET的SMTP,那已经是2002年的事情了,发现它不支持ESMTP,就干脆改用了jmail,也就是要用InterOp,这种方法虽然的确是比不上纯.NET的,也是权宜之计。后来因为先是接收部分采用我参与开发的OpenPOP.NET,发现效果不错,就干...

  • 支持ESMTP身份验证的邮件发送

    使用.NET Framework下的System.Net.Mail.SmtpClient可以很容易的实现邮件发送,但现在很多邮件服务器已经支持ESMTP协议。而ESMTP最大的区别在于发送时需要提供帐号密码做验证。ESMTP通过流的方式发送命令与服务器交互,完成邮件的发送与接受。更多关于SMTP的命令请参考:http://www.magicwinmail.com/technic_smtp.php ...

  • 为什么在 System.Net.Mail 不能发送 esmtp 的邮件?

    为什么在 System.Net.Mail 不能发送 esmtp 的邮件? privatevoidbutton1_Click(objectsender,EventArgse){NetworkCredentialmyNetworkCredential=newNetwork...

  • 计算机中丢失Smtpemail,SMTP和ESMTP错误代码列表

    邮件从发送到接收的过程,可能会出现问题。邮件服务器是通过SMTP协议进行发送的,监控收件邮件服务器返回的SMTP错误代码及描述,有利于做邮件服务商做进一步的调整与修复。通过监控SMTP错误代码,找到邮件反弹的原因这是最重要的。以下是标准SMTP错误代码和扩展SMTP(ESMTP)错误代码的列表。SMTP错误代码此代码列表是您将在大多数电子邮件反馈中找到的标准SMTP错误代码。200个代码211 -...

  • SMTP与ESMTP区别

    1999年以前,大部分SMTP服务器都是开放的。当您申请完一个免费的Email账号后,在您的Email客户端工具的POP3地址栏中把该Email的POP3地址填入,并填入您的账号和密码,而SMTP服务器地址栏可以就近选择一个SMTP服务器或您认为比较好用的SMTP服务器(如您的ISP的SMTP服务器),来提高Email发送效率。然而,随着垃圾邮件的泛滥,大部分SMTP服务器都加上了过滤器,拒绝发送

  • 邮件被拒收原因分析

    一般情况下,当您发送的邮件无法正常到达收件人时,Winmail 邮件系统将会自动给您发一封系统退信,这封退信通知里面包含了无法正常发送到对方邮件地址的原因,所以绝大多数情况下可以通过退信通知来找出发信失败的原因及解决方式。 当您收到退信时,可以选择将您收到的退信通知的原件完整的转发给我们,由我们协助分析退信产生的原因并提供对应的解决方式。或者您可以参考以下的内容,查看退信内容确认退信原因以便找出解...

  • 利用OpenSmtp.Net发送需要smtp验证的邮件

      1.引言    下周,需要做一个发送电子邮件的模块,磨刀不误砍柴工,周末在家里先做了一下测试,微软在,net1.1中有System.Web.Mail空间,这个命名空间下可以发送不带smtp验证的电子邮件,不过现在网络上很少再有不需要smtp验证的,所以这个命名空间下的类应该算是比较鸡肋。 于是找到opensmtp.net这个开源项目,这个项目的admin是园子里面的"我得女儿好漂亮",真诚感谢...

  • openSmtp 邮件发送dll

    openSmtp 邮件发送dll 支持中文 ,支持中文文件名 .原版的不支持中文内容和中文附件 ,做过修改

  • 关于OpenPOP/OpenSMTP/Mail.Net的一些东西……

    原文网址:http://www.blogwind.com/Wuvist/21079.shtml 感谢hamidsforge,sheda0,unruledboy等牛人的贡献……所以,我们才能够有OpenPOP/OpenSMTP这两个开源.net email组件可以用……以及,由这两个项目合并后成为的Mail.Net。 除了这两个(Mail.N...

  • SMTP;ESMTP

    什么是 SMTP SMTP (Simple Mail Transfer Protocol) :电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请求/响应协议,命令和响应都是基于ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表示返回状态的三位数字代码。SMTP 在 TCP 协议 25端口监听连接请求。 什么是 ESMTP ESMTP (Ex...

  • 发送邮件常见出错代码

    介绍邮件系统常见的错误代码及解释,还有客户端报错相关信息按照下列“Q”代表问题,“A”代表解答。  Q:the server says:550 relaying mail to Q:The server says:550 Q:the server says:550 5.7.1 relaying not permitted:  A:使用某些Smtp服务器时,限制了收件人的地址,只能换一个Smtp服务

Global site tag (gtag.js) - Google Analytics