Kubernetes与微服务的层次要求


【编者的话】作者将Kubernetes提供的特性使用马斯洛需求层次图进行分类。

【深圳站|3天烧脑式Kubernetes训练营】培训内容包括:Kubernetes概述和架构、部署和核心机制分析、进阶篇——Kubernetes调工作原理及源码分析等。

由心理学家Albert Masolow提出的马斯洛需求层次理论作为心理学理论来解释人类需求,包括多层模型的人类需求;使用金字塔来划分层级;Masolow使用诸如生理、安全、归属感、爱、尊重、自我实现和自我超越等条目用以描述人类需求升华历程;就人类而言,首先我们在基本需求得到满足时,然后是心理需求,我们才会进行自我评价并兑现我们的潜能:
01.png

马斯洛需求层次理论图

这种对于需求描述的方法已经应用于许多领域,例如:员工敬业度、云计算、软件开发、DevOps等等;自然而然,我们也将他运用于微服务;满足这些必备的需求列表伴随着微服务的成长之路;如下:
02.png

微服务需求层次需求

曾经我列举了微服务的主要关注点(顺序可能不同),我不禁得注意到Kubernetes集装箱编排引擎完美的满足了大部分的需求。所以我将Kubernetes嵌入到需求层次理论图中。

首先,在基础层,我们需要一些计算资源,在理想情况下,拥有由云基础设施服务提供商提供的可伸缩的标准操作环境。另一需求是自动CI/CD以及自动注册,Kubernetes帮助我们自动运行并进行管理;当然我们需要一直特定功能的软件加以辅助;例如Jenkins用来builds,Docker Hub,Nexus或者Maven组件来提供仓库功能。

Kubernetes帮助我们管理许多独立的环境(namespace),管理资源(quotas和limits),存储分配(persistent volumes),平台部署和回滚(deployments),自动调度(scheduler),服务发现和负载均衡(services), 弹性伸缩和容灾(pod health checks)。

为了满足以上需求,我们需要额外的工具,例如容器实现工具docker或者rkt;应用内的弹性库(例如Netflix的Hystrix)来组合Kubernetes的伸缩特性;Kubernetes管理应用的配置以及帮助我们集中化日志管理,度量收集,以及对于大部分的服务所必须的监控系统。

基于微服务的特性,我们有一些特定的需求,对于API驱动的微服务,我们需要指定特定的API管理解决方案,该方案可以处理服务安全(并非由Kubernetes提供),Kubernetes帮助我们运行状态化的服务(statefulset),batch jobs(job)和调度任务(cron job)。

由于Kubernetes平台提供了如此多的特性。用户的行为将十分智能,例如应用和基础设施自动伸缩,通过自动调度,自动重启,自动响应,自动扩展。

鉴于Kubernetes满足的以上需求,那么剩下的工作就是简化开发流程;拥抱DevOps文化快速交付,在组织层次上实现稳固。

原文链接:Kubernetes and the Microservices Hierarchy of Needs(翻译:程鹏)

0 个评论

要回复文章请先登录注册