系统架构方法论的发展历程

四个阶段

1、面向过程

面向过程的软件开发是一种基于任务和流程的开发方法。该方法主要关注程序的输入、处理和输出过程,强调在程序中将整个过程分解为一系列步骤,并通过这些步骤进行数据处理和算法操作,以实现预期的功能。此方法通常借助流程图等工具描述程序流程,以帮助开发人员理解问题和设计解决方案。面向过程的软件开发相对简单,容易理解和实现,但不太适用于大型、复杂的软件开发项目。

此时开发人员通常会关注系统流程、数据流向、过程逻辑。业务流程图、数据流图、ER图是开发人员必须掌握的技能。

2、面相对象

面向对象是一种通用的系统设计与分析方法,它以对象为中心,将系统划分成相互独立的模块,每个模块包含一个或多个对象,这些对象之间相互协作完成系统的功能。面向对象的架构具有以下特点:

  1. 封装:将数据和方法封装在一个对象中,保证数据的安全性和完整性。

  2. 继承:通过继承实现代码的复用和扩展。

  3. 多态:同一个方法可以被不同的对象调用,产生不同的结果。

  4. 抽象:将共性的方法和属性抽象成一个父类,子类继承父类后可以继承这些共性的方法和属性。

面向对象的架构有助于提高代码的复用性、扩展性和可维护性,同时也便于团队协作开发,提高开发效率。

“面相对象”的方法论符合我们对真实世界认识,现在系统分析与设计绝大多数坚持OO的思路,UML就是标准。开发人员开始关注模块、对象(class)、关系;对象的属性与行为,状态机、活动图、时序图等。

3、面向服务的架构(SOA)

SOA stands for Service-Oriented Architecture. It is an architectural style that organizes software components as services, which can be accessed and used by other components in a distributed computing environment. The services are loosely coupled, meaning they can be used independently of each other, and can communicate with each other through standardized communication protocols. SOA promotes modularity, flexibility, and reusability of software components, making it easier to develop and maintain complex applications.

OO的思想不会过时,但是互联网兴起后,我们更关心系统提供了那些服务(service),我如何去使用这些服务,服务质量如何,服务之间如何通信。IBM提出了SOA的概念,系统架构再次进行升级,在SOA时代,架构不再是单纯的技术方案,它更多地关注企业的业务目标和价值,以服务为核心,采用模块化、组件化和松耦合的设计思想,通过服务的重用和组合,提高效率和降低成本。同时,SOA时代的架构也更加注重标准化和规范化,通过采用业界通用的标准,如SOAP、WSDL、UDDI等,实现系统之间的互操作和集成。

因此,SOA时代的架构既是一种工具,可以提高企业的IT管理效率和响应能力;又是一种方法论,可以帮助企业实现业务与技术的有机融合,提升竞争力。

4、云原生架构

云计算与SOA是一脉相承的。 在云计算中,几乎一切都是服务(Service):Iaas、Paas、Saas,是大家公认的服务形态;还有Daas、Faas等等。

基于云原生的架构是云计算系统的典型特征:

  • 弹性扩缩 
  • 高可靠性(因为具有高容错性、自恢复性)
  • 可监控、运维方便
  • 分布式、微服务
  • 基于服务API协作
  • .......

云原生架构是一种面向云计算环境的软件架构,其关键特点是利用容器化、微服务、自动化和服务网格等技术来实现高度弹性、可扩展和可靠的应用程序开发和部署。以下是云原生架构的关键技术和常用工具:

  1. 容器化技术:包括Docker、rkt等,用于将应用程序打包成可移植、独立的容器。

  2. 容器编排工具:包括Kubernetes、Docker Swarm等,用于管理和编排容器,实现高度可扩展和高可用性的应用部署。

  3. 微服务框架:包括Spring Cloud、Service Mesh等,用于实现应用程序的微服务化,提供服务发现、负载均衡、故障恢复等功能。

  4. 自动化部署和管理工具:包括Ansible、Chef、Puppet等,用于自动化部署和管理应用程序和基础设施。

  5. 服务网格:包括Istio、Linkerd等,提供动态路由、流量管理、安全管理等功能,以实现复杂的微服务应用程序的治理和管理。

  6. 日志和指标收集工具:包括ELK、Prometheus等,用于收集和展示应用程序的日志和指标,以支持应用程序的监控和故障排除。

  7. 安全工具:包括Vault、TLS等,用于保护应用程序数据的安全和隐私,以及保护应用程序的安全和稳定性。

架构方法论为什么有以上的历程?

是人类认知不断进步。最期初我们关注的是功能与过程,但是当“现实世界”投递到“计算机世界”后,我们意识到仅仅功能与过程是不足的,我们需要进行建模,并且努力做好模型映射,OO的方法论建模自然优于OP;当模型建好后,我们自然关注模型有什么价值,可以提供什么服务,SOA就来了;后面就是一切皆服务,云计算(Iaas、Saas、Paas)时代终于到来,至于微服务,则是对服务形态与粒度的一次重塑。

基于服务的思想不会改变。但是,还有哪些东西允许以服务的形式 提供出来?大数据、人工智能

你可能感兴趣的:(系统架构)