BORG

“Python的单例模式有四种写法,你知道么?”——孔乙己

做~自己de王妃 提交于 2020-07-28 04:02:38
什么是单例模式 单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 使用场景: 1、要求生产唯一序列号。 2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。 3、创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。 代码实现 1 使用__new__方法 __new__() 在 __init__() 之前被调用,用于生成实例对象。利用这个方法和类的属性的特点可以实现设计模式的单例模式。 对这块不了解的,可以查看我以前发的文章: Python类中的__new__和__init__的区别 class Singleton(object): def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): orig = super(Singleton, cls) cls._instance = orig.__new__(cls,

数据结构与算法之美_38_分治算法:谈一谈大规模计算框架MapReduce中的分治思想

别说谁变了你拦得住时间么 提交于 2020-07-27 14:43:40
MapReduce 是 Google 大数据处理的三驾马车之一,另外两个是 GFS 和 Bigtable。它在倒排索引、PageRank 计算、网页分析等搜索引擎相关的计数中都有大量的应用。 MapReduce 的本质就是分治算法。 如何理解分治算法? 分支算法(divide and conquer)的核心思想就是,分而治之,也就是将原问题划分成 n 个规模较小,并且结构与原问题相似的子问题,递归地解决这些子问题,然后在合并其结果,就得到原问题的解了。 这个定义看起来有点类似递归的定义。关于分支与递归的区别,分支算法是一种处理问题的思想,递归是一种编程技巧。实际上,分治算法一般都比较适合用帝归来实现的。 分治算法的递归实现中,每一层递归都会涉及这样三个操作: 分解:将原问题分解成一系列子问题; 解决:递归地求解各个子问题,若子问题足够小,则直接求解; 合并:将子问题的结果合并成原问题。 分治算法能解决的问题,一般需要满足下面这几个条件: 原问题与分解成的小问题有相同的模式; 原问题分解成的子问题可以独立求解,子问题之间没有相关性,这一点是分治算法跟动态规划的明显区别; 具有分解终止条件,也就是说,当问题足够小时,可以直接求解; 可以将子问题合并成原问题,而这个合并操作的复杂度不能太高,否则就起不到减小算法总体复杂度的效果了。 分支算法应用举例分析

Kubernetes 是什么?

风格不统一 提交于 2020-07-27 04:00:19
Kubernetes简介 Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 名称 Kubernetes 源于希腊语,意为 “舵手” 或 “飞行员”。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践。 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用(就像canary deployments)。

如何轻松学习 Kubernetes?

北慕城南 提交于 2020-05-08 19:05:36
作者 | 声东 阿里巴巴技术专家 <关注阿里巴巴云原生公众号,回复 排查 即可下载电子书> 导读:《深入浅出 Kubernetes》一书共汇集 12 篇技术文章,帮助你一次搞懂 6 个核心原理,吃透基础理论,一次学会 6 个典型问题的华丽操作! 什么是 Kubernetes? 我们来看一下什么是 Kubernetes。这部分内容我会从四个角度来跟大家分享一下我的看法。 1. 未来什么样 这是一张未来大部分公司后端 IT 基础设施的架构图。简单来说,以后所有公司的 IT 基础设施都会部署在云上。用户会基于 Kubernetes 把底层云资源分割成具体的集群单元,给不同的业务使用。而随着业务微服务化的深入,服务网格这样的服务治理逻辑会变得跟下边两层一样,成为基础设施的范畴。 目前,阿里基本上所有的业务都跑在云上。而其中大约有一半的业务已经迁移到了自己定制 Kubernetes 集群上。另外据我了解,阿里计划今年完成 100% 的基于 Kubernetes 集群的业务部署。 而服务网格这块,在阿里的一些部门,像蚂蚁金服,其实已经有线上业务在用了。大家可以通过蚂蚁一些同学的分享来了解他们的实践过程。 虽然这张图里的观点可能有点绝对,但是目前这个趋势是非常明显的。所以未来几年, Kubernetes 肯定会变成像 Linux 一样的,作为集群的操作系统无处不在。 2. Kubernetes

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可以被认为是一个集群的操作系统,它提供了注入服务发现,扩容,负载均衡,自恢复,选举等功能,使开发者不用关心基础设施相关的服务而可以把心思都集中再应用实现本身。 帮助运维提升资源利用率

Kubernetes(K8s)企业级架构师实战视频教程-2020

馋奶兔 提交于 2020-04-26 19:28:04
https : / / pan . baidu . com / s / 1l jTelqTTz0mYbxoY7vL8Tg 提取码:k3ce https : / / pan . baidu . com / s / 1l jTelqTTz0mYbxoY7vL8Tg 提取码:k3ce ** 简介: **  Kubernetes是Google于2014年开源的一个容器编排工具,使用Google自己的go语言编写,由Borg衍生而来。Borg是Google内部已经运行近十年的容器编排工具,由于docker的横空出世,导致Google原本准备作为秘密武器的容器技术胎死腹中。计划被打乱,容器层面已经痛失良机,慢人一步,只有在编排工具层面下手了,Google当机立断,基于Brog的逻辑编写了Kubernetes,开源并捐给了CNCF(云远程计算基金会),由于Google近十年的使用经验,所以Kubernetes一出世就横扫了其它编排工具,时至今日,地位依然稳固。 ** 目录: ** 建议: Kubernetes的概念还是蛮多的,不建议是一脑门扎到概念上,尽量结合实践去理解,可以多看看官网,部分页面是有中文支持的。在下写的时候脑门也是嗡嗡的,可能会有不完善或者偏差的地方,未完待续吧… 来源: oschina 链接: https://my.oschina.net/u/4306166/blog

Kubernetes 笔记 02 demo 初体验

我只是一个虾纸丫 提交于 2020-04-23 08:15:25
本文首发于我的公众号 Linux云计算网络(id: cloud_dev) ,专注于干货分享,号内有 10T 书籍和视频资源,后台回复**「1024」**即可领取,欢迎大家关注,二维码文末可以扫。 从前面的文章我们知道,Kubernetes 脱胎于 Google 的 Borg,Borg 在 Kubernetes 诞生之初已经在 Google 内部身经百战 10 余年,且不说它的历史源远流长,就凭它是出自 Google 那帮天才工程师之手,就知道它的学习难度不低。 对于这种有一定学习门槛的技术,最好的入门方式是先玩起来,如果刚开始就沉迷在那些理论中,很容易从入门到放弃。 可喜的是,Google 已经考虑到了这一点,官方文档提供了一个很小的 demo,麻雀虽小,五脏俱全,这个 demo 基本涵盖了 K8S 的基本概念,通过它,可以轻松构建一个 K8S 集群,玩转 K8S,我们现在就去玩一玩。(PS:下面提到的概念,我们后面会详细讨论,不理解可以暂时跳过) 打开: https://kubernetes.io/docs/tutorials/kubernetes-basics 映入眼帘的是图文并茂的 6 个步骤: 创建一个 K8S 集群 部署 APP 探索 APP 访问 APP APP 弹性伸缩 更新 APP 在开始每个步骤之前,先来了解个东西—— minikube 。顾名思义

为什么 K8s 在阿里能成功?| 问底中国 IT 技术演进

主宰稳场 提交于 2020-02-26 16:17:02
作者: 曾凡松 阿里云云原生应用平台高级技术专家 张振 阿里云云原生应用平台高级技术专家 导读 :本文描述了阿里巴巴在容器管理领域的技术演进历程,解读了为什么 K8s 最终能够大获成功的原因,以及到今年 双11 阿里巴巴内部的 K8s 应用情况。内容着重描述了阿里巴巴基于 K8s 的云原生改造实践过程的三大能力升级,在对应能力升级过程中沉淀的技术解决方案,以及通过这些能力升级所取得的业务价值。 从 2015 年 Google 牵头成立 CNCF 以来,云原生技术开始进入公众的视线并取得快速的发展,到 2018 年包括 Google、AWS、Azure、Alibaba Cloud 等大型云计算供应商都加入了 CNCF,云原生技术也从原来的应用容器化发展出包括容器、Service Mesh、微服务、不可变基础设施、Serverless、FaaS 等众多技术方向,CFCF 旗下也囊括了越来多的开源项目。 Kubernetes 作为 CNCF 的第一个项目从诞生之初就就令人瞩目,Kubernetes 由 Google 工程师基于 Google 内部多年集群管理系统 Borg 的设计经验,结合云计算时代的基础设施特点重新设计而得,旨在帮助企业解决大规模 IT 基础设施的应用容器编排难题。 Google 在 2014 年 6 月开源 Kubernetes 以后,在 Redhat

Kubernetes 入门必备云原生发展简史

▼魔方 西西 提交于 2019-12-16 10:34:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 “未来的软件一定是生长于云上的”这是云原生理念的最核心假设。而所谓“云原生”,实际上就是在定义一条能够让应用最大程度利用云的能力、发挥云的价值的最佳路径。在这条路径上,脱离了“应用”这个载体,“云原生”就无从谈起;容器技术,则是将这个理念落地、将软件交付的革命持续进行下去的重要手段之一。 云原生技术发展简史 2004 年— 2007 年,Google 已在内部大规模地使用像 Cgroups 这样的容器技术; 2008 年,Google 将 Cgroups 合并进入了 Linux 内核主干; 2013 年,Docker 项目正式发布。 2014 年,Kubernetes 项目也正式发布。这样的原因也非常容易理解,因为有了容器和 Docker 之后,就需要有一种方式去帮助大家方便、快速、优雅地管理这些容器,这就是 Kubernetes 项目的初衷。在 Google 和 Redhat 发布了 Kubernetes 之后,这个项目的发展速度非常之快。 2015 年,由Google、Redhat 以及微软等大型云计算厂商以及一些开源公司共同牵头成立了 CNCF 云原生基金会。CNCF 成立之初,就有 22 个创始会员,而且 Kubernetes 也成为了