简介: mPaas 研发流程和线上运维介绍

一. 背景

金融级移动开发平台 mPaaS[1](Mobile PaaS)为 App 开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭建稳定高质量的移动应用。在我们日常运维过程中发现,大部分用户对蚂蚁的研发流程比较感兴趣,特别是在上百个开发者同时在一个app的环境内进行高效开发,技术选型、研发流程还有线上运维是怎么做的,成为大家关注的重点。以下分享我的一些理解。

二. 技术选型

目前研发模式分为Native模式和动态化模式两种,其中Native技术栈主要覆盖基础中间件,还有核心高保链路或者变更很少的一些基础页面,比如收银台,登录页面,付款码等。其他场景业务一般会通过动态化的方式,解耦客户端版本发布。其中,在线H5一般适用于活动营销活动,离线包场景一般用于有固定入口的常驻业务,如果有跨端多投场景,一般会选择小程序,通过小程序的跨端发布实现多端投放。

三. 研发流程

1.需求阶段:主要是需求评审,大家意见达成一致。
2.开发阶段:代码开发,代码合并以及打包等
3.测试阶段:测试案例的编写,功能测试,兼容性测试等
4.集成阶段:代码改动申请进对应的集成基线,进行集成验证
5.发布阶段: 通过内灰,外灰,渠道包全量,站内全量实现发布上线

四. 分支管理

原则:基于分支开发,基于主干发布

1. 变更操作流程

1) 创建变更
2) 选择仓库,基于 Master 创建分支
3) 在分支上打工程包,打安装包,自测(可以基于变更分支创建 feature 分支,并行开发)
4) 合并到 Master 打包、提测
5) 申请集成、发布

2. 独立发布

主要用做区别于日常变更的独立发布迭代,比如单独针对某个厂商做的预装包适配迭代,就适用于独立发布。

3. 多App管理(双Master)

使用场景:聚宝、香港支付宝、口碑、支付宝共用同一个代码仓库,同一代码库需要多app并行,需要有自己独立的master分支,在合并的时候,在不同的app端进行多主干的合并。

五. 线上运维

1. 多维度灰度发布能力

MDS提供多维度的发布模式,发布前需要经过白名单灰度,内部灰度,外部灰度,百分比灰度等多层次灰度,不断扩大灰度范围,直到Crash率,ANR率等稳定性指标达标后才进行全量的发布。

2. 多角度线上监控

MAS提供了多角度的实时监控指标监控,包括Crash率,ANR率等核心指标,同时这些核心的指标上报都是通过实时通道完成的上报,方便问题的快速发现。

3. 舆情监控

除了以上一些核心指标的监控,同时提供了舆情的监控平台,开发者可以设置自己关注的关键字,在灰度期间去查看相关产品的线上用户舆情,真实的反馈用户问题。

4. 线上问题定位

通过上述的多渠道发现问题后,首先可以通过客户端上报的行为日志进行分析,同时也可以通过MAS提供的日志拉取功能,拉取用户的详细日志进行进一步的诊断分析。

5. 自动容灾降级

在积累了多年的客户端问题处理经验后,客户端SDK内部也沉淀了一套自恢复的容灾降级策略。比如对于多次启动后重复闪退的用户,客户端会尝试在启动后清除app私有目录下的一些文件,解决由于脏数据导致的极端重复闪退。

6. 线上问题修复

针对不同的问题提供了不同的能力实现动态修复,比如对Native模块实现动态修复的hotpatch机制。

作者:荣阳

原文链接

本文为阿里云原创内容,未经允许不得转载

