[ 翻译 ] Thanos:大规模prometheus集群解决方案

【编者的话】Improbable开源了他们的Prometheus高可用解决方案Thanos,提供Prometheus的无缝集成,并为它带来了全局视图和不受限制的历史数据存储能力。 Fabian Reinartz是一名软件工程师,喜欢用GO语言造轮子并且热衷于解决难题。他是Prometheus的维护者并且是Kubernetes instrumentation特别兴趣小组(Kubernetes SIG instrumentation)的联合发起人。过去,他是SoundCloud的一名线上工程师,并且领导着CoreOS的监控团队。如今他在Google工作。 Bartek Plotka是Improbable的一名基础设施软件工程师。他对一些新兴技术和分布式系统的问题非常感兴趣。凭借着曾经在Intel…

Read More

[ 翻译 ] 随着kubernetes的发展,一个初创生态圈也随之建立

Kubernetes,一项开源的容器编排工具,几年前从Google开源出来,并且正以惊人的速度发展。伴随着它成长历程里的每一个阶段,它已经为一些围绕开源项目之上发展业务的企业创造了诸多机会。 开源的美妙之处在于,它在运转的过程中,用户会建立一个基础平台,并且会在它之后建立一个经济生态系统。这是因为像Kubernetes这样的项目(或任何一个成功的开源产品)会不断产生新的需求,作为项目成长和发展的自然延伸。 当然,这些需求代表了一些新项目的机会,而对于围绕开源社区开设企业的初创公司而言亦是如此。然而,要确保这些构想可以实现的前提是,一些关键要素必须落实到位。 成功必备的要素 对于新人来说,你需要一些大公司在背后支持它。在Kuberentes的例子里,去年七月至九月初的6周期间,我们看到一些知名…

Read More

[翻译] Jenkins X 还是 2.0?

近期发布的Jenkins X在开源界备受关注。在这篇文章里,我将探讨新产品里一些吸引人的功能,这些功能尚未在文档里被特别提及。如果你需要一个产品指南或者其他类型的说明文档,我强烈建议阅读一下动机和功能文档。 它只是一个新的炒作工具吗?在容器里运行Jenkins有什么特别之处吗? Kubernetes已然是管理容器,分布式应用以及虚拟基础设施的事实标准。主流的公有云厂商都有提供它的托管服务,而且可以按需在本地安装。如果用户今天构建了一个云应用并且希望它可以在任何地方运行,那么Kubernetes会是你的选择! 尽管Kubernetes的生态系统很庞大,它仍然非常年轻而且把更多精力放在处理“第一阶段”的挑战上,比如K8S的推广。首先解决最紧迫的问题是很自然的事情。可以预见的是2018年K8S将给…

Read More

[ 翻译 ] 零停机迁移到Kubernetes:为什么 & 怎么做

我们在Manifold始终致力于所做的一切都能得到充分利用。出于这个原因,我们不断地考量做过的一些事情,看看它是否仍然满足我们的标准。就在前阵子,我们决定深入研究一下我们的基础设施设定。 在这篇文章里,我们将一起来看看我们迁移到Kubernetes的原因以及我们自问自答的一些问题。随后,我们将一起来看看我们为了迁移到Kubernetes不得不做出的一些妥协,以及为什么需要做出这些妥协。我们也会一起来看看我们是如何配置集群来实现目标。 如果没坏的话,别去修 我们刚到Manifold时,做了我们熟知的一些工作。我们使用Terraform在AWS EC2上部署容器并且通过ELB对外提供服务。我们发现自己的处境是可以花费更多时间来构建一个更成熟的平台。刚开始实施的方案是非常简单的,但是我们开始看到一…

Read More

[ 翻译 ] 在Mac OS X上使用docker装配开发环境的数据库服务

如果你刚刚开始软件研发的职业生涯并且正在使用mac,然后对于怎么使用像MySQL/MariaDB, PostgreSQL, Microsoft SQL Server, Azure CosmosDB SQL又或者Oracle数据库这样的关系型数据库感兴趣的话,那么这篇文章正适合你! 迄今为止,曾经每当我在我的笔记本电脑上跑Linux时,我都是直接在我的环境里安装对应的数据库软件。有时候我会面临像依赖地狱(dependency hell),软件冲突,本地库缺失这样的问题,然后最终不得不选择将数据库跑在相对隔离的Virtualbox虚拟机里。在如今的容器化世界里,这已经是过去式了。 如果你真的想让自己的代码人生变得更加轻松,那么上手使用Docker,然后在容器里启动数据库吧。所有都可以。 在容器里…

Read More

[ 原创 ] 小尝containerd(一)

前言 containerd是一个开源的container runtime实现,也是docker背后管理容器生命周期的功臣,借着周末的一些时间,鄙人也小小把玩了一下containerd,有任何不对的地方欢迎指正。 架构 containerd和runc、docker的关系其实比较复杂,我们不妨简单地理解成,containerd是一个纯粹的,面向容器工业标准的一个容器管理运行时,runc是一个包装了libcontainer的满足OCI标准的类库,docker则更像是一个承载容器而又不想只做容器引擎的一个复杂产物。下图展示了containerd在容器生命周期里扮演的角色: 不难发现,containerd本身负责管理容器整个的生命周期,从镜像拉取,到挂载fs,再到启动,销毁等,它对外提供grpc形式的…

Read More