马斯洛理论告诉你,Kubernetes可以满足微服务的这些需求


需求层次理论是由心理学家艾伯特·马斯洛设计的,它是一种解释人类动机的心理学理论,它由多层次的人类需求模型组成,通常被描述成金字塔内的等级层次。马斯洛使用诸如生理、安全、归属感和爱、尊重、自我实现和自我超越等来描述人类动机通常所经历的阶段。作为人类,首先需要满足我们的基本需求,然后是心理上的需求,只有这样我们才能想到自尊和实现全部的潜能:

102.png


马斯洛需求层次

一、Kubernetes能满足微服务的马斯洛需求

这种描述需求的方法非常重要,已经应用于许多其他领域,如员工敬业度、云计算、软件开发、DevOps等等。所以对于微服务来说也同样适用,为了微服务的成功,清晰的需求列表必须满足。List如下:

103.png


微服务的需求层次结构

一旦列出了微服务的主要问题(对每个人来说可能会有不同的顺序),就会发现Kubernetes容器编排引擎确实能够很好地覆盖这些需求中的很大一部分。我把Kubernetes也添加到图中。

首先,对于基础层,需要一些计算资源,并且理想的情况下,拥有一个由基础设施服务云提供商管理的可伸缩的标准操作环境。其他先决条件是,自动化的CI/CD流程和工件注册表,Kubernetes可以帮助我们运行和管理。我们仍然需要一些专门的软件,比如构建的Jenkins,以及工件存储库,比如按需 Sonatype Nexus for Docker和Maven for Docker Hub。

Kubernetes可以帮助管理多个隔离环境(名称空间)、管理资源(配额和限制)、存储分配(持久卷)、执行部署和回滚(部署)、自动调度(调度)、服务发现和负载平衡(服务)、弹性和容错(pod健康检查)。

对于某些需求,我们还需要一些额外的工具,如Docker或rkt用于容器实现,应用程序内的弹性库(如Netflix的Hystrix)与Kubernetes弹性特性相结合。然后,Kubernetes可以管理应用程序配置,并帮助运行最好的集中式日志记录、度量收集和跟踪软件,随着服务数量的增加,这些也变得非常重要。

根据微服务的性质,企业有一些特定的需求。对于API驱动的微服务,需要专门的API管理解决方案,也可以处理服务安全性(Kubernetes没有提供)。但是Kubernetes可以轻松地帮助企业运行有状态的服务(有状态的设置)、批处理作业(job)和调度作业(cron job)。

通过一个平台提供的所有这些特性,用户可以执行一些更智能的活动,如应用程序和基础设施自动伸缩和自修复,通过自动放置、自动重启、自动复制、自动伸缩。

对于Kubernetes所满足的所有这些需求,团队所剩下的就是精简开发流程,拥抱DevOps文化以实现快速交付,并在组织层面达到反脆弱性。

二、关于Kubernetes你需要知道的8件事

这是《计算机周刊》与 Carlos Sanchez 的问答环节,Sanchez 是 CloudBees 的工程师,CloudBees是持续交付和集成软件服务的提供商。其中开源持续集成工具Jenkins,是CloudBees服务的重点。

《计算机周刊》的开源内部人士(Computer Weekly Open Source Insider,简称:CWOSI)提出了8个与Kubernetes最相关的问题,试图揭开这个问题的核心,因为2017年Kubernetes经历了知名度的大幅提升。

CWOSI #1:对于那些不了解Kubernetes的人,你如何总结和定义这项技术?

Sanchez: Kubernetes是一个开源平台,旨在自动化容器的部署、缩放和操作。它是一种允许在大规模集群上运行容器的技术。它支持跨大型数据中心的隔离应用程序的执行。

CWOSI #2:为什么Kubernetes会在你的观点中出现——为什么我们需要它?

Sanchez: Docker确实成功地制造了容器。事实上,谷歌已经运行了很多年几十亿的容器。Kubernetes从谷歌的经验中得出了这种规模的容器运行,导致谷歌将这项技术引入开源世界,从而使其他人更容易地管理容器。

至于为什么我们需要Kubernetes,这是因为对于大型和小型的组织来说,容器变得越来越重要,授权开发团队在大规模的分布式环境中运行,以便在DevOps和持续交付实践中更快地交付软件。在这种情况下,任何能够简化容器的有效操作和管理的东西都将受到企业的热烈欢迎。

CWOSI #3:Kubernetes本质上是开源的,但是有多少开发人员在为一项本质上是基础设施的技术贡献代码呢?

Sanchez:总的来说,有超过1400名贡献者。谷歌、红帽和微软都被包括在其中。最近,亚马逊和阿里巴巴已经成为参与这项技术的几家最大的公司。CNCF管理整个技术。

CWOSI #4:容器化技术是否最终意味着每个单独的组件在验证其目的和最终交付特定的产出或功能的方面更负责?

Sanchez:容器通常与微服务体系架构相关联。每个组件都期望完成一个特定的协议。这些组件有一个目的,它们有由这个协议和API标记的输入和输出。他们必须能够履行他们的职责。它们应该是独立的,并在体系结构中发挥特定的作用,其中有成百上千种服务共存。

CWOSI # 5:什么时候不需要Kubernetes…当企业不需要大规模或跨多个机器的时候吗?

Sanchez:Kubernetes是一个复杂的系统。如果企业有规模来证明部署的合理性,那么采用这种技术是有意义的。例如,如果只使用一两台虚拟机,或者没有任何更高的要求,企业可能不需要Kubernetes ,Docker自己就足够了。也就是说,谷歌或Azure提供的当前云服务让我们很容易从Kubernetes和大规模开始。

CWOSI #6:能给我们解释一下Kubernetes pod吗?

Sanchez:Kubernetes pod实际上是一组在同一个主机上运行的容器。这些容器具有一定的特点。例如,它们共享相同的网络空间和资源。真正的Kubernetes pod是由需要共存的容器组成的。

CWOSI #7:让Kubernetes出错,并把错误的实施组合在一起有多容易?

Sanchez:这又回到了安装上——这是一个复杂的软件,需要专门的专业知识。这就是人们使用谷歌Kubernetes引擎或Azure容器服务的原因。

也就是说,有越来越多的工具,无论是开源的还是商业的,比如kops、kube-aws或者kubeadm都可以帮助执行正确的安装。如果您不使用其中一个安装程序来简化安装,那么在此过程中可能会犯错误。

CWOSI #8:在你看来,Kubernetes在接下来的几年中会如何发展?

Sanchez:将会有越来越多的Kubernetes产品从不同的供应商进入市场,不仅仅是云提供商,还有操作系统提供商。Kubernetes将成为集群的实际操作系统。另外,Kubernetes将会发展成为一套标准API,允许企业运行集群架构。

我们看到云提供商正在破坏基础设施,这样企业就可以运行Kubernetes,而无需运行服务器。因此,我们将看到供应商提供Kubernetes作为服务,企业将能够在云中运行容器,而不必担心机器。AWS已经宣布了提供这一服务的意向,这一趋势将继续在其他供应商中施行。

原文链接:

1、Kubernetes and theMicroservices Hierarchy of Needs
https://thenewstack.io/introdu ... uffer

2、CloudBees:9 things you need to know about Kubernetes
http://www.computerweekly.com/ ... erral

0 个评论

要回复文章请先登录注册