Showing posts with label Thinking. Show all posts
Showing posts with label Thinking. Show all posts

Thursday, July 18, 2024

The Trilogy of Human Civilization

 

Humans are fortunate to have Earth, a habitable island in the vast sea of stars; humans are also unfortunate because, within the known range, we cannot find another place to go.

Many people may not understand a lot of things right now and feel confused about the future. However, once you look further, to the entire history of civilization, everything has a pattern to follow, and the future will become clearer.

The Age of Survival

The goal of civilization was to use limited resources to extend the race.

For a long time during the birth of civilization (millions of years?), humans were not much different from animals in nature, with the primary need being to fill their stomachs, struggling on the line of subsistence. Whether it was ancient hunting and fishing or later farming and herding, it was all about survival.

During this period, our utilization rate of resources was extremely low, and labor was relatively scarce. To plunder labor and resources, wars were frequent.

The Age of Surplus

The heritage of human civilization and the progress of technology ushered us into the Age of Surplus. With the emergence of tools such as steam engines and electrical appliances, a modern commercial society gradually established itself. For the first time, humans were able to fill their stomachs and even produce goods exceeding demand.

The increase in resource utilization led to explosive population growth and unprecedented economic prosperity. Humans truly transcended the animal kingdom, becoming a distinct civilization.

However, the Earth's living space is limited, and population growth gradually stabilized. Technology continued to advance, and what once required everyone to labor, now only 1% of people need to work to meet the needs of the entire world.

So, what should the remaining 99% of people do? On one hand, humans continually create various new demands, including virtual and service-oriented ones. On the other hand, periodic economic crises cause production activities to pause periodically to match the relatively lagging development level of society. Meanwhile, social welfare mechanisms provide basic resources for the rest.

The Age of Freedom

Then, artificial intelligence emerged, and productivity exploded. Modern production almost no longer required human involvement. Humans were freed from production for the first time.

So, besides relying on welfare mechanisms to maintain life, what else can humans do? Perhaps only entertainment and a small amount of artistic creation are left.

Conclusion

From the Age of Survival to the Age of Surplus, and then to the Age of Freedom, human civilization has undergone tremendous changes.

In a future where human labor is almost unnecessary, how can we find new meaning and value? The future human society may no longer center on material production but instead focus on spiritual pursuits and self-improvement. We need to redefine the meaning of "work" and "life," exploring new social structures and value systems.

Sunday, July 02, 2023

Vector Database - Let AI Have Memory

The in-depth application of large models has made the demand for vector databases very urgent. By processing vectorized data, the vector database can efficiently handle complex multi-dimensional data query and analysis tasks, which is very suitable for current artificial intelligence scenarios. After the development of large models, projects such as LangChain and AutoGPT have used vector databases extensively.

The vector database is actually not a new thing, but there were not so many vector dimensions in the previous application scenarios.

Why do we need a vector database

It is mainly to solve the problems faced by the current large models: contextual question and answer and hallucination problems, that is, to provide artificial intelligence with memory and knowledge capabilities.

Technical Difficulties

There are currently two major difficulties in vector databases, one is efficient storage, and the other is fast similarity search, or efficient indexing and searching.

Solutions

Existing solutions include multiplication and inverted product quantization, locality-sensitive hashing, hierarchical navigation small worlds, etc.

These solutions have their own advantages and disadvantages. The principle is to reduce the complexity of each processing through (multi-step) filtering. The common problem is that complete accuracy cannot be guaranteed.

It is difficult to have a general algorithm for the processing of high-dimensional data. But the human brain in nature is actually a very good vector database, which can be simulated through a multi-layer network model. This is why hierarchical navigating small worlds is currently the most widely used and best performing algorithm.

Related Projects and Startups

Vespa, Milvus, Qdrant, Weaviate, Pinecone, Zilliz, CozoDB, Twelve Labs, etc.

Wednesday, June 21, 2023

How far is silicon-based intelligent life?

 Since AlphaGo defeated humans in the Go arena, deep learning and other artificial neural network technologies have achieved remarkable results in various fields. Today, artificial intelligence has outperformed humans in areas such as image recognition, language translation, autonomous driving, and computing protein structures.


Large-scale language models such as ChatGPT demonstrate unparalleled innovation and problem-solving capabilities by building world models.


However, how far is it until artificial intelligence completely surpasses human beings and evolves into silicon-based intelligent life forms?


From an individual point of view, the main difference between human beings and other creatures is two points: intelligence and consciousness.


Intelligence refers to the ability to discover and solve problems. In this regard, large-scale language models have shown a level that is comparable to or even surpasses that of humans. Consciousness is the ability to recognize oneself and the world. At present, this ability has not been fully reflected in large-scale language models. It can be tentatively concluded that artificial intelligence has not yet reached the stage of consciousness.


In fact, the origin of consciousness is extremely complicated. At this stage, the academic community generally believes that consciousness is likely to be an emerging phenomenon of large-scale network systems. If this assumption is correct, we may be able to predict the likely time of consciousness by comparing the complexity of existing artificial intelligence systems.


The human brain contains about 100 billion neurons with about 100 trillion connections between them. In contrast, existing large-scale language models have about 200 billion parameters, which is only about one-thousandth of the human brain. If it is assumed that the generation of consciousness needs to reach one percent of the human brain, then as long as the existing artificial intelligence system is expanded by about ten times, it is possible to give birth to truly intelligent life.


If you look at it this way, the birth of silicon-based intelligent life will be within a year or two.


Of course, this is only a very rough and preliminary inference. Given the differences in the working mechanisms of neural networks and the human brain, this time point may be earlier or later.

Monday, August 15, 2022

Mastering Systematic Thinking

The whole is greater than the sum of its parts, and structure determines system behavior.

What is System Thinking?

System thinking is an approach to problem solving by thinking holistically.

Different from the simple way of thinking about the problem itself intuitively, systematic thinking often needs to observe the behavior, structure, and association of complex systems, summarize its internal laws from different levels, and understand its operation. Furthermore, the internal laws can be changed by adjusting the structure of the system to achieve the goal of changing the behavior of the system.

