一. 云原生
首先,CNCF给云原生的定义:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
1.应用场景
1.1 提高集群资源的利用率
云计算的核心其实就是将传统业务上云。通过一个较大的资源池、不需要专门预留大量的空余资源、通过虚拟化技术帮你解决流量峰值导致的资源利用不平均。云原生更是进一步缩小粒度,通过容器的方式,进一步提高资源的利用率,不过这个比较依靠调度算法。所以大厂目前很大方面都是在资源调度算法上面做优化。
1.2 通过自动化的方式提高应用的稳定性
是通过微服务化,将应用水平、垂直等方式扩展。
是通过自动化方式修复、如探针、熔断降级、自动重启等。如声明式API就是为了让资源达到某种状态。
1.3 提高持续交付的能力和系统的兼容性
随着业务的扩大,部署交付往往变得更加频繁。以往传统的部署方式可能是开发写好代码、然后写好部署文档、交给运维进行部署。云原生的场景下有了新的方式、devops也就是将开发和运维的隔阂变得更小。原来的运维人员一部分专心负责集群的稳定性和资源利用率。另一部分运维人员(开发人员)开发自动化部署工具,不仅是简单地将应用进行部署,同时也要靠考虑质量方面的问题。业务人员可以通过自动化部署工具参与业务应用的部署和运维而不用直接接触服务器。
通过基础设施即代码的方式。
1.4 增加系统可观察性,如监控日志方案
当业务达到一定的程度,同时你已经微服务化以后,系统的复杂度往往非常高。虽然有一系列的自动化运维工具。但是你需要知道系统内部的一些情况。这里就需要监控、日志、调用链等情况。
2.特点
2.1 兼容/抽象性
抽象性、兼容性。其实用过k8s就能知道里面有csi、cri、cni等开放接口、用户在自定义的场景可以选择合适的存储、网络、甚至容器运行时。还有ingress也是入口的抽象表示、一般情况下不管选择哪种网关都可以适用(非一般情况下,比如适用crd的方式定义、或者一些自定义的配置会在annotation中另外声明)。
2.2 低耦合
监控和日志标准的收集方式
使用istio 分布式追踪通过sidecar的方式与代码解耦;兼容不同方式获取服务发现
配置可以采用configmap/secret的方式兼容传统应用等
二.DevOps
云原生对于业内人士已不再陌生,随着云计算、微服务、容器等技术的蓬勃发展,云原生的概念已被市场普遍接受。对于云原生技术的落地,也成为各团队重点关注和亟待解决的问题。作为DevOps一站式平台,将云原生开发模式融合到产品中,为广大开发者提供好用易用的云原生研发管理解决方案。开箱即用的敏捷项目管理、代码管理、自动化测试管理,CICD流水线等功能,让开发、测试、部署全流程与云原生底座平台无缝结合,进一步降低开发者上手云原生技术的门槛,加快云原生技术转型,大幅提升软件生产效率。
1.DevOps工具链实践演进之路
1.0 散装 工具
2.0 广撒网 尝试
3.0 规模化&体系化
2.2022三大计划
2.1 修炼内功
持续集成和持续部署能力更加强大
编排和可视化
批量构建/发布
监控+日志+调用链
更加好用、更加稳定、效率更高
提升易用性
增加稳定性
提高时效性
2.2 强推上云
相应业务快速变化(高效)
提供稳定可靠的运维保障(稳定)
计量计费、弹性计算(降本增效)
2.3 数智化
数字化/信息化-降本增效
业务流程化
流程标准化
标准信息化
信息自动化
智能化-数字化升级、增效降本
组织文化的转型
思维模式转型
数字技术的应用
流程方法的再造
人才能力的培训
让数据决策思维
三.总结
云原生它的核心就是让用户将更多精力集中在业务层面,而不是聚焦在庞杂的“架构与技术”中,而作为技术人员,就更加应该关注新技术和开源技术得进步,拥抱开源和拥抱变化,持续学习新技术。云原生其实不是指某一项技术或单个产品,而是一种系统化的方法论和技术的集合。在云原生的概念之下,软件开发、测试、运维乃整个生命周期都发生了变化。也可以说云原生技术重塑了 IT 基础架构和应用程序平台的整个生态系统。
而DevOps他由最初的解决开发和运维人员协作壁垒逐渐扩展到整个研发生命周期,旨在响应快速的业务需求、提升研发效率、降低企业研发成本。