极光笔记|极光消息推送服务的云原生实践

摘要

极光始终秉承“以开发者为中心”的战略导向,极光推送(JPush)是国内领先的消息推送服务。极光推送(JPush)本质上是一种软件付费应用程序,结合当前主流云厂商基础施设,逐渐演进成了云上SaaS服务。作为SaaS服务,必然要考虑云原生架构。因此,在极光推送(JPush)日益成熟的今天,也开启了云原生架构的演进之路。

云原生简介

云原生,即Cloud + Native,Cloud表示使用云服务,通常结合传统云厂商提供的基础设施;Native表示应用服务从服务设计开始就考虑接入云厂商的基础设施,充分利用云平台的弹性和分布式优势。

云原生技术理论,经多年发展,其主要可概括归纳为以下四点:微服务、DevOps、持续交付和容器化。

4ba1d4bfc2689f47eb84e881707d797c.jpeg

其中,

  • 微服务和容器化,主要是指以k8s为底座的微服务和容器化,利用k8s平台的能力,快速搭建稳定性和可靠性更好的应用。

  • 持续交付和DevOps,则是指以CI/CD为核心,结合各种发布和运维工具,提供小步快跑,持续迭代,持续交付的全套开发、发布及运维的自动化流程,提高运维效率,降低运维出错风险。

总之,云原生技术,借助云计算平台(通常基础设施包括IaaS和PaaS)快速发展的东风,再结合虚拟化和分布式框架技术的成熟和普及,传统SaaS应用走向云原生化已是大势所趋。

云原生服务的优势

云原生架构服务之所以备受青睐,主要因为其有如下优势:

  • 高效:开发人员无需依赖特定硬件,而是使用DevOps流程构建随时可部署的容器化应用,可在不关闭应用的情况下轻松快速完成服务更新。

  • 高可用:云原生服务通过分布式能力,使应用具备超强的弹性和高可用能力。

  • 降成本:一方面,利用云厂商的基础设施,不用再购买价格高昂的服务器;另一方面,利用云原生服务的弹性能力,可以快速便捷的动态调整使用的资源,即根据服务的高峰期和低谷期,更合理的使用资源。

云原生消息推送服务改造

为了适配好云原生相关技术,极光推送(JPush)相应也进行了大规模的服务改造。其中,包括微服务架构优化,服务容器化改造,Kubernetes平台适配,可观测性改造,以及服务安全改造等等。

微服务架构改造

微服务架构的改造,主要包含以下几点:

  • 业务架构优化

  1. 合理的云服务组件切换,如云厂商的存储和缓存服务,提升系统的稳定性

  2. 业务流程梳理优化,精简调用流程

  3. 服务调用方式优化,合理使用RPC和消息队列传递消息,兼顾性能与消息传递解耦能力


  • 服务微服务化改造

  1. 选择合适的微服务化框架对服务进行改造,更好的契合云原生架构

  2. 优化微服务的请求失败重试,熔断,过载保护,以及负载均衡的策略,提升系统可靠性

  3. 选择合适服务注册中心,极光服务选择了nacos,并线上实践了大规模集群的管理能力


  • 服务容器化改造

  1. 微服务的容器化改造,去掉如本地缓存,服务进程间共享内存等依赖

  2. 适配k8s,并搭建可视化平台管理工具,方便快速支持k8s的线上容器管理和运维

可观测性改造

服务的可观测性也是云原生服务重要的一环,可观测性包括,监控告警、日志和链路追踪三大块。

  • 监控告警

  1. 通过Prometheus,自定义业务与资源的上报指标,并制定监控和告警规则

  2. 通过Grafana,将上报的监控指标整理成可视化监控大盘

  3. 通过消息,邮件,电话的方式上报不同级别的错误告警,及时做好线上问题的跟进

  • 日志

  1. 搭建ELK的系统化日志管理平台,方便追踪和定位线上问题

  • 链路追踪

  1. 通过opentrace搭建部分关键服务间调用的链路追踪,及时关注重要消息的轨迹

  2. 优化业务层消息生命周期数据,完善服务推送消息的链路追踪统计

服务安全改造

国家信通院发布的《云原生安全白皮书》中曾提到:"云原生安全强调安全产品原生化"。即在最大程度利用云厂商的安全能力,提升云原生化服务的安全防护能力。

极光在云原生化服务的过程中,也非常重视安全问题,主要做了以下几点改造:

  • 对API进入极光服务集群的流量,严格执行零信任安全策略,对入网中的一切行为不信任,做到始终验证,持续监测

  • 使用云厂商的DDos防护能力,为线上服务防攻击做好保障

云原生改造实践收获

通过极光服务的云原生化改造的不断推进落地,JPush服务也收获颇丰:

  • 稳定性的持续提升,SLA 持续保持99.9%以上

  • 开发和运维效率的持续提升,可以使用更少的人力维护好更大规模的服务,通过监控告警等可观测能力快速便捷的了解系统实时的运行状态,以及线上问题的及时跟进和修复

  • 更好的关注资源实时使用的情况,及时控制服务成本

未来演进之路

极光推送(JPush),作为国内行业的领导者,也将持续致力于服务好我们的客户。除了继续迭代我们的硬产品能力,我们也还会继续深入的完善服务的云原生化,在服务的易用性、稳定性和效率上做持续的迭代和建设。未来,我们也将在以下几个方面继续努力:

  • 基于云原生技术,搭建更完善的服务管理发布平台,完善好开发和运维工具,更好的提高服务管理运维效率

  • 由于极光消息服务体量较大,我们还会持续优化提升更大量级,更高峰值消息实时推送性能





关于极光

极光(Aurora Mobile,纳斯达克股票代码:JG)成立于2011年,是中国领先的客户互动和营销科技服务商。成立之初,极光专注于为企业提供稳定高效的消息推送服务,凭借先发优势,已经成长为市场份额遥遥领先的移动消息推送服务商。随着企业对客户触达和营销增长需求的不断加强,极光前瞻性地推出了消息云和营销云等解决方案,帮助企业实现多渠道的客户触达和互动需求,以及人工智能和大数据驱动的营销科技应用,助力企业数字化转型。

相关推荐

  1. uniapp+极光消息

    2024-03-25 21:12:03       38 阅读
  2. C#阿里消息列队消息

    2024-03-25 21:12:03       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 21:12:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 21:12:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 21:12:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 21:12:03       18 阅读

热门阅读

  1. C#使用ASP.NET Core Razor Pages构建网站(二)

    2024-03-25 21:12:03       20 阅读
  2. c++小游戏《荒岛求生》

    2024-03-25 21:12:03       21 阅读
  3. typeScript3(数组类型)

    2024-03-25 21:12:03       18 阅读
  4. 【58. 最后一个单词的长度】

    2024-03-25 21:12:03       21 阅读
  5. 面对数据集不平衡的分类任务怎么办?

    2024-03-25 21:12:03       16 阅读
  6. 《c++》继承同名静态成员处理方式

    2024-03-25 21:12:03       19 阅读
  7. 【Leetcode】代码随想录Day15|二叉树2.0

    2024-03-25 21:12:03       18 阅读
  8. 毕业论文的问题猜想及答案整理

    2024-03-25 21:12:03       18 阅读
  9. Python学习笔记01

    2024-03-25 21:12:03       18 阅读
  10. 碎碎念-记一下LSPatch的原理

    2024-03-25 21:12:03       17 阅读
  11. 【笔试】美团2024年春招第二场笔试(技术)

    2024-03-25 21:12:03       21 阅读