由心理学家Albert Masolow提出的马斯洛需求层次理论作为心理学理论来解释人类需求,包括多层模型的人类需求;使用金字塔来划分层级;Masolow使用诸如生理、安全、归属感、爱、尊重、自我实现和自我超越等条目用以描述人类需求升华历程;就人类而言,首先我们在基本需求得到满足时,然后是心理需求,我们才会进行自我评价并兑现我们的潜能:
马斯洛需求层次理论图
这种对于需求描述的方法已经应用于许多领域,例如:员工敬业度、云计算、软件开发、DevOps等等;自然而然,我们也将他运用于微服务;满足这些必备的需求列表伴随着微服务的成长之路;如下:
微服务需求层次需求
曾经我列举了微服务的主要关注点(顺序可能不同),我不禁得注意到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概述和架构、部署和核心机制分析、进阶篇——Kubernetes工作原理和代码分析等,点击下面图片即可查看具体培训内容。
点击阅读原文链接可直接报名。