云原生的学习-
第一章-云原生到底是什么?
1.云原生的定义
Iaas 基础设施即服务-提供服务器 物理机阶段
Paas 平台即服务-提供系统和软件来开发应用 云计算阶段-平台架构
Saas 软件即服务 提供一套应用
Caas 容器即服务 容器化阶段-业务分离隔离
云定义:一组由硬件组成起来的基础设施,提供给各应用使用的,
openstack 硬件编排-虚拟化
docker 容器编排-应用虚拟化
2.云原生优缺点
优点:
稳定:大量硬件资源,容错高,保证服务不宕机。
按需索取:用多少买多少。
安全性:数据隔离,完整的权限系统
成本:硬件投入低
易用性:各类web管理端,便捷管理。
缺点:
核心数据存在第三方,不符合某些级别的场景。
私有云自建-搭建维护成本高
架构变革
单体架构-单个服务器上、单个系统、单个应用
单集群架构-多个服务器上、主备模式
分布式架构-多个服务器、多个应用服务器同时提供服务-使用负载均衡。
分布式?集群?异地多活的区别
分布式:把一个大型应用拆分成各个模块,各功能分开部署在不同服务器;然后这些服务器合起来提供完整的应用。
集 群:提供同一个应用的,并且这个应用存在多个,共海量使用的一种模式。
异地多活:在不同地域中运行相同的应用,多用于容灾场景。
分布式慢慢演变成了 微服务架构
每个微服务都由自己数据库,天然分库。最大特点,有一个统一的对外入口,API接口-外观模式
这个接口即网关,负责用户鉴权和协议转换,也提供负载均衡。
微服务架构-下一个 网格化架构
集群越来越大,应用服务网格化
3、kubernetes-应用上云、无关语言
kubernetes主要能解决各种开发语言编排出来的应用,并将这些应用进行融合在一个生态圈中。
CNCF已经成为了云集合的标准了。成为云世界的postix
kubernetes通过CRI容器运行接口来与docker对接
springcloud-只针对java应用分布式上云的支持;
servicemesh针对任何应用上云的架构思想和编排理念。
docker 就是容器的封装层 containerd
应用上云新型架构kubernetes+serveicemash 组合
4.云原生生态系统
云原生:通过将各种应用拆分成微服务后,部署成容器化;然后使用持续部署的流程,使用-devOps把应用部署上去。
涉及到四个概念micro services \ container \ continumous delivery \ devOps.
上到云架构之后,使用云编排工具,将应用进行编排管理。
5.云原生术语
云原生应用12要素-定义基础,定义上云必须考虑的问题。持续集成+部署、可扩展性。
codebase-基准代码:一份基准代码,多份部署。
dependencies-依赖:声明依赖关系。
config-配置: 不同环境不同配置的信息。在环境中存储部署信息。
== backing service-后端服务:类似数据库的后端服务,每个应用都有一个后端集群。==
== build,relase,run-构建,发布,运行:严格分离构建和运行;可以理解成一个打包过程。==
== processes-进程:应用以什么样的进程运行,一个或多个;==
port binding-端口绑定:通过端口绑定来提供服务。每个服务都有指定的端口。
concurrency-并发:通过进程模型进行扩展;多个并发就启用多个服务容器来满足并发。
涉及到横向应用扩展,来响应海量并发请求。
所谓gvm优化,只能相对优化一下并发请求数;而不能真正意义上解决海量并发请求,只能横向应用扩展来满足。
disposability-易处理:快速启动和优雅停机可最大化健壮性;优雅停机:遇到问题后先满足业务请求后再进行停机停止服务。最大提升应用稳定访问
dev/pord parity-开发环境与线上环境等价:尽可能你保持开发,预发布环境与线上环境相同。
logs-日志:把日志当作事件流。日志分开管理,防止撑满导致应用爆炸。
admin processes-管理进程:后台管理任务当作一次性进程运行。用时再开。
蓝绿部署:相当于网络的热备切换;两套相同环境。v1 v2 类似k8s集群中的pod 滚动升级的概念。
即灰度、金丝雀、生产三种环境的发布;模仿生产环境使用,发现应用bug,方便更新/回溯版本。
构建包:代码包
容器:承载应用的
持续集成和持续部署 CI/CD 通过自动化链路,持续进行应用版本更新
数字化转型: 关注数据流和用户使用和应用。而不是有形的IT资产
分布式系统:
Iaas 基础设施即服务-提供服务器 物理机阶段
Paas 平台即服务-提供系统和软件来开发应用 云计算阶段-平台架构
Saas 软件即服务 提供一套应用
Caas 容器即服务 容器化阶段-业务分离隔离
微服务 micro serveices 在容器中的服务,可独立部署。
私有云:private cloud:本地虚拟化并作为云服务交付给单个企业的计算资源和应用程序。
公有云:public cloud:由第三方提供和管理计算资源。
混合云:hybrid cloud:企业即有自建私有云,也有租赁外部的公有云。
多云架构 multi cloud:包含多个云。减少供应商锁定可能性,充分发挥各云厂商的优点,来满足企业需求。
无服务器:serverless:来自云服务提供商或软件平台的服务,以秒为单位进行度量。具有灵活性来适应广泛变化的资源需求。
静态文件:staticfile:除网络服务器外,不需要后端代码的应用或内容。
虚拟机:virtual machine:底层核心概念,云计算架构中的一个实例。具有特定资源的真实系统。
云原生官方定义
云原生是一种模式,它侧重于各组织在使用公有云、私有云或混合云等新型动态环境中,来构建和运行 可弹性扩展的 应用。
代表技术有:容器、服务网格、微服务、不可变基础设施、声明式API。这些技术组合起来能够构建容错性好、易于管理和便于观察的松耦合系统。
再结合可靠的自动化,云原生工程师可以轻松频繁的对应用/系统进行频繁变更和预测重大变更。该模式由云原生计算基金会CNCF进行培育和维护,并推动云原生技术。让其供大众所用。CNCF是一个不偏向任何厂商的中立组织。
容器:docker;服务网格:serveicemash;微服务:micro services;不可变基础设施:自建云或厂商提供的云服务器等基础环境。声明式API:(包含一切非代码方式)告诉其他云服务我需要用哪些云功能配置文件
CNCF Landscape
第二章、怎么学云原生-学习路线
1容器化
2ci/cd
3应用编排
4可观测性
5服务代理,服务发现
6网络策略、安全
7分布式数据库、存储
8消息队列转发派发
9容器运行环境、注册中心
10软件分布式可行部署
测试环境:一主一从两台服务器即可
标准集群:3master+3node 高可用、高并发、高性能
一站式平台,kubesphere 两行代码,云原生整个技术栈
QKE 云服务商的完全kubesphere托管平台。