俯看云原生之路,创建云原生应用需要熟悉以下设计技术:
一 简洁的代码
你定义的每一个变量、创建的每一个方法,以及你决定实例化的每一个类都会对应用程序的长期维护产生影响。无论你使用哪种容器技术和协调平台,开发团队和他们创建的组件都会产生最大的影响。重要的是,开发人员要努力编写简洁的代码,拥有适当数量的自动化测试,不断重构以提高代码质量、并始终遵循软件工匠精神原则。
二 DDD设计
领域驱动设计是指从业务的角度来进行软件设计,目的是使软件架构尽可能地贴近现实和实际业务,尽可能地贴近真实世界。这种方法最适用于面向对象编程语言,但也有其他针对实际问题进行软件建模和设计的好方法。为现实世界的问题建模和设计软件,一个具有正确的业务和事务约束、易于使用的接口、以及可用于的模型、易于使用的接口和丰富的应用程序接口,是日后成功实现容器化和自动化的基础。
三 六边形架构
六边形架构及其变体,如洋葱架构和整洁架构,通过解耦应用程序组件和提供与应用程序交互的标准化接口,提高了应用程序间的灵活性和可维护性。通过将系统的核心业务逻辑与周围的基础架构解耦,六边形架构使系统更灵活,更易于维护。六边形架构使系统更容易移植到不同的环境或平台。这些架构是对域驱动设计的补充,有助于将应用程序代码安排得边界分明,并将基础架构的依赖关系外部化。
四 微服务架构
微服务架构风格和十二要素应用程序方法论迅速发展成为创建分布式应用程序的规范,并且
它们为设计不断变化的分布式应用程序提供了宝贵的原则和实践 。使用这些原则能够让你创建易扩展,有弹性,易修改的应用,这些都是当今任何现代软件的共同要求。
五 容器化
容器很快成为打包和运行分布式应用程序的标准方式。无论是微服务还是功能模块,容器都很快被采纳为打包和运行分布式应用的标准方式。创建模块化、可重用的容器,使其成为云本地的好公民是另一个基本前提。云原生是一个术语,用于描述云原生的原则、模式和工具。我们使用云原生可以与 Kubernetes 互换使用,后者是当今最流行的开源云原生平台。Kubernetes 是当今最流行的开源云原生平台。
示意图: