月度归档:2014年06月

Typesafe是一家什么公司?

Typesafe是在2011年成立的一家公司,提供Scala,Play Framework,Akka技术栈的培训,咨询,商业支持。Typesafe第一轮融资300万美元,第二轮融资1400万美元。Typesafe主办了每年的“Scala Day”会议。Typesafe是Play框架的支持者,还开发了scala IDE。Typesafe的技术栈被成功地运用在了高并发的知名网站,如:Tumblr,Foursquare,LinkedIn,Twitter。Typesafe办公楼的楼梯都和scala的logo相似。 创始人是:Martin Odersky & Jonas Bonér,很有必要介绍一下这两位大牛:

Martin Odersky

Scala创始人,德国人,博士毕业于ETH(瑞士联邦理工学院),在IBM和耶鲁大学读过博士后,是瑞士EPFL(洛桑联邦理工学院)的教授,实现过javac编译器,在coursera上开过两门课:一,二 。他师从Niklaus Wirth(图灵奖获得者,设计了Pascal语言),
Jonas Bonér

创建了AspectJ项目,在BEA参与过JRockit JVM项目。对他的访谈 。 Jonas Bonér还起草并发起了Reactive宣言 ,推广Reactive。
在2008年,scala已经被有些企业用于一些复杂的系统上了,不过当时的scala仍然是通过创建很多线程共享内存来实现并发的,需要时还是会加锁。Jonas Bonér借鉴了Erlang语言的event-driven模型思想,创建了Akka项目,把event-driven模型带入到了scala语言中。Akka项目使用的就是scala语言,遵守Apache协议。从Scala 2.10开始,Akka的actor模型的实现已经集成到了scala的标准库中。Akka的特点有:
并发是基于消息的,并且是异步的。没有共享的可变数据,没有使用同步。Akka实现了actor模型。
actors之间的交互,不管是在同一台主机上,还是不同的主机上,都是一样的原理。它在不修改配置的情况下,既可以纵向扩展(加硬件),也可以横向扩展(加机器)。
Akka中的actors是hierarchically的,程序的failures被当做是event送给actor’s supervisor处理。与Erlang不同的是,Akka强制使用parental supervision,也就是说每个actor都被它的parent actor创建和监管,这是一个容错风格的actor,当有了parent了,如果一旦actor出错了,那么parent就能监视到,并且可以自我修复,非常健壮。所以Akka说自己是“拥抱错误”。
Akka鼓励和函数式编程一起使用,因为FP天生就适合不可变数据。
Akka的结构是模块化的。核心模块提供actors,其他的模块是附加功能的,比如与apache camel集成等等。
Akka提供了java与scala两种使用方式。
Akka的主要committer都是typesafe雇佣的。
作者博客介绍Akka
Akka的名字由来:akka是瑞典一座山的名字,也是瑞典一个神话中的女神的名字,那山被看成那个女神的化身。所以akka的logo就是一座山。akka中的A,K正好表示Actor Kernel
和Akka有关的著名项目有:(在github上共有250多个项目用了Akka)
Play framework 使用Akka的一个web框架,用于开发web应用
Apache Spark framework 构建在Akka之上。spark用于分布式的数据计算,spark可以使用内存计算集群来把数据导入到cluster的内存中,反复的查询,很适合于机器学习。 spark提供了java,scala,python API。Yahoo大量部署了spark。spark用了HDFS,但没有使用两阶段的mapreduce模式,号称比mapreduce快100倍
其他使用Akka的项目
Typesafe还开发了typesafe console ,提供了web界面的监控。分为免费版和订阅版,其中免费版有个限制是:只保留20分钟在内存中的数据统计信息。而订阅版没有20分钟的限制,可以使用数据库保存历史数据,并提供了JMX接口。

点评:

Typesafe这家公司首先是个咨询公司,技术实力强的令人乍舌。其中有语言发明者,有著名框架的作者,还有无数开源社区的committer,这些技术大牛们不停地在公司主页上写blog,推广和他们息息相关的reactive。

移动终端数量的不断膨胀与云端应用的并发量的不断升高,进一步推动着事件驱动、异步化、函数式编程、reactive的发展,传统的JavaEE已不能满足要求,如果眼光还仅仅停留在struts,jsf,hibernate,spring,ejb,webservice等好几年前的企业级应用的开发模式,那么当遇到高并发,高扩展性,大数据实时分布式计算等问题时,只能坐以待毙,又何谈技术来支撑业务?一个小小的黑客攻击,就能让你手足无措,轻易的击垮你。

Typesafe的运作模式与Redhat惊人的相似,都是由一帮技术牛人发起,做着咨询的事情,主导和贡献众多开源项目,都是在围绕开源项目做生意,CEO都是在行业内围绕开源项目摸爬滚打多年的老手,同时这些公司的业务方向与大数据,云,移动互联网也是一致的。开源公司将来会活的越来越好。

不过话又说回来,开源公司的客户都来自与传统企业以及互联网企业,毕竟接触最终用户的是这些运营具体业务的企业。试想一个天天上淘宝买东西的人,会关心Typesafe的技术牛不牛?这和她有一毛钱关系吗?(其实我在以我老婆为例)。

传统企业、互联网企业、开源企业大家一起往前走,互相发挥特长,人们的生活将会越来越便捷。