灵蹊做为一款标准的云端应用程序(SaaS),除了为用户提供强大的营销能力之外,数据的安全性和服务的可靠性,也是重要的投入方向。本文从公司背景、产品设计、运维部署和工程实践四个方面,介绍我们在这些“看不见的功能”方面做出的努力。
灵蹊所属的Ptmind公司于2010年进于数据行业,一直将安全性作为核心准则,无论在产品设计、基础架构还是团队方面均进行着严格的要求。公司经历了长时间、大规模、多样化、全球化的客户验证。
Ptmind的三款产品在全球累计服务超过20万家企业级用户,其中不乏国际或行业领先的知名品牌(包括对数据安全有严格审核把控的国际化品牌、也包括对数据安全与隐私极度敏感的金融、银行及政府机构),并且客户覆盖众多来自对个人隐私保护和数据安全性有苛刻要求的国家(如欧洲、美国、日本、新加坡等地)。
这些客户在营销活动的全链条中应用Ptmind提供的云端解决方案,包括在线用户行为监测和分析、网站/App内容个性化、营销落地页搭建和个性化、营销全栈数据整合和可视化分析。
作为SaaS产品的立身之本,我们致力于尊重与保护你的数据隐私安全,并提供稳定可靠的产品服务。
Ptmind的产品伴随着互联网技术的蓬勃发展而生,在技术架构设计的诞生之初就受益于大规模分布式系统技术的应用,在系统的数据存储、后端服务和前端应用三个层次,都直接采用高可用设计架构,通过对数据和计算进行分布和冗余,确保系统即便在发生一定程度的服务器硬件或者网络故障的情况下,仍然可以正常工作。同时,系统在架构设计上以数据访问为核心,对用户的身份校验和权限校验都有严格的控制,并采用“最小化访问原则”来进一步约束敏感信息的对外暴露。
高度可靠的存储
每份数据至少冗余保存在三台物理服务器上,少量服务器或磁盘故障不会影响系统的可用性和稳定性。此外,所有数据会被定期完整备份到异地的网络存储中,因此即便一个数据中心出现整体灾难性故障,也可以在其他数据中心快速完成数据恢复。
弹性伸缩的网络带宽
在线推广的流量经常随季节和节假日出现剧烈波动。灵蹊采用混合云的架构,首先在自有IDC储备充足的带宽余量,同时通过专线连接公有云的带宽,从而灵活快速的按需扩展总带宽容量。
弹性伸缩的计算资源
和网络带宽扩容方式类似,灵蹊在自有IDC储备充足计算资源的同时,能够做到随时征用大量的公有云计算资源参与服务计算,从而做到接近无限的扩展计算容量的能力,确保每一次用户请求都被快速无误的处理。
身份验证与授权
用户登录到灵蹊后,会被服务端分配一个独一无二的、高度安全的会话ID。后续每一次数据请求和业务操作,都会被独立的进行身份和权限的校验,确保对执行的操作进行细粒度的控制。同时通过增加统一的拦截层,彻底避免未授权用户对系统进行任何访问。所有数据传输都通过TLS加密信道进行。
操作日志和审计
用户的每一次操作都会被系统日志记录,便于分析异常行为和进行必要的审计。
落地页的加载速度会在很大程度上影响转化效果。为此,我们在产品架构和基础设施层面都设计了很多措施,确保访客在打开页面的时候快速流畅。
01页面压缩
页面内容经过压缩传输,尽量降低对带宽的需求。
02图片压缩
图片资源进行无损压缩,在不降低品质的前提下,尽量减小传输数据量。
03CDN加速
图片资源配置覆盖全国的CDN加速,访客会自动从离自己最近的节点加载资源。
04CNAME解析
自定义域名通过CNAME域名解析的方式挂载,避免在客户端发生二跳,影响投放效果。
05后端动态版本分发
对于携带多版本创意的页面(例如A/B测试),版本信息在页面被请求的瞬间由服务器端确定,避免在访客浏览器中现场替换内容引起卡顿和闪动。
06内置采集
页面本身自带数据采集,避免额外引入第三方采集脚本带来的不稳定性
我们非常重视服务集群的安全性和可靠性,并从基础设施和系统架构两个层次进行优化
01防火墙
数据中心入口配备防火墙,对业务系统进行安全防护、访问控制、入侵检测和防护。
02主备切换
防火墙和网络设备均采用主、备模式,一旦发生故障瞬时自动切换,避免单点故障造成系统级问题。
03专业运维
配备专业的运维团队,7x24监控数据中心运行状况,定期对操作系统和业务系统运行的基本平台进行安全性扫描,及时修复安全漏洞。
04分布式高可用架构
数据采集、存储和分析服务均采用分布式高可用架构,通过多重冗余大幅提高数据存储的可靠性和整个系统的可用性,并且支持在业务规模增长时弹性扩展计算和存储能力。
05定期巡检
后台系统定期巡检各关键服务的健康状况,并在发现问题时实时告警,以做到在最短时间内发现问题、解决问题。
06全量备份
核心服务的配置文件和关键数据每天进行全量备份并上传至异地备份服务器。
我们理解即便在设计上做到无懈可击,一个系统在实现过程中还是会引入各种安全隐患。因此我们还尤其强调在工程实践中及早发现并杜绝安全性问题:
01功能设计评审
在功能设计评审阶段,不仅关注功能的合理性,也关注新功能是否会对系统安全性带来新的挑战,及时完成功能实施规划与合理资源配置。
02架构设计评审
在开始编码之前,工程师团队会对架构设计从安全性角度进行仔细评审,系统化的分析新的数据流动方式和访问方式是否会带来隐患。
03代码评审
在实现过程中,工程师团队会对安全性敏感的模块进行严格的代码评审;对于代码中使用的第三方组件,也会持续关注安全性相关的问题修复并进行及时更新。
Powered by BetterDocs