为什么要学习“云原生”技术 | 学习笔记

简介: 从信息系统迭代的关键历程开始,阐述云原生技术的演进和趋势方向。

开发者学堂课程【云计算、容器和云原生基础课程第一课时:为什么要学习“云原生”技术(上)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/823/detail/13942


为什么要学习“云原生”技术?(上)

 

一、什么是云原生?

1信息系统迭代的关键历程

1)几个关键纬度

开发流程

应用架构

打包与部署

基础设施

2)分布式应用

提升系统容量

加强系统可用性

image.png

2分布式系统面临的问题

image.png

1)技术手段:服务治理(依赖关系、调用链)、架构管理(版本管理、生命周期管理、编排、聚合、调度)、DevOps、自动化运维、资源调度管理、整体架构监控、流量治理(负载均衡、路由、熔断、...

3创建运行分布式应用的需求

1)运行分布式应用的典型需求有如下几个类别

生命周期管理

网络

状态管理

绑定(应用集成)

image.png

(图中解释每个需求维度涉及到的技术细节点)

 

2ESB中间件及其变体是满足这类分布式需求的前一代主流解决方案

提供良好的功能集

但是,单体架构以及业务逻辑和平台之间紧密的技术耦合会导致的技术和组织的中心化

 

4ESB分布式应用中间件的限制

1ESB满足分布式系统需求时的局限性

生命周期:通常只支持的一个语言运行时,( 比如Java),这就限定了软件该如何打包、哪些库可用、它们打补丁的频率等

 

网络:集中于一种主要的编程语言及其相关的技术,而且,网络问题和语义也深深地嵌入到了业务服务中

例如,对于Java语言,它就是指JMSJDBCJTA

 

状态:与状态交互的库和接口没有完全抽象出来,也没有与服务运行时完全解耦

 

绑定:必须根据消息交换模式构造代码和设计流程

连接器必须与应用程序共存的事实意味着,依赖项必须与业务逻辑一起更新和打补丁

 

2)云计算时代的解决方案:基于容器化、容器编排、DevOps、微服务及典型的治理系统服务网格等技术的云原生解决方案

 

5云原生的定义

(1)( 2017) Pivotal认为, 云原生具有如下四大特性:

●DevOps

持续交付(CD)

微服务

容器化

2018年新增两个特性是:服务网格和声明式API

 

6容器技术( Containers )和容器编排

1)容器技术由来已久,dotCloud (后改名为Docker )公司在Docker项目中发明了容器镜像技术之后, 创造性地解决了应用打包的难题才焕发出新的生命力,并以应用容器的面目风靡于世。

2)单个容器难以产生价值,容器编排才是根本

●Kubernetes是云原生系统的底座

 

3)现代应用容器技术和Kubernetes将打包、分发和部署应用程序的方法演化成了与编程语言无关的格式。

image.png

 

7Kubernetes和声明式API

(1)Kubernetes的关键特性

容器编排系统

声明式API

●“以应用为中心的现代应用基础设施

纳管各类基础支撑类服务,并经由声明式API向上层应用暴露这些基础设施

●Platform for Platform类型的系统

根本目标在于方便基础设施工程师构建其它的平台系统

例如Service MeshServerless

image.png

8微服务(MicroServices)

1)微服务是一种流行的架构风格,用于构建弹性化、高度可扩展、可独立部署且能够快速迭代的应用程序

微服务架构由一系列小型自治服务组成

每个服务都是自包含的,应该在有界上下文中实现单个业务功能

image.png

9微服务治理

1)动态化是云原生应用的天然属性,微服务架构是支撑该目标的关键所在

2)服务治理工具,又是支撑微服务运行的根本所在

●Dubbo

●Spring Cloud Alibaba

●ServiceMesh

image.png

10服务网格(ServiceMesh)

1)服务网格的定义

专用于处理服务通讯的基础设施层

负责可靠地完成请求传送,这些请求由复杂拓扑结构下的云原生应用组成服务生成

是一组同应用服务协同部署的轻量级网络代理,并且对应用服务透明

image.png

 

11Sidecar模式

1Service MeshSidecar形式,将服务治理从业务逻辑中剥离,并拆解为独立进程,实现异构系统的统治理和网络安全。

image.png

12不可变基础设施( immutable infrastructure)与一次性组件

1)不可变基础设施是早在2013年由Chad Fowler在其一篇博客中提出的一个很有的预见性的构想

其核心思想在于,任何基础设施的实例一-旦创建之后即变为只读状态,若需要修改和升级,只能通过替换为新的实例来实现

传统的服务器(裸金属或虚拟机)支持配置的多次变更,因而通常会导致如下问题

灾难发生时,重新构建较为困难(因手动的变更操作所致)

存在导致状态不一 致的风险

 

2)实现

容器和容器镜像

云端虚拟化组件

 

 

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
7月前
|
Cloud Native Devops 编译器
为什么从事云原生开发需要学习容器技术
为什么从事云原生开发需要学习容器技术
79 1
|
3月前
|
多模数据库 Cloud Native NoSQL
Nosql学习之路:云原生多模数据库Lindorm训练营第一弹来啦
Lindorm训练营系列将通过一系列由浅入深的高质量课程和丰富的动手实验,将理论与实践结合,带你从入门到成为高阶开发者。参营学习还有机会获得惊喜彩蛋~
|
4月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|持久化存储pv,pvc和StorageClass的学习
云原生|kubernetes|持久化存储pv,pvc和StorageClass的学习
123 0
|
4月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|关于configMap的一些学习
云原生|kubernetes|关于configMap的一些学习
49 1
|
4月前
|
Kubernetes Cloud Native 安全
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
84 0
|
4月前
|
Kubernetes Cloud Native API
猿创征文|云原生|kubernetes学习之RBAC(六)
猿创征文|云原生|kubernetes学习之RBAC(六)
33 0
|
9月前
|
消息中间件 自然语言处理 Cloud Native
基于大语言模型的 AIGC学习助手,重磅上线云原生消息社区!
你是否不知道怎么开始上手学习RocketMQ 5.0?不清楚从哪里找示例代码?是不是也经常找不到原理文档?
|
11月前
|
安全 搜索推荐 TensorFlow
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow横向联邦学习(1)
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow横向联邦学习(1)
172 0
|
11月前
|
Cloud Native 搜索推荐 TensorFlow
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow横向联邦学习(2)
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow横向联邦学习(2)
104 0
|
11月前
|
搜索推荐 Cloud Native TensorFlow
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow横向联邦学习(3)
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow横向联邦学习(3)
110 0

热门文章

最新文章