阿里巴巴的云原生应用开源探索与实践

导读:从拥抱开源、贡献开源、自主开源,到赋能开源,开源已升级为阿里技术战略之一,且正为开发者源源不断地输送切实可见的价值。云原生是阿里开源的重要领域,短短几年,以 K8s 为核心的云原生开源生态迅猛发展,这是全世界开发者合作杰出成果,也是开源力量的结晶。

阿里巴巴的应用架构演进

大家好,我是司徒放,目前在阿里巴巴负责阿里云的应用平台和微服务产品线。在和大家分享我们在云原生应用方面的探索之前,先和大家介绍一下阿里巴巴在整个应用架构方面的演进历程。

今年是阿里巴巴成立的二十周年,二十年前,阿里巴巴使用的这个应用的架构,还是单体应用模式,它有很多的业务模块都在一个应用里面,各个业务都在一个应用里面开发,这个架构的一个好处是简单,也非常容易部署,对小的创业公司来说是很方便的。它的缺点在于团队变大变多之后,不能满足快速迭代要求,因为每一个业务它需要去发布的时候,都需要在同一个应用上做修改、发布,当这个业务迭代非常快的时候,它同时的一个并发修改就非常多。

所以在 2008 年的时候,阿里巴巴就引进到了微服务架构,只是当时并不叫微服务,而是叫服务化架构。各个业务模式就按照服务的边界来拆分,这是比较松耦合的一种方式,一个微服务应用是无状态的,可以快速扩展实例。而且某个实例有异常比如宕机时会可以自动下线,不会影响整个服务架构的稳定性。微服务架构也比较容易推动整个互联网公司的快速迭代需求。

大概三年前,阿里巴巴就走向了云原生的架构。这是一个天然适合云的、能够充分利用云的弹性能力和标准云服务,给整个阿里巴巴的电商降低机器的准备成本,特别是类似于在大促双十一需要很多机器去支撑,但是大促结束之后,这些机器有一半以上就可以归还到云上。

这个时候,阿里巴巴就在往云原生的方向去迈进,而且通过整个云服务能够更快地加快整个阿里巴巴的技术构建。而且云原生架构,是一个比较开放、标准、没有侵入性的技术架构。

阿里巴巴在云原生的开源进程

在阿里巴巴进入到了云原生之后,我们看一下阿里巴巴在开源方面做了一些什么样的事情呢?

运维领域

首先,整个云原生架构里面最重要、最关键的一个基石就是 Kubernetes。
阿里巴巴在两年前,就在大规模的落地 Kubernetes 的整套技术用来做我们机器资源的调度和管理。在内部有数十万台级别的机器以及上百万级别的容器规模,直接拿开源的 Kubernetes 到这种生产规模下是用不起来的,所以我们在上面做了很多性能优化,包括针对规模上的改造,使得整个 Kubernetes 在阿里巴巴内部能够很顺畅地 run 起来,阿里巴巴也在不断地向上游去贡献我们内部实践和优化的代码。
除了 Kubernetes 之外,在整个云原生生态里还有像容器、etcd,我们也在不停地优化它的规模能力以及安全隔离方面的一些能力。同时,也开源了内部使用的蜻蜓(Dragonfly)用来做大规模的镜像快速分发。

开发领域

在开发领域,阿里巴巴很早就已经使用了微服务架构,也对外进行了开源,比如说 Apache Dubbo,这个是比较知名的 RPC 框架;还有去年开源的 Nacos ,作为阿里巴巴集团支撑大规模的服务注册发现、配置推送一个组件;另外,还有 Spring Cloud Alibaba,基于阿里开源的组件提供了一整套 Spring Cloud 最佳实现;还有像支撑整个阿里巴巴高可用的 Sentinel、以及 Apache RocketMQ 消息队列,都是我们在开发领域做的开源。

这些组件其实随着阿里巴巴进入云原生时代之后,也在逐步结合云原生做一些改进,比如说 Apache Dubbo,会更好地去适配我们未来的微服务 Service Mesh 架构,它会理解 Istio 的 xDS 协议

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值