转载

基于PaaS平台解决企业移动应用开发的挑战

在安全、稳定的前提下快速迭代、扩展是当前企业级移动应用开发的基本需求,这需要的不仅仅高明的前端技巧。在本文中,IBM资深移动解决方案开发者解析了为什么要选择PaaS,如何选择PaaS,以及如何基于IBM Bluemix平台实现移动应用的快速开发和交付。

移动互联网时代,越来越多的开发者关注Swift、Kotlin、React Native等移动开发技术,但是否意味着玩溜了此类技术就能实现移动应用的快速开发和迭代?IBM移动解决方案研发工程师殷建东认为,移动开发不仅仅是前端的问题,而是涵盖前端、后端和安全三个层面的工程,对于企业移动应用的开发来说尤其如此,后端的工作对应用的交付速度同样影响巨大。

殷建东表示,通过稳定、开放、服务丰富的PaaS来解决后端的需求来加速移动应用开发,这是未来移动应用开发(和桌面应用开发)的方向。事实上,IBM的团队已经通过IBM自家的Bluemix平台来构建、部署、运行和管理其移动解决方案。

移动开发的挑战

不管是大中型企业还是初创团队,移动应用几乎是当前所有服务的首选表现方式,很多团队都在探索移动应用的开发。在殷建东看来,移动开发和传统开发模式的主要区别在于应用的交付和迭代速度,需要开发人员能够快速地把想法变现,这其中存在很多的技术挑战。

殷建东将移动开发分为前端、后端和安全三个方面:设备前端看得见的应用只是其中的一个方面,设备交互的数据属于后端,而前端和后端的数据传输和交互过程中又涉及到安全的问题。所以,移动开发人员不能只考虑到前端的开发,还需要思考后端怎么提供服务,怎么去维护,以及安全相关的问题。

中国开发人员对应用开发的认识更多的是关注在前端的开发上,比如如何学习一门语言、如何把应用做出来,而没有考虑到将来运维后端的问题和安全的问题。移动设备仅仅是一个表现方式,最终所有的数据承载和最终的核心业务还是在云端。

PaaS平台可以很好地解决后端的问题。对开发人员来说,PaaS平台最大的优势是它可以快速地为开发人员提供他们需要的各种API和功能。移动开发人员仍然需要学习前端开发的基础知识,但应用开发更加便捷,门槛仍然是降低了。

PaaS的另一个好处,就是应用上线之后,所有后台的运维、维护,性能的瓶颈等问题,统统不需要开发人员来操心,他们只需要专注于应用的业务逻辑上或者业务特征上。

PaaS平台的需求

并不是说所有的PaaS对适合所有的移动开发者。中国移动开发者相对年轻,面临的应用需求多变,而且中国的移动应用设计往往喜欢大而全,这意味着PaaS平台API的丰富性很重要,因而PaaS平台的架构设计最好是开放的,能够吸纳各种API以满足不同的开发需求。

对于企业移动应用开发来说,需要考虑到企业应用的特点,例如数据的安全性、系统的兼容性、平滑升级等很多的问题。同时,移动应用是首选的方式,但并不意味着只需要带有明显的移动特点的功能,如数据存储、数据分析、语音识别等功能,很难硬性划分是属于移动开发的需求还是桌面开发的需求。

所以说,抛开稳定性等云平台普遍性需求,满足加速企业移动开发需求的PaaS平台,需要包含如下特点:

  1. 支持对象存储,没有特殊的数据表结构的要求,让开发人员能够为不同的应用按照自己喜欢或习惯的方式来存储数据。

  2. 具备丰富的API、SDK提供各种开发人员需要的能力,如安全认证、数据统计、消息推送、即时聊天、语音识别、图像识别等,使开发者更容易获得高级功能。

  3. 各种前端语言、开发工具的广泛支持,包括一些最新的、开源的技术,如Swift、Object C、Java、C#、PHP等。

殷建东认为,基于开源的CloudFoundry构建的IBM Bluemix是一个很好的选择,他的团队就是基于IBM Bluemix开发移动解决方案的,前端也出现了原生态化,开发模式和自建后端的模式没有区别,但后端不需要自己去搭建和运维,直接选用Bluemix即可。

