云计算

如何设计一个大规模远程命令执行系统

血红的双手。 提交于 2020-04-14 00:23:18
【今日推荐】:为什么一到面试就懵逼!>>> 本文作者:AIOps智能运维 干货概览 书接前文,在上一篇文章中我们介绍了大规模命令执行的意义以及所面对的问题和困难,简单介绍了百度集群控制系统(Cluster Control System,以下简称CCS系统)通过构建两级数据模型、四级调度模型、三级代理执行的方式解决了这些问题,在本篇文章中,我们将续接前文,继续对CCS系统的设计实现进行详细剖析。 两级数据模型 设计考量 回顾前文,在面临的需求中我们提到,需要在大规模的服务器上执行命令并且能够灵活控制。为了满足这样的需求,建立数据模型时,只有执行信息是不够的,还要有控制信息,如路由、并发度、暂停点等,两者组合在一起,构成了CCS系统中的数据模型。 控制信息 控制信息包括命令传递所需的“路由”信息和调度过程的控制信息,如下: 目标机器:命令执行的目标服务器列表,可以是IP,也可以是Hostname。 并发程度:分组并发执行时每组的机器数量,用于控制分组执行,避免系统升级时所有服务器同时升级造成业务中断。 暂停节点:指定执行到第几台服务器时暂停执行,方便先操作几台服务器并确认没问题后再继续执行,若有问题也可将问题控制在小范围内。 执行信息 执行信息是指命令到达目标机器后开始执行时所必需的信息,如下: 认证信息:标示执行者是谁的信息,用来确认执行者的合法性,如不合法则拒绝执行。 鉴权信息

百度云智学院发布AI学习路线图,覆盖完整学习周期

a 夏天 提交于 2020-04-13 22:33:44
【今日推荐】:为什么一到面试就懵逼!>>> 本文作者:yunzhixueyuan 百度云智学院首次对外发布了AI全栈学习路线图,由百度一众技术导师以及行业领域专家联合整理贡献,结合视频课程、实验项目等大量优质的学习资源,配套测评考试与能力认证,覆盖AI初学者从入门到行业专家的学习全周期。 AI全栈学习路线从数学基础、编程语言、算法原理再到框架精讲,基本涵盖了机器学习、深度学习的主要知识点:线性回归、逻辑回归、神经网络、K-Means等,还同步提供在线实训环境与足量的GPU、CPU计算资源,帮助学习者一键进入AI场景进行算法实践。在进阶学习阶段,百度云智学院从百度企业级开发案例中萃取出数个经典实战项目,涉及农业、医疗、卫生、汽车、等多个行业应用领域,真正提供人工智能体系化课程一站式在线学习服务。 学习者在课程学习与实践之后,可在线考取百度云智学院所颁发的能力认证证书,标识自己在AI学习领域的专业知识和技术水平,还可以通过百度云智学院才智中心,给自己所获认证相匹配的岗位投递简历,获得更多更好的就业机会。 此外,百度云智学院还同步发布了AI产品与应用学习路线与云计算学习路线,理论精讲与产品实践相结合,帮助学习者快速熟悉业内领先的百度AI、云计算技术在实践场景中的应用,系统了解相关产品架构设计与技术服务优势,深入掌握百度技术如何满足个人开发者和企业级用户的业务需求。 学习地址:

迈出容器化的第一步:集群管理(上)

Deadly 提交于 2020-04-13 20:54:18
【今日推荐】:为什么一到面试就懵逼!>>> 本文作者:HelloDeveloper 随着容器技术日渐成熟以及Kubernetes风靡一时,IT架构容器化已经从前沿技术公司的探索逐渐成为大部分企业IT的发展方向。 最近CNCF(云原生计算基金会)云原生调查反映:在亚洲市场,几乎所有容器管理工具的使用率都有所增长,现成商业解决方案总体增长58%,本土解决方案增长690%,Kubernetes增长11%。Kubernetes集群在生产中的规模也在扩大,运行1-5个生产集群的组织减少37%,而运行11-50个集群的受访者增加 154%。 百度云作为CNCF的金牌会员,同时也是国内容器技术的最早践行者之一,在过去7年的内部容器化实践中积累了大量的经验。本系列文章将从企业容器化场景出发,从不同角度呈现容器化过程中需要理解的概念和常见问题的解决方案,帮助百度云用户更好地使用容器技术,利用云原生的IT架构为业务的高速发展保驾护航。 容器引擎与容器集群技术 容器技术的雏形其实最早在1979年就已经诞生,其初衷是在同一个操作系统中,为不同进程提供相互隔离的运行环境。随着技术发展,容器现在已经成为了一种典型的轻量级虚拟化技术,它依托于操作系统的基础架构之上,为应用程序提供独立的运行环境。由于应用程序的运行只需要与容器交互,因此开发者无需关心底层操作系统的差异,使得容器化应用的部署和迁移变得极为方便

效率云教程③ | 创建你的第一个代码库

自古美人都是妖i 提交于 2020-04-13 20:21:42
【今日推荐】:为什么一到面试就懵逼!>>> 本文作者:HelloDeveloper 原理 什么是源码控制? 在这里,我将从高度抽象的层面描述版本控制是做什么的,以及它对于知识工作者的工作有何关联。 在知识工作者创建内容的整个过程中,会执行一系列标准任务与步骤。这里说的知识工作者可以是处理文档的设计人员,也可能是更常见的写代码的开发人员。所有这些角色在创建新事物时都有相同的行为:创建新文件、写入内容、保存文件,然后我们对这些文件进行一系列编辑和修改,然后再次保存。这些看起来是一系列简单的步骤,然而,我们如何用图形化的方式来表现呢? 版本控制的目的是帮助你在一次次的保存时澄清何时保存的、为什么保存、哪些内容被修改,从而能够在将来的任何时间对这些修改进行评审。如果我们画一张图,来展现我们对一个文件所做的修改活动,你可能需要每次都描述清楚你对文件做了什么、为什么要对其修改、并且希望工具能够自动记录文件内容发生了那些改变。 对于单个人来说,这似乎并不是什么难事,对于单个文件,看起来就是直线向前的。但是,当我们说到协作场景时,版本控制才真正发出闪耀的光芒:你和其他团队成员试图做相同的事情,甚至在同一个文件上。当你这样做时,你所需要的能力就不仅仅是为单个人提供单个文件的简单版本历史了!你必须要能够持续跟踪谁做了修改、什么时候做了修改、为什么修改,并将所有人的操作合并在一起

略谈分布式系统中的容器设计模式

倖福魔咒の 提交于 2020-04-13 03:11:12
本文作者:zytan_cocoa 略谈分布式系统中的容器设计模式 谭中意 2020/3/5 前言 :云原生(Cloud Native)不仅仅是趋势,更是现在进行时,它是构建现代的,可弹性伸缩的,快速迭代的计算网络服务的事实标准。其中容器编排系统Kubernetes和容器是基石。所以每个工程师都需要学习和了解他们。学习过程中,很多工程师可能会问: 为什么Pod而不是容器是K8S部署的最小单位 ? 基于K8S设计分布式系统有没有什么套路 ?本文针对这些问题,并参考K8S创始人的很多文档,给出了解答。本文适合进行研发工作2到3年的同学,对架构设计比较感兴趣,有一定架构设计意识,同时对容器(Docker)和容器编排系统(kubernetes)有一定了解。希望可以通过此文,让同学们更深入的了解到分布式容器系统中的几种常见模式,以便以后更好的设计和实现云原生的分布式系统。 先从一篇论文说起 : 首先介绍一篇论文,标题是《Design patterns for container-based distributed systems》,作者是Brendan Burns和David Oppenheimer,论文发表于2016年,是原原生领域系统设计的代表作。 第一作者Brenda Burns,相信熟悉云原生领域的同学都认识他,他之前是Google的工程师,是Kubernetes的三位创始人之一

