本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:【j2开奖】技术类干货:浅谈SaaS服务平台设计

时间:2016-09-08 23:30来源:天下彩论坛 作者:开奖直播现场 点击:
【j2开奖】技术类干货:浅谈SaaS服务平台设计,移动saas排名,品牌设计干货,saas与erp的区别

码报:【j2开奖】技术类干货:浅谈SaaS服务平台设计

  根据Gartner 2015年的技术成熟度曲线,SaaS是未来HCM软件的大势所趋,处于稳步爬升的阶段。

  这里不赘述SaaS的各种优势,像体验良好、灵活部署、按需付费、快速改进等。本文重点说明优秀的SaaS产品(特别是HCM产品)是如何进行技术设计以建立这些优势的。

  相比之下,如果做了糟糕的技术设计,就如同把产品和服务建筑在流沙之上,岌岌可危。

码报:【j2开奖】技术类干货:浅谈SaaS服务平台设计

  经典的计算机体系结构里,底层是硬件,中间是操作系统,上层是应用软件。

  可以把SaaS架构与经典架构做一个映射:底层是虚拟平台层,中间是存储和服务层,上层是应用逻辑层。下面按照自下而上的顺序逐一论述。

  虚拟平台层

  摩尔定律是计算机世界里最重要的一个定律。根据摩尔定律,今天的处理器的性能是1980年的处理器性能的100万倍以上,今天一台智能手机的计算能力超过1980年的IBM大型机。

  得益于计算能力的指数增长,虚拟化的IaaS云服务大大降低了平台软硬件的部署成本,从而促进了SaaS服务的兴起。

  国外知名的云主机厂商有AWS和Linode,国内知名的云主机厂商有阿里云和腾讯云,各有优势。操作系统方面,Windows、Linux、Unix是常用的选项。考虑到世界上80%以上的云服务都跑在Linux系统之上,而且Linux免费开源,Linux当然是最佳选择。

  接下来要考虑的就是技术栈的问题。SaaS是轻前端重后端的系统,通过把复杂性从终端转移到云端,一方面保证用户端良好的体验,另一方面确保云端强大的进化能力。SaaS的技术核心在云计算,技术框架既要考虑开发效率,也要考虑程序性能,还要兼顾语言成熟度和开源社区支持。

  老一代的框架有Widnows的.NET和Java的J2EE。基于Windows的架构基本得不到开源社区的支持(可见程序员们对Windows多不感冒);Java架构成熟但是开发效率低,不太适用于快速迭代和敏捷开发。

  新生代的框架包括Mean和Go。基于Nodejs的Mean架构发展迅猛,采用Java打通前后端成为统一的全栈开发语言,但是Nodejs在大数据和高并发下的表现有待进一步观察;Go是Google力推的后端多并发编程语言,但由于是全新的语言,国内在工程师的深度和广度上面都不太能确保。

  中生代的框架包括Lnmp和Ruby on Rails。经典的Lnmp是世界上最广为使用的Web服务框架,开发效率高,得到广泛验证稳定可靠,而且开源社区活跃。相比之下,Ruby在稳定性和社区支持方面稍逊一筹。

  Lnmp架构在360和新浪微博得到广泛应用,承载了每日亿级PV的访问量,Facebook的后端主力框架也是Lnmp。兜行的技术框架同样采用Lnmp。

  存储和服务层

  数据是企业最核心的信息。特别是HCM系统,能够得到大量的员工数据,对于数据分析的要求非常强,如人事档案还面临数据字段的动态变化,这就要求HCM系统在数据的存储结构设计时要充分考虑这几点:

  1、数据结构的灵活扩展

  2、读写的效率与可靠性

  3、数据库CAP设计的平衡

  面临快速变化的用户需求,传统的强schema模式数据库常常心有余而力不足。

  比较激进的做法是直接升级到无schema的no-sql数据库,比如MongoDB和CouchDB。但是no-sql数据库在带来灵活性的同时,也带来了一些副作用,比如临时表空间占用过大,j2直播,不定期的垃圾回收机制导致性能抖动。

  比较稳健的做法是基于稳定成熟的关系型数据库,预留出动态字段,如mysql从5.7版本起原生支持JSON数据类型,或者采用EAV设计模式,把原本按列保存的数据转换成按行保存。

  固定字段长度的EAV表,在操作效率和稳定性上要高于no-sql数据库。兜行的数据库表设计里面,大量采用EAV模式。

  缓存和读写分离是常用的提高读写效率的方法。比起Memcache,Redis因为支持内存数据结构,在缓存处理上更为灵活。我们可以利用Redis实现KV、消息队列、列表、Hash,甚至用Redis实现锁的功能。

  更新缓存的Design Pattern有四种:Cache aside, Read through, Write through, Write behind caching。出于性能考虑通常选择Cache Aside Pattern,出于一致性考虑通常会选择Write through。

  以兜行为例,后台管理用的是Read through/Write through,前端访问用的是Cache Aside Pattern。

  HCM系统需要对数据做大量分析工作,这些工作涉及到两类科学计算:统计分析和数据挖掘。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容