继续 范式和工作方法的演变与变化的主题 发生在软件开发领域,我们最近在名为 “软件开发:至今的历史回顾”, “通过云实现互操作性:如何实现?” y “ XaaS:云计算-一切即服务”,今天我们将讨论 微服务.
微服务是一种现代软件架构,而不是可以安装和使用的API(应用程序编程接口)或技术本身。 软件体系结构(也称为软件模式)与编程语言完全无关,因为它们仅确定技术的工作方式,而不是技术的实现方式。
简介
微服务可以看作是SOA架构(面向服务的架构)的发展,它指导开发人员创建更多的模块化应用程序,这些应用程序具有功能性和自治性,并且具有高容量,可以高效地重用这些功能,就像在优化某些硬件的使用方法时(以类似的方式)真正需要什么,而不是不必要地发挥全部潜力。
微服务架构,在实践中,它并没有像理论上那样广泛传播,也就是说, 它比使用的更好。 但是,越来越多的开发人员每天都在执行它,因为它是一种软件开发模型, 它改善了应用变量的项目中的时间,性能和稳定性。 此外,他的 简单的关联可伸缩性 使其特别适合需要跨平台兼容性(Web,移动,可穿戴设备,IoT)的开发。
但 而SOA是更高层次的架构,即一种架构,其中构建了基于服务的应用程序,其中服务是所创建的应用程序中最小,功能最多的工作单元, 微服务架构 还 允许我们创建服务,但这些服务是专为 以非常小的和特定的方式 使它们实现非常精确和准时的功能,这样它们就可以与其他应用程序分离,并以完全自主的方式与创建该应用程序的其余应用程序一起运行。
什么是软件架构(模式)?
为了很好地了解微服务的软件架构,最好对所有已知的现有软件架构有所了解。 有很多现有的,可以在网站上看到 设计 或者只是在 维基百科上的数据但是,根据著名的书 “样式设计书”(设计模式书) 现有模式可以分类为:
创造力的
那些处理实例化对象的方法,其目标是抽象化实例化过程并隐藏如何创建或初始化对象的细节。 在此类中,以下内容是:
- 抽象工厂
- 生成器
- 工厂方法
- 原型
- 独生子
结构
描述类和对象(简单或复合)如何组合以形成大型结构并提供新功能的那些。 在此类中,以下内容是:
- 适配器
- 桥
- 综合
- 装饰器
- 正面
- 飞锤
- 代理
行为
那些可以帮助我们定义系统对象之间的通信和迭代的控件。 该模式的目的是减少对象之间的耦合。 在此类中,以下内容是:
- 责任链
- 命令
- 口译员
- 迭代器
- 调解员
- 提醒
- 观察员
- 州/领地
- 策略
- 模板方法
- 游客
他人
先前的设计模式表达了定义用于构建软件系统的设计结构的架构。 但是,当我们想更好地表达所创建的软件系统的基本组织和结构方案时,通常会发现以下其他分类:
- 板岩建筑
- DAO:数据访问对象
- DTO:数据传输对象
- EDA:事件驱动架构
- 隐式调用
- 裸物
- 分层编程
- 对等网络
- 管道
- SOA:面向服务的体系结构
- 三个层次
还有 “控制器视图模型” 这是众所周知的和使用的,分为:
- 型号/视图/控制器
- 模型/视图/演示者
- 使用Model Presenter进行模型/查看/演示
- 模型/视图/视图模型
- 带有被动视图的模型/视图/演示者
- 具有主管控制器的模型/视图/演示者
存在 “控制器视图模型”是当今最著名和实现的模型之一,不足以为公司应用程序提供所需的功能,这就是为什么, 微服务架构正在取代模型视图控制器(MVC)。
微服务架构的优势
当Web平台使用微服务架构时,通常具有以下优点:
- 解决 通过解决特定情况下涉及的每个小型微服务,可以轻松解决每个问题。
- 减轻 服务的一般或全局故障,因为当微服务发生故障时,它不会影响其他服务,因为它们是完全独立的。
- 缓解 启动或合并完整或特定的功能或服务,因为可以分别或逐步添加或删除和更新每个微服务。
- 得到更好的 访问从所有类型的设备和平台创建的应用程序或服务。
- 提高 平台的多功能性,因为微服务可以分布在不同的服务器中,并且可以用不同的语言编写。
开源框架
有许多 开源选项 软件开发人员可以用来开发属于微服务架构的解决方案的软件。 专门针对Java(这是一种广泛使用的技术),有以下内容:
微服务架构的Web示例
在提供大规模应用程序服务并逐步实施微服务架构以改善其服务和产品平台的维护和可伸缩性,使其变得简单,有效和快速的众多网站中,我们可以提及行业中的三大网站这些是什么:
- Amazon
- 易趣
- Netflix公司
结论
很清楚 微服务为现代基于Web的软件开发做出了巨大贡献但是,它们也意味着要解决许多新的挑战。 这些问题不仅与框架学习和有效工作有关,还与这些新发展如何在IT部门得到补充和实施有关,这些问题最终是使它们联机和管理并获得权重的问题在关于每个开发的最终决定中。 但 该体系结构已经存在,并且已经存在了很长时间。