欢迎光临散文网 会员登陆 & 注册

5.5容器化与弹性计算

2023-08-08 11:46 作者:xlorne  | 我要投稿


服务的类型区分

我们经常说那些是有状态的服务,那些是无状态的服务。

从一个服务系统来说,通常我们认为我们的业务服务是有状态的,我们的前端的UI服务是无状态的。

有状态(Stateful)

有状态服务意味着系统或对象在处理请求时会存储有关先前交互的信息。这种信息被称为“状态”,并且可以影响之后的交互。在执行过程中,有状态服务会记录、维护和使用先前的会话信息。

有状态服务的典型例子是购物网站的购物车功能。当用户将物品添加到购物车时,该信息将被存储,用户可以在后续会话中继续浏览其他产品,而购物车中的内容仍然存在。

无状态(Stateless)

相比之下,无状态服务不存储关于过去交互的任何信息。每个请求都是独立的,不依赖于之前的请求。因为无状态服务不需要记忆过去的交互,所以通常更容易扩展和管理。

HTTP协议就是一个典型的无状态协议的例子。每一个HTTP请求都是独立的,服务器不会保存之前请求的任何信息。

容器化技术

今天的容器化技术几乎成了系统服务部署的标配了,无论是单纯的使用容器化部署还是今天比较流行的云原生都在大量的采用容器化技术。

容器化技术:是一种轻量级的、可移植的解决方案,用于封装应用程序及其所有依赖项和运行时环境,确保应用程序在从开发环境迁移到测试或生产环境时的一致性和隔离性。

我们今天之所以大量的采用容器化技术,主要还是得力于容器化技术在隔离性、可移植性、一致性的技术优势,通过容器化可以非常轻松的实现服务的部署、移植等操作。

容器化管理

Kubernetes(k8s)是最流行的容器化编排技术了。k8s提供了丰富的容器化管理的手段与标准,也提供了丰富的生态支持有大量的可用的组件使用,形成了一个非常完备的容器化管理体系。

弹性计算

弹性计算可快速扩展或缩减计算机处理、内存和存储资源以满足不断变化的需求,而无需担忧用量高峰的容量计划和工程设计。弹性计算通常由系统监控工具控制,无需中断操作即可使分配的资源量与实际所需资源量相匹配。通过云灵活性,公司可避免就未用容量或闲置资源付费,且不必担心投入资金购买或维护额外的资源和设备。

系统演示

演示一个基于k8s与Prometheus的弹性计算的实例

https://github.com/codingapi/cranky-code/tree/main/demo5.5


实现弹性计算的核心是什么?

虽说本章内容中介绍了非常多的技术,容器化、容器化编排、服务监控、自动伸缩HPA等等技术,但是这些都不是实现弹性计算的核心,这些技术都是实现弹性计算的必备条件或者说是实现过程而已。

想要实现弹性计算的关键是要实现服务无状态化。

通过领域驱动的学习,其实提供了一种实现无状态化服务的方式,即事件驱动形的服务能力。

基于流处理的事件驱动分布式Stateless架构

通过依赖分布式服务来降解服务,通过事件驱动串联分布式服务Stateless业务服务。






5.5容器化与弹性计算的评论 (共 条)

分享到微博请遵守国家法律