独立代码扫描,镜像自动化构建,敏捷项目管理 -- 百度效率云7月改版一览

老子叫甜甜 提交于 2020-04-13 02:39:59
本文作者:francisk84 距离百度效率云正式发布已经2个多月,在这两个月的时间里,百度效率云又更新了一系列大的功能模块,借这次机会,正式向大家汇报一下百度效率云近期的产品迭代成果: 百度效率云入口 近期产品的重大更新: 1. 完善项目权限模型,项目间权限隔离 2. 代码扫描增加独立入口,不挂载流水线也可使用 3. 增加Docker镜像构建,镜像仓库 下面我就来为大家介绍一下以上几个升级点: 完善项目权限模型,项目间权限隔离: 在百度内部,项目空间、代码库和流水线是三套彼此独立的权限系统,用户可以同时拥有不同的项目和代码库的权限。 内部效率云的权限模型 但是,在服务外部客户的时候,尤其是和不同企业都有项目合作的业务形态下,客户需要一种更加集中式的权限管理,用以区分人员,代码库和信息的权限。引用开源界那本著名的书籍名称,我们把这两种权限模型称之为--"集市和大教堂" 集市与大教堂 因此我们重新梳理了权限模型,建立了以项目为授权基准,产品需求,代码库,流水线都包裹在项目内部。这样实现了项目间信息的隔离。现在用户进入到效率云的首页,首先看到的是有权限的项目列表,进入到项目内部,才能看到具体的功能组件 用户登录后首页 进入到项目后,才能看到具体的功能组件: 项目功能组件 项目的创建者可以在左下角的项目设置-->权限设置页面里对用户进行授权和添加,目前项目权限分为三种: 管理员:

Service Mesh在百度网盘数万后端的实践落地

亡梦爱人 提交于 2020-04-13 02:07:10
本文作者:HelloDeveloper 1 背景 起初,在网盘快速发展期,为了快速上线,采用了服务单体化 + 主干开发模式进行研发,随着用户规模爆发式的增长以及产品形态的丰富,单体化的不足就体现出来了,于是架构上采用了微服务架构,开始对业务逻辑进行拆分部署。 服务拆分之后,也引入了新的问题,具体如下: 请求路由: 服务部署从物理机向虚拟化方式迁移中,有大量的切流量操作,需要相关的上游都进行升级上线修改,效率低下 故障管理: 单实例异常、服务级别异常、机房故障异常、网络异常等,严重缺失或者不完善,同时配套的故障定位也没有,服务稳定性不足 流量转发: 不同的服务采用了不同的框架,甚至裸框架,策略不完善,导致负载不均衡 研发效率: 相同的功能点,需要在不同的语言框架上实现一次,浪费人力,同时升级周期比较长,收敛效率低 2 解决方案 - UFC 2.1 UFC 发展史 为了解决这个问题,从2015年底开始思考解决方案,确定了解决问题的 核心在于管控请求流量 ,在2016年开始 自研网络流量转发中间件 - UFC(Unified Flow Control) ,业务通过同机部署的agent进行服务通信,相关的发展史如下: 2.2 UFC 和 Service Mesh的关系 后来在调研业界相关技术的时候,发现了istio(业界Service Mesh的典型代表) ,从而发现了Service

略谈分布式系统中的容器设计模式

混江龙づ霸主 提交于 2020-04-12 03:22:29
本文作者:zytan_cocoa 略谈分布式系统中的容器设计模式 谭中意 2020/3/5 前言 :云原生(Cloud Native)不仅仅是趋势,更是现在进行时,它是构建现代的,可弹性伸缩的,快速迭代的计算网络服务的事实标准。其中容器编排系统Kubernetes和容器是基石。所以每个工程师都需要学习和了解他们。学习过程中,很多工程师可能会问: 为什么Pod而不是容器是K8S部署的最小单位 ? 基于K8S设计分布式系统有没有什么套路 ?本文针对这些问题,并参考K8S创始人的很多文档,给出了解答。本文适合进行研发工作2到3年的同学,对架构设计比较感兴趣,有一定架构设计意识,同时对容器(Docker)和容器编排系统(kubernetes)有一定了解。希望可以通过此文,让同学们更深入的了解到分布式容器系统中的几种常见模式,以便以后更好的设计和实现云原生的分布式系统。 先从一篇论文说起 : 首先介绍一篇论文,标题是《Design patterns for container-based distributed systems》,作者是Brendan Burns和David Oppenheimer,论文发表于2016年,是原原生领域系统设计的代表作。 第一作者Brenda Burns,相信熟悉云原生领域的同学都认识他,他之前是Google的工程师,是Kubernetes的三位创始人之一

独立代码扫描,镜像自动化构建,敏捷项目管理 -- 百度效率云7月改版一览

跟風遠走 提交于 2020-04-12 02:51:26
本文作者:francisk84 距离百度效率云正式发布已经2个多月,在这两个月的时间里,百度效率云又更新了一系列大的功能模块,借这次机会,正式向大家汇报一下百度效率云近期的产品迭代成果: 百度效率云入口 近期产品的重大更新: 1. 完善项目权限模型,项目间权限隔离 2. 代码扫描增加独立入口,不挂载流水线也可使用 3. 增加Docker镜像构建,镜像仓库 下面我就来为大家介绍一下以上几个升级点: 完善项目权限模型,项目间权限隔离: 在百度内部,项目空间、代码库和流水线是三套彼此独立的权限系统,用户可以同时拥有不同的项目和代码库的权限。 内部效率云的权限模型 但是,在服务外部客户的时候,尤其是和不同企业都有项目合作的业务形态下,客户需要一种更加集中式的权限管理,用以区分人员,代码库和信息的权限。引用开源界那本著名的书籍名称,我们把这两种权限模型称之为--"集市和大教堂" 集市与大教堂 因此我们重新梳理了权限模型,建立了以项目为授权基准,产品需求,代码库,流水线都包裹在项目内部。这样实现了项目间信息的隔离。现在用户进入到效率云的首页,首先看到的是有权限的项目列表,进入到项目内部,才能看到具体的功能组件 用户登录后首页 进入到项目后,才能看到具体的功能组件: 项目功能组件 项目的创建者可以在左下角的项目设置-->权限设置页面里对用户进行授权和添加,目前项目权限分为三种: 管理员:

独立代码扫描,镜像自动化构建,敏捷项目管理 -- 百度效率云7月改版一览

拜拜、爱过 提交于 2020-04-12 02:38:40
本文作者:francisk84 距离百度效率云正式发布已经2个多月,在这两个月的时间里,百度效率云又更新了一系列大的功能模块,借这次机会,正式向大家汇报一下百度效率云近期的产品迭代成果: 百度效率云入口 近期产品的重大更新: 1. 完善项目权限模型,项目间权限隔离 2. 代码扫描增加独立入口,不挂载流水线也可使用 3. 增加Docker镜像构建,镜像仓库 下面我就来为大家介绍一下以上几个升级点: 完善项目权限模型,项目间权限隔离: 在百度内部,项目空间、代码库和流水线是三套彼此独立的权限系统,用户可以同时拥有不同的项目和代码库的权限。 内部效率云的权限模型 但是,在服务外部客户的时候,尤其是和不同企业都有项目合作的业务形态下,客户需要一种更加集中式的权限管理,用以区分人员,代码库和信息的权限。引用开源界那本著名的书籍名称,我们把这两种权限模型称之为--"集市和大教堂" 集市与大教堂 因此我们重新梳理了权限模型,建立了以项目为授权基准,产品需求,代码库,流水线都包裹在项目内部。这样实现了项目间信息的隔离。现在用户进入到效率云的首页,首先看到的是有权限的项目列表,进入到项目内部,才能看到具体的功能组件 用户登录后首页 进入到项目后,才能看到具体的功能组件: 项目功能组件 项目的创建者可以在左下角的项目设置-->权限设置页面里对用户进行授权和添加,目前项目权限分为三种: 管理员: