云原生应用
Posted DevOps
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生应用相关的知识,希望对你有一定的参考价值。
什么是云原生
云原生 = 微服务 + DevOps + 持续交付 + 容器化
为什么选择云原生
生产环境测试环境服务器资产利用如何提升,IT系统容量如何规划?
新核心项目成立,研发组申请32U64G 服务器三台?
生产业务系统如何快速分析定位?
系统BUG订单串号,研发登录生产服务器排查问题,三小时后BUG修复。
为什么系统故障最先发现的是我们的客户,而不是我们的研发团队?
金融科技应用架构变迁
微服务时代已经来临
云原生核心优势
解耦软件开发,提高灵活性和可维护性
基于容器镜像的软件分层,清晰的依赖管理
玻璃程序、配置和微服务,让开发者聚焦业务发展
通过拆分应用程序为微服务和明确的依赖描述
多云支持,避免厂商锁定
厂商基于标准接口提供服务,互操作性强
开源为主,丰富的标准软件生态,用户多样选择
支持在混合云、私有云或混合云部署
避免侵入式定制
基于k8s松耦合平台架构,易扩展
k8s已经是被公认 platform for platform
提高工作效率和资源利用率
通过中心编排过程动态管理和调度应用微服务
云原生应用与传统应用区别
“牛”和“宠物”的管理方法
牛: 容器及其基础设施都是不可变的,我们一般在部署容器或服务器后就再也不会对其进行修改。**如果需要任何的更新、修复或修改某些内容,我们可以使用有适当更改的通用镜像去构建新的容器或服务器,然后替换旧的容器和服务器。**这种方法就相当于在牛场管理牛。
宠物: 另一方面,传统的服务器以及虚拟机我们都认为是可更改的,它们更像是宠物,因此不是一次性使用的,我们需要一直关注它们,所以它们的维护成本很高。
传统 | 云原生 | |
---|---|---|
重点关注 | 使用寿命和稳定性 | 上市速度 |
开发方法 | 瀑布式半敏捷型开发 | 敏捷开发、DevOps |
团队 | 相互独立的开发、运维、质量保证和安全团队 | 协作式 DevOps 团队 |
交付周期 | 长 | 短且持续 |
应用架构 | 紧密耦合 单体式 |
松散耦合 基于服务 基于应用编程接口(API)的通信 |
基础架构 | 以服务器为中心 适用于企业内部 依赖于基础架构 纵向扩展 针对峰值容量预先进行置备 |
以容器为中适用于企业内部和云环境 可跨基础架构进行移植 横向扩展 按需提供容量 |
DevOps简述
顾名思义,DevOps就是开发(Development)与运维(Operations)的结合体,其目的就是打通开发与运维之间的壁垒,促进开发、运营和质量保障(QA)等部门之间的沟通协作,以便对产品进行小规模、快速迭代式地开发和部署,快速响应客户的需求变化。它强调的是开发运维一体化,加强团队间的沟通和快速反馈,达到快速交付产品和提高交付质量的目的。
DevOps并不是一种新的工具集,而是一种思想,一种文化,用以改变传统开发运维模式的一组最佳实践。一般做法是通过一些CI/CD(持续集成、持续部署)自动化的工具和流程来实现DevOps的思想,以流水线(pipeline)的形式改变传统开发人员和测试人员发布软件的方式。随着Docker和Kubernetes(以下简称k8s)等技术的普及,容器云平台基础设施越来越完善,加速了开发和运维角色的融合,使云原生的DevOps实践成为以后的趋势。下面我们基于混合容器云平台详细讲解下云平台下DevOps的落地方案。
云原生DevOps特点
DevOps是PaaS平台里很关键的功能模块,包含以下重要能力:支持代码克隆、编译代码、运行脚本、构建发布镜像、部署yaml文件以及部署Helm应用等环节;支持丰富的流水线设置,比如资源限额、流水线运行条数、推送代码以及推送镜像触发流水线运行等,提供了用户在不同环境下的端到端高效流水线能力;提供开箱即用的镜像仓库中心;提供流水线缓存功能,可以自由配置整个流水线或每个步骤的运行缓存,在代码克隆、编译代码、构建镜像等步骤时均可利用缓存大大缩短运行时间,提升执行效率。具体功能清单如下:
缓存加速:自研容器化流水线的缓存技术,通过代码编译和镜像构建的缓存复用,平均加速流水线3~5倍;
细粒度缓存配置:任一阶段、步骤可以控制是否开启缓存及缓存路径;
支持临时配置:用户无需提交即可运行临时配置,避免频繁提交配置文件污染代码仓库;
开箱即用的镜像仓库;
提供完整的日志功能;
可视化编辑界面,灵活配置流水线;
支持多种代码仓库授权:GitHub、GitLab、Bitbucket等;
多种流水线触发方式:代码仓库触发,镜像推送触发等;
网络优化,加快镜像或依赖包的下载速度;
云原生DevOps实践
容器基础平台
微服务应用发布平台
Istio微服务治理
APM 应用性能检测
容器基础平台
微服务应用发布平台
欢迎关注运维自研堂订阅号,运维自研堂是一个技术分享平台,主要是运维自动化开发:linux、python、django、saltstack、tornado、bootstrap、redis、golang、docker、etcd、k8s、ci/cd、devops等经验分享。
开源 创新 共享
投稿&商务合作
Mail:idevops168@163.com QQ:785249378 微信:Idevops001
牛人并不可怕,可怕的是牛人比我们还努力!
以上是关于云原生应用的主要内容,如果未能解决你的问题,请参考以下文章