Focus on the whole, not the parts. Focus on connections, not things.

For example, seeing an apple falling to the ground, the intuitive way of thinking is that the apple will fall to the ground when it is ripe.

Systems thinking may need to consider:

What is the connection between apples, fruit trees and the ground?

What internal law causes the behavior of the apple falling to the ground?

What factors can be changed to prevent apples from falling to the ground?

......

Another example is to see inflation, intuitive thinking may think that it is due to additional currency issuance. New systems thinking takes into account the cyclical laws and distribution mechanisms of the economy.

Why master systems thinking?

The world itself is a complex system, and many problems in real life are dealing with complexity. For example, designing a bridge, building an assembly line, implementing an enterprise software, and so on.

Simple systems tend to be linear, i.e. 1+1=2, while complex systems are usually nonlinear, i.e. 1+1>2.

Usually, due to the limitations of knowledge, cognition, and way of thinking, it is difficult for humans to intuitively see the whole of things.

Also, it's hard to understand it directly for most complex objects.

These all require dissection and thinking using systems thinking, which can help us analyze problems more comprehensively.

How to Master System Thinking

Systematic thinking can be mastered through training, which mainly includes the following steps:

First, to observe the dynamic behavior of the system, including system events, behavior characteristics, and summarize the behavior rules of the system.

Afterwards, its possible internal structure is predicted through behavioral laws.

Further, the divide-and-conquer system is divided into multiple small-scale simple systems according to the structure.

To verify that the predicted structures are accurate, prototypes can be built to conduct experiments. Make adjustments through experimental feedback.

Wednesday, November 06, 2019

三个值得深思的小故事

第一个故事是耳熟能详的《扁鹊见蔡桓公》,大意就是扁鹊多次建议蔡桓公预防疾病,桓公不听啊,最终病入膏肓,无药可治。
长久以来,大家都在批评桓公“讳疾忌医”。其实不然。桓公在位时曾创建稷下学宫,大举招纳贤士,乃是一位有作为的明君,怎会如此愚笨。
故事的关键在于桓公著名的一句话:“医之好(hào)治不病以为功“。意思是,医生都喜欢治疗没有病的健康人——这样啥都不干还作为功劳。你看看,这哪里是目光短浅,这分明目光如炬,桓公麾下的大臣是不容易混日子的。当时的齐国”人才荟萃,彬彬大盛“。
但是很可惜,一代明主还是英年(44 岁)早逝了。
问题出在哪里?扁鹊的三阶段论说的好:病症前期,汤药即可;病症中期,需要针灸手术;到了晚期,无药可救。再直白一点,治病这样专业的事情啊,并不是说干的越多就效果越好。你一个外行非不听专业意见,自然没有好果子吃。
联想到有一些医生门庭若市,他的病人隔三差五就要来开药治疗;有的医生门庭冷清,因为他的病人按照他的建议吃一两副药就病好了,常年健康,自然无需看病。
嗯,扯远了,接着说第二个故事:有两个县令,都被派到偏远山区工作。
其中一个发现当地治安很差。为了保卫人民财产安全,他积极增加差役,加强巡逻排查,自己也呕心沥血连轴转。年终上京述职自然是成果满满:抓获小偷若干,破获重大案件若干,获得老百姓送的锦旗若干……
另一个县令也发现治安很差。他没有急着增加差役,而是采取了一系列有利商业发展和民生的措施。年终述职却发现无料可写,因为辖地安居乐业,已经压根没有人去做小偷了。
如果你是这两个县令的上司,你会怎么评价他们呢?
第三个故事是说某地有家大互联网公司。有个经理发现自己部门的员工们每天都按点下班,毫无紧张气氛。于是决定要提高下工作效率,每天要求员工汇报工作内容,每月评比,辞退排名垫底的员工。
经过一段时间,部门果然有了变化。大家都加班加点紧张工作。为了产生工作量,把一些无关紧要的产品特性改来改去;新产品带着 bug 仓促上线,等客户抱怨再来作为新的工作量去修正。经理很满意报表上显示人均工作时间提升了一倍。结果到了年底,经理被辞退了。
其实,产品设计也是类似道理。优秀的产品不应该让用户感觉到有太多的缺点,也不应该让用户感觉到太多的优点。因为它就是按照最自然的方式来工作的,用户不会因为某个特性而感到惊喜或者迷惑。好的产品会帮助用户完成工作,却无需留意到它到底是怎么工作的。
这样的产品上线后,压根就不会有人报 ticket。需求早已被满足了,没有故障,又有谁会去开 ticket 呢?
但是,当公司的考核是比拼加班和工作量的时候,哪个团队又会愿意开发这样的产品出来呢?

Thursday, October 31, 2019

春风又绿江南岸

克罗奇(意大利史学家、哲学家)曾说:“一切历史都是当代史”。
普通人很难拥有远见,因为百年生命太过短暂;难以全面看待问题,因为所学所知毕竟片面;难以深入洞察,因为缺乏逻辑和推理训练(理工科更应该成为普适教育)。
第一个开启心智的猿人,不论它当时所思所想,估计是满心的欢喜、恐慌,以及悲伤和无奈吧。
大部分人会以为科技与宗教是两码事,然而科技其实正是新时代的宗教。
它提高了生产力,重构了社会的结构,启发和引导了文明进步的新方向……与此同时,它也导致了巨大的贫富差距,创造出一个又一个泡沫。
也许泡沫破灭时,可以推动文明的小船继续往前漂动,以弥补进化意义上的缺陷。
天道不仁。唯其不仁,方能囊括一切。方能亘古久远、连绵不绝。
微观处的不对称性,并不会对宏观系统的运转产生即时的影响,因为复杂系统自身往往具有很强的鲁棒性。但千千万万的微观不对称长期积累起来,最终会由量变引发质变,推动系统过渡到新的平衡。经济学上把这个过程称为经济危机。无论奥派还是新旧芝派,对此都只能聪明地采取鸵鸟的做法。
是我们引领了时代,还是时代创造了我们?

Sunday, January 17, 2016

从比特币到区块链的未来

