多年来,单体应用程序一直是实现业务需求的标准企业架构。但当云基础设施开始大规模和快速地处理业务加速,这种情况就发生了显著变化。应用程序架构也有了转变,以适应云原生应用程序和微服务、无服务器和事件驱动的服务——这些服务在跨混合和多云平台的不可变基础设施上运行。
对云原生软件具体有哪些要求呢
创建云原生应用程序架构需要哪些功能,而开发人员将从中获得哪些好处?构建和架构云原生应用程序的方法有很多,以下因素需要重点考虑:
运行时:它们更可能是以容器优先或/和Kubernetes原生语言编写的,这就是运行时(如Java、Node.js、Go、Python和Ruby)。
可观测性:使用Prometheus、Grafana和Kiali等工具,通过提供实时指标和有关应用程序在云中的使用和行为的更多信息,来增强可观测性。
效率:专注于小内存占用、小工件大小和快速启动时间,使应用程序可跨混合/多云平台移植。
安全性:在多云或混合云应用程序环境中部署和维护应用程序时,安全性至关重要,应该是环境的一部分。
互操作性:将云原生应用程序与开源技术集成,使你能够满足上面列出的要求,包括Infinispan、Microfile、Hibernate、Kafka、Jaeger、Prometheus等,以构建标准运行时架构。
DevOps/DevSecOps:这些方法是为连续部署到生产环境而设计的,与最小可行产品(MVP)保持一致,并将安全性作为工具的一部分。
使云原生坚固
云原生看起来像一个抽象的术语,但是像开发人员一样回顾定义和思考可以使它更加具体。为了使云原生应用程序成功,它们需要包含一个长的、定义清晰的成分列表。