基于Bluemix开发移动应用

Bluemix是一个企业级PaaS平台,上面集成了数以百计的来自IBM和第三方开发的服务,包括底层的对象存储服务,并支持Github上的代码同步自动编译发布到Bluemix上。

随着移动应用的流行,Bluemix不断扩展移动端的能力,并这些能力进行梳理,专门提供了一个移动类别的服务,直接提供移动开发团队需要的API、SDK(大多数是RESTful API),比如消息推送服务,数据分析服务,物联网相关的服务,以及IBM Watson的认知计算能力,包括自然语言理解、语音识别等十多种能力。更进一步地,如果某个API性能或者功能满足不了当前的需求,那么Bluemix可能提供下一代的API,只需要通过一个调控界面简单地调整参数,马上就可以扩展资源提升性能(如增加内存),非常便利。

开发人员可以根据自己的需求选取不同的能力组合,包括IBM基于移动开发流程提供的一些模板,开发者也可以加入更多所需的能力(目前可以通过Bluemix的API文档以及Bluemix社区来了解这些能力)。殷建东认为,Bluemix是一个综合性的平台,开放的能力比较丰富,相对于国内一些在某个领域做得好的移动云平台,更容易覆盖到不同类型、不同规模的团队的需求。

Bluemix上的各种服务,针对不同的平台提供的SDK,都是经过优化的。例如安卓平台的消息推送是非常耗资源的,如果开发者自己完成,写一个消息推送一个长连接对代码的要求很高,但Bluemix的消息推送服务本身就是一个SDK,在设计的时候已经通过优秀的工程师从架构、实现到研究很好地测试,再交付给开发人员使用。再如数据分析服务,基于移动数据的量和特点(手机上的应用非常繁荣,数据非常多样,而且这些数据非常个性化),从离线收集、定期传输,到云端分析、数据安全,也都被屏蔽(参考: Bluemix云上大数据分析 )。这样,复杂的问题就让SDK给解决了。同时,这些服务也在一定程度上免费提供给个人开发者(限制不同的使用次数)。

在API之下,Bluemix也提供了各种面向移动开发的runtime服务,即前文说到的各种语言工具,以满足API满足不了的开发需求。而为了让前端开发和后端开发更加具有一致性,Bluemix后端也已经支持Swift。

谈到复用、兼容性,殷建东表示,逻辑相同的代码复用是所有程序员的共同追求,HTML5以及目前流行的React Native考虑的是从前端解决问题,浏览器封装或者中间编译的方式尽量抹平不同OS的差异性,实现代码复用,但Bluemix考虑的是后端,通过一种服务的方式提供各种能力给开发者,并不限定前端用的是什么技术。例如,Bluemix的消息推送机制,后台的实现是MQTT,不需要分别针对iOS和安卓做两套。

对于安全性,殷建东表示,Bluemix基于比较成熟的平台,符合业界各种云的规范,除了漏洞补丁、防火墙、CDN,从申请账号开始都会有一个动态的key,支持不对称秘钥、https,所以本身的安全是有保障的。除此之外,IBM有一套企业移动管理机制,从设备到应用到数据到接入层面来保证安全性。

得益于上述特点,在Bluemix上进行移动解决方案的开发,殷建东的最大感受是快速、容易和灵活扩展。目前团队将更多的精力放在UI设计、交互体验的优化上,其余交给Bluemix解决。殷建东还补充说,想要获得Bluemix的好处,还需要注意以下两点:

  1. Bluemix在中国落地是一个缓慢的过程,但这将根本性地解决网络方面的延迟问题,真正地为开发者快速开发提供丰富能能力。另一方面,需要更加复杂的大型企业,也可以选择部署Bluemix Local。

  2. Bluemix功能丰富,花费一定的时间来熟悉Bluemix的功能界面,对于开发人员更清晰更准确地使用所需功能,充分地利用Bluemix的能力加速移动应用开发、部署和迭代的进程是十分必要的。

原文  http://geek.csdn.net/news/detail/71578
正文到此结束
Loading...