云原生应用

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



牛人并不可怕,可怕的是牛人比我们还努力!


以上是关于云原生应用的主要内容,如果未能解决你的问题,请参考以下文章

云原生应用安全云原生应用安全风险思考

云原生应用与容器架构

云原生与云原生应用概念解析

谈谈云原生技术

“云原生”的应用价值及关键属性解读

云原生加速落地,金融行业应用上云来打样儿