很早就想写一写区块链(Blocking Chain)技术,作为比特币等一系列应用背后最核心的技术,它的前景充满了各种可能和挑战。最近身边不少人感兴趣,正好总结下。

起源和背景

相比区块链,更多人都听说过比特币。其实最早 08 年的时候比特币就已经问世了,但真正流行起来还是在 10 年后的事情。其官方网站是 bitcion。发明人(传言代号为中本村的澳大利亚人)到目前为止尚无法确认身份,但是一个团队的概率较大。
比特币是一种概念金融货币。主要是希望解决已有金融货币系统的几个问题:
  • 被掌控在发行机构手中;
  • 自身的价值无法保证;
  • 无法匿名化交易。
搞金融的人都能想到,实际上,要设计这么一套系统,最关键的还是一套强大的交易记录系统和中立的货币发行机制。
首先,这个系统要能中立、公正、无法被篡改地记录发生过的每一笔交易。对比已有的银行系统,可以看出,现在的银行机制作为第三方,是有代价的提供了这样的服务,即如果交易双方都相信银行的数据库,那么就没问题了。可是如果是世界范围内流通的货币呢?有哪个银行能让大家完全信任它?于是,需要有一套分布式的数据库,在世界范围内都可以访问,而且都无法去控制。这也就是区块链设计的目的。
货币的发行则是通过比特币的协议来规定的,总量必须控制,发行速度会自动调整。既然总量一定,那么单个比特币的价值肯定会随着承认比特币的实体经济的加入而水涨船高。发行速度的调整则避免了通胀或者滞涨的出现。

原理

区块链的基本原理其实十分简单。
首先假设存在一个 P2P 的数据库(这方面的技术相对成熟),剩下来就是大家如何决策去添加数据上来。只允许添加、不允许删除避免了作伪的可能性。这个数据库的结构是一个链,由一个个块组成,这也是其名字的来源。新的数据要加入,必须作为一个新的块来加入。而这个块能否加入,可以通过一些手段来检验出来。
具体到比特币如何使用了区块链技术。比特币将每十分钟内所有的交易都打包在一起,这些信息组成一个块。然后,网络中所有的成员都可以试图来找到一个合法的块(比如基于当前的块的信息,加上时间、id,加上某些其它有用信息等),然后进行一些 hash 计算,并且找到的结果还得满足一定条件(比如小于某个值)。一旦算出来就可以进行全网广播,大家拿到这个算出来的结果,进行正向验证,发现确实符合条件了,就承认你算出来了。
因为算出来的概率要从数学上进行保证,比如每十分钟内大概就刚好算出来一个。所以保证了区块链每十分钟增加一个块。算出来的这个人将获取得到这个时间内所有交易产生的管理费和协议固定发放的奖励费(目前是 25 比特币)。也即俗称的挖矿。

挖矿

五年前,挖矿还是一个很有前途的行业。但是现在,建议还是不要考虑了,因为从概率上说,由于当前参与挖矿的计算力实在过于庞大(已经超出了大部分的超算中心),获得比特币的收益已经眼看要 cover 不住电费了。特别那些想着用云计算虚机来挖矿的想法,意义确实不大了。
从普通的 CPU、到后来的 GPU、到后来的 asic 矿机、到现在的 asic 数据中心。短短数间,比特币矿机的技术走完了过去的计算机的历程,并且还颇有创新之处。确实是哪里有利益,哪里的技术就飞速发展!
有哥们当年去内蒙古用近乎白给的价格租了当地的机房,打着创业幌子搞挖矿,不知道今日身家几何!
很自然的,有人会想到,如果我有很强大的计算力,所有的块我都算出来了,那是不是就能破坏比特币网络。确实如此,基本上拿到 1/3 的计算力,比特别网络就存在被破坏的风险了;拿到 1/2,概率上就掌控整个网络了。
想想看,你可以一直不承认别人的计算结果,只承认自己的,从概率上风险是很大的。这里,要区别分布式系统里面的拜占庭将军问题,这里完全是概率意义,并非数学证明。
那么有没有办法防护呢?
除了尽量避免计算力放到同一个组织手里,没太好的办法,这是目前 pow (proof of work)的协议规定的。
也有人觉得为了算一个块,大部分计算力(特别到最后根本没算出来的)其实都浪费了。
有人提出用所谓的 pos,即大节点作为多个节点代理人的模式来节约计算力。那怎么选大节点?又容易导致“富则越富”问题。呵呵,这就是完全民主 vs 选举人制度嘛。
个人认为,无论 pow 还是 pos,都无法解决问题。要从根本上解决,得引入随机代理人制度,通过算法在某段时间内只让部分节点参加计算,然后要发放一部分“普世奖励”给所有在线节点。

安全

既然区块链一个可能的应用前景是金融系统,那么安全自然是讨论最多、挑战最多的话题。区块链的实现是开源的,基于了现有的成熟的密码学算法。但这是否就能确保其安全呢?
未必。有如下几个方面是很难逃避的。
首先是,攻击区块链系统是否是犯罪?攻击银行系统是要承担后果的。但是目前还没有任何法律保护区块链以及基于它的实现。
其次是软件实现的潜在漏洞是无法避免的。考虑到使用了几十年的 openssl 还带着那么低级的漏洞(heart bleeding),而且是源代码在大家眼皮底下。这背后曾经发生过啥,让人遐想连篇。金融系统自身到底有没有必要开源,也值得商榷。
另外,区块链所有交易都是公开可见的。搞大数据的人听了是不是开始激动起来了,呵呵,这里面能分析的东西还真不少,而且规模够大、影响力够大……
还有就是作为一套完全的分布式系统,区块链缺乏足够的调整机制,一旦运行起来,真的无人能控制。即使是让它变得更公平、更完善的修改,只要有部分既得利益者合起来反对,那就无法加入进去。这让比特币本身的价值也蒙上了一层阴影。

展望

无论如何,区块链确实是第一个试图做公开、中立、匿名化的分布式数据库的系统。它的出现,让大家意识到除了互联网这样的基础设施外,数据库系统也可以成为公共基础设施。而且像比特币这样的例子,给与了区块链更多的遐想空间。如果交易无法造价,信息无法造价,世界是不是会多了一些算法来保证的公平呢?这是又一次用技术给人类发展带来进步的福利。
不提这种去中心化的金融系统是否现实(个人认为至少 5-10 年后的事情了),在跨国交易、跨组织合作日益频繁的今天,区块链、比特币都是很好的一些尝试和参考。

Saturday, October 31, 2015

OpenStack Summit 2015 Tokyo 有感

本次峰会是 10.27 ~ 10.30,四天在东京的品川站附近召开,6000 多人参会,几百个主会 speak 和各个项目的 design summit。
因为要做一个有关容器和网络的 speak,所以,虽经波折,最终还是按时参加了峰会。业余玩社区确实挑战比较大。
整体感受是,时间很紧,内容很多,身体压力很大。虽然只挑了最核心最热门的话题去听,也是从早到晚急匆匆地从一个会场赶到另一个(好几个 building)。一天下来,疲劳的很。

社区,不只是技术

开源项目的成功,除了技术外,往往还有很多很重要的因素。
比如怎么运营社区,怎么跟商业公司合作,怎么处理各个团队的关系……
毫无疑问,OpenStack 到今天能这么火,在各个方面做得都是非常优秀的。
本届大会,基本上越大的主题演讲 topic 都越浅显一些,但是人满为患;design summit 则集中到具体项目进行设计的讨论,反而人气没那么旺。
参加的人员,技术人员仍然是主体,但是非技术人员也不少见。
云,其实本质上不是个技术的事情。呵呵呵~

容器和网络是热点

OpenStack 社区对容器还是很积极的一个主动拥抱态度,各个项目都在考虑虚拟化对象是容器的新场景。
实际上,无论是 Docker 系列,K8s、Mesos,都有一些相对完整的 solution,无需 IaaS 的支持,自己就可以玩得很好。
但 OpenStack 社区还是希望底下用自己,所以努力提供新的 API 来支持这些 solution。
两边的定位有 overlap,肯定会冲突。底层平台必须要主动考虑上层 workload,考虑应用特性。这个是生产关系决定的。
网络话题这次被广泛关注,大会报告中有好几个都在谈网络(包括 SDN 和 NFV)。这次来参会的公司也有不少是网络公司,不过技术上新的东西不多。
比较搞笑的是,这次峰会的超级用户奖颁给了 NTT(sponser 了现场的网络接入),然而 wifi 接入体验比较一般(本来多好的宣传机会!)。
两个值得关注的项目,kuryr 还有 ovs 自己搞的 ovn 等开始亮相社区,都挺有意思,定位思路很清晰,不像 Magnum,做起来的问题不大。
围绕 neutron,问题不少,但是老框架在这里,能周旋的余地很少。怎么能跟别的项目更好的集成,怎么提供更好的性能,都是很现实的问题。
强调下,云计算的技术基础是计算虚拟化,然而成功能否,根本取决于网络。
到现在还没意识到这点的,基本可以歇了。
比较遗憾的是,有一些传统网络厂商,没能很好的抓住云计算这波机会。亡羊补牢,为时未晚,还可以考虑抓紧时间布局物联网。

技术周期趋向成熟

基本上,新的项目 focus 的 scope 都圈得比较小。
很多人开始关注实际的部署和运维方面的一些问题(再次强调下我的观点,云环境中,ops 将变得比 dev 更重要!)。
这很正常,最多的 80% 的需求也是最基本的,剩下 20% 不好做,不是通用需求,但往往是差异化和体现技术实力的点。
很多人会松了口气,趋向成熟,意味着再也不用跟着后面折腾太多升级了。
成熟后怎么能再健康的发展下去,是每一个成功社区都会碰到的问题,现在已经有点由盛转衰的意味,虽然不明显。

国内力量不可小觑

market place,国内公司(特别创业公司)见到不少。除了传统方案和硬件厂商,就是日本本地企业和国内企业,甚至国内企业感觉比日本企业还多一些。
而且来的人好多,一下子就是好几十号人,庞大的队伍!
做应用的企业没见到……,不过有一些很有特色的小企业,比如 cumulix 啊、puppet、solinea 啊,哈哈哈~
这次本地报告也不少,竟然还出现了用日语讲报告的情况。
各种基于 OpenStack 的方案,各种特点。
乐观看,大家都尽量兼容 OpenStack,又努力做出自己的特色;悲观看,差异化和成长空间可能有限。

日本的文化和生活

日本是一个很有意思的地方,学习了东方和西方的文化,糅合在一起,难免有不少纠结的地方。
也许是意识到这种文化的缺位,对于传下来的和服啊、武士道啊、艺伎表演啊,就都十分重视。
但日本文化上其实是封闭的,现在年青一代很少愿意去接触外面的世界。整个日本社会就像是一个精密的大机器,每个人按照职责努力的工作。七八点上班,十一二点下班,很少有跳槽,很少有变化,压力太大,森严的规矩,老龄化……日本的年轻人,不容易!
生活成本低、贫富差距不大,这些西方社会普遍的特色,也造成了日本现在已经进入了高度稳定甚至停滞期。

Sunday, October 18, 2015

云计算的第二个十年 -- IT 行业的新变化

如果从概念的提出(2006 年由 IBM、Google 联合提出)算起,云计算即将步入第二个十年。
在第一个十年里,云计算从被质疑到成为新一代 IT 标准,从单纯技术上的概念到影响到整个业务模式。
虽然到目前为止,还有很多不成熟的地方值得探索,但云计算在第一个十年里已经正式确立了它的地位,已经被广泛接受并实践。
在云时代的下一个十年里,IT 行业又会发生哪些变化呢?

ops 将变得比 dev 更重要

在过去,无论是企业还是个人市场,新产品的研发能力是最核心的,运营团队一贯被视为“第二梯队”。
造成这种局面的原因很复杂,根子上是基础设施的缺乏。大量的重复性、非标准化、非核心的研发任务,造成 dev 在整个生产链中的核心地位,造成运营团队话语权的缺失。
在云时代,随着基础设施服务的成熟和标准化,新产品研发的效率和复杂度将大大下降。反而是产品上线后,怎么应对不同时间、不同场景的需求变得更为重要。运营能力将直接决定云的质量。
所以,即使是研发团队,也一定要具备一定的运维能力。devops 的紧密结合,才能具备在云时代的快速应变能力。

