[云原生]~云原生简介
云原生的主要特征进一年我们都在使用云原生框架SpringCloud微服务开发项目,敏捷快速部署在容器中,解决部署环境差异使用DevOps自动部署,减少运维压力微服务业务功能单一但完整只对外提供必要的服务接口轻量服务编排,灵活调度弹性扩缩便于开发以及快速更新容器资源使用效率高启动快,沙箱机制,容器集群编排调度容器集群的服务注册发现镜像分层和打包镜像仓库分发,队...
·
云原生的主要特征
进一年我们都在使用云原生框架
SpringCloud微服务开发项目,敏捷快速
部署在容器中,解决部署环境差异
使用DevOps自动部署,减少运维压力
微服务
- 业务功能单一但完整
- 只对外提供必要的服务接口
- 轻量服务编排,灵活调度
- 弹性扩缩
- 便于开发以及快速更新
容器
- 资源使用效率高
- 启动快,沙箱机制,容器集
- 群编排调度
- 容器集群的服务注册发现
- 镜像分层和打包
- 镜像仓库分发,队开发人员友好
DevOps
- 持续集成
- 持续交付
- 解决部署环境差异问题
云原生的发展
传统
- 单节点
- 手工部署
标准
- 虚拟化
- 规范化
成熟
- 位置无关
- 自动部署
云高效
- 容器化
镜像小、启动速度快、资源浪费少
更快的故障恢复、应用迁移、弹性扩展、应用版本升级回滚 - 双活部署
实现应用的快速安装部署
云高级
- 应用自描述
基于标准应用建模,可跨云平台部署运行,不影响服务等级 - 应用自维护
故障自愈、自主负载均衡等
实现基础设施无关的应用健壮性
云原生(Cloud Native)
- 微服务化
各服务独立升级维护
各服务分别设置策略,控制粒度更精细,有利于把资源分配到特定的任务上,提高效率 - 编排调度
通过对多个微服务灵活编排,组装成不同的应用
云原生高级
- 云原生开发平台
应用开发平台自动生成微服务架构,代码自动生成,自动创建微服务编排信息 - 标准化框架、服务、控件
风格统一,便于操作 - 代码自动化生成
自动对接DevOps系统,完成从应用微服务化、代码自动生成、到应用上架全程自动化
云原生高级规划
- 应用开发基于标准规范的开发平台
- 使用标准框架、服务、UI控件、基础服务仓库
- 应用引擎根据开发人员配置,自动生成所需微服务、微服务镜像定义文件、创建微服务编排信息
- 开发人员只需要在微服务代码架构中做业务逻辑实现
- 提交代码、编排信息到平台版本仓库,触发DevOps平台完成镜像创建、CI/CD、镜像上传和应用上架
容器
本质是一个与宿主机系统共享内核,但与系统中的其他进程资源相隔离的执行环境。
Docker容器,是当前认可度高、社区和生态最活跃的开源容器技术。
优势
- 占用资源少,镜像小,启动快
- 灵活的容器运行调度机制
- 镜像机制,与运行环境无关,易于迁移复制
- 沙箱机制,仅开放必要的端口提供访问
- 允许实例简单、快速的创建、扩展、销毁
调度策略
- 默认选择最空闲的节点运行
- 在指定的节点或标签节点运行
- 亲和性(反亲和性)所有特定标签在同一节点运行
- 每个节点运行单一实例
故障恢复策略
- 设置探测时间间隔
- 设定故障检测方式:端口检测(TCP、HTTP)、进程检测
- 设定容器数量限制,低于限值,则微服务对应容器重新创建
弹性扩缩策略
- 基于资源的弹性扩缩
基于容器内存/CPU占用大小,如果持续超过指定时长,容器数量增加或减少。 - 基于时间段的弹性扩缩
基于时间段,在高峰/低峰调整容器数量,自动增加或减少
运维
DevOps
Development + Operations 及 开发+操作
核心理念就是消除开发和操作之间的隔阂,提高软件迭代和交付上线的速度和质量
技术
- git
统一代码管理 - Harbor
镜像仓库+日志管理(Docker+k8s)
harbor搭建与使用 - Junit
自动单元测试 - sonar Qube
自动漏洞扫描 - Jenkins
自动化部署
生命周期
源码管理(git)=》单元测试(Junit)=》漏洞扫描(sonar Qube)=》镜像仓库(Harbor)=》自动化部署(Jenkins)=》日志管理(k8s)
学习参考
更多推荐
已为社区贡献1条内容
所有评论(0)