轻量化的未来,为什么要选择Docker和HTML5
“容器”很火,“H5”很火,这些名词源自程序员的口中,现在竟然也可以被设计师、产品经理们信手拈来,可见其内在的生命力。而它们之所以可以流行的原因,根本上源于它们都反映了一个互联网和软件行业的一个趋势:轻量化。
为什么未来是轻量化的?
在互联网产品和软件开发领域,开发必须保持轻量化已经是个共识,也就是必须能够很快地进行试错、调整重构、开发新功能、并且发布。所有不适应这个变化的开发团队,基本上很难开发出可以适应这个时代的产品。
其实发展到现在,不仅仅是在开发领域,从开发到运维,再到交付都应该是轻量化的。对于开发和运维来说,轻量化意味着产品的迭代更加快速,开发和运维这二者结合得更加紧密,而这也是目前IT交付过程的潮流,即DevOps:开发和运维一体化。DevOps提倡开发和运维之间高度协同,能够让产品快速更新并迅速交付,在完成高频率部署的同时从根本上减轻运维的压力,提高生产力;而随着移动互联网时代的到来,用户也越来越多地通过手机来快速地获取服务,而且手机应用的场景也越来越轻量。总的来说,从开发到运维再到交付的轻量化,都是场景越来越轻量化的趋势。
所以,我们GeoHey从一开始就使用了Docker、HTML5等技术来协助产品的开发,保持整个过程的轻量。下面就将结合我们团队的经历和产品来介绍我们在这条道路上的一些实践。
Docker让开发快速、部署简单
我们的开发团队使用了Docker作为平台开发的工具。Docker是一种轻量级的容器技术,容器中只提供软件运行所必须的环境,相比于虚拟机,磁盘使用率大大减少;由于和运行于的宿主操作系统共享资源,消耗的内存也大大减少;并且由于Docker容器和宿主操作系统相对隔离,可以在Linux、Mac和Windows上一致地运行。
Docker的平台独立性使得我们的开发环境和远程部署环境可以基本一致,从而避免了操作系统不一致以及软件版本不同等麻烦。另外,我们不必痛苦且重复地在每个工程师的电脑上配置开发环境,每个工程师只需通过Docker同步并部署即可。要知道,随着GeoHey平台功能的越来越多,如果不用Docker,每个工程师都需要配置自己的开发环境并顺利地运行起来,不但需要很多时间、而且每次升级某个软件或者依赖库版本都要让所有的工程师重复地进行升级操作,最后还要在开发机器上使用很多系统资源去运行它,简直让大家非常崩溃。
用了Docker就简单多了,GeoHey Dev的Docker由许多不同的Docker container组成,比如上图中的web、app、db等,我们平台的每个组件都会做成一个相对独立的container,这些container使用docker compose组合起来。不论在本地还是远端,只要输入docker-compose up命令便可启动整个GeoHey平台。在远程部署方面,通过把GeoHey Dev上传至私有云端,我们可以在几分钟内把系统部署到阿里云或是完成一次线下部署。总之,Docker大大提高了开发的效率,并且极大地减轻了部署的压力。
HTML5让交付迅速、容易
移动互联网时代已经无可争辩地到来,而且已经从App时代进入到轻应用时代。相比一个App的开发、维护、发布以及推广成本,HTML5是目前最适合轻量级发布功能和产品的技术,在看得见的未来都是一块极其重要的战场。
GeoHey是SaaS形态的地理位置服务,HTML5始终贯穿于我们整个平台。为了让其它开发者可以基于GeoHey平台快速构建HTML5应用,我们不但以API的形式分发服务:比如地理空间分析服务、地理围栏服务、地图服务、导航服务以及数据服务等都可以通过API进行调用;我们还提供HTML5的SDK来帮助用户构建应用。
HTML5结合微信等平台还能形成一个效应,就是传播的迅速。使用GeoHey的平台以及其中包含的各种各样丰富的海量地理数据,用户随时随地可以在手机浏览器中定制地图、可视化数据、做地理位置分析以及很多其它的事情,然后成果又可以很快地在朋友圈等载体中传播。
下面是GeoHey网站上的用户分享展示的用户使用我们提供的一个HTML5应用数据上图分享的地图集锦。我们的用户发挥自己的聪明才智制作地图反应时事,揭示规律,而这其中设计的话题从从街道的可步行性评价到最近刚结束的各省高考难度和一本录取率,再到莆田系医院的分布,应有尽有。
通过我们提供的HTML5 SDK,用户还可以自己开发出功能更丰富的应用。比如,学区房查询应用,臭水沟及污染企业警告应用等等。
在使用HTML5保持前端轻量的同时,后端也需要讲各种能力轻量化。比如,GeoHey在对卫星影像通过机器学习来进行识别和搜索,这是通过大量的计算资源和模型训练的成果,但是这个成果可以很容易地通过我们的API对接到我们的HTML5应用中来。下面就是使用机器学习来搜索相似地块的一个应用。普通的用户,不再需要任何知识、计算资源的储备,就可以迅速地使用到专业的模型和计算能力。
Docker和HTML5是轻量化的选择
互联网和软件产品的未来是轻量化的,Docker和HTML5则应运而生地迎合了这个趋势,是自然选择的结果。地理位置服务本来是一个门槛很高、专业性很强的行业,但是轻量化以后,竟然可以让很多原来对地理位置没有概念的人,开始对地图、位置数据开始感兴趣起来。这让我们欣喜地感受到,通过这些前沿技术的帮助,我们真的在慢慢接近最初的梦想:任何人都可以随时随地用地图来表达认识和见解,从地理位置大数据中挖掘新的视角和洞见。