当前位置: 首页 > 新闻中心 > 云原生数据湖架构中的无服务器kafka

云原生数据湖架构中的无服务器kafka

发布时间:2024-02-24 5:06:00

  1. 基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践
  2. 云原生是什么意思
  3. 云原生架构和微服务体系区别?

一、基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践

作者:阿里云mvp 刘远程

背景

『懒猪行』专注于境外自由行s2b业务,涉及分销、终端用户服务、供应链等多个服务环节,随着业务规模的不端增加,我们一直在 探索 web应用开发的最佳实践,以加快web应用的迭代效率,为b/c端用户创造更多价值。

云原生

近几年,spring cloud为代表的微服务架构越来越火热,吸引了大量创业公司『入坑』。微服务系统的开发与单体应用的开发相比,从团队组织、运维、开发方式等多个方面带来了颠覆式的变化。从2018年开始以istio、sofamesh等为代表的service mesh方案逐渐走上舞台,并被称为『下一代微服务架构』。

如果把以容器技术和service mesh为基础的it架构定义为云原生架构,那么dubbo、spring cloud为代表的分布式架构将是促进云原生架构诞生的『中间产物』。

就在18年,云原生计算基金会(cncf)为云原生技术重新定义:

cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. containers, service meshes, microservices, immutable infrastructure, and declarative apis exemplify this approach.

『云原生技术帮助公司和机构在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式api。』

these techniques enable loosely coupled systems that are resilient, manageable, and observable. combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

『这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术可以使开发者轻松地对系统进行频繁并可预测的重大变更。』

这种新颖架构方式,不仅提供了完善的软件持续交付链方案,也为我们的应用组织方式带来了巨大的想象空间,甚至在将来可能给整个软件行业带来颠覆式的革命。有一点是显而易见的:原本强耦合在一起的应用被拆分,变身成为能够实现完整子集功能的可插拔式微服务,通过有机的组织让其与其它微服务共同对外提供服务;就如同组装 汽车 的发动机和座椅等,它可以来自全球供应链不同的厂商。以云原生的设计哲学来总结,云原生应用具备微服务, 健康 报告,遥测数据,弹性声明式(非反应式)等特征。

云原生所带来的效果非常明显,但完整的实践确是很容易让人知难而退,因为单kubernetes一项,从入门到掌握也需要花费3个月左右的时间。但幸运的是,阿里云等公有云平台已经为我们准备好了容器服务(kubernetes版)产品,并支持通过kubernetes进行应用的容器化管理。

所有的微服务都和 envoy sidecar 集成在一起,被集成服务所有的出入流量都被 sidecar 所劫持,这样就为外部控制准备了所需的 hook,然后就可以利用 istio 控制平面为应用提供服务路由、遥测数据收集以及策略实施等功能。

懒猪行的架构设计(简化)

在新的架构中,使用了大量的阿里云产品,这鉴于我们过去的经验,阿里云产品在运维上为我们节省了不少精力。

以上架构,是我们走向『云原生』的第一步,距离成熟还有非常大的发展空间,云原生的发展也在发展的起步阶段。按架构,把所有需要持久化的数据,如:文件、图片、数据库等存储到阿里云oss、rds及redis产品,而应用则运行在以k8s管理调度的容器集群中。

阿里云devops工具链

阿里云在云原生架构整个生命周期都提供了完善的支持:

部署到kubernetes_部署到kubernetes_选择部署方式_用户指南_codepipeline-阿里云

推荐阅读:

[1] service mesher社区:servicemesher · service mesh|服务网格中文社区

[2] kubernetes handbook:序言 · kubernetes handbook - kubernetes中文指南/云原生应用架构实践手册 by jimmy song(宋净超)

mvp招募进行中,点击「链接」

二、云原生是什么意思

一、什么是云原生?

不同的企业对于云原生有不同的解释,当前在业界具有广泛影响力的云原生计算基金会(cloud native computing foundation, cncf)认为,云原生是一类技术的统称,通过云原生技术,我们可以构建出更易于弹性扩展的应用程序。

这些应用可以被运行在不同的环境当中,比如说私有云、公有云、混合云、还有多云的场景。

二、云原生包含了哪些技术?

它包含了当前业界的一些热门的技术,比如容器、微服务、服务网格、serverless、devops,api管理等。

通过云原生技术构建出来的应用程序,称之为云原生应用,底层基础架构的耦合比较轻,因此易于迁移,它可以充分地利用云所提供的能力,因此云原生应用的开发、部署、管理相对于传统的应用程序更加高效和便捷。

三、云原生技术的作用与意义

对于应用开发团队而言,原来云原生技术可以提升应用开发的效率,提升应用交付的质量。比如通过容器,技术开发团队可以更容易地获取开发所需要的环境与资源,开发出来的应用可以被运维团队更容易地部署和管理。通过devops的最佳实践,应用交付的速度和质量可以被有效的提升。

对于业务方来说,云原生的好处是所提交的需求,可以更快地被响应和实现。因为云原生技术可以有效地缩短应用交付的周期,让需求更快地变成代码,代码更快地变成线上的应用,最终为用户服务,实现价值。云原生应用可以更好地弹性扩展,满足不同业务的需求。例如容器应用提供的应用自愈能力,可以帮助减少应用的停机时间提升用户的体验。

对于企业来说,云原生技术可以通过有效提升应用开发、交付效率,简化研发工作,让开发者聚焦研发创新、业务创新,有效地提升团队的创新能力,从而提升企业在市场的竞争能力。

三、云原生架构和微服务体系区别?

如果是架构师、开发工程师讲技术架构,一般都讲微服务架构体系,以微服务微基础,然后把ci/cd、devops、容器等基础设施环境都包含在内。

如果是运维工程师讲架构,一般都讲云原生架构,以容器等基础设施环境为基础,把微服务、ci/cd、devops等包含在内。这就是这两个概念的区别。