切换菜单

什么是云原生?

它与数据有什么关系?全球开发人员正在使用微服务,容器,业务流程和自动化构建云原生应用程序。让我们看看如何将这些方法与通过存储,流和API的灵活数据访问相结合,以构建具有弹性,可伸缩性和弹性的强大应用程序。

什么是云原生?

云原生解释

云原生应用程序是专为云设计的,以利用其独特的可能性进行横向扩展和横向扩展,并且通常由运行在容器中的松散耦合服务集合组成。云原生应用程序利用包括上面列出的云计算技术来提高开发周期的速度,灵活性和创新性,同时提供可预测的迭代以提供新的数字用户体验。

云原生应用程序的好处是什么?

根据Cloud Native Computing Foundation( CNCF ”,“云原生技术使组织能够在现代,动态环境(例如公共云,私有云和混合云)中构建和运行可伸缩应用程序。容器,服务网格,微服务,不变的基础架构和声明性API就是这种方法的例证。”好处包括“弹性,可管理和可观察的松散耦合的系统”。结合强大的自动化功能,它们使工程师能够频繁且可预测地以最小的工作量进行高影响力的变更。”

弹性的

应用程序可以克服硬件,网络和软件缺陷

可管理的

应用程序易于配置,可快速适应不断变化的工作条件和环境

可观察的

应用程序经过检测以收集指标和日志,以提供可行的见解

频繁变化

应用程序是模块化的,允许快速递增地更改单个单元

可预测的变化

应用程序和配置受源代码控制,以确保部署和配置更改的可审核性和可重复性

最小的劳累

应用程序部署和管理是自动化的,从而减少了工作量,并使操作员能够全面管理系统


构建云原生应用程序需要转变思维方式,这种思维方式必须转变为组织的文化和流程,整个系统的体系结构以及整个堆栈中的技术选择。无论您是要为初创企业提供第一个应用程序,还是要对传统的整体设备进行现代化改造,采用云原生应用程序都可以带来量身定制的个性化体验,以使客户和企业客户以前所未有的方式利用他们的数据,从而获得乐趣考虑过的。

使用DataStax 阿斯特拉 在5分钟或更短的时间内在云中创建免费的Cassandra数据库

什么是云原生应用程序的剖析?

在云原生应用程序中通常存在一些关键元素:

 微服务

微服务

小型,松散耦合的服务,可在开发生命周期中促进敏捷性和独立性。无状态微服务的多个实例支持弹性和弹性可伸缩性,以及低风险的系统演进。

编程语言和框架

编程语言和框架

开发团队可以自由选择最适合其应用程序功能的工具。访问数据源时,选项范围从低级驱动程序,抽象驱动程序和查询语言的框架到高级数据API。

 
 职能

职能

与使用无服务器框架或云提供商的微服务相比,业务逻辑可以表示为不需要完整操作系统的简单功能,可以轻松部署和扩展。

 蜜蜂

蜜蜂

定义明确的接口,例如 休息 , GraphQL 以及由微服务和第三方“即服务”产品提供的gRPC可以促进团队之间更快的开发和协作。

 
 数据

数据

数据库,数据服务,流传输和消息传递平台使微服务之间的数据流和记录系统中的持久性成为可能,有关详细信息,请参见下文。

 货柜

货柜

微服务经常打包和部署为Docker映像,以实现可移植性和优化的资源消耗。

 
 编排

编排

然后,通过编排框架(例如 Kubernetes 用于大规模地自动部署,操作,扩展和恢复应用程序。

 监控方式

监控方式

分布式应用程序暴露了新的故障域,团队转向中央监控系统(例如Prometheus)提供系统的单一视图。

 
 安全

安全

TLS,OAuth,OIDC,JWT,身份提供程序,API网关和自动容器修补程序提供了覆盖攻击表面区域的新机制。

持续集成

持续集成/持续交付工具

应用程序代码和表示为“基础架构即代码”的所需基础结构被检入到源控制系统(例如Git)中,从而可以通过自动化的开发,测试和生产管道进行快速迭代。

 

如何在云原生应用程序中管理数据?

鉴于可用的设计选项和数据存储多种多样,有许多方法可以处理数据。我们观察到几种常见的模式。

具有委托数据持久性的无状态微服务

具有委托数据持久性的无状态微服务

微服务通常将负责存储状态的责任委托给持久性机制,例如专用块存储卷,分布式数据库集群或数据服务。无论使用哪种存储,每个服务都应控制对自己数据的访问。

通过API,驱动程序和框架进行数据访问

通过API,驱动程序和框架进行数据访问

与Cassandra等分布式数据库进行交互时,最简单的数据访问方式是通过GraphQL,REST或gRPC中描述的数据服务API。这种交互方式对于前端应用程序,无服务器功能或微服务很有用。需要对其与后端数据库的交互进行更多控制的微服务可以直接使用驱动程序进行编码,也可以使用诸如 弹簧 ,Quarkus,Django,Vue.js来辅助数据交互。

流式传输和更改数据捕获以管理数据流

流式传输和更改数据捕获以管理数据流

云原生架构还需要解决服务和API之间的数据流。数据可以从诸如 卡夫卡 作为微服务访问的记录系统进入Cassandra。变更数据捕获(CDC)使数据从Cassandra流出到其他服务或数据湖,以进行进一步分析。