Apache Mesos

腾讯会议大规模任务调度系统架构设计

南楼画角 提交于 2020-07-28 08:39:53
腾讯会议大规模扩容,快手春节红包流量洪峰:超大规模给云计算系统带来诸多挑战。如何管理海量节点并持续提升可扩展性?如何保证复杂工作流的稳定执行和故障自愈?如何提供高可用、高性能、低成本的计算能力?本文是腾讯云专家工程师李德铠在「云加社区沙龙online」的分享整理,为大家介绍腾讯会议大规模任务调度系统架构设计! 点击视频,查看完整直播回放 疫情期间,很多企业受到了较大冲击,正常的复工生产无法进行。腾讯会议作为一款非常便捷的远程协作工具,成为了国内众多企业日常会议沟通交流的主要平台,这款产品从2019年12月26号正式推出,如何在这么短的时间内有效支撑起国内数以亿计用户的访问量呢?如何保障系统的稳定运行? 下面为大家介绍,腾讯会议8天时间内完成100万核资源扩容背后的技术。 一、两个典型案例 首先介绍腾讯会议大规模扩容,下图所示为腾讯会议的架构图,左右两端的用户通过交换机连接到基站,然后接入腾讯云机房,首先会通过我们的调度中心,还有腾讯后台的接入层,接收到用户发起会议的请求。 拿到请求之后,再通过一些状态机的判断,帮用户加入到对应的会议室里面,然后再跟远端的朋友或同事建立一个音频媒体长链接,再通过混音和流控达到稳定的沟通服务。 今年对于腾讯会议是非常有突破的一年,它在春节期间快速崛起,成为了众多中小企业和学校复工复学必备的APP之一

Kubernetes容器编排技术浅析

最后都变了- 提交于 2020-04-27 10:51:42
出现的背景 kubernetes是一个容器编排开源软件,它可以轻松高效管理由千上万的主机组成的集群,并提供容器部署运行的环境。 kubernetes最初由Google开发和设计,前身是Borg系统,Google有成千上万的容器运行在上面,主要帮忙Google实现简化开发和管理,并且提供基础设施的资源利用率。再内部稳定运行Borg数十年之久后,随着容器化的大流行,2014年Google开源了kubernetes,一个基于Borg和其它内部系统的开源系统。2015年,Google将kubernetes项目捐赠给了CNCF(云原生计算基金会)。 优势和劣势 优势 1,kubernetes基于Google内部的Borg系统实现,有着长达数十年之久的稳定大规模运行实践经验。 2,Kubernetes提供的是一个平台,不是解决方案,实现容器化应用程序的一次编写并在各类型云基础设施上运行,它将公有云与私有云之间存在的复杂的基础设施差异抽象化掉了。 3,社区活跃多极高,在所有竞争对手中遥遥领先 1,安装部署比较麻烦 2,只能用于容器的编排管理 适用场景 帮助开发聚焦核心应用功能 kubernetes可以被认为是一个集群的操作系统,它提供了注入服务发现,扩容,负载均衡,自恢复,选举等功能,使开发者不用关心基础设施相关的服务而可以把心思都集中再应用实现本身。 帮助运维提升资源利用率

spark面试题

时光总嘲笑我的痴心妄想 提交于 2020-04-23 03:04:08
1.Spark 消费Kafka,分布式的情况下,如何保证消息的顺序? Kafka分布式的单位是Partition,如何保证消息有序,需要分一下几个条件讨论。 同一个Partition用一个 write ahead log 组织,所以可以保证FIFO的顺序。 不同Partition之间不能保证顺序但是绝大多数用户可以通过 message key 来定义,因为同一个key的 message 可以保证只发送到同一个Partition。如果说key是user id, table row id 等等,所以同一个user 或者同一个 record 的消息永远只会发送到同一个 Partition 上,保证了同一个 user 或 record 的顺序。 当然,如果你有 key skewnes就有些麻烦,需要谨慎处理。 实际情况中,(1)不关注顺序的业务大量存在,队列无序不代表消息无序。(2)我们不保证队列的全局有序,但可以保证消息的局部有序,举个例子:保证来自同一个order id 的消息,是有序的。Kafka中发送1条消息的时候,可以指定(topic,partition,key) 3个参数。partition和key是可选的,如果你指partition,那就是所有消息发往同一个partition,就是有序的,而且在消费端,Kafka保证,1个partition只能被一个consumer消费

浅谈Flink

