使用 Kubernetes(或无服务器)将后端(REST API)构建为微服务
Structuring backend (REST API) into microservices with Kubernetes (or serverless)
我想在基于微服务的架构中设计我的下一个项目,而不是作为一个整体。微服务通常定义为一组损害服务的端点(即公共依赖项、功能等),还是每个端点都是其自己的服务?
我以前用过Serverless Framework,它定义了每个端点及其依赖项并将其打包成Lambda/FaaS。在 Kubernetes 中,这是否类似于生活在自己的 pod 中的每个端点?
我在考虑从头开始设计一个可以利用自动缩放、微服务和按使用付费的新项目的理想方法时遇到了一些困难,并且没有找到太多相关信息.
关于这个问题有 thoughts/resources 吗?
我建议您从 scaling perspective. Separate apps that should be scaled from apps that shouldn't. That would be Pods 开始。
定义应用程序之间的连接,同时考虑容错和负载平衡。定义自动发现策略。这就是 Services 的用途。
想一想您如何向外界公开您的应用程序。这就是 Ingress 的目的。
想想你如何重启和更新你的应用程序。这就是 Deployments 所做的。
考虑集群安全。这是 Network policies come to play. Project Calico provides more flexible solution.
的地方
想想整个集群的可用性。 Kubernetes HA clusters
来了
在特殊情况下,您可能需要使用 DaemonSets, Jobs, CronJobs and StatefulSets。
如果您决定更深入,请查看官方网站 Kubernetes concepts 部分中的其他文章。
我想在基于微服务的架构中设计我的下一个项目,而不是作为一个整体。微服务通常定义为一组损害服务的端点(即公共依赖项、功能等),还是每个端点都是其自己的服务?
我以前用过Serverless Framework,它定义了每个端点及其依赖项并将其打包成Lambda/FaaS。在 Kubernetes 中,这是否类似于生活在自己的 pod 中的每个端点?
我在考虑从头开始设计一个可以利用自动缩放、微服务和按使用付费的新项目的理想方法时遇到了一些困难,并且没有找到太多相关信息.
关于这个问题有 thoughts/resources 吗?
我建议您从 scaling perspective. Separate apps that should be scaled from apps that shouldn't. That would be Pods 开始。
定义应用程序之间的连接,同时考虑容错和负载平衡。定义自动发现策略。这就是 Services 的用途。
想一想您如何向外界公开您的应用程序。这就是 Ingress 的目的。
想想你如何重启和更新你的应用程序。这就是 Deployments 所做的。
考虑集群安全。这是 Network policies come to play. Project Calico provides more flexible solution.
的地方想想整个集群的可用性。 Kubernetes HA clusters
来了在特殊情况下,您可能需要使用 DaemonSets, Jobs, CronJobs and StatefulSets。
如果您决定更深入,请查看官方网站 Kubernetes concepts 部分中的其他文章。