PaaS 将变得比 IaaS 更重要

如果说 IaaS 是云计算一切服务的基础,那么 PaaS 将变成未来云计算服务的核心。
IaaS 的定位是提供基础架构能力,从整个云计算栈上看,无论是提供裸机、虚机还是容器,这只是对物理计算资源进行单纯的抽象和管理,并不具备任何面向业务属性。而 PaaS 则在基础架构的基础上进一步抽象计算资源为软件业务能力。
如果以盖房子为例子,IaaS 相当于提供了砖头和水泥。而 PaaS 则进一步的整合这些基础材料为墙板、横梁。显然,施工团队更喜欢直接用后者。
同时,由于 PaaS 更贴近应用,也具有更多话语权。
那么,比 PaaS 再上一层的 SaaS 是否更有优势呢?理论上是没错的,但是实际上在下一个十年里,公有 SaaS 成为主流的可能性不大。一方面是大量的企业的应用并不具有太强的通用性,需要定制化开发;另一方面是过度耦合到第三方服务的隐患。
私有 SaaS 会有,但是一定种类不会太多。办公类、娱乐类将成主体。

通用平台将越来越少

由于搭建和运维云成本的进一步降低,云将成为家家户户都可以创建的资源,面向公共服务的通用云平台将进一步集中,成为两三家的业务。
另外一方面,面向通用计算的云平台将很难获利。反而是某些具有特色服务的专有云将大量出现。
这些特色应该至少包括安全性、高性能、跟托管业务紧耦合的一些辅助服务,例如域名、CDN 等等。

Tuesday, January 13, 2015

网络技术正当革命时

计算机网络自诞生之后,面向的应用场景主要包括局域网、广域网两大类。在各种环境中,通过层级结构将局域网连接起来,形成一个网络的网络,即所谓的互联网。无论什么网络,唯一的事实标准就是 TCP/IP 协议栈以及围绕这个协议栈的各种管理和应用技术,即便后来推出的 IPv6、CCN、SDN 等网络技术,都没有完全超出这个范畴。所以,看起来基于 TCP/IP 的修修补补在相当长的一段时间里满足了各种场景下对于网络的需求
然而,到了现在云计算的时代,数据中心场景对于网络的需求,让这些传统的网络架构开始碰到了真正的难题。
在数据中心里有着其截然不同的网络需求和运营特点:
  • 资源都为某一方统一管理(或者说是存在统一查询的逻辑层)
  • 网络本身的动态性极高(各种迁移调度)
  • 网络的规模极大(几十万台主机,甚至几百万台主机)
  • 策略配置十分复杂(一个 vm 可能就要跟着十几条规则)
  • 性能需求十分苛刻(不光是正常传输性能,还有收敛性能)
这些特点对网络技术提出了很严峻的挑战,甚至可以说,其中某些问题在现有的网络架构下,是无解的。
就比如说可扩展性的问题,传统的二层汇聚,然后三层隔离广播域的做法,让网络对于核心层的压力骤增。而即便是昂贵的商用核心解决方案,也存在种种局限。
再比如说迁移的问题,这就从根本上对 TCP/IP 的模型的设计提出了挑战,虽然有种种 overlay 的技术来试图弥补这个缺陷,但又带来了传输的代价和额外的管理成本。
这些挑战使得网络虚拟化看起来很美,但到了落地阶段就会发现十分困难。
那么,为什么不重新考虑整个问题,看看数据中心中的网络需求到底是什么?
在当前的数据中心里,实际上运行的无论是否是虚拟机,提供给用户的都是各种通过互联网接入的服务(直接以虚机方式提供给用户的形式将越来越少)。用户访问这些服务,是基于 TCP/IP 服务进行的。这些服务之间,以及内部如何实现,其实并不一定是 TCP/IP。
一旦脱离开 TCP/IP 技术的限制,其实可以设计一套面向数据中心内部种种场景的特定协议。比如,在数据中心中,虚机(或主机)的发现,其实完全不需要依赖传统的二层广播形式。在启动虚机的同时(或在虚机启动后),控制层就已经明确知道这个虚机在哪里,它需要跟谁进行通信,那么很自然,相应的位置信息和通信信息其实可以进行提前的配置和优化,而无需非要先广播询问接口,通过一层甚至多层的响应,造成大量的无用数据包。
当广播域根本不需要隔离,甚至消灭了广播域的时候,对交换设备的压力就会减少很多。那个时候,设计成本可以接受、性能满足要求的交换层将成为可能。
当然,并不是要完全抛弃传统网络领域中种种优秀的技术和方法,不少精巧的思想都可以应用到数据中心场景,所谓万变不离其宗。但毫无疑问,非要绑定到 TCP/IP 的协议框架下,并不是一个合理的方案(或许也是个没办法下的方案),这必将带来更多的难题。
TCP/IP 在其发展过程中,已经经历过太多的风浪,不知道这次的挑战,它是否能再次安然度过。

Thursday, January 08, 2015

产品经理 vs PhD

优秀的产品经理,跟优秀的 PhD 一样稀少。
产品经理带团队做产品的过程,跟博士生带课题写论文的过程其实很像。
  • 产品经理是企业业务的最核心,PhD 是实验室科研项目的最中坚。
  • 产品调研市场状况和用户需求,写 PRD、BRD、MRD;科研课题要有分析应用前景和技术趋势,写立项申请。
  • 产品要有同类产品分析,写好研究报告;论文要做相关工作综述,写好背景知识。
  • 做产品前要定好 feature,根据资源定好范围;写论文前要设计创新点,根据篇幅安排内容。
  • 产品正式上线前要先做个预研 demo,最好能小规模用户试用下;课题成果发表前要设计实验原型验证,最好找个实际场景。
  • 做出产品是要想方设法卖出去,赢得市场;写好论文是要千方百计发表出去,最好是顶级的刊物。
  • 产品经理做产品不是一个人,要懂得带团队;博士生做课题也不能是一个人,也要带硕士生、本科生。
  • 产品经理要有大局观,不能局限在细枝末节;博士生要有技术广度,不能只懂一个很窄的领域。
  • 做产品经理要有成本和时间风险意识,越快速地迭代往往越有竞争力;博士生都知道会议是有 deadline 的,越早推出成果越有影响力。
当然,不是说优秀的博士就一定能成为优秀的产品经理,但只要你熬过数年的课题训练后还没变成书呆子,就拥有了很好的潜质。
当然,也不是说成功的产品经理去拿个博士学位就轻而易举。学术上的事,不光要努力,还要有足够的智慧和运气。

Monday, August 18, 2014

云时代的编程——从计算模型演化看编程模式发展

从有计算机开始,计算模型先后经历了专业(大小型)机-->pc-->网格计算-->云计算的过程。【注】暂不考虑一些专业领域的计算机器演化。
而编程模型,也由底层的纸带-->汇编-->面向过程编程-->面向对象编程的过程。
随着云计算的进一步发展,特别是paas的发展,编程的环境、库都可以以服务的形式来动态提供,即演变为“编程即服务”模式。
在这种模式下,程序员能获取的资源已经不是以库的形式存在,而是服务组件,即每个组件会实现某些高级的业务功能。
以前,比如我们要编程实现一个web应用,我们需要有网络库、认证库、web服务器库等等的支持,开发大量的代码。
而在云时代,我们直接可以获取各种现成的web组件,就像搭建积木一样把它们拼凑在一起就可以实现自己所需要的功能了。
之前,我曾认为编程模型,从面向过程到面向对象,后面一定会演化到更进一步的面向目的。
而云时代的编程模式已经有了面向目的的雏形。更进一步的,开发者只需要定义好清晰的业务逻辑和模型,AI引擎会自动拼接各种服务组件,完成程序的构建。真到了那个时候,计算机的能力才会更进一步的被释放出来,各种产业也会面临新的变革和机遇!

Sunday, December 22, 2013

2014——SDN控制平面的关键一年

作为SDN整个技术体系中最复杂,也是最为核心的部分,控制器近些年已经逐渐成为业界追逐的首要目标。
从整个SDN的发展历程来看,跟Internet的发展历程惊人的相似,都是自底向上;都是从campus推广到业界;也都是利用事实标准发展起来。
最开始的三年(07-10),大家所关注的热点还是在于数据平面以及如何与控制平面的交互,包括制定各种南向标准,包括支持SDN的软件交换机项目(包括ovs,linc等)。这一阶段,热点还是集中在学术界居多,业界也在有限度的开始观察和尝试部署sdn。同时,学术界中提出了不少的控制器初步模型和解决方案(nox,pox,floodlight等)。
接下来的三年(11-13),数据平面已经被证实足够成熟,可以用了。那么,要充分发掘sdn的巨大潜力,一个好用的控制器就成为了关键。这一阶段,业界的投入明显加大,sdn的讨论重心明显从学术界到业界转移。这一点符合基本规律。毕竟业界的开发效率和产品质量还是有保障的,而且sdn的需求根本是要落在企业头上。这一阶段中,各个企业尝试了学术界的控制器方案,但很快就纷纷采取不同的路子。

Cisco,作为事实的网络老大,最为霸气,自己内部先后并行推出多个控制器项目,包括XNC、ONE PK、ACI等。而这些项目也延续了Cisco一贯的作风,名义上开放,实际上封装自身的私有协议和产品。
Vmware,作为虚拟届的一哥,借助收购Nirica,推出NSX产品方案,其内部的控制器可以通过ovsdb来管理底下的物理或虚拟交换机。
NEC,作为很早就开始研究sdn的公司,推出了PNC,成功部署在多个实际应用案例中。
Juniper,印度哥做事情,确实喜欢剑走偏锋,在很短时间内,虚晃一枪后默默搞了个OpenContrial,也是打着open的名义来推自身的产品。
显然的是,任何一家推出的控制器都不足以让大家无条件的接受,这个时候,开源社区再次展露了它独到的魅力。
由多家IT巨头共同发起了OpenDaylight项目,现在已经吸引了越来越多的vendor参加,借助开源的力量,发出了越来越大的声音。包括Cisco在内不少家企业也基于OpenDaylight项目开发自己的内部版本。

如果sdn后续的发展路程仍然保持与internet的惊人一致,那么,控制器就跟tcp/ip一样,将成为整个行业的生死之争。
而实际上,随着OpenDaylight项目第一个release的走近,关键的2014马上就要到来了,这一年,必将不那么平静。
或许,明年此时,整个sdn控制平面行业的重新布局将尘埃落定。

Monday, November 11, 2013

SDN 产业面临的挑战

The challenges that SDN industry is meeting.

SDN技术的发展正是如火如荼,ONF的成立,ONS的举办,各种论文的发布,各种软件的编写,都昭示着SDN已经成为了一个事实上的产业。
从Openflow开始,跟随SDN的诞生、成长历程数年,欣喜于其发展速度之快,未雨绸缪,有几个挑战是SDN产业继续成熟所必须要面对和克服的。

1、基础设施。软件交换机对SDN技术支持已经较为成熟,典型的代表包括Openvswitch、Indigo等。虽然Nicira很希望将来大家都用Openvswitch实现SDN架构,但不可否认,硬件兼容交换机的缺失,极大阻碍了SDN产品的普及。目前通过ONF官方认证的仅NEC一家,而可见的硬件交换产品功能大都限制颇多,而且价格昂贵。如果这一点不能尽快解决,将会限制SDN技术的应用领域。

2、典型案例。目前可见的SDN应用场景还是中小型的网络环境中,而且往往不够复杂。虽然Google今年在Sigcomm上发表了介绍其3年前部署的B4,但实际上,B4中涉及SDN技术的真实应用十分简单,并不能作为一个完全用SDN实现的典型例子,仍是个不错的尝试。实际上,SDN从诞生之初,就跟数据中心发展的需求密不可分。而无论大型数据中心还是中小型数据中心,往往都已有成熟解决方案。特别是大型厂商的不断创新,留给SDN技术的空间不断收缩。而在广域网和运营商领域,起步则太晚,可以预计这块能做的东西也不多。私有云和企业用户倒是极为青睐SDN,但愿意公开其部署技术的例子更少。