本秂侑毒 提交于 2020-04-22 21:10:37
浅谈Flink Apache Flink 是一个面向数据流处理和批量数据处理的分布式的开源计算框架,能够支持流处理和批处理两种应用类型。有着低延迟、Exactly-once 保证,而批处理需要支持高吞吐、高效处理的特点。 Flink 完全支持流处理,也就是说作为流处理看待时,输入数据流是无界的;批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。这与 Spark streaming 不同,Spark streaming 是将流处理视为无限个有界的批处理(microbatch)。 Flink 特点 有状态计算的 Exactly-once 语义。状态是指 flink 能够维护数据在时序上的聚类和聚合,同时它的 checkpoint 机制可以方便快速的做出失败重试; 支持带有事件时间(event time)语义的流处理和窗口处理。事件时间的语义使流计算的结果更加精确,尤其在事件到达无序或者延迟的情况下; 支持高度灵活的窗口(window)操作。支持基于 time、count、session,以及 data-driven 的窗口操作,能很好的对现实环境中的创建的数据进行建模; 轻量的容错处理(fault tolerance)。它使得系统既能保持高的吞吐率又能保证 exactly-once 的一致性。通过轻量的 state snapshots 实现; 支持高吞吐、低延迟

分布式系统 in 2010s :软件构建方式和演化

自闭症网瘾萝莉.ら 提交于 2020-01-06 14:43:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者:黄东旭 本文为「分布式系统 in 2010s」 系列第二篇,第一篇请见《 分布式系统 in 2010s :存储之数据库篇 》。 我上大学的时候专业是软件工程,当时的软件工程是 CMM、瀑布模型之类。十几年过去了,看看现在我们的软件开发模式,尤其是在互联网行业,敏捷已经成为主流,很多时候老板说业务下周上线,那基本就是怎么快怎么来,所以现代架构师对于可复用性和弹性会有更多的关注。我所知道业界对 SOA 的关注是从 Amazon 的大规模 SOA 化开始, 2002 年 Bezos 要求 Amazon 的工程团队将所有的业务 API 和服务化, 几条原则 放在今天仍然非常适用: All teams will henceforth expose their data and functionality through service interfaces. Teams must communicate with each other through these interfaces. There will be no other form of inter-process communication allowed: no direct linking, no direct reads of another

6个K8s日志系统建设中的典型问题,你遇到过几个?

寵の児 提交于 2019-12-10 01:42:09
作者 | 元乙 阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11、双 12 考验。 导读: 随着 K8s 不断更新迭代,使用 K8s 日志系统建设的开发者,逐渐遇到了各种复杂的问题和挑战。本篇文章中,作者结合自己多年经验,分析 K8s 日志系统建设难点,期待为读者提供有益参考。 在 Logging 这块做了几年,最近 1 年来越来越多的同学来咨询如何为 Kubernetes 构建一个日志系统,或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经验以文章的形式发出来,让看到这篇文章的同学能少走弯路。这个系列文章定位为长篇连载,内容偏向落地实操以及经验分享,且内容会随着技术的迭代而不定期更新。 前言 第一次听到 Kubernetes 的名字是在 2016 年,那个时候 Kubernetes 还处于和 Docker Swarm、Mesos 方案的“三国鼎立时代”,Kubernetes 由于一系列优势(可扩展、声明式接口、云友好)在这一竞争中崭露头角,最终获得统治地位。 Kubernetes 作为 CNCF 最核心的项目(没有之一),是 Cloud Native(云原生)落地的底座,目前阿里已经全面基于 Kubernetes 在开展全站的云原生改造,在 1-2

6 个 K8s 日志系统建设中的典型问题,你遇到过几个?

纵饮孤独 提交于 2019-12-10 01:35:19
作者 | 元乙 阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11、双 12 考验。 **导读:**随着 K8s 不断更新迭代,使用 K8s 日志系统建设的开发者,逐渐遇到了各种复杂的问题和挑战。本篇文章中,作者结合自己多年经验,分析 K8s 日志系统建设难点,期待为读者提供有益参考。 在 Logging 这块做了几年,最近 1 年来越来越多的同学来咨询如何为 Kubernetes 构建一个日志系统,或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经验以文章的形式发出来,让看到这篇文章的同学能少走弯路。这个系列文章定位为长篇连载,内容偏向落地实操以及经验分享,且内容会随着技术的迭代而不定期更新。 前言 第一次听到 Kubernetes 的名字是在 2016 年,那个时候 Kubernetes 还处于和 Docker Swarm、Mesos 方案的“三国鼎立时代”,Kubernetes 由于一系列优势(可扩展、声明式接口、云友好)在这一竞争中崭露头角,最终获得统治地位。 Kubernetes 作为 CNCF 最核心的项目(没有之一),是 Cloud Native(云原生)落地的底座,目前阿里已经全面基于 Kubernetes 在开展全站的云原生改造,在 1

