百度云原生应用解决方案亮相百度云智峰会

2023-11-11 15:30

本文主要是介绍百度云原生应用解决方案亮相百度云智峰会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

传统企业近年来数字化转型的趋势相信各位读者已经有了非常清晰感知。在这个过程,企业在数字化路径选择上的不同也会影响企业数字化转型的最终成果与实施成本。根据市场调查和预测,企业近些年来越来越多的采用云原生的手段来让自身业务通过新一轮的数字化转型实现快速发展。

在本次2019百度云智峰会上,由百度效率云联合智能云微服务推出了云原生应用解决方案,并推出了基于百度效率云和CNAP平台的云原生DevOps实战workshop。

看到这里,您可能会好奇,什么是云原生?百度设计的云原生解决方案有什么特色?Workshop上又实操了哪些实践?下面我来为读者一一道来:

什么是云原生应用

“云原生是一种方法,用于构建和运行充分利用云计算模型优势的应用。云计算不再将重点放在资本投资和员工上来运行企业数据中心,而是提供无限制的按需计算能力和根据使用情况付费的功能,从而重新定义了几乎所有行业的竞争格局。IT 开销减少意味着入行的壁垒更低,这一竞争优势使得各团队可以快速将新想法推向市场,这就是软件正在占据世界,并且初创公司正在使用云原生方法来颠覆传统行业的原因。”
—摘选自pivotal.io

云原生应用平台
在这里插入图片描述
企业为了实现云原生应用的开发,就离不开一个用于构建和运行云原生应用和服务的平台,来自动执行并集成 DevOps、持续交付、微服务和容器等概念:

基于云的云原生平台和自建平台对比

根据CNCF(CLOUD NATIVE COMPUTING FOUNDATION)所提供的landscape,我们看到云原生已经发展为一个领域细分明确,工具丰富的庞大生态:
在这里插入图片描述

对于想搭建一套云原生应用开发平台的企业来说,就面临着几种不同的方案,要么采购现成的,基于成熟的云的PAAS,SAAS方案;要么自己在上述的开源产品中进行选型,自主搭建一套云原生的开发,运维解决方案。我们从以下几个方面对两种方案的成本结构进行了比较:

在这里插入图片描述
当然,很多人会说,采纳云上方案,我们在采购成本里就已经支付了技术选型,虚拟化等方面的成本;但是对企业来讲,整个方案的搭建,还包括了团队的组建,人员的招聘和维护。笔者和很多企业的IT部门沟通过,企业反馈的是: 我们都知道有哪些开源的产品和方案,但是我们没有办法长期维护一支熟悉相应技术的运维团队。从而导致很多企业很难开始云原生的尝试。
而采纳云上方案,一定程度上将基础设施的运维工作和方案的设计工作托管出去,企业可以更加专注在自身业务。更不用说云上多种有针对企业业务特色的PAAS服务,能够进一步的为企业赋能。

百度内部研发和IT技术基础架构的变迁

在这里插入图片描述

IT技术设施的变迁
百度内部也经历了从12年机器管理和变更管理的初步自动化,逐渐发展到15年左右开始基于CI/CD的持续集成和PaaS平台部署交付,再到现在公司内部大规模的容器化,实现存储底层系统到大数据、AI与在离线业务场景全覆盖。
在运维团队的目标上也从提升迭代效率、服务稳定性之外,更加的关注资源利用率与成本管理。
内部软件研发模式的变迁
百度内部的软件研发模式也从传统的瀑布式,逐渐发展到以迭代为主的敏捷研发模式,最后发展到现在的全面拥抱基于最前言IT技术设施的DevOps模式。
百度内部对于软件研发的关注点也在不断扩展,在瀑布研发模式时代,我们更加关注软件研发的合规性;在敏捷开发时代,我们提倡基于稳定的质量不断缩短发布周期;在现下,我们对于软件研发的关注点除了速度和质量之外,也同样关心技术的复用,开源,以及每个工程师自身能力的成长
百度云原生应用解决方案介绍

百度的云原生解决方案凝结了百度多年的开发,运维经验,本次大会上发布的全套解决方案如下:
架构特色
在这里插入图片描述

从架构上, 以 Kubernetes为基石,我们实现了微服务应用平台、容器引擎的同构私有化交付,这也使得我们的混合云纳管能力更加完备。同时在边缘计算上,我们也实现了函数引擎同构部署在CDN节点,使得在CDN节点运行云端函数成为可能;
与开源生态的结合
在这里插入图片描述

同时,秉承着开源开放的心态,整体解决方案支持多种开源技术栈:

完全兼容开源 Kubernetes:

  • Kubernetes 支持 1.13.4(1.14.1 近期上线);
  • Docker 支持 18.09;
  • CCE会持续支持社区最新稳定版本。

应用管理层面:

  • 支持 K8S 原生资源对象可视化管理;
  • 支持 Helm Chart 仓库及 Helm 实例管理。

服务和容器监控:

  • 基于开源 Prometheus + Grafana;
  • 提供基础监控模板及数据持久化能力。

日志服务:

  • 支持对 K8S 资源对象可视化配置;
  • 支持推送 ES/Kafka/BOS 等三方存储。

产品介绍

依托于百度云稳定可靠的基础服务,百度云原生应用解决方案提供了从产品定义,协同开发,持续部署,到微服务治理,集群管理,线上监控的完整DevOps生命周期服务,正好对应云原生应用平台中的四个方面,下面我就来为大家介绍方案中的各个产品:

  1. 百度效率云
  2. 云原生微服务应用平台(CNAP)
  3. 容器引擎CCE

