让天下没有难做的研发:解读阿里CI/CD、DevOps、分层自动化技术

  • 真机远程使用:真机远程使用平台,有大量 Android 真机设备高效管理、真机设备Web化远程在线使用,方便快捷。并且支持Native、H5 代码远程调试,与无线适配测试平台设备共享使用,提升设备利用率。
  • 面向微服务架构的 DevOps

    许晓斌是 AliExpress 高级技术专家,目前在 AliExpress 从事微服务实施、研发效率提升等相关工作 AliExpress 在业务扩张和团队壮大之后,仍然能保持研发团队高效快速响应用户需求,而这背后的技术力量,就是许晓彬老师所讲解的 AliExpress 微服务架构及核心基础设施,DevOps 文化及工具链,以及 SRE(Site Reliability Engieering)方法。

    介绍一下背景,AliExpress 是阿⾥里巴巴旗下的 2C 跨境电商网站,其后台语言100%是用 Java 代码编写的;最早的代码来自 Alibaba B2B,已有10年以上的历史了;数百位工程师推崇 DevOps;且已有数百可独⽴发布的应用,这个数字还在不断增⻓。

    微服务的优势是:1.每个服务足够简单,降低学习维护成本;2.独⽴立测试和部署;3. 独⽴立扩容、性能优化更简单;4. 使⽤用新框架新技术变得更简单;5. 更容易适配团队组织架构。首先,许晓斌说,做微服务就一定要确保通信协议是标准的,AliExpress 是多数据中心的,其服务不仅分布在中国各地,在美国、俄罗斯等地区都有部署。

    微服务开发发布的关键点在于,一定要走发布系统上线,这么做的目的是标准化流程化,还对提升稳定性非常有好处。在微服务的前提下,再来谈谈 DevOps,写代码的工程师是对自己的代码负责任,每个工程师都是微服务应用的owner,这就是 DevOps 的核心理念。

    • 发布环节需要注意事项包括:预发布(Staging)环境验证、蓝绿发布、分批发布、基于用户 Beta 发布、自动回滚。
    • 监控和报警这一环节需要统一的监控系统、系统监控、应用监控和业务监控。
    • 标准化要求则需要在部署结构、命名规范、日志规范、代码结构、交互协议等方面严格要求。
    • SRE 团队在 DevOps 领域的意义也是很关键的,每个工程师对自己的应用负责,包括对应用的功能、性能、可用性等方面时刻关注;同时,SRE 团队对网站整体可用性负责,具备应急故障处理能力,深入掌握容灾演习,容灾切换等技术;熟悉稳定性治理技术。

    最后,许晓斌引用了 AWS 对 DevOps 的定义:DevOps 集文化理念、实践和工具于一身,可以提高组织高速交付应用程序和服务的能力,与使用传统软件开发和基础设施管理流程相比,能够帮助组织更快地发展和改进产品。这种速度使组织能够更好地服务其客户,并在市场上更高效地参与竞争。

    持续集成与持续交付实践之路

    鲁小川是阿里巴巴B2B事业群高级专家,主要负责阿里巴巴云效平台解决方案服务输出。目前互联网电商、金融等公司业务蓬勃发展,技术团队规模和应用规模也在快速扩大、测试环境日益复杂,但是测试力量依然薄弱、应用验证成本不断提升。在这种情况下,传统企业的项目集成及交付软件已经不能满足需求。随即,这些公司硬件及中间件基础设施陆续搬到云上,企业对基于云端提升效率的持续集成持续交付的平台需求也日益迫切。鲁小川基于这样的背景,结合案例分析,讲解了如何帮助云端企业实现持续集成持续交付。

    持续交付并不是指软件每一个改动都要尽快的部署到产品环境中,而是指任何的修改都被证明可以在任何时候实施部署。持续交付(Continuous Delivery)是一系列的开发实践方法,用来确保让代码能够快速、安全的部署到产品环境中,它通过将每一次改动都提交到一个模拟产品环境中,使用严格的自动化测试,确保业务应用和服务能符合预期。因为使用完全的自动化过程来把每个变更自动的提交到测试环境中,所以当业务开发完成时,你有信心只需要按一次按钮就能将应用安全的部署到产品环境中。

    大型系统持续集成持续交付难点

    • 应用数量众多(数百甚至上千),应用之间调用关系千丝万缕、错中复杂
    • 开发团队人数众多(数百甚至上千) 
    • 并行开发的项目小需求众多(数百甚至上千),各项目小需求的商业上线时间各不相同
    • 传统的项目集成及交付软件已经不能满足需求。