mPaas 研发流程和线上运维介绍的更多相关文章

  1. Redis持久化磁盘IO方式及其带来的问题   有Redis线上运维经验的人会发现Redis在物理内存使用比较多,但还没有超过实际物理内存总容量时就会发生不稳定甚至崩溃的问题,有人认为是基于快照方式持

    转自:http://blog.csdn.net/kaosini/article/details/9176961 一.对Redis持久化的探讨与理解    redis是一个支持持久化的内存数据库,也就是 ...

  2. 从On-Premise本地到On-Cloud云上运维的演进

    摘要: 从用户的声音中,我们听到用户对稳定.弹性.透明的诉求,我们也在不断升级ECS的运维能力和体验,助力用户建立主动运维体系,赋能业务永续运行.为了让大家更好的了解和用好ECS弹性计算服务,从本期开 ...

  3. CMDB内功心法,助我登上运维之巅

    很多70.80后甚至90后都在金庸.古龙.梁羽生先生等武林大家熏陶下成长的,这么多年过去了,我的武侠梦依然不曾散去.曾几何,梦想有一天练就一身绝学,搂着小师妹花前月下,仗剑走天涯,快意人生.可每次的酣 ...

  4. 运维介绍以及虚拟机,centos安装

    运维的职责 1.企业的数据安全 2.网站7*24小时运行 3.企业服务好 服务器 服务器尺寸: 高度为单位:U(unit)1U=1.75英寸=4.45cm 服务器的分类: 机架式服务器 刀片式服务器 ...

  5. 云计算和AI时代,运维应该如何做好转型?

    云计算和AI时代,运维应该如何做好转型? 今天我们来聊一聊,在云计算和AI时代,运维应该如何做好转型?今天的内容可以说是我们前面运维组织架构和协作模式转型的姊妹篇.针对运维转型这个话题,谈谈我的思考和 ...

  6. 为什么Netflix没有运维岗位?

    Netflix 是业界微服务架构的最佳实践者,其基于公有云上的微服务架构设计.持续交付.监控.稳定性保障,都为业界提供了大量可遵从的原则和实践经验. 在运维这个细分领域,Netflix 仍然是最佳实践 ...

  7. 从谷歌CRE谈起,运维如何培养服务意识?

    从谷歌CRE谈起,运维如何培养服务意识? 2016年10月,谷歌云平台博客(Google Cloud Platform Blog)上更新了一篇文章,谷歌宣布了一个新的专业岗位,CRE(Customer ...

  8. Netflix业务运维分析和总结

    目录 Netflix工作环境的分析和思考 为什么Netflix会做得如此极致? 海量业务规模下的技术架构和挑战 更加合理的组织架构和先进的工具体系及理念 自由与责任并存的企业文化 当前问题: 精选提问 ...

  9. 运维:OAAS

    IT和互联网运维的新篇章正要掀开,云计算和运维即服务(OaaS)正在为各类企业提供系统构建和扩展,帮助他们取得在线业务的成功. 互联网信息科技和运维一直在不断变化,包括了IT所覆盖的一切新工具.云.基 ...

  10. 如何掌握并提高linux运维技能

    初中级Linux运维人员们系统学习并迅速掌握Linux的运维实战技能.学习路线大纲如下: 入门基础篇 系统运维篇 Web运维篇 数据库运维篇 集群实战篇 运维监控篇 第一篇:Linux入门(安装.配置 ...

随机推荐

  1. docker跑es流程再整理

    参考,欢迎点击原文:https://blog.csdn.net/qq_32101993/article/details/100021002(报错) 继老早前一篇文章整理的使用docker-compos ...

  2. AOSP-刷机

    准备 1.AOSP源码下载 可以参考AOSP下载且编译 这里我下载的是android-12.1.0_r5的AOSP源码 2.下载驱动 因为我下载的是android-12.1.0_r5的AOSP源码,因 ...

  3. 01_Mac安装Homebrew

    目录 1 官方 1.1 前提 1.2 安装 2 其他安装方法 2.1 安装homebrew-core 2.2 安装homebrew-cask 3 源 3.1 查看源 3.2 设置源 3.3 设置bot ...

  4. 记录--Vue3问题:如何实现组件拖拽实时预览功能?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 需求分析 实现一个CMS内容管理系统,在后台进行内容编辑,在官网更新展示内容. 关于后台的编辑功能,大致分为两部分:组件拖拽预览.组 ...

  5. proteus之四状态锁定器

    proteus之四状态锁定器 1.实验原理 利用4071(或门)的锁定功能,当输入为1时输出结果锁定为1,使结果锁定在这个地方.4028(BCD译码器)将输入转化为输出,利用输出反馈到或门用于自锁. ...

  6. urllib+BeautifulSoup爬取并解析2345天气王历史天气数据

    urllib+BeautifulSoup爬取并解析2345天气王历史天气数据 网址:东城历史天气查询_历史天气预报查询_2345天气预报 1.代码 import json import logging ...

  7. ET介绍——为什么使用C# .net core做服务端?

    为什么使用C# .net core做服务端? 游戏服务端从早期的单服到分布式,开发越来越复杂,对稳定性,开发效率要求越来越高.开发语言的选择也逐步发生了变化,C 到 C++ 到 C++ + PYTHO ...

  8. Ubuntu一键安装/卸载docker和docker compose,可指定版本或安装最新版本。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @ 目录 前言 一.docker是什么? 二.docker compose是什么? 三.安装步骤 1.Ubuntu安装脚本 2.生成脚 ...

  9. 从零开始学Spring Boot系列-集成MyBatis-Plus

    在Spring Boot应用开发中,MyBatis-Plus是一个强大且易于使用的MyBatis增强工具,它提供了很多实用的功能,如代码生成器.条件构造器.分页插件等,极大地简化了MyBatis的使用 ...

  10. 网站优化之开启tomcat的gzip压缩传输特性

    本文于2015年底完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 基于tomcat 8.0.x版本的文档,可以了解到tomcat支持基于g ...