以考试为例,需要做的统计分析包括:最高分、最低分、平均分、方差、区段、每道题目的正确率,每个选项的选择比例等;可以做的数据挖掘包括:成绩预测,自变量与因变量的相关性等。 值得一提的是,企业的人数通常不会超过几十万人,大部分时候可以把所有数据导入内存,实现in-memory computing,既提高了速度又降低了分布式计算的复杂度。对于少数数据量极大的场景,可以把任务吐到map-reduce平台完成。Python以丰富强大的科学运算库著称,是完成这些工作的得力工具。 在服务层除了科学计算服务,SaaS厂商通常还要支持CDN服务,以确保用户快速访问到网络上的资源。 对于HCM产品,涉及到音视频的课件和office文档课件,所以还必须提供视频编解码服务和文档转换服务。另外,为了把消息及时通知到终端用户,服务层还要支持消息推送,邮件通知,短信通知等多种机制。 SaaS服务的可靠性是很重要的指标,要达到5个9的可靠性水平(即99.999%的时间可用),除了云主机自身的稳定,需要设计相应的应用监控、负载均衡和容灾机制。 LVS可以用来实现负载均衡,避免单点故障。同时应用层的心跳监测和告警机制,也能及时发现故障。有趣的是,不少SaaS产品做的就是应用监测,比如New Relic,听云APM和OneAPM。为了防止系统级的故障,数据和程序的镜像应该在多处备份。 应用逻辑层 MVC是经典的程序设计架构,其实产品设计也遵循同样的思路。把手机端/电脑端/网页端等用户端想象成V,用户在界面上操作;把云端想象成M,做存储和计算;把client和server之间的通信协议想象成C,完成控制与反馈。 前面说的内容大多与M有关,下面先说说C,即通信过程。 SOA和MicroService之争一直是很热的话题。求同存异地看,它们共同传递的信息是:把功能和服务内聚成模块,模块之间通过标准的接口进行通信,去掉大而全的core,变成独立运转的蚁群。听起来是不是和面向对象的思想很相似呢? 抽象和内聚的设计模式是普适性的。对象之间通过函数调用来提供服务,而SOA和MicroService之间通过网络请求来提供服务。据说Bezos在十几年前就要求亚马逊的所有产品都以网络API形式提供服务,这是最早的SOA吧。 最常用的网络请求是Http协议,Rest API是基于Http协议的一组规范,明确了CRUD四种操作对应的Http请求格式。工具型SaaS厂商的服务,很多以Rest API的形式提供。 HCM系统也会大量涉及到与企业内其它系统,如OA、CRM、ERP的对接和数据打通,基于Rest API的服务接口,就是不同系统间沟通交流的语言。 最后说说V,前端框架。 前端是技术世界里变化最快的角落。广义来看,ios、android、windows pc、web、微信h5都是前端。 前端是用户第一眼看到产品的地方,如何改善用户体验是前端最关心的问题。因为用户看得见摸得到,所以展现层的修改和调整会特别频繁,如何减少重复工作快速改进,这也是前端框架要解决的一个重要问题。web app和native app是前端的两种形式,目前看来各有优劣。 web app的优点是开发速度快,云更新实时生效,不用维护历史版本。缺点是每个独立页面都要发起若干个http请求,交互滞后明显,体验较差。新兴的前端框架重点就要解决体验问题,像Angular框架的最大优点就是减少了页面请求。 native app的优点是体验好,缺点是产品大量版本碎片,向下兼容维护工作量大。对于安卓手机,还有绕不开的适配问题。 较优的解决方案是Hybrid模式:在native里面嵌入若干的webview页面,在效率和体验之间找到平衡点。 相比传统的On-premises系统,SaaS系统的架构发生了巨大的变化,分层和模块化更为清晰,组合方式也更为复杂。这些变化,以及依然进行中的快速进化,会带给用户越来越好的产品和服务。 作者:牛透社特约撰稿人 员工和企业之间的关系正在发生微妙的变化,兜行的使命是打造员工与企业共成长的平台,其团队基于未来视角设计了当下的产品,开奖,很多地方和Gartner的预测不谋而合。 (责任编辑:本港台直播) |