15
May
2019

我的书出版了!Service Mesh: Istio 入门必备

标签: 思考 软件设计 架构

很长时间没有写博客了,大家可能以为它已经废弃了。其实,从去年到现在我都是在忙着写一本关于 Istio 的书籍,之所以写这本书主要还是因为当时市面上对这方面的文章太少了,书籍则是零。因此我将自己的理解与实践经验分享给大家,希望对大家有帮助。


我个人是非常看好服务网格的,我自己本身专注于软负载,我认为服务网格是在容器时代的软负载最佳的存在形态。就像 PaaS 一样,服务网格也将自己作为一个基础通用服务层下层到了基础技术栈体系,这样不仅有利于通用性,还对业务的无侵入性有很好的支持。在容器时代,一切都是浮动的、弹性的,可变的,负载也不例外,从早些时候的硬件负载,到微服务时代的透明负载,再到服务网格,这一个世代的划分。我觉得每个对分布式有兴趣或者从事其中的工程师都应该或多或少了解下。


有兴趣吗?买我一本书吧,听我慢慢为你道来~


当当:http://product.dangdang.com/27857036.html 


14
Mar
2016

一张图看懂Raft

标签: 软件设计 算法
点击题目查看详情啦~

阅读全文>>

23
Apr
2015

2015北京QCon大会感想

标签: 软件设计 大会

本次QCon在北京国际会议中心举行,时间为4.23~4.25。中间件这边是我跟千臂一同参加的,他的感想在这里,全部的PPT在这里
本次大会与以前一样还是分会展与主题演讲两部分。人非常多,特别是阿里云相关的专场,很多场人已经挤到了门外,完全是人满为患。
pic0

行业动态:

智能硬件服务

本次第一次看到了穿戴式设备服务商展出,叫“出门问问”,其作用类似于Siri,感觉上还是有些山寨的味道,相信以后有会更多的厂商加入。我觉得如果说两年前在鼓吹移动互联网,那么现在就穿戴式设备与智能硬件了。观察一下就可以发现:LG、MOTO、微软、华为、苹果等都推出了自己的智能硬件产品。为什么?因为传统的硬件思维已经跟不上世界的变化了,我们需要机器来适应我们,需要机器来理解我们,而软件就是为这些机器注入灵魂的源泉。我预计,以后会出现更多的智能设备(智能插座,智能汽车等)。
pic1

垂直化云计算

本次会展还是跟以前以样,有很多通用云计算平台,如“青云”,AWS,京东企业云,不过连“美团”竟然加入了云产品行列着实让我惊奇了一把。通用云计算基本上没有什么新东西,都是对资源的虚拟化,虚拟化网络、CPU、内存等等,各个厂商差异化不明显,很难形成竞争力。相对我,我看到了一些垂直化的云计算平台,如“环信”做即时通讯云的与“CODING云IDE”做开发工具云,它们两个都是利用云计算来解决特点领域的问题,后者是我非常感兴趣也是早就觉得应该有的东西,想想现在的开发者经常为各环境配置而伤透了脑筋,现在的软件对后端的性能要求也很高,不过当前功能实在是太弱(coding.net大家可以云试试),如果能把这些东西都很好的搬上云,那将可以极大节省资源开销与人力维护成本,我觉得我们在内部完全可以自己搞一个,一来利于团队维护环境代码配置,二来可以避免一些商业上的纠分。

软件开发模式

本届QCon竟然还有老外在鼓吹敏捷开发,这非常令我失望,相比于阿里云专场的火爆,这个可以算是门可罗雀。以打我开发学习计算机以来,就有人试图以传统工程的思想来规范、统一软件开发,产出了OOSP、RUP、UML、sysML
、及敏捷之类的东西,它们岂图以一种套路来约束软开发,实现诸如流水线一样的效果,按部就班地工作。实质上无论是哪种,最终都没有成功,更别说普及。这其中是有一定道理的,在我看来,现代软件开发对响应与灵活性要求越来越高,很多系统都只一1~2个人在维护(包括很多在型系统),根本不存在传统工程学中的协作问题,而且与传统工程学中的开发者不同的是,软件开发者通常都极具有个性,并且会参与整个开发的大部分环节,并不像传统工程学那样设计建造分工明确。因此希望以一种没有实体的规则来约束开发者是肯定不会成功。我们不是说以小作坊的模式工作就好,我们需要做的是创造出有实际作用软件或具体来提升整体的效率而不是分大力气要求if后必须加个花括号或者开发前必须进行需求评审或者测试用例评审等。一切都应该从实现的需求,没有什么过程是必须遵守的。

