多年来,单体应用程序一直是实现业务需求的标准企业架构。但一旦云基础设施开始大规模和快速地处理业务加速,这种情况就发生了显著变化。应用程序架构也有了转变,以适应云原生应用程序和微服务、无服务器和事件驱动的服务——这些服务在跨混合和多云平台的不可变基础设施上运行。
到Kubernetes的云原生连接
根据CNCF所说,“云原生技术使组织能够在现代动态环境(如公共、私有和混合云)中构建和运行可伸缩的应用程序。容器、服务网格、微服务、不可变基础设施和声明性API就是这种方法的例证。
“这些技术使松散耦合的系统具有弹性、可管理性和可观察性。再加上强大的自动化,工程师们可以用最少的工作量,频繁地、可预测地做出高影响力的更改。”
像Kubernetes这样的容器编排平台允许DevOps团队构建不可变的基础设施来开发、部署和管理应用程序服务。快速迭代的速度现在与业务需求保持一致。在Kubernetes中构建容器的开发人员需要一个有效的地方来这样做。
对云原生软件的要求
创建云原生应用程序架构需要哪些功能,而开发人员将从中获得哪些好处?构建和架构云原生应用程序的方法有很多,以下因素需要重点考虑:
运行时:它们更可能是以容器优先或/和Kubernetes原生语言编写的,这就是运行时(如Java、Node.js、Go、Python和Ruby)。
安全性:在多云或混合云应用程序环境中部署和维护应用程序时,安全性至关重要,应该是环境的一部分。
可观测性:使用Prometheus、Grafana和Kiali等工具,通过提供实时指标和有关应用程序在云中的使用和行为的更多信息,来增强可观测性。
效率:专注于小内存占用、小工件大小和快速启动时间,使应用程序可跨混合/多云平台移植。
互操作性:将云原生应用程序与开源技术集成,使你能够满足上面列出的要求,包括Infinispan、Microfile、Hibernate、Kafka、Jaeger、Prometheus等,以构建标准运行时架构。
DevOps/DevSecOps:这些方法是为连续部署到生产环境而设计的,与最小可行产品(MVP)保持一致,并将安全性作为工具的一部分。
使云原生坚固
云原生看起来像一个抽象的术语,但是像开发人员一样回顾定义和思考可以使它更加具体。为了使云原生应用程序成功,它们需要包含一个长的、定义清晰的成分列表。
原文链接:
https://opensource.com/article/20/1/cloud-native-software





