巧思科技简介
巧思科技公司的定位是以问卷的形式做精准数据,出发点是SASS服务,把问卷分为问卷的咨询、问卷的设计、问卷的分发,包括问卷的答题和问卷的数据结果。巧思云服务的部署方案包括: 按照SaaS云计算服务性质可以分为公有云、混合云、私有云等等;巧思系统是基于SaaS模式在线数据收集服务,是属于公有云范畴;巧思系统提供的SaaS服务基于组件化、模块化的,因此系统部署可以提供个性化、定制化、弹性化的SaaS服务,并且可以为客户提供通用型、专业型、私有型三种的服务部署方案。
遇到问题
- 发布更新流程长、速度慢。
- 并发能力、响应速度问题。
- 问卷之间计算资源相互干扰。
- 私有化部署问题。
容器服务选型
第一步是自己做,想想还可以,但是直接到正式环境上去用的时候,会发现自建这个几乎是不太可能的。第二步,找服务商帮忙解决。国内的技术超越DaoCloud很难,因为它集聚了国内在容器方面比较优秀的人,它的核心代码很多在国内还比较有名的,所以第二步选了DaoCloud。容器服务涉及到整个系统、网络、硬件、软件、进程调度,容易遇到铺天盖地的问题,有一个环节漏掉就没办法去做。比如,我们有的是计算型的,有的是IO密集型的,我们需要根据不同的应用把容器管理进行扩展,在这些层面DaoCloud会有一些弱势。第三步,尝试了一下阿里云。选择阿里云的一个优势是,由于我们原来的系统是在阿里里面的,再把它放到UCloud和DaoCloud里面,这样会把整个系统的线拉的特别长,一个远程的调用远程的API,会使系统非常庞大和复杂。如果将其换到阿里云上,很多调用都成了内部网调用,即局域网调用,就不用去考虑这些问题。
首先要支持网络4层和7层协议、TCP/Websocket、支持https、支持.net、mono。
自定义路由。比如,我们的一个场景很重要的,不同的问卷到不同的容器,历史问卷到历史的容器里面去,活动的到活动的容器,还有不同厂商的要指定到不同的容器里面去,发红包的要到发红包的容器里面去,这样就完全隔离,解决了云计算资源抢占的问题。将其分布到不同的容器里面,不同的容器会做不同的事情。
两层弹性伸缩,一个是容器本身的,根据CPU或者是根据类层去弹性伸缩,还有一个是弹性节点,节点进行弹性。
监控,现在阿里这边的监控远远不够用,巧思科技还有自己的监控,需要对达到业务层面的一定应用、业务层面返回的结果做一些监控。
海外镜像一定要支持。
权限控制。由于我们的整个系统里面有很多容器,有些管前台,有些管后台,有些管正式环境,有的管测试环境。比如,我们现在是有三个集群,一个是测试环境的测试集群,一个是预生长环境的预生环境集群,还有一个正式发布的正式集群,三个集群里面,有这样一个流程,先测试,测试完了送到预生产,数据库都连着相同的,最后正式环境下发布。这样就需要一个权限去控制每个集群由不同的人去管,职责到人,这样就保证到了预生产环境,正式的环境基本上就没问题了。
容器化的原则
选择容器化的原则是伸缩、快速、安全。伸缩是指两层伸缩,按照CPU和内存进行弹性。快速是指能做到快速响应。安全,包括压力测试、稳定性。
系统结构
右边是主系统,设计问卷发布好以后,会生成一个二维码、一个链接、一个node值,这是我们现在实际应用场景所要求的。上图中左边是API、右边是APP的每一个方框都是一个容器,既是APP的容器,也是API的容器。容器之后的进程,把Redis读到数据库里面,最终数据汇总到主系统里面。最终根据这样子的改造,APP是前台,API是后台的一个接口,前面和后面做了分离,API实现了微服务化,一个个细小的微服务去向前台提供服务。整个从这样的系统结构,可以看到,我们满足了我们对一个弹性伸缩,包括对于私有化部署,包括路由的方向的要求。
优势及优化
关于硬件资源,不想一边是UCloud,另一边是DaoCloud,这样会使技术站的侧重点不明确,其实侧重点应该是业务。所以,应用了阿里最成熟的几个产品,包括ECS服务、RDS、Redis、SLB等。其中,RDS在大数据存储上非常强大。在综合能力方面,巧思云服务单个点上功能不突出,但是综合、集成性、整体性最好。
后续会利用队列服务和容器服务提升并发处理能力;利用API网关服务和容器服务进行服务治理优化;利用Spark等大数据存储、分析服务和容器服务进行大数据分析;利用前置域名的路由自定义、私有化部署和容器服务进行私有化部署。