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

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

相关文章

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三