全栈开发

全栈是最近开始流行的一种开发模式,指的是开发者能够从上至少处理各个环节的工作,可谓是前端、后端与运维的三合一。其核心思想就是将原来的水平开发转成了垂直的微服务开发。当然全栈不是把开发者当成全能来使用,而是统过整合前后端开发,简化运维发布,来统一整体开发过程,降低成本。其实这个趋势我是比较赞同的,因为现在的人力成本越来越高,对响应速度要求越来越高,而软开发过程中人与人的沟通成本是最大的,所以逐步降低人力成本一个趋势。

技术动态:

Docker

毫无疑问,docker是本届大会的热点之一,京东、腾讯、阿里及其它一些公司都分享了自己的实践经验。特别的是京东的Docker在Image分发时遇到了传输瓶颈,他们自己做了套系统对image进行切片传输,但这种模式仍集中推送的模式,其解决的问题正是我们现正在做的燎原应用场景之一,因此我觉得大数据的分发传输将是未来需要面对的一个问题。Docker之所以开始流行,我认为是其抹平了系统配置与部署之间的沟壑,正像Java抹平了硬件与Maven抹平了代码依赖一样,他们都使得开发人员能更专注于创造,减少不必要的重复操作。

安全

安全这块在云时代日益彰显,主要分成漏洞预防与攻击防范两块。漏洞预防就是在攻击发生之前提前找出应用的bug,腾讯在内部建立了自己的类似于乌云的漏洞汇报平台,并且形成了一种奖赏机,鼓励开发人家参与安全,统一开发与安全战线,这点很值得我们借鉴。在攻击防范方面腾讯在所有的接入设备上都植入了监控agent,可以统一引流与控制。阿里云分享了自己的几个安全案例,如460Gbps级别的DDoS(号称全球最大的DDoS攻击),其成功的原因在于及时监控发现了异常流量,然后通过BGP协议引流到清洗中心进行过滤处理,再将过滤过后的结果回吐给应用;另一个亮点就是运营商也参加了进来,由于对应的应用没有国外业务,因此在防御DDoS的时候直接知之其将国外的流量全部丢弃,这点也是非常有意思的,总体来说网络层的防御过程都是监控、引流、分析与处理四个步骤。

自动化运维

这块百度、新浪、赶集等公司都分享了自己的运维系统。都各有自己的特点,比如百度通过原子化、无状态化操作,实现了功能上的随意组合,大大增强了系统灵活性。新浪的JPool加入了对灰度发布与Docker的支持。总体来说我觉得以后的系统运维应该是朝无人工厂的方向发展的。

其它还有一些板块如:“互联网金融”、“创业、团队管理”等我都没怎么仔细听,感兴趣的同学可以去看看PPT)

05
Jan
2015

2014 北京ArchSummit总结

标签: 软件设计 大会

有幸在周末参加了Arch Summit 2014 北京。参加的公司主要有“Amazon”、“阿里云”、“当当”、“京东”、“去哪”、“美团”、“知乎”以及一些金融公司,如“上交所”。

会展方面主要是云产品相关的,有“青云”、“Amazon AWS”、“听云”、“UnitedStack”等。“青云”与“UnitedStack”做的都是“计算云”,能实现“网络/计算/IO 资源”的虚拟化、资源化,并提供“跨地域虚拟专网”,均按时计费。在我看来,其产品定位仍然是中小客户,并不具备PaaS水准,另外据NICE的人员反映,“青云”的单机性能上限过低。“听云”是应用性能平台,兼容多平台,接入简单,能快速发“现慢SQL,接口调用,外部网络访问”等问题,但仍然停留在单机采集,还无法对集群实现总控,也没有压测功能。

内容方面我比较关心的是“互联网金融”“智能硬件”

先说“互联网金融”,所谓“互联网金融”就是借助互联网的力量打通投资与融资方,实现资源的最新配置。京东介绍了其“京宝贝”、“京东白条”、“京东众筹”与“京小贷”,其中“京东白条”算是最为成功的一个产品,开辟了互联网个人信用消费市场,技术上主要介绍了“利用可靠消息服务实现读写分离”、“细化拆分交易事件以实现松耦合及平滑升级”及“流程、组合、基础三层服务构架”。上海证券交易以前也是以专用系统为主,如使用小型机、专用网络,近年来也在积极向互联网/开源/小型方向发展,在性能上其使用了“消息键值分离”、“消息打包”等技术,在容灾方面相对我们来说还是落后的,仍然停留在“双机房”这个层次上。另外VFinance的分享提及到了利用“现代会计学”理论来提高系统可靠性,我觉得比较有趣,主要借鉴的有“借贷账”(互相监督)、“账务,出纳分离”(模块职责单一)、“凭据对账”(防欺骗)及“多层会计科目”(增加维度减少出错的概率)。总体来说,互联网公司具有“快”的特点,传统互联网公司则具有“稳”的特点。双方都是看好互联网金融的。

再来说“智能硬件”,比较可惜的是本次会议并没有我期待的穿戴式设备相关内容,但有“智能汽车”方面。“智能汽车”听下来最痛心的是,基所用的传感器基本上没有一个能国产得较好的,分享者甚至调侃“准=贵”。现在制造智能汽车的一般方法是“外加装”或者“调用汽车总线接口”,随着汽车厂商的开放,第二变得更加流行起来,传感器方面主要有“64线激光雷达”、“单线激光雷达”、“全景工业摄像机”、“超声波距离探测器”及“高精度GPS”,国内研究内容主要还是在认识、算法这一块上,研究团队主要有企业一汽、比亚迪,高校有北理工、武汉大学、国防科大。无人驾驶还有很长的路要走,目前国内已经可以完成既定条件下的高速公路测试。还有一点有趣的地方,暴风这个以视频播放器起家的公司,现今也搞智能硬件,其产品“全景眼镜”,“智能路由器”,对于这种放开创新的态度,我衷心赞赏,在我看来很多创新的东西并不是一开始就能看出其价值的,甚至有些根本不能市场化,但其带来的创新思维绝对可以潜移默化地影响到很多产品。

其它方面,几个互联网公司都分享了自己在架构方面的演进过程。大多跟淘宝一样,经历了由单系统单结点到多系统多结点再分布式的这么一个过程。在系统层次划分上,大多遵循“业务,通用,基础,底层”这种结构。这里想提一下百度的Matrix(集群管理系统),其已经实现了对硬件的资源化,工程师根本不用关心申请的是什么的机器,其系统还会保证硬件保持均衡的负责,可以说完成已经系统地虚拟与管理起了机器的配置、发布、下线、维护工作,值得我们学习。大数据方面,Intel分享的《大数据的十个技术前沿》内容非常丰富,广泛地介绍了当今大数据计算的前沿技术,从“数据存储”(如NVRAM)、“数据计算”(如Spark)、“数据分析”、“数据安全”及“软硬件架构协同化”(如NativeTalk),虽然有不少广告在里面,但我觉得内容还是相当丰富的。



附:大会所有主题PPT 

http://yunpan.alibaba-inc.com/share/link/E4LNAfMPD


21
Apr
2014

Paper Rush-1: The Google Big Table

标签: 软件设计

Big Table是Google的一种分布式数据库,以:

<row, column, time64> --> value

的映射形式存储数据,现在的主要使用产品为Google Earth, Google Analytics...


阅读全文>>

10
Sep
2013

Worker模式

标签: 软件设计

有些时候想执行一些异步任务,如异步网络通信、daemon任务,但又不想去管理这任务的生命周。这个时候可以使用Worker模式,它会帮您管理与执行任务,并能非常方便地获取结果


阅读全文>>

21
Aug
2013

Tomcat 5源码分析

标签: 软件设计 框架

老话题了,不过经典代码分析总是能学到很多东西。 PS:图都存在google drive里的,如果你看不到,说明你已经被HX!!过些日子把所有的图都移过来~^ ^


阅读全文>>

02
Aug
2013

深入理解Linux内存管理机制(一)

标签: 软件设计
通过本文,您即可以:
1. 存储器硬件结构;
2.分段以及对应的组织方式;

3.分页以及对应的组织方式。


阅读全文>>