从技术架构看如何打造专业SaaS客服平台
2016-01-05 13:22:42如今SaaS平台数量越来越多,由于业务不同,面临的问题也各种各样,处理的方式也各有千秋。希望能通过本文的经验分享,为大家在解决问题时带来一些思路。
内容摘要
一、如何快速实现从0到1的过程
二、如何以高可用性赢得用户信赖
三、如何提升系统整体的性能
大家好,我是逸创云客服(kf5.com)的刘铭。非常感谢DBA+社群给予我的这次分享机会,希望能借此机会跟各位大牛一起交流学习。我分享的主题是,从技术架构看如何打造专业的SaaS客服平台,主要内容涵盖了SaaS客服平台在不同发展阶段面临的问题以及如何解决。整个分享是本人基于实践经验得出的一些体会,希望和大家互相交流,共同进步。
一、如何快速实现从0 到1的过程
互联网创业产品初期规模很小,资金也不多,一般采用简单清晰,容易开发的架构思路。并基于流行的开发语言和框架进行开发,追求尽快将产品打造出来,***时间进入市场。初期阶段应该关注产品面向的用户群,以及产品如何满足用户需求。要相信好的架构不是设计出来的,而是根据业务发展演化出来的。
在这个从0到1,从无到有的过程,逸创云客服采用了常见的LAMP组合,开发框架上采用了Yii。其他类似的组合还有Ruby on Rails,Python with Django等,这些技术组合大同小异,没必要纠结到底哪个***。初期技术选型的依据可以从团队人员的技能储备,技术社区的活跃度,招聘人才的人力成本来考量。随着云计算服务平台越来越成熟,建议选择适合的云主机,将服务部署在云上,节约更多的时间与成本,后期也能灵活进行扩展。
二、如何以高可用性赢得用户信赖
产品打造出来后,如果产品能够解决用户痛点,就会有更多用户来使用服务。随着用户规模增大,web系统响应延迟、数据库查询缓慢等问题日益凸显。在保持产品迭代的同时,就要为架构设计留出更多空间。此时架构设计的首要目标是解决可用性问题,基本要求是不能有单点故障,基本方法就是分层和冗余。首先需要把服务拆分成应用层和数据层,也就是把单台 服务器 ,分成程序服务器和数据库服务器,有的还需要分离出缓存服务器、文件服务器。
分享一个架构图,如下所示:
1、通过负载均衡实现应用层高可用
负载均衡的目的是为了构建应用服务器集群。当一台应用服务器宕机,会由其他应用服务器接管,整个系统对用户始终保持可用。负载均衡也能起到让集群来分担访问压力的作用。实现方式上,可以先利用Nginx反向代理实现Http转发负载均衡,而规模稍大后则利用LVS实现IP层负载均衡或者数据链路层负载均衡。
搭建负载均衡的前提是把应用层变成无状态的。例如web服务中常用的session,这种状态保持要求相同用户的请求都在同一台机器上处理。虽然可以利用 session绑定IP的方式,将来自同一ip的请求转发到同一台服务器,但是假设那台服务器宕机,用户状态就会失效,仍然达不到高可用的效果。这时***的方式就独立部署session服务器,可以利用缓存来实现。
2、通过主从复制实现数据层高可用
目前主流数据库都支持主从复制,基本原理是从库监听主库的日志变动,将这个数据变动及时同步到从库。从库既可以起到数据备份的作用,也可以在主库出现问题时,取代主库的角色,从而实现高可用。可根据业务的特性,设置合适的主从库比例,一般是一主三从。
为了更好的利用数据库主从机制,还可以进行读写分离,从而改善数据库的负载压力。数据写操作必须在主库上,读操作尽可能的在从库上进行。要进行读写分离,首先要面临的问题是数据同步延时。这个同步延时虽然可以通过一些方式来减少延时时间,但始终无法避免。解决这个问题,有一种思路是将更新的数据保存在缓存中,如果在写操作后需要读取,则优先从缓存中取用,但这种方式增大了应用程序的复杂度。另一种比较推荐的方式,是在应用层或数据层做一个代理,这个代理要实现的是在写操作进行后,数据完全同步至从库前,强制从主库读取,这样就能保证数据的实时性。
三、如何提升系统整体的性能
1、使用分布式缓存提升网站性能
通过合理的缓存设计,可以大大减少数据库的访问压力,提高网站的访问速度。常见的缓存服务是Memcached和Redis。在设计缓存的时候,需要注意提升缓存的***率,在缓存数据更新前至少读两次,缓存才有意义。此外还得保证缓存数据的一致性,可以设置缓存失效时间,并在数据被更新时重写缓存。分布式缓存的存储空间和计算资源不受单机限制,方便扩容和更新。其核心问题是路由算法,数据分布可采用一致性Hash算法,来减小缓存节点变化带来的影响。
2、静态内容CDN加速
为了使不同国家和地区的用户都能流畅的访问网站服务,可以使用CDN来减少网络延迟。现在有很多云计算平台提供CDN服务,关于各家的服务的对比数据也有很多。选择CDN服务的依据可以从厂商的节点数量,系统现有文件的存储方式,接入成本来考量。
3、持续优化用户体验
在用户体验上面,除了追求小而美的产品设计,还有个利器就是采用前端框架将web应用转换为单页应用。让用户在浏览器里就能得到如同客户端般的体验,操作网页里的内容不用刷新页面。如今各种前端框架日趋成熟,逸创云客服使用的前端框架有Backbone,Ember。前者属于轻量型,应用在了普通用户聊天端。后者适合处理复杂场景,应用在了客服工单系统后台。
使用前端框架的优点是分离了前后端,只通过接口进行交互。后端不用再负责模板渲染,输出页面的工作,web前端和各种移动端角色对等,后端API可以通用化。在进行单页改造时,需要注意利用前端的数据模型层,已经获取过的数据就不用再次请求了,从而进一步提高前端应用的性能,并减轻后端服务压力。另外还要定义好前后端的数据交互规范,可以采用Restful API,还可以使用JSON API。如果前端经常需要获取关联的多个资源对象,并且对象之间的关联关系比较复杂,建议使用JSON API。
4、高级搜索
随着业务产生的数据越来越多,当用户需要从关系型数据库中搜索想要的数据时,结果往往不尽人意。因为关系型数据库很难实现中文分词查询,或者按照搜索结果的相关性进行排序,此时就需要搭建一个搜索引擎。开源的搜索引擎有很多,推荐Elasticsearch,原因是它支持分布式实时搜索,提供Restful API,采用多分片机制保证数据安全。在搭建搜索服务时,面临的主要问题是:建立合适的数据索引,高效的搜索语句,数据实时同步。对于前两个问题,需要根据业务场景设计相应的mapping和search语句,这是个不断调优的过程。对于数据实时同步,可以通过监听Mysql的binlog,并利用消息队列将数据同步到Elasticsearch中。
5、监控与日志
为了实时监控线上业务,在业务异常时快速定位问题,并对用户行为和业务日志进行数据分析,此时就需要搭建一个日志监控系统。基本的功能要求是对分散在各处的日志进行收集,集中管理,支持实时搜索,分析以及可视化。推荐使用ELK组合( Elasticsearch + Logstash + Kibana),由Logstash对日志记录进行采集,然后利用消息队列将数据传输到Elasticsearch中进行存储,***通过Kibana对数据进行可视化分析。当用户日志数据量很大的时候,可以通过优化消息队列,增加数据存储节点来解决。
如今SaaS平台数量越来越多,由于业务不同,面临的问题也各种各样,处理的方式也各有千秋。希望能通过此次的经验分享,为大家在解决问题时带来一些思路。
原文链接:
福建泉州..刚做完企业名称和经营范围的变更.今年的网上年检还要做吗.?组织机构代码证要年检吗
年检要的,代码证已变更了就不要了。
有些岗位组织考试是什么意思?
岗位考试考核考评管理制度第一章总则第一条为检验公司各岗位人员对岗位应知应会知识的掌握,核定各岗位人员的任职能力和任职资格,评定各岗位人员的工作绩效,营造企业良好的工作学习氛围,推动企业职工与企业共同进步,形成企业岗位知识积累,特制定本制度。 第二条本制度适用于公司所有职工(含公司车间员工、管理人员、中层干部、分公司领导、高层领导)。 第二章细则第三条岗位考试(一)岗位考试的内容1、列入岗位考试内容的应知部分包括岗位应知的行业法律法规,企业管理制度,管理体系知识等;2、列入岗位考试内容的应会部分包括岗位应会的作业方法,工作流程,专业知识等。 3、应知应会知识由各部门依据各岗位性质和实际需要,编制科学、详细、对岗位技能提高具有指导意义的内容,并依据实际情况不断补充和修订。 (二)岗位应知应会知识的培训岗位应知应会知识培训,采用公司人力资源部以及部门对入职人员进行岗前入职培训、岗位再培训、专业培训、自学等方式。 (三)岗位应知应会知识考试方式1、为检验岗位应知应会知识的掌握程度,公司人力资源部组织对各岗位应知应会知识的考试。 下一级岗位的考试题目由直属上级(部门)依据岗位应知应会知识建立试题库,人力资源部从试题库中抽题编写具个性化的试卷。 2、常规性的应知应会知识考试每年不少于一次;检验培训效果的考试一般在培训结束后半月内依据培训内容,由人力资源部组织进行考试。
本人急需房地产开发公司总经理职责、副总经理职责、总工程师职责。

一、总经理工作职责 (一)根据集团总体发展规划,制定公司中长期发展规划和年度、季度及月度工作计划并组织实施保证经营目标的实现; (二)建立健全公司组织架构、岗位职责、工作流程、规章制度及基础管理工作,指导协调公司各职能部门工作,考核教练各职能部门负责人,保证公司管理科学、快速、高效运行; (三)提议任免公司中层干部,调配主要管理人员、财务人员、其他人员等,创建团结、协作、高效的公司团队; (四)严格按照程序审核公司各项财务收支,全面掌握、控制公司财务状况,统筹安排,开源节流,控制计划开支,降低公司运营成本; (五)全面负责房地产项目可行性分析论证、报批、招投标管理、施工管理、预算控制、竣工验收及营销等工作; (六)组织安排公司与政府部门、合作单位及客户等各方面关系的公关工作,维护与提升公司形象和声誉; (七)致力于培育公司核心竞争力,建设保证公司永续经营的企业文化; (八)负责分管办公室、财务部、物业部工作,对办公室、财务部、物业部工作负领导责任; (九)公司章程或董事会授予的其他职权。 二、副总经理岗位职责 直接对公司总经理负责; 对开发项目的设计、工程、预算、营销负直接领导责任,管理各部门的日常工作; 全面参与项目的可行性研究及立项工作; 负责项目规划、设计工作,及组织有关部门、专家审核规划设计等方案; 负责项目勘察、设计委托及管理工作。 审批图纸会审记录、施工组织设计,签证等关键性工作把关; 负责监督设计、监理、工程发包、材料设备采购等招投标工作; 组织相关部门进行合同审核、会签及归档管理工作; 各参建单位工作任务、计划审定,审批工程款、材料款; 工程项目成本、质量、进度工作的全面管理、监督、监控; 负责项目各参建单位的组织和工程施工总协调; 全面把握工程验收并组织与物业交接工作; 公司工程管理规范化工作、工程管理得失的总结及经验推广; 负责组织编制、完善各项管理制度,加强公司员工队伍建设工作; 参与选聘、任用主管部门各岗位人选;负责考核下属各部门及岗位的工作绩效;审核员工的奖、惩标准及方案:对内负责处理下属部门与公司其他部门之间的协作关系,对外做好相关外联工作; 负责楼盘全程的整体营销推广策略,从市调、企划、销售、招商等全部过程的管理、督导、推动等项工作。 一、工程部的工作内容 (一)配合开发部做好开发项目的立项、规划与报建,负责规划、设计前的资料准备及技术论证工作; (二)参与工程的规划设计、报建,负责工程招投标工作,编制和审核标底,审查监理单位和施工单位的资质、业绩和实力,组织招、投标会议,签订监理、施工承包合同,领办施工许可证;参与相关材料、设备、配套设施的招标工作。 (三)负责施工图纸的审查,先进行内部审查,在征得公司领导的同意后,再组织设计、施工、监理单位和分管副总及有关部门共同进行会审,做好会审纪要和技术鉴证等工作。 (四)组织和参与工程定位和放线工作,确保水准坐标点、标高的准确无误; (五)负责审查和批准工程的施工组织设计,并督促其实施; (六)负责工程项目的概算、预算的编制与审核,在保证质量的前提下,严格控制工程造价,坚决剔除不合理因素,努力降低开发成本; (七)负责工程项目的现场管理,认真开展施工质量、进度的检查,促进施工单位自我检查和监理单位的抽查与复查; (八)负责抓好工程的地桩、基础、一层结构、主体结构、隐蔽工程以及工程竣工的验收和质量等级评定工作; 责抓好项目安全生产、文明施工的管理工作; (十)责建筑工程技术文件、资料的收集、审核、整理、归档工作。 组织绘制竣工图,做到竣工工程的资料真实、齐全、完整、规范。 二、工程部经理岗位职责 (一)负责贯彻执行公司制定的各项规章制度以及公司领导做出的安排和决定,明确本部门的工作目标和岗位职责,抓好本部门的各项具体工作; (二)熟悉本部门各岗位的业务,制定本部门工作计划,安排、检查、督促本部门员工所承担的任务,帮助解决存在的问题; (三)参与工程规划设计、报建,负责工程招投标前期工作,受权签订配套设施、监理、施工承包合同,组织工程技术人员熟悉图纸和施工图纸会审;参与相关材料、设备的招标工作。 (四)抓好施工前的准备工作,检查督促施工单位做好施工组织设计和工程进度安排,掌握和控制各项目的施工进度,检查监督工程质量和安全生产及文明施工,定期组织召开工程例会,解决现场矛盾,做好各协作单位的协调配合; (五)处理施工中出现的技术问题,及时办理设计及施工变更通知,对变更项目增减的签证,协调好监理、施工单位的关系; (六)抓好工程的基础、主体结构、隐蔽工程及竣工验收,负责质量等级评定及质量问题的处理; (七)负责本部门内部管理工作,主持召开部门会议、碰头会,及时解决协调工作中存在的问题; (八)参加公司相关会议,及时汇报工作情况及存在的问题,加强协作,搞好与其它部门之间的配合; (九)负责本部门各项规章制度的建立及对本部门员工进行评价和考核,实行优胜劣汰的人才竞争上岗机制,不断提高部门员工的政治思想素质和业务技能; (十)完成领导临时交办的其它工作。 三、土建工程师岗位职责 (一)根据部门工作计划,制定本岗位工作计划; (二)认真阅读图纸,做到熟悉每个施工环节,充分了解设计意图,并参与图纸会审; (三)熟悉本专业现行规范、规程和国家相关规定; (四)深入施工现场,控制工程进度和施工质量,及时发现并解决问题,组织并参与解决施工中出现的各类问题; (五)重要事情做到事前请示,事后汇报,必要时整理成文字资料并存档; (六)参与审核施工单位的施工组织设计和专业施工方案; (七)协助预(决)算工程师完成本专业工程量统计和复核及预决算工作; (八)做好施工记录,编写或审核工程报表; (九)参与分项、分部、单位工程验收; (十)做好现场安全管理工作; (十一)督促监理公司监督施工质量、日常巡检、参加现场旁站、隐蔽验收、中间验收和竣工验收,处理质量事故; (十二)监督协调施工单位的安全生产和防火、防盗工作; (十三)监督预埋、预留工作,保证正确无误; (十四)完成领导交办的其他工作。 四、水、电工程师岗位职责 (一)根据部门工作计划,制定本岗位工作计划; (二)认真阅读图纸,熟悉每个施工环节,充分了解设计意图,并参与图纸会审; (三)熟悉本专业现行规范、规程和国家相关规定; (四)深入施工现场,了解工程进度,及时发现问题并及时解决问题,保证现场施工质量。 组织并参与解决施工中出现的各类问题; (五)重要事情做到事前有请示,事后有汇报,必要时整理成文字资料并存档; (六)参与审核施工单位的施工组织设计和专项施工方案; (七)协助预(决)算工程师完成本专业工程量统计和复核; (八)做好施工记录,编写或审核工程报表; (九)参与分项、分部、单位工程验收; (十)现场临时用电管理,确保施工用电安全; (十一)完成领导交办的其它工作。 五、园林工程师岗位职责 (一)根据部门工作计划,制定本岗位工作计划; (二)负责编制景观设计招标文件,参与考察设计单位; (三)负责景观设计方案的确定,并根据实施过程发生的问题进行调整和补充; (四)负责对景观设计方案审查,并提出修改意见,交相关人员讨论、审核,并形成一致意见后交总经理审批; (五)方案和技术交底工作,负责审核、校对景观施工图,审核后签署意见归档; (六)重点把握发苗木的数量与规格,控制工程造价; (七)现场解决施工过程中的技术问题。 六、预决算员岗位职责 (一)负责按公司批准的《项目总进度计划》编制《合同预算工作计划》,并组织按计划完成,负责相关的工程技术文件的收发、管理; (二)负责投资决策阶段的投资估算编制审核工作及整理分发工作; (三)负责组织对设计单位提交的单位工程或单项工程设计概算进行审核,并对原投资估算进行相应调整; (四)负责核实竣工结算资料的合法性、完整性,满足结算相关工作的要求,并负责施工图预算编制审核工作; (五)负责生产预算的编制、实施及管理; (六)负责工程类经济合同的草拟、商洽、会签及监控工作; (七)负责及时组织材料员等相关人员处理工程索赔与反索赔工作; (八)负责对由设计变更引起的费用进行测算; (九)负责招投标工程量清单的提供、标底的编制、合同价格的确定及合同会签; (十)参与讨论《材料、设备选型清单》; (十一)参与对供应商的售后评估。 七、材料员岗位职责(兼职) (一)根据工程实际进度,编制材料(设备)采购计划; (二)根据月计划表协助财务部安排甲供材料的资金计划; (三)对拟采购材料(设备)进行询价、比价等工作,对相关有意向的材料厂商的资质进行审查、认证,参与招标、合同谈判等的具体工作; (四)按材料设备合同负责催货、运输、验收、支付、仓储、保修; (五)做好对甲供材料的管理,建立台帐,控制好材料的入库和出库工作; (六)协助并监督监理做好对材料进场的质量检验工作; (七)监督材料设备采购合同执行情况; (八)参加设备试运行; (九)负责收集、整理、保管好材料设备档案(包括合格证、说明书、随机技术文件、运转记录等); (十)负责加工材料设备的管理; (十一)协调材料厂商和施工单位的纠纷,不影响工程进度。 八、资料员岗位职责(兼职) (一)资料档案员负责收集、整理,管理好施工档案; (二)做好图纸和技术文件的收发工作,办好收发台账记录; (三)按档案管理制度的规定收集、整理、保管好工程档案。
发表评论