野狗科技CEO 刘之
互联网业务具有快速发展和变化,对性能和请求响应时间敏感,要求24小时稳定提供服务,必须随时应对并发访问量急剧增长等特点。为了解决这些问题,技术架构作为应用开发中的整体设计和抽象,必须以高开发和维护效率,高性能,高可用性,高可扩展性为目标。同时由于互联网的开放性特点,还必须兼顾安全性的考虑。这是我们对“架构”的理解。
野狗技术团队对技术架构进行了许多摸索和实践,沉淀出我们的架构观:技术架构要与具体的业务相结合,避免脱离业务空谈架构。
技术架构始终是要为业务服务的,不同的业务有不同的特点。举个简单的例子,我们面向移动端提供数据存储和实时同步的服务。从面向实现的角度讲,仅需要一个云端的数据库,并实现一个数据通信协议就可以了。但是考虑到移动端的特性,我们在架构上做了许多优化:SDK端拥有可以进行本地操作的本地数据副本,与服务端采用尽可能压缩数据流量的传输协议,在长连接不稳定时退化为long-polling等。
以最简单和高效的方式去实现目标,不做过多的假设,避免过度设计。
架构应该是从简单到复杂,不断演进的一个过程。工程师思维驱使人们去开发出一个理想化的系统。然而最好的架构却通常不是最理想的架构,而是最适合的架构。我们见过许多因为过度的架构设计而浪费宝贵的时间的案例,更有甚者因过多不切实际的假想而导致架构迟迟无法落定,这种现象有个术语描述,叫做“分析瘫痪”。小团队资源有限,不可能把所有的架构考虑都实现到最理想的状态。即使在大公司,技术的实现也需要考虑周期和成本的因素。所以优秀的架构应该结合业务目标,在权衡之中寻求到一个最优的点。
我们认为未来应用架构会有两大发展趋势。首先是后端服务的云化。随着技术的发展和积累,技术的垂直领域越来越多,每个垂直技术领域也越来越具有深度。因此一定会出现越来越多垂直领域的云服务,提供更专业的技术和产品服务。例如现在进行移动端app的开发,可能用到的云服务就包括推送,数据分析和处理等服务。这些技术领域都已有相当深度和积累,全部选择自行开发的话,造轮子成本会比较高。 其次是长连接在架构设计中将会占据越来越重要的地位。随着移动互联网和物联网的发展,应用对双向实时的数据通信的需求越来越强烈。而长连接服务在高可用性,负载均衡,安全性等策略上与传统的无状态的HTTP协议是完全不同的,这将引起更多架构的变革。
创业团队必须尽可能降低成本,提升将产品推向市场的速度。野狗致力于加速应用开发,将和伙伴们携手并肩,面对挑战,共创明天。
目录
推荐文章
高可扩展分布式应用程序的架构原则
雅虎如何在Hadoop集群上实现大规模分布式深度学习
专题
SND&OpenStack漫谈
反模式的经典 --Mockito设计解析
观点
先把平台做扎实,再来微服务吧
特别专栏
TalkingData如何构建交互型分析系统