01 2023 档案

摘要:随着DevOps的发展以及采用DevOps思维方式的组织不断增多,DevOps的许多不同方面都日趋成熟。随着DevOps的成熟,在概念和思维方式(DevSecOps,AIOps,SecOps等)领域也在不断发展。GitOps是DevOps中的另一个萌芽概念,其根源在于使开发人员能够使用git创建CI 阅读全文
posted @ 2023-01-27 11:30 muzinan110 阅读(198) 评论(0) 推荐(0) 编辑
摘要:通过冷启动优化、对无状态性的认识、Serverless架构下的资源评估、开发者工具的加持等方面的介绍对Serverless架构下的应用优化与注意事项进行总结。 函数基础与资源编排 1 函数并不是“函数” 众所周知,Serverless架构通常被认为是FaaS与BaaS的结合。所谓的FaaS是Func 阅读全文
posted @ 2023-01-27 10:59 muzinan110 阅读(174) 评论(0) 推荐(0) 编辑
摘要:近年来,Serverless架构逐渐被更多的开发者所认识、接受,逐渐被应用到了更多领域,其中包括如今非常热门的机器学习领域。 与其他领域不同的是,在Serverless架构上进行人工智能相关项目的应用实践具有极大的特殊性。 ·人工智能领域的模型体积普遍较大,一般情况下模型加载需要比较长的时间,这就导 阅读全文
posted @ 2023-01-26 15:23 muzinan110 阅读(165) 评论(0) 推荐(0) 编辑
摘要:触发器(Trigger)用于触发函数执行。不同云厂商会根据自己的业务,为FaaS平台提供多种触发器。其中比较常见的触发器包括API网关触发器、对象存储触发器、定时触发器等。阿里云函数计算提供的触发器如下。 对于事件函数,其提供的触发器包括对象存储触发器、API网关触发器、日志服务触发器、MNS触发器 阅读全文
posted @ 2023-01-26 11:13 muzinan110 阅读(207) 评论(0) 推荐(0) 编辑
摘要:与其说Serverless架构是一个新的概念/架构,不如说它是一个全新的思路、一种新的编程范式。在这种新的架构或者说新的编程范式下,使用全新的思路来做Serverless应用是再好不过的了,但是实际上并不是这样。原生的Serverless开发框架是非常少的。以Web框架为例,目前主流的Web框架均不 阅读全文
posted @ 2023-01-26 11:00 muzinan110 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Serverless架构可以在很多领域发挥极具价值的作用,包括监控告警、人工智能、图像处理、音视频处理等。同样,在大数据领域,Serverless架构仍然可以有良好的表现。以WordCount为例,可以依靠Serverless架构实现一个Serverless版本的MapReduce。 MapRedu 阅读全文
posted @ 2023-01-26 09:52 muzinan110 阅读(71) 评论(0) 推荐(0) 编辑
摘要:FaaS解决方案由Event Sources、FaaS Controller、Function Instance以及平台服务等元素组成,如下所示。 Event Sources:将Event触发或流式传输到一个或多个函数实例中。 Function Instance:可以根据需要扩展单个函数/微服务。 阅读全文
posted @ 2023-01-26 09:31 muzinan110 阅读(180) 评论(0) 推荐(0) 编辑
摘要:在实际生产中,Serverless架构通常都是FaaS与BaaS的结合,并且具备弹性伸缩和按量付费的特性。如下所示,当开发者想要开发一个项目的时候,通常只需要根据FaaS提供商所提供的Runtime,选择一个熟悉的编程语言,然后进行项目开发、测试(图中步骤1); 完成之后将代码上传到FaaS平台(图 阅读全文
posted @ 2023-01-25 16:48 muzinan110 阅读(81) 评论(0) 推荐(0) 编辑
摘要:Knative通过控制入口网关的流量分配来实现服务的路由管理。Knative为每个服务生成唯一的域名,入口网关会根据域名转发请求到对应的服务。 1 定制Knative服务的主域名 Knative默认为每个Service生成一个域名,Istio Gateway会根据域名判断请求应该转发给哪个服务。Kn 阅读全文
posted @ 2023-01-25 16:33 muzinan110 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1 证书管理工具cert-manager cert-manager是用于HTTPS连接的TLS证书管理工具。接下来,通过两个步骤来安装cert-manager。 1)安装cert-manager。 # 如果Kubernetes版本>=1.15,执行以下命令$ kubectl apply--valid 阅读全文
posted @ 2023-01-25 16:29 muzinan110 阅读(117) 评论(0) 推荐(0) 编辑
摘要:Serverless的主要特性之一就是应用可以按需扩缩容。这需要观察流入的负载并根据相应的指标动态调整应用规模。Knative Serving带有Autoscaler组件。它默认使用基于请求的自动扩缩容(Knative Pod Autoscaler,KPA)功能来实现自动伸缩策略,也可以使用Kube 阅读全文
posted @ 2023-01-25 16:25 muzinan110 阅读(201) 评论(0) 推荐(0) 编辑
摘要:1 部署一个Knative事件驱动应用 通过以下9个步骤完成一个完整的Knative事件驱动应用的部署与验证。 1)下载官方示例代码: $ git clone-b "release-0.16" https://github.com/knative/docs knative-docs 2)创建镜像,{ 阅读全文
posted @ 2023-01-25 16:05 muzinan110 阅读(80) 评论(0) 推荐(0) 编辑
摘要:在部署一个Knative Service之前,先了解一下它的部署模型和对应的Kubernetes资源。 如下所示,在部署Knative Serving Service的过程中,Knative Serving控制器将创建configuration、Revision和Route三个资源对象。 Knati 阅读全文
posted @ 2023-01-25 15:52 muzinan110 阅读(285) 评论(0) 推荐(0) 编辑
摘要:Knative Eventing是Knative平台的通用事件驱动组件,它实现了云原生应用开发对事件驱动的通用需求,同时还提供了一组可组合的原语,实现了事件源和消费者之间的延迟绑定。 Knative Eventing支持多种使用模式。现有的事件驱动组件支持以下3种使用场景。 1)想要发布事件,不关心 阅读全文
posted @ 2023-01-25 15:42 muzinan110 阅读(281) 评论(0) 推荐(0) 编辑
摘要:Knative的服务管理组件Serving是管理应用服务的理想选择,它通过自动缩容为零和基于HTTP负载自动扩展的方式简化了部署流程。Knative平台可管理应用服务的部署、版本、网络、扩缩容。 Knative Serving通过HTTP URL的方式来暴露服务,有许多默认的安全设置。在特定的使用场 阅读全文
posted @ 2023-01-25 15:37 muzinan110 阅读(227) 评论(0) 推荐(0) 编辑
摘要:下面的Pipeline配置中使用了镜像标签自动生成、代码构建和镜像推送、应用镜像部署三个任务。也可以根据各自持续集成和交付的需求添加诸如代码质量检查、自动化测试等任务,不断完善持续集成和交付系统。 Java语言配置示例 通过Maven工具构建Java代码。为了提高构建效率,需要为Maven本地仓库配 阅读全文
posted @ 2023-01-25 15:24 muzinan110 阅读(236) 评论(0) 推荐(0) 编辑
摘要:Tekton的主要功能是实现持续集成和交付部署。Tekton Pipeline是其核心组件,其他组件都是建立在Tekton Pipeline之上的。 1 Step、Task和Pipeline Step(步骤)是CI/CD工作流中最小的基础操作单元。Tekton通过在Step中定义的容器镜像执行每个S 阅读全文
posted @ 2023-01-25 15:23 muzinan110 阅读(340) 评论(0) 推荐(0) 编辑
摘要:Tekton由如下7个组件构成 1)Tekton Pipeline:Tekton Pipeline是Tekton的基础组件,定义了一组Kubernetes自定义资源。作为构建模块的基础,你可以使用它们装配CI/CD流水线。 2)Tekton Trigger:Tekton Trigger可以实现基于事 阅读全文
posted @ 2023-01-25 15:21 muzinan110 阅读(212) 评论(0) 推荐(0) 编辑
摘要:机器学习是一个涉及多学科的专业领域,包括计算机科学、统计学、信息学和神经科学等多个学科。机器学习基于数据和算法构建模型并对模型进行评估。如果效果达到了要求,就用该模型处理其他目标数据;如果达不到要求,则进一步调整算法或参数,重新建立模型并再次评估,通过反复测试和评估来获得满意的模型。 算法类型 根据 阅读全文
posted @ 2023-01-25 14:55 muzinan110 阅读(360) 评论(0) 推荐(0) 编辑
摘要:使用Argo CD系统以GitOps的发布方式完成一个应用的迭代更新。 1. 应用更新 下面把guestbook-aliyun和guestbook-idc应用从第1版本更新至第2版本。 在GitOps发布模型中,Git源仓库是应用更新的唯一事实来源,我们需要基于master分支创建分支feat/gu 阅读全文
posted @ 2023-01-25 11:54 muzinan110 阅读(320) 评论(0) 推荐(0) 编辑
摘要:一个云原生应用程序通常包含多种Kubernetes资源类型,例如Deployment、ReplicaSet、Pod、PersistVolume、Service等,但在Kubernetes的原生能力下,并没有一个完整的概念可以直观地展示应用程序到底包含哪些资源。Argo CD通过Application 阅读全文
posted @ 2023-01-25 11:51 muzinan110 阅读(337) 评论(0) 推荐(0) 编辑
摘要:安装Argo CD 单独为Argo CD创建命名空间argocd,命令如下所示。 $ kubectl create namespace argocdnamespace/argocd created 使用以下命令将Argo CD部署到argocd命名空间下。 $ kubectl apply -n ar 阅读全文
posted @ 2023-01-25 11:48 muzinan110 阅读(860) 评论(0) 推荐(0) 编辑
摘要:Argo CD的核心概念 Application(应用):一组Kubernetes资源清单的统一定义,属于CRD(Custom Resource Definition,定制资源定义)资源。 Application source type(应用的源仓库类型):目前Argo CD支持Git和Helm两种 阅读全文
posted @ 2023-01-25 11:45 muzinan110 阅读(309) 评论(0) 推荐(0) 编辑
摘要:KubeFed(Kubernetes Cluster Federation,Kubernetes集群联邦)是Kubernetes项目下的多集群特殊兴趣小组(Special Interest Group,SIG)发布和管理的。集群联邦实现了单一集群统一管理多个Kubernetes集群的机制,这些集群可 阅读全文
posted @ 2023-01-25 11:42 muzinan110 阅读(234) 评论(0) 推荐(0) 编辑
摘要:需要在主集群中安装并部署KubeFed,使用Helm Chart进行部署,需要安装Helm3客户端,命令如下。 $ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash % Total % 阅读全文
posted @ 2023-01-25 11:40 muzinan110 阅读(66) 评论(0) 推荐(0) 编辑
摘要:KubeFed通过定义CRD资源对Kubernetes资源进行联邦管理,如FederatedNamespace、FederatedDeployment等,下面创建一个联邦命名空间,将联邦Deployment资源部署至所有成员集群。 在主集群运行以下命令创建一个联邦命名空间go-demo。命名空间go 阅读全文
posted @ 2023-01-25 11:37 muzinan110 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1. 异地多活——跨地域容灾 从设计的角度讲,Kubernetes本身就是一个健壮的分布式系统,在一个高可用配置集群中,比如典型的3 masters + 3 workers集群架构中,即使某个节点出现故障,Kubernetes系统也能通过健康检查和重启策略自动实现Pod故障的自我修复,然后通过调度算 阅读全文
posted @ 2023-01-25 11:32 muzinan110 阅读(153) 评论(0) 推荐(0) 编辑
摘要:Kubernetes集群环境下,集群内应用负载间的数据访问流和集群外应用到集群内应用负载的数据访问流。 数据流与网络方案密切相关。目前,Kubernetes官网提供的网络解决方案有Calico、Cilium、Contiv-VPP、Flannel、Kube-router和Weave Net。业界使用较 阅读全文
posted @ 2023-01-25 11:27 muzinan110 阅读(210) 评论(0) 推荐(0) 编辑
摘要:资源编排是指边缘计算系统云部分Kubernetes的计算节点在获得资源调度结果之后,计算节点对调度结果(负载)所需的存储资源、网络资源、计算资源的组织管理。 1)存储资源:创建负载所需的持久存储和临时存储。 2)网络资源:首先创建负载共享的Linux网络协议栈,并打通容器与宿主机的网络,然后创建负载 阅读全文
posted @ 2023-01-25 11:21 muzinan110 阅读(125) 评论(0) 推荐(0) 编辑
摘要:1 资源调度流程 资源创建流程如下所示。 资源调度流程是从资源创建流程的④开始的,即Kube-scheduler在需要创建的资源队列中监听到相应的资源时,会调用可用的调度算法和调度策略对可用的节点进行过滤和打分,最后选出可用的最优节点与需要创建的资源进行绑定,并调用Kube-apiserver的相应 阅读全文
posted @ 2023-01-25 11:20 muzinan110 阅读(207) 评论(0) 推荐(0) 编辑
摘要:Kubernetes的控制流程即Kubernetes集群中资源的增、删、改、查流程。这里的资源包括集群基础设施层面的资源和集群中应用负载层面的资源。 集群基础设施层面的资源的控制流程 Kubernetes集群基础设施层面的资源包括控制节点和计算节点,这两种节点在集群中扮演的角色不同,集群对它们的控制 阅读全文
posted @ 2023-01-25 11:04 muzinan110 阅读(106) 评论(0) 推荐(0) 编辑
摘要:边缘计算系统云部分Kubernetes逻辑架构 Kubernetes逻辑架构包含两种类型的节点,即控制节点和计算节点。 1)控制节点:负责Kubernetes集群的管理工作,在集群基础设施层面负责对集群规模的调整,比如集群中计算节点的增、删、改、查;在集群管理的应用负载资源层面负责对集群内应用资源的 阅读全文
posted @ 2023-01-25 11:00 muzinan110 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Kubernetes整体架构 1)从Kubernetes的GitHub仓库的已发布版本可知,Kubernetes支持的CPU架构包括X86、ARM、s390x和ppc64le。 2)从Kubernetes的GitHub仓库的已发布版本可知,Kubernetes支持的操作系统类型包括Linux、Win 阅读全文
posted @ 2023-01-25 10:58 muzinan110 阅读(156) 评论(0) 推荐(0) 编辑
摘要:边缘计算系统中云、边、端协同的理想效果如下所示。 云、边、端协同包括两层,即云、边协同和云、边、端协同。 1)云、边协同:云作为控制平面,边作为计算平台。 2)云、边、端协同:在云、边协同的基础上,管理终端设备的服务作为边上的负载。云可以通过控制边来影响端,从而实现云、边、端协同。 云、边、端协同是 阅读全文
posted @ 2023-01-25 10:56 muzinan110 阅读(322) 评论(0) 推荐(0) 编辑
摘要:边缘计算系统中边、端协同逻辑架构 1)KubeEdge作为运行在边缘节点的管理程序,负责管理在边缘节点上应用负载的资源、运行状态和故障等。KubeEdge为EdgeX Foundry服务提供所需的计算资源,同时负责管理EdgeX Foundry端服务的整个生命周期。 2)EdgeX Foundry是 阅读全文
posted @ 2023-01-25 10:55 muzinan110 阅读(170) 评论(0) 推荐(0) 编辑
摘要:边缘计算系统中云、边协同逻辑架构 1)Kubernetes控制节点沿用云部分原有的数据模型,保持原有的控制、数据流程不变,即KubeEdge所运行的节点在Kubernetes上呈现出来的是一个普通节点。Kubernetes可以像管理普通节点一样管理KubeEdge所运行的节点。 2)KubeEdge 阅读全文
posted @ 2023-01-25 10:52 muzinan110 阅读(144) 评论(0) 推荐(0) 编辑
摘要:逻辑架构侧重边缘计算系统云、边、端各部分之间的交互和协同,包括云、边协同,边、端协同和云、边、端协同3个部分。 1)云、边协同:通过云部分Kubernetes的控制节点和边部分KubeEdge所运行的节点共同实现。 2)边、端协同:通过边部分KubeEdge和端部分EdgeX Foundry共同实现 阅读全文
posted @ 2023-01-25 10:50 muzinan110 阅读(56) 评论(0) 推荐(0) 编辑
摘要:KubeEdge中对边缘节点的管理有如下3种形式。 1)以节点的形式管理边缘计算资源:在云上部署整个系统的控制面,计算资源在边缘都以节点的形式来管理。 2)以独立集群的形式管理边缘计算资源:在边缘通过部署独立的Kubernetes集群的方式对边缘的计算资源进行管理。 3)以多集群的形式管理边缘计算资 阅读全文
posted @ 2023-01-25 10:48 muzinan110 阅读(126) 评论(0) 推荐(0) 编辑
摘要:由于目前在KubeEdge中与网络相关的资源是随着存储一起下发的,因此所要梳理的网络资源和存储的管理流程其实是KubeEdge中存储的管理流程,如下所示。 KubeEdge中边缘存储和网络资源的管理流程 该流程包括云和边缘两部分,具体功能如下。 1)在云部分,Provisioner/Attacher 阅读全文
posted @ 2023-01-25 10:43 muzinan110 阅读(31) 评论(0) 推荐(0) 编辑
摘要:设备管理模型是在Kubernetes已有的资源管理模型基础上,增加设备资源管理模型。本节将从设备资源管理模型和设备资源管理流程两个维度进行系统梳理和分析,具体如下所示。 设备资源管理模型 KubeEdge要实现对设备资源的管理,需要通过Kubernetes的客户资源定义(Custom Resourc 阅读全文
posted @ 2023-01-25 10:39 muzinan110 阅读(158) 评论(0) 推荐(0) 编辑
摘要:云边协同机制是边缘计算系统中边部分解决方案KubeEdge的关键。有了该机制,KubeEdge便可以适应边缘恶劣的网络环境,即在边缘节点与云失去联系时,边缘节点也可以独立工作,不影响边缘已有负载的正常运行。KubeEdge中的云、边协同架构如下所示。 KubeEdge中的云、边协同架构 云、边协同涉 阅读全文
posted @ 2023-01-25 10:36 muzinan110 阅读(391) 评论(0) 推荐(0) 编辑
摘要:Mapper架构 从与KubeEdge边部分EdgeCore对接的协议划分,终端设备可以分为通过MQTT协议进行对接的终端设备和通过HTTP进行对接的终端设备。 1)通过MQTT协议进行对接的终端设备:该方式是目前KubeEdge推荐的方式。通过该方式对接的终端设备,需要针对支持的协议开发相应的Ma 阅读全文
posted @ 2023-01-25 10:34 muzinan110 阅读(57) 评论(0) 推荐(0) 编辑
摘要:EdgeCore架构 EdgeCore包含的功能模块比较多,包括EdgeHub、MetaManager、DeviceTwin、EventBus、Edged、EdgeMesh、CSI和CNI。 1)EdgeHub:KubeEdge边缘部分组件与云部分组件交互的门户,负责接收从云上下发到边缘的资源操作数 阅读全文
posted @ 2023-01-25 10:33 muzinan110 阅读(155) 评论(0) 推荐(0) 编辑
摘要:CloudCore架构 CloudCore通过List/Watch的方式与云交互,将监听到的事件下发到边缘,同时负责接收边缘以事件的形式上报的状态数据。这些功能是由CloudCore中的不同模块完成的,包括EdgeController、DeviceController、Admintion WebHo 阅读全文
posted @ 2023-01-25 10:31 muzinan110 阅读(92) 评论(0) 推荐(0) 编辑
摘要:KubeEdge整体架构包括与云交互的组件、管理边缘负载的组件和与终端设备交互的组件三部分。 1)与云交互的组件:在KubeEdge中,CloudCore是与云交互的组件,负责将云部分的指令下发到边缘,同时负责接收边缘上报到云端的事件。 2)管理边缘负载的组件:在KubeEdge中,EdgeCore 阅读全文
posted @ 2023-01-25 10:28 muzinan110 阅读(121) 评论(0) 推荐(0) 编辑
摘要:默认istio使用k8s作为注册中心,k8s的service、endpoint对应于服务、实例。 针对一些还未接入到服务网格的Spring Cloud服务,其使用的注册中心可能是consul,如何让服务网格上的consumer服务能访问到非服务网格的Provider,是应用在服务网格迁移过程中所面临 阅读全文
posted @ 2023-01-19 11:22 muzinan110 阅读(207) 评论(0) 推荐(0) 编辑
摘要:Istio 数据平面的高性能智能网络代理,它是基于 Envoy 改进的 Istio-Proxy,控制和协调了被代理服务的所有网络通信,同时也负责收集和上报相关的监控数据。也就是说,代理服务跟外界的所有网络请求都会经过该网络代理,所以网络代理可以代替代理服务实现熔断和限流等功能。 如上图所示,当htt 阅读全文
posted @ 2023-01-19 11:19 muzinan110 阅读(443) 评论(0) 推荐(0) 编辑
摘要:基于 Kubernetes 迅速发展的 Istio 在服务注册与发现组件上支持最完善的自然也为 Kubernetes,这依托于 Kubernetes 对 Pod、Service 等资源的监控,为服务之间的调用提供弹性、负载均衡、重试、熔断和限流等诸多保障。 Pilot 组件会从各个 Service 阅读全文
posted @ 2023-01-19 11:15 muzinan110 阅读(1647) 评论(0) 推荐(0) 编辑
摘要:Istio使用目标规则中的 TrafficPolicy 属性来配置熔断和限流,其中 connectionPool 属性配置限流方式,outlierDetection 配置异常检测的熔断方式。下面,来分别看一下这二者是如何配置的。 1.ConnectionPool 下有 TCP 和 HTTP 两个类别 阅读全文
posted @ 2023-01-19 11:04 muzinan110 阅读(511) 评论(0) 推荐(0) 编辑
摘要:现代化常用的 Metrics 系统 Metrics 主要是用时序性数据库记录每个时间点的监控数据,通过主动拉取或者程序上报的方式记录,然后实时计算一段时间的数据,并通过图形界面的方式展现出来。它的特点是实时性强、可观测指标丰富,适合查看一段时间内的指标趋势。 StatsD+Graphite Stat 阅读全文
posted @ 2023-01-19 10:58 muzinan110 阅读(432) 评论(0) 推荐(0) 编辑
摘要:可观测性的英文是 Observability,这是伴随着云原生技术发展产生的一个新兴词汇,在传统的 IT 中,并没有这种说法。简单来说,可观测性是通过系统输出信息到外部,以检测系统内部的运行状态。Trace,通过内部打点的方式串联起微服务的各个组件。Metrics,通过输出服务的 Metrics 信 阅读全文
posted @ 2023-01-19 10:48 muzinan110 阅读(401) 评论(0) 推荐(0) 编辑
摘要:金丝雀发布也被称为灰度发布,实际上就是将少量的生产流量路由到线上服务的新版本中,以验证新版本的准确性和稳定性。 Istio和 Kubernetes 实现金丝雀发布的方式不太一样,Istio 通过 Envoy 强大的路由规则管理能力,可以灵活地控制对应版本的流量百分比。通过创建其它的路由规则实现灰度, 阅读全文
posted @ 2023-01-19 10:01 muzinan110 阅读(364) 评论(0) 推荐(0) 编辑
摘要:Istio Gateway Istio 采用了一种新的模型——Istio Gateway 来代替 Kubernetes 中的 Ingress 资源类型。Gateway 允许外部流量访问内部服务,只需要配置流量转发即可。 创建 Istio Gateway,注意:这里设置了 hosts 为 httpbi 阅读全文
posted @ 2023-01-18 18:59 muzinan110 阅读(1426) 评论(0) 推荐(0) 编辑
摘要:通过查询一个或多个管理服务器获取数据以发现动态资源变更,比如 Router、Cluster、EndPoint 等,这些发现服务及其对应的 API 称为 xDS 。xDS 最大的价值就是定义了一套可扩展的通用微服务控制 API,这些API不仅可以做到服务发现,也可以做到路由发现、集群发现,可以说所有配 阅读全文
posted @ 2023-01-18 18:15 muzinan110 阅读(752) 评论(0) 推荐(0) 编辑
摘要:核心功能高性能设计: 采用 C++ 编写,拥有良好的四层、七层代理性能,在 8 核的机器上,HTTP 代理可以达到 10w 的 QPS,gRPC 可以达到 15w QPS,完全满足了 Service Mesh 中 Sidecar 的应用场景。 Filter 架构: 可以在四、七层编写 Filter 阅读全文
posted @ 2023-01-18 17:47 muzinan110 阅读(836) 评论(0) 推荐(1) 编辑
摘要:Istio 在逻辑上分为数据平面和控制平面。 数据平面,由一组高性能的智能代理(基于 Envoy 改进的 istio-proxy)组成,它们控制和协调了被代理服务的所有网络通信,同时也负责收集和上报相关的监控数据。 控制平面,负责制定应用策略来控制网络流量的路由。 Istio 由多个组件组成,核心组 阅读全文
posted @ 2023-01-18 17:32 muzinan110 阅读(120) 评论(0) 推荐(0) 编辑
摘要:Knative 是通过整合:工作负载管理(和动态扩缩)以及事件模型来实现的 Serverless 标准,也叫容器化 Serverless。 Knative 社区的主要贡献者有:Google、Pivotal、IBM、Red Hat,可见其阵容强大。还有,CloudFoundry、OpenShift 这 阅读全文
posted @ 2023-01-17 11:13 muzinan110 阅读(122) 评论(0) 推荐(0) 编辑
摘要:整体解决方案 指标 确定指标 对于使用函数计算的用户而言,更关心的是业务逻辑,因此,常用的用户侧函数监控指标会包括以下几种: 函数的总执行次数; 函数的平均执行耗时; 关键错误类型的发生次数(超时、并发超限、5xx 系统故障等); 函数执行的资源使用情况; 而对于平台侧来说,往往更加关注的是函数计算 阅读全文
posted @ 2023-01-17 11:08 muzinan110 阅读(132) 评论(0) 推荐(0) 编辑
摘要:任何单一云产品所提供的业务解决方案都是有限的,而云服务生态下“互相打通、互相连接”的能力,在很大程度上是业务上云的关键。 通常会根据实现方式,把函数计算的连接能力分为三类:触发器连接能力、访问 VPC 资源的能力、访问公网服务的能力。函数计算通过这些连接能力可以与整个云上的产品服务关联,从而形成一个 阅读全文
posted @ 2023-01-17 10:34 muzinan110 阅读(47) 评论(0) 推荐(0) 编辑
摘要:如何提取公共的服务能力? 开发微服务的时候,如果是一个复杂一点的功能,则需要多人协作或者复用一些别人开发好的类库。那么,函数计算中是否也有类似的特性呢?层的提出就是为了解决这个问题。你可以将函数依赖的公共库提炼到层,以减少部署、更新时的代码包体积。 大部分的云厂商都支持各种语言的层,如 Java、P 阅读全文
posted @ 2023-01-16 20:40 muzinan110 阅读(101) 评论(0) 推荐(0) 编辑
摘要:在 Serverless 的领域中,通过某种方式来协调各个服务和函数的执行,使得我们在享受高弹性、低成本的同时,也降低业务处理上的复杂度呢?这种能力的确存在,业界普遍称之为“工作流(Serverless WorkFlow)”。 工作流,能够通过顺序、分支、并行的方式来协调一个或多个分布式任务,这些任 阅读全文
posted @ 2023-01-16 20:27 muzinan110 阅读(179) 评论(0) 推荐(0) 编辑
摘要:冷启动的流量转发 Public Service 和 Private Service,它们是决定流量走向 Pod IP 还是 Activator 的关键。 Public Service:由 Knative 管控,其 EndPoints 是可变的。如果当前的 Revision 存在 User Pod,那 阅读全文
posted @ 2023-01-16 20:12 muzinan110 阅读(69) 评论(0) 推荐(0) 编辑
摘要:Node 维度 Scheduler:调度模块负责将请求打到指定的函数实例上(Pod),同时负责为集群中的 Node 标记状态,记录在 etcd 中; Local-controller:Node 上的本地控制器,负责管理 Node 上所有函数实例的生命周期,以 DeamonSet 的形式存在; Aut 阅读全文
posted @ 2023-01-16 19:54 muzinan110 阅读(103) 评论(0) 推荐(0) 编辑
摘要:冷启动是什么? 当请求被调度到函数实例上时,如果这个函数实例在上一次执行完代码后没有被回收,那么接收到请求后只需要复用这个实例进行代码的执行即可,这个过程被称为热启动过程。 如果服务是首次请求,或者是容器实例在服务请求后被回收了,就会触发冷启动。 第一步,容器创建。这一步通常会体现在扩缩容过程,当所 阅读全文
posted @ 2023-01-16 18:39 muzinan110 阅读(153) 评论(0) 推荐(0) 编辑
摘要:从运行函数实例的进程角度来看,就有两种模型。 用完即毁型:函数实例准备好后,执行完函数就直接结束。这是 FaaS 最纯正的用法。 常驻进程型:函数实例准备好后,执行完函数不结束,而是返回继续等待下一次函数被调用。这里需要注意,即使 FaaS 是常驻进程型,如果一段时间没有事件触发,函数实例还是会被云 阅读全文
posted @ 2023-01-16 17:44 muzinan110 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-01-07 15:09 muzinan110 阅读(13) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示