服务器租用数据中心常见术语

拈花ヽ惹草 提交于 2019-12-07 02:11:51
服务器租用 数据中心会用到一些行业术语,导致很多用户在考察数据中心机房时有时候不知所云,接下来小编就给大家讲解一下哪些是服务器租用数据中心常见术语? (1)ASHRAE ASHRAE是美国采暖、制冷和空调工程师协会的简称,它是一个贸易集团,但相关部分是技术委员会1.5(计算机应用)和技术委员会9.9(关键任务设施、数据中心、技术空间和电子设备)。 (2)刀片(Blades) 刀片是模块化的精简服务器,专为空间整合和快速维护而设计。在传统的机架中,数百个刀片服务器可以安装在数十个标准服务器的空间中。 (3)紧密耦合(Close-coupled) 紧密耦合冷却设备安装在机架旁边。这对于冷却能力不足的数据中心中的机架非常有用。 (4)集群(Clusters) 集群是联网的服务器组。现代集群可以远程分散,从而形成虚拟或软件定义的集群。无论其配置如何,集群对于需要多个服务器或存储协同工作的应用程序非常有用。 (5)容器(Containers) 容器是为特定应用程序保留操作系统的隔离部分。容器通常用于虚拟操作系统。应用程序倾向于以微服务的形式被剥离。Docker、RKT、Mesos是流行的容器类型。Kubernetes是一个用于容器管理的开源程序。 (6)灾难恢复(DR) 灾难恢复首先涉及异地数据复制。其想法是让数据中心尽快启动并运行,即使它是临时或最小配置

服务器租用数据中心常见术语

风流意气都作罢 提交于 2019-12-07 02:04:31
服务器租用 数据中心会用到一些行业术语,导致很多用户在考察数据中心机房时有时候不知所云,接下来小编就给大家讲解一下哪些是服务器租用数据中心常见术语? (1)ASHRAE ASHRAE是美国采暖、制冷和空调工程师协会的简称,它是一个贸易集团,但相关部分是技术委员会1.5(计算机应用)和技术委员会9.9(关键任务设施、数据中心、技术空间和电子设备)。 (2)刀片(Blades) 刀片是模块化的精简服务器,专为空间整合和快速维护而设计。在传统的机架中,数百个刀片服务器可以安装在数十个标准服务器的空间中。 (3)紧密耦合(Close-coupled) 紧密耦合冷却设备安装在机架旁边。这对于冷却能力不足的数据中心中的机架非常有用。 (4)集群(Clusters) 集群是联网的服务器组。现代集群可以远程分散,从而形成虚拟或软件定义的集群。无论其配置如何,集群对于需要多个服务器或存储协同工作的应用程序非常有用。 (5)容器(Containers) 容器是为特定应用程序保留操作系统的隔离部分。容器通常用于虚拟操作系统。应用程序倾向于以微服务的形式被剥离。Docker、RKT、Mesos是流行的容器类型。Kubernetes是一个用于容器管理的开源程序。 (6)灾难恢复(DR) 灾难恢复首先涉及异地数据复制。其想法是让数据中心尽快启动并运行,即使它是临时或最小配置

服务器租用数据中心常见术语

我是研究僧i 提交于 2019-12-06 16:27:01
服务器租用 数据中心会用到一些行业术语,导致很多用户在考察数据中心机房时有时候不知所云,接下来小编就给大家讲解一下哪些是服务器租用数据中心常见术语? (1)ASHRAE ASHRAE是美国采暖、制冷和空调工程师协会的简称,它是一个贸易集团,但相关部分是技术委员会1.5(计算机应用)和技术委员会9.9(关键任务设施、数据中心、技术空间和电子设备)。 (2)刀片(Blades) 刀片是模块化的精简服务器,专为空间整合和快速维护而设计。在传统的机架中,数百个刀片服务器可以安装在数十个标准服务器的空间中。 (3)紧密耦合(Close-coupled) 紧密耦合冷却设备安装在机架旁边。这对于冷却能力不足的数据中心中的机架非常有用。 (4)集群(Clusters) 集群是联网的服务器组。现代集群可以远程分散,从而形成虚拟或软件定义的集群。无论其配置如何,集群对于需要多个服务器或存储协同工作的应用程序非常有用。 (5)容器(Containers) 容器是为特定应用程序保留操作系统的隔离部分。容器通常用于虚拟操作系统。应用程序倾向于以微服务的形式被剥离。Docker、RKT、Mesos是流行的容器类型。Kubernetes是一个用于容器管理的开源程序。 (6)灾难恢复(DR) 灾难恢复首先涉及异地数据复制。其想法是让数据中心尽快启动并运行,即使它是临时或最小配置