3、技术限制。不得不承认,SDN在带来网络监控上极大便利的同时,也确实仍存在技术上的问题,比如南向接口Openflow,在表的支持方面仍不够灵活;而开放北向接口一直缺失。虽然OpenDaylight项目已经做出了不少贡献,但仍未有release出来,也将影响SDN产业的快速发展。此外,性能方面的代价,现在仍未有简洁成熟的解决方案。与此同时,Cisco的ONE,Juniper的Contrial,Facebook的OCP,都带来了不同的技术路线。

4、扩展支持。SDN解决的是网络的问题。但在现在的应用场景中,网络并非独立存在,往往伴随着各种其他资源,比如计算,比如存储,比如安全。所谓动一发而动全身。网络技术的革新,必然要求其他领域的配合和改变。Openstack之所以能被广泛部署,取代其他现有产品,很大的一个优势就是它所提供的解决方案是一体化的,并非单独替代某一项技术。因此,如何跟其他领域的管控技术融合,也将是SDN进一步发展必须要考虑的。

5、管控解耦。对于系统,特别是网络系统来说,管理和控制实际上是两码事。SDN自诞生起关注控制层,提出了合理的控制层模型。而在管理层方面一直重视不够。最近ovsdb方面的配置协议在管理层面有所进展,但整个SDN界对此的认识仍然十分落后。不少SDN产品中管理和控制层面混杂到一起,给未来进一步的扩展带来极大的挑战。

Saturday, August 24, 2013

控制科学的机遇和前路

控制科学在上个世纪七八十年代经历了黄金时期,控制理论在包括化工类生产等方面得到了极大的应用。
然而,此后,理论方面的研究停滞不前,也没有太多的新应用场景,导致控制科学发展进入了相对平稳的阶段。
到了今天,众多新型产业快速发展起来,从中也可以看出一些机遇涌现。

第一个还是机器人方面。
机器人产业的需求也来越大,特别是带有一定简单AI功能的机器,比如无人机,智能运输设备。必将在未来得到极大的发展和应用。这块是其他学科很难介入的地方,正需要新一代的控制科学。

另外就是现在的数据中心管理。信息技术的发展使得各种IT资源都集中起来,以数据中心的模式进行运营。而数据中心中诸多的资源,几乎时时刻刻都需要进行管控,比如服务器、网络,如何进行合理的调度优化,这恰好也是控制科学可以大放异彩的地方。

最后一个就是生物科学。生物科学是特别复杂的系统学科,方方面面都需要进行智能的优化技术。

Sunday, July 07, 2013

Secret of Earning an Engineering Phd Degree

Created at July 8, 2013

Engineering is always decoupling things, making it as simple as possible with a run-able solution.

However, research is mostly of a different style.
Not only to show how it works, but also to know why.
Abstract into theory, and demonstrate with scenarios.

Hence, the secret of earning an engineering Phd degree is to master both, and keep clear to pick the correct one at correct time.


Updated at Sep 18, 2013
So what exactly a Phd should be?
I think Phd = Dreamer + Engineer + Artist + Orator.

Sunday, March 17, 2013

网络相关的几个悖论


Braess's paradox
这个悖论是说在网络中添加新的路径,反而有可能造成更大的拥塞;反之,删除掉某些边,可能会让拥塞缓解。
乍一看,似乎比较难理解,但是回过头来考虑到在网络中传输的个体(比如交通网络中的车辆)实际上选择的都是局部最优的贪婪算法,即大家都去抢目前看来似乎比较快的路径,结果反而造成路径的通过时间变长。这是典型的局部优化导致全局不优化的一个例证。
一个很直观的简单例子在http://en.wikipedia.org/wiki/Braess's_paradox中可以看到。
这也实际上给治理交通拥堵的城市规划部门提了个醒,不能简单拍拍脑袋说拓宽某条容易堵车路,或者修条新路,有时候反而是起到相反的作用。反之,特定时间适当地限制从某些特定路通过,有时候反而能缓解。
实际上,城市里的交通规划比较理想的解决思路应该是上物联网+大规模智能计算。所有的路口安装足够多的sensor(比如监视器拍摄到画面),回传数据给类似waston一样的智能计算中心,进行实时的分析(视频、图像的分析是个迫切需要解决的问题)和计算、推理,然后统一进行调度,控制红绿(黄)灯的信号和时间。这样才有可能尽量合理的发掘道路的潜力,并能定位到真正的bottleneck所在,给市政规划、建设提出正确的建议和方向。
基于这个悖论的一些猜测也很有趣,比如是否存在如下可能?
在团体赛事中(足球、篮球),并不是队员越多越好,有时候少上一些队员反而更能赢得比赛?
管理机构中,人员也并非分工越细越好,合理的消除一些岗位或许反而使得整体办公效率提高。

Saturday, February 16, 2013

与网络相关的几个Law


Sarnoff's law
广播网络的价值跟用户数成正比(the value of a broadcast network is directly proportional to the number of viewers.)。
这个很容易理解。在传统广播网络模式下,每增加一个用户,网络的影响力就增加1。
这种网络的代表有电视网、广播网等。

Metcalfe's Law
网络标准的价值随连接的节点数增加呈平方增长( the value of a telecommunications network is proportional to the square of the number of connected users of the system)。
在通信/计算机网络,这个定律很容易被理解。因为网络里用户会跟其他用户进行交互。每增加一个节点,通信和可提供的容量会增加一个跟网络原先节点数线性的规模。可能存在的连接数目跟节点数N的关系是(N(N-1)/2)。
这种网络的代表有移动通信网、互联网等。

Reed's law
网络的效用随网络规模增加呈指数增长(the utility of large networks, particularly social networks, can scale exponentially with the size of the network.)。
这里网络更专注在社交网络上。这里的指数增长源自网络中可能存在的子组数目是指数增长的(2^N - N - 1)。
这种网络的代表有目前facebook以及类似模式的网站。

以上(数学)规律很好地解释了不同类型网络的增长速度的差异。即便传统的电视、广播网已经发展的如此普及,互联网还是以势不可挡的势头快速发展了起来;即便传统互联网网站做得如火如荼,现代的社交化网站还是在一夜之间改变了格局。

世界上没有偶然的事情,背后都有其必然的规律。而发现和合理利用这些规律,正是有“技术含量”的人应该孜孜不倦追求的。

其他一些有意思的定律。

Pareto distribution
幂律,是指网络中的某些量分布呈现幂律的形式。比如节点的度、链路的使用,社交网络中的交互等。
通俗的一些说法包括二八定律等。
其实该定律还可以推广到非网络的领域,比如说人类居住城市大小的分布、自然界中石头的大小,甚至硬盘的错误等等,都符合该定律。
这个定律背后的深层次含义其实是正态分布。
其他相关的定律还有Zipf's lawLong Tail law等。

Sunday, May 13, 2012

智能算法与人生决策


最近研究智能算法,发现大部分算法都采用了所谓的启发式策略。
从下山法,到模拟退火,到蚁群,等等。
所有的智能算法,从模型上说,其核心都在于所采用的选择策略。

而选择策略,无非两类。
一类是根据已知信息(包括历史,当前信息,规律等)进行有目的的选择,或者说(智能的)启发式。
另外一类,不根据已知信息,进行选择,或者说(愚笨的)猜测。

有的算法,启发式信息用的多一些,应用的范围较广,取得的效果也不错。
一个比较有意思的现象是,对于很多问题来说,单纯的启发式的算法往往不能得到最优化的结果。适当的引入一些随机的抖动,反而效果可能更佳。

其实,所谓的道,是从生活中提炼出来的。
智能算法,也正是每个人做种种决策的方法雏形。

很多时候,我们做决策,都是根据已知条件选择最优的,所谓“人性贪婪”。这样的策略也被称为贪婪原则。这样决策的结果从算法分析的角度,被证明只能保证局部最优。
事实上也如此。经商的投机倒把,为官的滥用职权,虽取得一时的荣光或暴利,结果往往令人叹息。
而引入启发式信息,对已知条件进行充分的发掘,甚至总结规律,前瞻后顾,则可能在名利场中面面兼顾,取得的成就也自然更大。

但常规的问题往往都没有太好的方法,对于人生这个复杂的系统问题,启发式算法能起到的作用也是十分有限。即便看透世界大势,即便往前看个数十年,眼下做的决策,谁又能保证是全局最优的呢?

于是,我看到太多人,因为追求优化,反而限制了自身的发展。试图追求最优,却最终丧失了追求优化的资格。
所以有些时候,将智能的启发与随机的选择结合一下,未必要事事做到极致。凡事留有一线余地,有机的结合趋利性和对问题周边的探知。

人生决策,非大量的计算而不能。而即便有了大量的计算,也难以确保解答。
能走好人生路者,大智慧也。

Sunday, December 11, 2011

关于SDN和未来云计算数据中心的报告

昨天,在首届SDN和数据中心技术研讨会上,我做了一个报告,给与会的各位专家介绍SDN相关技术和其在新一代数据中心中的应用,以及我对未来云计算发展方向的展望。
在报告中主要提出两个核心的理念。
一是关于信息技术从性能阶段往智能阶段的转变。
人类文明的发展,基础是对各种新技术的应用。而对任何新技术的应用大体可以分为两个阶段。第一阶段是简单依赖新技术变革带来的生产力飞跃,是一种粗放式的增长模式,可以称为性能主导阶段。而这种粗放式的模式必定会碰到瓶颈。一方面是对技术自身潜力的挖掘总有限制,在性能主导阶段,性能提升的代价必然是越来越大的,到了后面,这种代价可能已经超越了性能提升本身带来的收益。再一方面是人对新技术的需求,是越来越多的,简单的性能增长并不能满足所有需求。因此,过了性能主导阶段,必然会寻求一种更为精细化的阶段,可以称为智能主导阶段。以印刷术为例,开始是整版印刷,工人不断提升刻板速度,改进版面质量,但很快就变得难以继续提升了。这个时候就需要向智能化方向发展——活字印刷也就出现了。往往,在智能化阶段,孕育着更新一代技术的种子。此前的时期石器时代到电气时代,无不如此。而现在的信息时代,实际上已经到了性能主导阶段的后期,社会对智能化的需求也来越强烈。从生活中,我们也可以慢慢体会到这点。nokia破落,iphone大卖;汇编绝迹,C#盛行;pc收缩,平板兴起;甚至手动档已经越来越少见,自动档越来越流行,都证明了这点。这些年云计算的流行、社交网络、移动应用的兴起,也都是因为这个原因。所以,我预言,智能相关技术,特别是人工智能,春天已经到来了。而SDN的相关技术,恰好是智能化网络的一个很好的例子。
另外一个观点就是对于未来云计算数据中心的发展方向。
这个问题我也多次想过,这次算是有了个比较清晰的想法。我认为,未来的数据中心至少要具备两个基本特征。一是必须是性能(带宽、延迟)与智能(绿色、管理、配置、可靠、安全)需求都要能满足。二是必须是实现真正的完全虚拟化。当前的数据中心,其实并没有实现完全的虚拟化,无论提供的是iaas,paas,还是saas,都是针对用户的需求进行了深度的定制。一个提供saas的datacenter,很难同时服务需要其他xaas的用户。这个问题出在哪里?就出现在网络上,因为datacenter中的三个基本元素,计算、存储、网络,前两者的虚拟化都已经实现,唯独网络的虚拟化,最近几年才开始相关研究。未来的datacenter中,所有的资源,不论是什么类型,都应该统一的虚拟化,为“虚资源”。用户需要什么样的服务,就用这些“虚资源”组织起来,满足成能满足用户需求的形式。
以上两点想法,不知道是否是由我最早提出来的,但我坚信,都会被逐渐证实。