云原生CAx软件:技术约束

Pital公司的Matt Stine于2013年首次提出Cloud Native(云原生)的概念,从概念提出到技术落地,云原生还处于不断发展过程中,关于云原生的定义也不断在完善。

云原生使用开源软件堆栈来创建容器化、动态编排和面向微服务的应用程序。

Heroku创始人 Adam Wiggins 在2012年提出的"十二要素原则"用于指导设计与开发云原生应用程序。

Ref. from The Twelve Factors

I. Codebase

One codebase tracked in revision control, many deploys

II. Dependencies

Explicitly declare and isolate dependencies

III. Config

Store config in the environment

IV. Backing services

Treat backing services as attached resources

V. Build, release, run

Strictly separate build and run stages

VI. Processes

Execute the app as one or more stateless processes

VII. Port binding

Export services via port binding

VIII. Concurrency

Scale out via the process model

IX. Disposability

Maximize robustness with fast startup and graceful shutdown

X. Dev/prod parity

Keep development, staging, and production as similar as possible

XI. Logs

Treat logs as event streams

XII. Admin processes

Run admin/management tasks as one-off processes

与此同时,云原生的概念与技术也在逐渐影响CAx(CAD/CAE/CAM)软件的架构设计与开发,要考虑设计与实现原生为云的CAx软件云原生CAx软件(Cloud Native CAx System)

狭义上来说,云原生CAx软件实际上就是采用微服务架构、以Kubernetes容器集群为目标平台的CAx软件。

目前,国内已有厂商也在从事云原生CAx(CAD/CAE/CAM)相关的研究,并推出了相应的云原生CAx产品。作为一种学习与研究方法,如果抛开具体的业务需求,可以尝试按照以下思路对这些云原生CAx软件进行分析:

  1. 知名(云原生)CAx软件采用的架构模式;
  2. 架构模式中技术约束的作用;
  3. 归纳总结(云原生)CAx软件应当满足的技术约束。

在前面的博文中,已就云原生CAx软件设计与开发过程中可能涉及的基础知识进行了总结,但尚未对云原生CAx软件的技术约束进行研究。

Software architecture research investigates methods for determining how best to partition a system, how components identify and communicate with each other, how information is communicated, how elements of a system can evolve independently, and how all of the above can be described using formal and informal notations. ------   Roy Thomas Fielding

因此,本文结合技术研究与工作实践,拟对云原生CAx软件设计和开发的技术约束进行系统性总结。

注1:限于研究水平,分析难免不当,欢迎批评指正。

注2:文章内容会不定期更新。

一、C/S架构

二、多租户服务

三、微服务架构

四、HPC加持

参考文献

Joseph Ingeno. Handbook of Software Architecture.

Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000.

网络资料

 Architectural Styles and the Design of Network-based Software Architectureshttps://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

The Twelve Factorshttps://12factor.net/

猜你喜欢

转载自blog.csdn.net/qq_26221775/article/details/130654109