百度效率云

百度效率云(以下简称效率云)是百度自主研发的一站式DevOps解决方案,凝聚了百度多年来在软件工程领域的探索和实践经验。效率云在百度内部服务10000+工程师的日常产品管理、开发、测试、发布等研发工作,每天支持百度内部30000+次的云端编译、70000+次的构建、700+次的服务发布(如下图)
在这里插入图片描述

效率云已经加入百度智能云产品序列,于2019年5月正式对外提供服务。百度效率云目前同时服务外部2000+企业及个人客户的项目管理,研发,测试等研发工作。
效率云的核心理念是: 用先进的软件工程技术使复杂的开发工作更简单!

百度效率云的产品架构
在这里插入图片描述

整个效率云包括三大平台类工具和四大主要功能模块,分别是产品和项目管理工具iCafe、代码托管和协同开发平台iCode、持续交付平台iPipe;
在这里插入图片描述

依托于三个基础工具平台,五大主要功能模块包括静态代码扫描工具iScan、容器化构建工具iBuild、构建产物管理工具iRepo,iPipe插件市场(私有化版本)和工程能力地图(私有化版本)

百度效率云的特色功能

和其他同类DevOps解决方案对比,百度效率云有如下产品特色:
基于用户故事地图的产品规划
在这里插入图片描述
代码入库前的云端流水线:

与大多数基于pull request的流水线不同,效率云提倡进一步将质量保证手段前置。工程师在提交代码后、代码入库之前即经过一系列的自动化代码检查和Code Review环节;只有通过所有的质量保证手段,代码方可合入到当前代码库中。
在这里插入图片描述
基于特征识别的静态代码分析手段
得益于百度内部多年对代码分析技术的研究,效率iScan插件中植入的BCA系列扫描规则将漏洞的误报率降低至5%,高于业界的10%。通过特征识别等手段,iScan还可以支持增量代码的扫描,大大提升扫描速度
在这里插入图片描述
镜像打包存储,一键发布至微服务治理平台
这是本次介绍的重点功能,百度效率云在Maven和Gradle构建插件中增加了镜像打包功能,研发人员可以在完成构建的同时制作Docker镜像,并存储至自己项目专属的镜像仓库:
在这里插入图片描述
完成构建后,研发团队可以在iRepo的镜像仓库中找到构建结果。
镜像的发布由iPipe上的另外一个重要插件–CNAP插件来完成:
在这里插入图片描述
在使用CNAP插件之前,研发团队需要在CNAP中配置相应的工作空间,应用和部署组。也就是说,实际对资源和部署的管理是在微服务应用平台CNAP中完成的;效率云中的CNAP插件调用了用户已经配置好的资源。这样,通过自动化的流水线,研发团队就可以完全自动化的将服务的变更快速推上线;研发人员可以在2-3分钟内完成线上环境配置,资源配置到服务变更的全过程。而且整个过程不需要写额外代码,学习门槛极低

云原生微服务应用平台CNAP

云原生微服务应用平台(Cloud-Native Application Platform,简称CNAP)是一个为企业提供应用托管和微服务管理能力的PaaS平台,可以帮助企业简化部署、监控、运维等应用生命周期管理工作,同时提供服务注册、服务治理、服务监控和调用链等微服务管理和运维能力。

CNAP的主要场景

CNAP平台的主要场景之一: 基于容器的应用托管
在这里插入图片描述
CNAP为企业的开发运维人员提供了稳定的应用部署环境,监控方式和灵活的弹性伸缩机制,方便企业高效的实施运维工作

CNAP平台的主要场景之二: 微服务治理
在这里插入图片描述

容器引擎CCE

百度容器云引擎(简称CCE)提供Docker容器的生命周期管理,大规模容器集群的运维管理、业务应用的一键式发布运行等功能,无缝链接百度智能云其他产品,提供弹性、高可用、高效便捷的平台服务,助力系统架构微服务化、DevOps高效运维、AI应用深度学习容器化等业务场景。
在这里插入图片描述
容器云的主要特色
在这里插入图片描述

  • 提供紧跟开源趋势的Kubernetes托管服务,优化Kubernetes的安全性、可靠性和易用性,在保障开源原生使用体验的基础上降低用户搭建和维护容器集群的成本与风险。
  • 利用容器技术抹平基础设施差异,打造异构化、多集群、跨区域、云+边的容器化基础设施,为上层业务提供一致性的容器管理控制平台

本次大会的workshop

本次云智峰会上的云原生DevOps workshop,就是围绕上述三个核心产品,让参与的学员体会将一个基础服务通过效率云的自动化流水线,发布到自己配置好的容器环境中,并在CNAP平台中配置外部访问接口,最终在线上观察系统的变更。

在这里插入图片描述
整个workshop的操作,对于有一定研发及运维经验的人员来说,可以在30-40分钟内完成全部的配置和操作。相比基于传统IDC实体服务器的配置和操作过程,可以说是数量级上的效率提升。

下周起,我们将陆续组织和开发者的线上互动活动,点击"阅读原文"参与投票,选出您最希望了解的内容:

在这里插入图片描述

关注"百度效率云官方公众号",了解更多百度云原生应用知识

这篇关于百度云原生应用解决方案亮相百度云智峰会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/391061

相关文章

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas