1月29日,逸创云客服CTO•刘铭受CSDN邀请,在CTO讲堂群进行了一次关于「云客服平台技术架构」的分享。
今天,我们一起跟随「热衷研究各种技术的」极客刘铭,看:竞争日益激烈的SaaS市场,逸创云客服是如何靠技术打造「让30000+家企业都信赖」的好产品。
先来介绍一下分享主角: 逸创云客服CTO刘铭
拥有多年的SaaS企业级产品研发经验。热衷于研究各种技术,从前端的界面设计延伸到后端的服务运维,熟悉分布式,缓存,消息,搜索等机制。因看好国内SaaS发展趋势,加入逸创云客服,一直从事架构设计与产品研发等核心工作,致力于打造行业领先的云客服平台。
以下是1月29日CTO讲堂现场完整速记:
主持人:讲堂现在开始啦,欢迎逸创云客服CTO刘铭,请您给大家做个自我介绍。
刘铭: 大家好,我是刘铭,目前在逸创云客服担任CTO的职位,主要负责公司的产品研发和架构设计。
学生时代就对Web开发产生了浓厚的兴趣,从前端到后端都有折腾,曾经是一名全栈工程师,目前仍沉浸在技术的海洋中,不断探索,不断思考。今天主要给大家分享打造云客服产品的经验和心得,希望和大家互相交流,一起进步。
主持人:我们知道您一直钻研架构方面的技术,什么样的契机下决定加入逸创云开始创业之路?
刘铭:大概在2009年的时候,我了解到SaaS服务模式,觉得相见恨晚,认同这是未来的软件服务趋势,便依据SaaS模式制定自己的技术路线。当时国内的SaaS服务以crm为代表,并未涉及更多的垂直方向,而国外的SaaS市场已风生水起,百花齐放。
偶然一次机会,逸创云客服的创始人联系到我,想要打造国内首个SaaS云客服平台,颠覆传统的客服行业,这与我当时的想法一拍既合,从那时开始一直持续到现在。
主持人:请介绍下逸创云的技术团队及构成?
刘铭:逸创云客服的技术产品团队在成都,市场运营团队在北京。技术团队部分成员来自于传统的客服行业,在客服行业积累了多年经验,部分成员来自大型互联网公司,在互联网产品设计与研发上具有深厚的功底。
可以用七个字来形容我们技术团队:高效、默契、有担当。每个成员的能力都是非常优秀的,在团队协作方面,都能从其他成员的角度考虑问题,这就大大减少了沟通成本,当客户遇到问题时,模块负责人都能第一时间响应并解决。能够与这样的技术团队并肩作战,我感到很自豪。
主持人:请介绍下逸创云目前提供的产品技术服务?
刘铭:逸创云客服专注于企业级云客服平台,核心功能包括呼叫中心,在线聊天,工单系统,帮助中心,客户管理等。聚合了几乎所有的客户支持渠道,支持网页、电话、邮件、短信、微信、微博、移动SDK、客服APP等,为企业提供售前、售中、售后的一站式客服平台。
逸创云客服提供永久免费模式,包含3个客服坐席——助力中小型企业客户支持服务。如今有超过30000家企业选择信赖我们,包括百度、360、Uber、36氪、七牛、Ucloud、明道、罗辑思维等。客户群体覆盖了移动互联网、电子商务、金融、企业服务、教育、游戏、O2O、物流、医疗等行业。
主持人:与同类产品相比,逸创云的产品服务最大的优势体现在哪些方面?
刘铭:逸创云客服于2011年开始研发,2012年正式上线,最初是没有竞争的,我们花了很长时间完善产品,打好基础。一个没有竞争的市场就不能称为真正的市场,随之而来的竞争者是对这个市场前景的肯定和认同。
逸创云的优势主要体现在以下5个方面:
- 产品成熟: 电话,IM,邮件,工单,微信等,每个渠道都有超过50客服坐席的企业在使用。
- 集成简单:sso单点登录用于用户系统集成。移动sdk用于APP内的客户反馈集成。webhook用于向第三方推送提醒。restapi用于自定义的系统集成,包括用户导入、工单导入等。
- 服务稳定:目前逸创云客服系统的可用性为99.9%,也就是每年服务不可用的时间仅有8.8小时。
- 价格实惠:相比于同类产品的定价,逸创云客服的价位是较低的。初衷就是让企业享受到云客服便利的同时,为企业节约更多的成本,并维护市场的可持续发展。
- 口碑最好:我们也在使用逸创云客服为客户提供支持服务,高效率地帮助客户解决使用中的任何问题,以此赢得了非常好的口碑。客户的口碑相传为我们带来了更多的新客户。
主持人:请介绍下云客服目前的技术架构?
刘铭:
上面这张图描绘的是逸创云客服的系统架构。
核心系统做了不同机房的灾备切换,数据库支持主从切换和多节点备份,各种应用服务都支持集群扩展,保障整个云客服平台的高可用性。
入口层做了DNS层的负载均衡和Http层的负载均衡,充分发挥多机房与机房内web集群的优势。
业务层主要采用了LAMP组合,后端开发框架上采用Yii,前端框架采用Ember.js、Backbone.js,实时应用部分采用了Node.js、Express,业务层均是无状态设计,具备很好的可伸缩性。
缓存层采用了Ucloud提供的Memcache和Redis,支持分布式、持久化、自动容灾。
数据层采用了Mysql作为数据库,根据业务进行垂直分片,支持主从同步,读写分离、灾备切换。
文件存储层采用了阿里云提供的对象存储服务,支持多媒体转码以及图片处理。
监控服务采用了Ucloud和阿里云提供的监控,可以通过短信和邮件得知服务状态。
日志服务采用ELK组合,聚合各种服务的日志信息,在管理平台进行统计分析。
其他应用服务包括即时通讯,邮件,电话,微信公众号托管,消息推送,高级搜索等。
主持人:在产品开发过程中,对于架构的把控和设计都有哪些要点?
刘铭: 创业公司的产品需要敏捷开发,快速迭代,敏捷不仅仅在于快速交付,实现功能。如果单单为了提高速度,而不考虑扩展性,规范性,那么就产品就会变得冗余笨重,难以持续性发展,甚至是需要重新造一次轮子。
敏捷的关键在于快速响应变化,在速度和质量上找到平衡点,只关注真正重要的事,而且要重视,少关注占用大量时间而意义不大的事情。
在架构的把控和设计上,就得与产品的敏捷开发相配合,不断的进行权衡取舍,下面介绍三个架构设计原则:
- 明确目标:架构是为产品服务的,必须明确产品要实现的目标,才能确定架构要达到的标准。即使是同样的功能,但是目标不一样,做出来架构设计就可能不同。要充分进行沟通与思考,深入理解用户的需求,在做架构设计时,平衡好成本与性能,并保持架构的可扩展性。
- 大道至简:架构设计上应当保持简单可控,不做过度设计。相信没有最好的架构,只有最适合的架构。在满足产品迭代的前提下,尽量把架构设计得简单,让架构跟随业务发展而演进。
- 单一职责:把业务上的模块进行拆分,保持模块间的独立性,降低整个系统的耦合度。这样可以就对单个模块进行开发、测试、部署、升级,而不会影响其他模块。可将每个模块分配给不同的团队小组,开发时互不干扰,整体研发效率也得到提升。
主持人:云客服关键的技术难点和挑战有哪些?
刘铭:产品上的难点与挑战:
- 多渠道聚合:把来自各个渠道的客户反馈与对话汇聚在一个系统,用统一的方式来响应和管理。邮件,电话,IM,微信最终都是以工单为载体的。这就不仅仅是技术上整合各个渠道,也要求深入理解各个渠道的用户使用习惯,在业务上找到合适的切入点,让各种渠道无缝衔接,提供一站式的客服平台。
- 高度自定义:云客服产品主要为用户提供两部分功能,一部分是公共的,满足用户基本需求。另一部分是提供灵活的自定义功能,满足不同用户的特殊需求。云客服需要支持域名、界面、字段、权限、统计、业务规则、提醒目标等的自定义,企业能够自定义出一个完美符合企业品牌与业务的客服平台。
- 开放平台:对于已有自己系统的企业,需要提供完善的集成方式,如SSO、Restapi、webhook、移动SDK,让用户可以轻易的将已有系统与云客服集成。
技术上的难点与挑战:
- 高可用性:
基本要求是不能有单点故障,基本方法就是分层和冗余。可以利用负载均衡实现应用层高可用。
当一台应用服务器宕机,会由其他应用服务器接管,整个系统对用户始终保持可用。负载均衡也能起到让集群来分担访问压力的作用。实现方式上,可以先利用Nginx反向代理实现Http转发负载均衡。而规模稍大后则利用LVS实现IP层负载均衡或者数据链路层负载均衡。
搭建负载均衡的前提是把应用层变成无状态的。例如web服务中常用的session,可以利用缓存来分离出去。
可以通过主从复制实现数据层高可用。目前主流数据库都支持主从复制,基本原理是从库监听主库的日志变动,将这个数据变动及时同步到从库。从库既可以起到数据备份的作用,也可以在主库出现问题时,取代主库的角色,从而实现高可用。可根据业务的特性,设置合适的主从库比例。
为了更好的利用数据库主从机制,还可以进行读写分离,从而改善数据库的负载压力。数据写操作必须在主库上,读操作尽可能的在从库上进行。要进行读写分离,首先要面临的问题是数据同步延时。这个同步延时虽然可以通过一些方式来减少延时时间,但始终无法避免。要解决这个问题,比较推荐的方式,是在应用层或数据层做一个代理,这个代理要实现的是在写操作进行后,数据完全同步至从库前,强制从主库读取,这样就能保证数据的实时性。
- 安全性:
数据文件所存放的硬盘都做了raid10保护,并对文件做异地同步,具备很高的数据安全性和可用性。数据是多份备份,多处存储,采用特殊加密方式,分离运维和开发的权限。
我们对产品的信息传输也进行了加密,数据传输加密采用SSL加密,即使被黑客窃取,对方也无法获取信息的明文内容,可以保证信息传输的安全性。
对产品所有流入和流出信息都进行了信息过滤,对XSS跨站攻击、后门木马、SQL注入等常见的入侵手段加以防护并不断改善,避免产品使用过程中的各种潜在风险。
主持人:对于未来云客服的发展前景有哪些思考?
刘铭:未来的云客服平台需具备三个特点:
- 移动特性:用户携带并使用移动设备的时间将远远超过pc,当用户碰到问题时,可以随时随地使用移动设备联系客服。借助移动设备,用户可以将问题出现时的照片,视频,地理位置等信息发给客服,便于客服更快速的定位问题并解决问题。
- 智能特性:大家都说客户就是上帝,服务上帝的客服压力也越来越大。云客服作为新一代的企业客服平台,会把客服也当成上帝,在提高客服工作效率的同时,减轻客服人员的压力,这就要求云客服具备智能特型,能够将常见的问题归纳整理,以自助的形式服务用户。
- 数据特性:企业的客服是跟用户直接打交道的,客服服务是企业获取用户信息的重要途径,这些信息就像是一面镜子,反射出企业的产品、管理、技术、服务等各方面的状态。具备数据统计分析的云客服平台,能充分利用客户服务产生的数据,以此来驱动企业在发展战略上快速做出正确的决策。
逸创云客服已提供移动客服,智能机器人,数据统计分析的产品,但从未来的角度看,还需要深耕细作。希望和用户一起,需求驱动产品,让未来早日到来!
主持人:未来公司的发展方向和定位是什么?下一阶段的发展重点是什么?
刘铭:逸创云客服致力于成为云客服领域的企业级服务商,专注为企业提供客户支持服务。
目前逸创云客服覆盖了所有的客户服务渠道,很好的完成了产品的市场布局。以后仍然会用心倾听来自用户的反馈,在每个渠道都进行深度的探索,满足更深层次的用户需求。后续将与更多的SaaS企业服务商合作,进行产品上的应用集成,打造一个全方位的云客服平台。
主持人:结合自身,谈谈技术人如何做到高效学习和提升技能?
刘铭: 学习是一个认知过程,是可以根据自身的能力与习惯进行规划,缩短由入门到熟练、再到精通的时间,以下是我个人关于学习进度的一些心得:
- 首先,热爱要学习的技术,培养一些兴趣,是保证学习过程不半途而废的关键。
- 阅读相关的内容,了解所学技术的历史与发展趋势,对于所学有个全面的认识,这样在学习具体细节时能把握重点,适当取舍。
- 先易后难,学习是个循序渐进的过程,要给自己设置合适难度的关卡,保持信心。 温故而知新,有规律的重复是实现大脑长期记忆的唯一途径。
- 最后,多与大牛交流,使自己保持正确的学习方向,提升视野。
主持人:谈谈创业路上的收获与思考,对于想要投身创业的年轻人的建议?
刘铭:
- 选定方向,现在有创业想法的人太多了,要先考虑清楚产品的商业价值,能够让用户说好才是真的好。
- 坚持不懈,创业不仅仅是努力工作,还有很多繁杂的事需要处理,很多挫折需要经历,要调整好心态,不能浮躁,踏踏实实做事才会离成功更近。
- 突破自我,创业过程中时刻充满了挑战,有些是自己擅长的,有些是自己讨厌面对的,作为一个创业者,不能给自己找任何借口逃避,必须拿出最好的姿态,迎难而上。
总之,创业的艰辛只有走过这条路的人才懂,一旦走上这条路就不能回头,为了成功,值得冒险。
主持人:对于想在技术上走的更远的人,有什么建议和忠告?推荐您觉得不错的一些资料或者书籍
刘铭:如今技术的更新越来越快,但是万变不离其宗,一定要夯实基础,才能厚积薄发。希望大家每学一门技术,都能领会一种思想,借此不断开拓视野,提高自己的技术修养,为世界创造出更多有价值的产品。
个人认为经得起时间考验的书是一定要看的,而且要多看几遍,所以给大家推荐以下书籍:
- 《代码大全》
- 《重构:改善既有代码的设计》
- 《设计模式》
- 《编程之美》
- 《数学之美》
- 《数据结构》
- 《算法导论》
- 《黑客与画家》
以下为互动环节:
问:你们的智能机器人和微软小冰有多大差距?
答:在人工智能上和微软小冰的差距肯定是有的,不过我们会利用好自己的优势,就是基于云客服平台累积的用户数据,在用户允许的前提下,我们可以基于数据进行特殊分析,打造更有针对性的智能客服。
问:关于数据库的设计是什么模式的?
答: 数据库设计上运用了主从同步,读写分离,容灾切换
问:这个能够理解,重要的是关于,用户数据表的设计,是每个企业一个数据库,还是共享一个库,还是一个库,多个schame。关于这种模式的经验,有没有遇到过比较苦恼的事情。
答: 在企业的数据上,我们首先在业务上分为了多个库,每个企业的数据是在同一个库,用户数据分为公共的属性和自定义的属性,公共的部分是在同一个表,自定义的部分是不同的schame。但是数据在使用上是完全隔离开的,这一点是最重要的点。
问:我们在考虑数据库的设计时,也是做了大量的尝试,考虑到不同企业之间的数据隔离,还要考虑数据库的规模,还要考虑应用之间的共存。没有最好的设计,只有最适合的设计,这也是一路走来的经验积累。现在阿里云已经发布了很多服务,有没有考虑多用这类的服务?还是这类的服务还不能满足现有的服务呢?对我们正在尝试的会有什么好的建议。
答: 其实我们在图片处理、语音转码功能上,已经采用了阿里云提供的服务。使用成熟的第三方服务,可以使创业公司专注自己的核心产品价值。当然在使用前,还是得仔细考虑是否符合产品的需要。
问:因为现在大数据云计算将来是一个趋势,所以想好好学习学习,我才毕业一年。
答: 入门时可以以基础为重,多学习数据相关的理论,这样你以后的实践之路会走的更顺利。
问:是数据结构、算法方面的吗?
答:对的,还有统计学相关的基础,这些理论知识可能就是以后成长的瓶颈,所以得认真学习。
问:请问您对创业公司要不要花时间和资金培养新人的问题怎么看?
答: 创业公司能够持久发展的动力来源关键是人才,但是由于创业公司资源有限,对于新人是否合适的判断标准要高一点,但是一经录用,肯定是要花很多精力培养的,这样在以后公司的发展中,才能担当重任。
问:你觉得SaaS这种软件模式在目前中国的接受度如何?发展潜力如何?我知道在美国已经有相当的发展,如Salesforce。
答: SaaS软件模式在2015年有了非常大的进展,预计在未来3年来会成为非常热门的行业,发展前景很广,市场很大。
问:请问这个只是一个客服系统吗,他和其他系统,比如电商系统,微分销系统如何对接?数据库可以共享吗?
答: 这不仅仅是个客服系统,可以称为一个客服平台。我们提供有sso用户集成,restapi系统集成,webhook推送提醒等,可以快捷的实现深度对接。数据库当然是独立的,不过可以通过接口调取
问:刘总,请问SaaS在企业中主要在哪方面有实际的使用场景?
答: 研发-大数据 SaaS的使用场景非常多,比如客服、物流、制造、计算、存储、网络加速、维修等。SaaS可以使企业在这些业务上取得更多的成效,也可以节约很多成本。
逸创云客服自2011年成立,本着让企业的用户更加满意,客服更加高效,管理更加轻松的宗旨,始终从客户,从客服,从管理者三方的角度去完善我们的产品,致力于打造中国最稳定最安全的一站式客服系统。
也正由于我们这样的坚持,逸创云客服获得了百度,360,猿题库,申通,蜜淘全球购,uber,印象笔记等国内外30000+家优秀企业的信任,真正成为客服信赖的一站式企业级云服务平台。
维奇VerKeep •
支持了!!博客正准备弄个云客服