ACK One 构建应用系统的两地三中心容灾方案

简介:本文侧重介绍了通过 ACK One 的多集群应用分发功能,可以帮助企业管理多集群环境,通过多集群主控示例提供的统一的应用下发入口,实现应用的多集群分发,差异化配置,工作流管理等分发策略。结合 GTM 全局流量管理,快速搭建管理两地三中心的应用容灾系统。

作者:宇汇,壮怀,先河

概述

两地三中心是指在两个城市部署三个业务处理中心,即:生产中心、同城容灾中心、异地容灾中心。在一个城市部署 2 套环境形成同城双中心,同时处理业务并通过高速链路实现数据同步,可切换运行。在另一城市部署1套环境做异地灾备中心,做数据备份,当双中心同时故障时,异地灾备中心可切换处理业务。两地三中心容灾方案可以极大程度的保证业务的连续运行。

使用 ACK One 的多集群管理应用分发功能,可以帮助企业统一管理 3 个 K8s 集群,实现应用在 3 个 K8s 集群快速部署升级,同时实现应用在 3 个 K8s 集群上的差异化配置。配合使用 GTM(全局流量管理)可以实现在故障发生时业务流量在 3 个 K8s 集群的自动切换。对 RDS 数据层面的数据复制,本实践不做具体介绍,可参考 DTS 数据传输服务。

方案架构

前提条件

开启多集群管理主控实例[1]

通过管理关联集群[2],添加 3 个 K8s 集群到主控实例中,构建两地三中心。本实践中,作为示例,在北京部署 2 个 K8s 集群(cluster1-beijing 和 cluster2-beijing),在杭州部署 1 个 K8s 集群(cluster1-hangzhou)。

创建 GTM 实例[3]

应用部署

通过 ACK One 主控实例的应用分发功能[4],在 3 个 K8s 集群中分发应用。对比传统的脚本部署,使用 ACK One 的应用分发可获得如下收益。

本实践中,示例应用为 web 应用,包含 K8s Deployment/Service/Ingress/Configmap 资源,Service/Ingress 对外暴露服务,Deployment 读取 Configmap 中的配置参数。通过创建应用分发规则,将应用分发到 3 个 K8s 集群,包括 2 个北京集群,1 个杭州集群,实现两地三中心。分发过程中对 deployment 和 configmap 资源做差异化配置,以适应不用地点的集群,同时分发过程实现人工审核的灰度控制,限制错误的爆炸半径。

1. 执行一下命令创建命名空间 demo。

kubectl create namespace demo

2. 使用以下内容,创建 app-meta.yaml 文件。

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: web-demoname: web-demonamespace: demo
spec:replicas: 5selector:matchLabels:app: web-demotemplate:metadata:labels:app: web-demospec:containers:- image: acr-multiple-clusters-registry.cn-hangzhou.cr.aliyuncs.com/ack-multiple-clusters/web-demo:0.4.0name: web-demoenv:- name: ENV_NAMEvalue: cluster1-beijingvolumeMounts:- name: config-filemountPath: "/config-file"readOnly: truevolumes:- name: config-fileconfigMap:items:- key: config.jsonpath: config.jsonname: web-demo
---
apiVersion: v1
kind: Service
metadata:name: web-demonamespace: demolabels:app: web-demo
spec:selector:app: web-demoports:- protocol: TCPport: 80targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: web-demonamespace: demolabels:app: web-demo
spec:rules:- host: web-demo.example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: web-demoport:number: 80
---
apiVersion: v1
kind: ConfigMap
metadata:name: web-demonamespace: demolabels:app: web-demo
data:config.json: |{database-host: "beijing-db.pg.aliyun.com"}

3. 执行以下命令,在主控实例上部署应用 web-demo。注意:在主控实例上创建 kube 资源并不会下发到子集群,此 kube 资源作为原数据,被后续 Application(步骤 4b)中引用。

kubectl apply -f app-meta.yaml

4. 创建应用分发规则。

  1. a.  执行以下命令,查看主控实例管理的关联集群,确定应用的分发目标
     
kubectl amc get managedcluster

预期输出:

Name                                               Alias               HubAccepted
managedcluster-cxxx   cluster1-hangzhou   true
managedcluster-cxxx   cluster2-beijing    true
managedcluster-cxxx   cluster1-beijing    true

b.  使用以下内容,创建应用分发规则 app.yaml。替换示例中的和 managedcluster-cxxx 为实际待发布集群名称。分发规则定义的最佳实践在注释中说明。

在 app.yaml 中,包含以下资源类型:Policy (type:topology) 分发目标,Policy (type: override)差异化规则, Workflow 工作流,Application 应用。具体可参考:应用复制分发[5]、应用分发差异化配置[6]和应用集群间灰度分发[7]

apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:name: cluster1-beijingnamespace: demo
type: topology
properties:clusters: ["<managedcluster-cxxx>"] #分发目标集群1 cluster1-beijing
---
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:name: cluster2-beijingnamespace: demo
type: topology
properties:clusters: ["<managedcluster-cxxx>"] #分发目标集群2 cluster2-beijing
---
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:name: cluster1-hangzhounamespace: demo
type: topology
properties:clusters: ["<managedcluster-cxxx>"] #分发目标集群3 cluster1-hangzhou
---
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:name: override-env-cluster2-beijingnamespace: demo
type: override
properties:components:- name: "deployment"traits:- type: envproperties:containerName: web-demoenv:ENV_NAME: cluster2-beijing #对集群cluster2-beijing的deployment做环境变量的差异化配置
---
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:name: override-env-cluster1-hangzhounamespace: demo
type: override
properties:components:- name: "deployment"traits:- type: envproperties:containerName: web-demoenv:ENV_NAME: cluster1-hangzhou #对集群cluster1-hangzhou的deployment做环境变量的差异化配置
---
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:name: override-replic-cluster1-hangzhounamespace: demo
type: override
properties:components:- name: "deployment"traits:- type: scalerproperties:replicas: 1          #对集群cluster1-hangzhou的deployment做副本数的差异化配置
---
apiVersion: core.oam.dev/v1alpha1
kind: Policy
metadata:name: override-configmap-cluster1-hangzhounamespace: demo
type: override
properties:components:- name: "configmap"traits:- type: json-merge-patch  #对集群cluster1-hangzhou的deployment做configmap的差异化配置properties:data:config.json: |{database-address: "hangzhou-db.pg.aliyun.com"}
---
apiVersion: core.oam.dev/v1alpha1
kind: Workflow
metadata:name: deploy-demonamespace: demo
steps:       #顺序部署cluster1-beijing,cluster2-beijing,cluster1-hangzhou。- type: deployname: deploy-cluster1-beijingproperties:policies: ["cluster1-beijing"]  - type: deployname: deploy-cluster2-beijingproperties:auto: false   #部署cluster2-beijing前需要人工审核policies: ["override-env-cluster2-beijing", "cluster2-beijing"] #在部署cluster2-beijing时做环境变量的差异化- type: deployname: deploy-cluster1-hangzhouproperties:policies: ["override-env-cluster1-hangzhou", "override-replic-cluster1-hangzhou", "override-configmap-cluster1-hangzhou", "cluster1-hangzhou"]#在部署cluster2-beijing时做环境变量,副本数,configmap的差异化
---
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:annotations:app.oam.dev/publishVersion: version8name: web-demonamespace: demo
spec:components:- name: deployment  #独立引用deployment,方便差异化配置type: ref-objectsproperties:objects:- apiVersion: apps/v1kind: Deploymentname: web-demo- name: configmap   #独立引用configmap,方便差异化配置type: ref-objectsproperties:objects:- apiVersion: v1kind: ConfigMapname: web-demo- name: same-resource  #不做差异化配置type: ref-objectsproperties:objects:- apiVersion: v1kind: Servicename: web-demo- apiVersion: networking.k8s.io/v1kind: Ingressname: web-demoworkflow:ref: deploy-demo

5. 执行以下命令,在主控实例上部署分发规则 app.yaml。

kubectl apply -f app.yaml

6. 查看应用的部署状态。

kubectl get app web-demo -n demo

预期输出,workflowSuspending 表示部署暂停

NAME       COMPONENT    TYPE          PHASE                HEALTHY   STATUS   AGE
web-demo   deployment   ref-objects   workflowSuspending   true               47h

7. 查看应用在各个集群上的运行状态

kubectl amc get deployment web-demo -n demo -m all

预期输出:

Run on ManagedCluster managedcluster-cxxx (cluster1-hangzhou)
No resources found in demo namespace    #第一次新部署应用,工作流还没有开始部署cluster1-hangzhou
Run on ManagedCluster managedcluster-cxxx (cluster2-beijing)
No resources found in demo namespace     #第一次新部署应用,工作流还没有开始部署cluster2-beijiing,等待人工审核
Run on ManagedCluster managedcluster-cxxx (cluster1-beijing)
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
web-demo   5/5     5            5           47h   #Deployment在cluster1-beijing集群上运行正常

8. 人工审核通过,部署集群 cluster2-beijing,cluster1-hangzhou。

kubectl amc workflow resume web-demo -n demo
Successfully resume workflow: web-demo

9. 查看应用的部署状态。

kubectl get app web-demo -n demo

预期输出,running 表示应用运行正常

NAME       COMPONENT    TYPE          PHASE     HEALTHY   STATUS   AGE
web-demo   deployment   ref-objects   running   true               47h

10. 查看应用在各个集群上的运行状态

kubectl amc get deployment web-demo -n demo -m all

预期输出:

Run on ManagedCluster managedcluster-cxxx (cluster1-hangzhou)
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
web-demo   1/1     1            1           47h
Run on ManagedCluster managedcluster-cxxx (cluster2-beijing)
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
web-demo   5/5     5            5           2d
Run on ManagedCluster managedcluster-cxxx (cluster1-beijing)
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
web-demo   5/5     5            5           47h

11. 查看应用在各个集群上的 Ingress 状态

kubectl amc get ingress -n demo -m all

预期结果,每个集群的 Ingress 运行正常,公网 IP 分配成功。

Run on ManagedCluster managedcluster-cxxx (cluster1-hangzhou)
NAME       CLASS   HOSTS                  ADDRESS         PORTS   AGE
web-demo   nginx   web-demo.example.com   47.xxx.xxx.xxx   80      47h
Run on ManagedCluster managedcluster-cxxx (cluster2-beijing)
NAME       CLASS   HOSTS                  ADDRESS         PORTS   AGE
web-demo   nginx   web-demo.example.com   123.xxx.xxx.xxx   80      2d
Run on ManagedCluster managedcluster-cxxx (cluster1-beijing)
NAME       CLASS   HOSTS                  ADDRESS          PORTS   AGE
web-demo   nginx   web-demo.example.com   182.xxx.xxx.xxx   80      2d

流量管理

通过配置全局流量管理,自动检测应用运行状态,并在异常发生时,自动切换流量到监控集群。

1. 配置全局流量管理实例,web-demo.example.com 为示例应用的域名,请替换为实际应用的域名,并设置 DNS 解析到全局流量管理的 CNAME 接入域名。

2. 在已创建的 GTM 示例中,创建 2 个地址池:

  1. pool-beijing:包含 2 个北京集群的 Ingress IP 地址,负载均衡策略为返回全部地址,实现北京 2 个集群的负载均衡。Ingress IP 地址可通过在主控实例上运行 “kubectl amc get ingress -n demo -m all” 获取。
  2. pool-hangzhou:包含 1 个杭州集群的 Ingress IP 地址。

3. 在地址池中开启健康检查,检查失败的地址将从地址池中移除,不再接收流量。

4. 配置访问策略,设置主地址池为北京地址池,备地址池为杭州地址池。正常流量都有北京集群应用处理,当所有北京集群应用不可用时,自动切换到杭州集群应用处理。

部署验证

1. 正常情况,所有有流量都有北京的 2 个集群上的应用处理,每个集群各处理 50% 流量。

for i in {1..50}; do curl web-demo.example.com; sleep 3;  done
This is env cluster1-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster1-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster2-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster1-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster2-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster2-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}

2. 当集群 cluster1-beijing 上的应用异常时,GTM 将所有的流量路由到 cluster2-bejing 集群处理。

for i in {1..50}; do curl web-demo.example.com; sleep 3;  done
...
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
<hr><center>nginx</center>
</body>
</html>This is env cluster2-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster2-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster2-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}This is env cluster2-beijing !
Config file is {database-host: "beijing-db.pg.aliyun.com"
}

3. 当集群 cluster1-beijing 和 cluster2-beijing 上的应用同时异常时,GTM 将流量路由到 cluster1-hangzhou 集群处理。

for i in {1..50}; do curl web-demo.example.com; sleep 3;  done
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
<hr><center>nginx</center>
</body>
</html>
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
<hr><center>nginx</center>
</body>
</html>
This is env cluster1-hangzhou !
Config file is {database-address: "hangzhou-db.pg.aliyun.com"
}This is env cluster1-hangzhou !
Config file is {database-address: "hangzhou-db.pg.aliyun.com"
}This is env cluster1-hangzhou !
Config file is {database-address: "hangzhou-db.pg.aliyun.com"
}This is env cluster1-hangzhou !
Config file is {database-address: "hangzhou-db.pg.aliyun.com"
}

总结

本文侧重介绍了通过 ACK One 的多集群应用分发功能,可以帮助企业管理多集群环境,通过多集群主控示例提供的统一的应用下发入口,实现应用的多集群分发,差异化配置,工作流管理等分发策略。结合 GTM 全局流量管理,快速搭建管理两地三中心的应用容灾系统。

除多集群应用分发外,ACK One 更是支持连接并管理任何地域、任何基础设施上的 Kubernetes 集群,提供一致的管理和社区兼容的 API,支持对计算、网络、存储、安全、监控、日志、作业、应用、流量等进行统一运维管控。阿里云分布式云容器平台(简称 ACK One)是面向混合云、多集群、分布式计算、容灾等场景推出的企业级云原生平台。更多内容可以查看产品介绍分布式云容器平台 ACK One[8]

相关链接

[1] 开启多集群管理主控实例:

如何开启多集群管理及如何查看和删除主控实例_容器服务 ACK-阿里云

[2] 通过管理关联集群:

如何添加、查看和移除关联集群_容器服务 ACK-阿里云

[3] 创建 GTM 实例:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

[4] 应用分发功能:

应用分发 - 容器服务 ACK - 阿里云

[5] 应用复制分发:

应用复制分发 - 容器服务 ACK - 阿里云

[6] 应用分发差异化配置:

应用分发差异化配置 - 容器服务 ACK - 阿里云

[7] 应用集群间灰度分发:

应用集群间灰度分发 - 容器服务 ACK - 阿里云

[8] 分布式云容器平台 ACK One:

分布式云容器平台ACK One_多云容器管理_分布式云资源管理_云原生应用平台-阿里云

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英特尔On技术创新峰会:助力开发者解决当前和未来的挑战

第二届英特尔On技术创新峰会于2022年9月27日在美国加利福尼亚州圣何塞市开幕。在本届峰会上&#xff0c;英特尔向齐聚一堂的软硬件开发者们分享了在构建以开放、选择和信任为原则的生态系统方面的最新进展——从推动开放标准以使“芯片系统”&#xff08;systems of chips&…

你不知道的 HTTPS 压测

简介&#xff1a;随着互联网安全规范的普及&#xff0c;使用 HTTPS 技术进行通信加密&#xff0c;实现网站和 APP 的可信访问&#xff0c;已经成为公认的安全标准。本文将介绍针对 HTTPS 协议做压力测试的关注点&#xff0c;以及使用 PTS 做 HTTPS 压测的技术优势和最佳实践。 …

数据湖—Delta Lake

简介&#xff1a;Delta Lake 是 DataBricks 公司开源的、用于构建湖仓架构的存储框架。能够支持 Spark&#xff0c;Flink&#xff0c;Hive&#xff0c;PrestoDB&#xff0c;Trino 等查询/计算引擎。作为一个开放格式的存储层&#xff0c;它在提供了批流一体的同时&#xff0c;为…

2022杭州云栖大会定档11月3日至5日:技术产品发布+超4万平科技展

9月28日消息&#xff0c;记者从云栖大会组委会获悉&#xff0c;2022杭州云栖大会将于11月3日至5日在杭州云栖小镇举办。今年云栖大会以“计算进化未来”为主题&#xff0c;在3天内设置两场主论坛&#xff0c;70多场数字技术、产业和生态分论坛&#xff0c;以及4万平米智能科技全…

阿里云RemoteShuffleService 新功能:AQE 和流控

简介&#xff1a;阿里云EMR 自2020年推出 Remote Shuffle Service(RSS)以来&#xff0c;帮助了诸多客户解决 Spark 作业的性能、稳定性问题&#xff0c;并使得存算分离架构得以实施。为了更方便大家使用和扩展&#xff0c;RSS 在2022年初开源(https://github.com/alibaba/Remot…

如何使用Delta Lake构建批流一体数据仓库

简介&#xff1a;Delta Lake是一个开源存储层&#xff0c;它为数据湖带来了可靠性。Delta Lake提供了ACID事务、可扩展的元数据处理&#xff0c;并统一了流式处理和批处理数据处理。Delta-Lake运行在现有数据湖之上&#xff0c;并且与Apache Spark API完全兼容。希望本篇能让大…

中国峰会|下一代云基础架构,赋能企业云上发展

点击上方入口立即【自由构建 探索无限】一起共赴年度科技盛宴&#xff01;马上点击“阅读原文”了解更多亚马逊云科技中国峰会让我们共同见证亚马逊的一小步云计算的一大步扫码【立即报名】直通大咖云集的亚马逊云科技中国峰会&#xff01;

Delta Lake基础介绍(商业版)

简介&#xff1a;介绍 Lakehouse 搜索引擎的设计思想&#xff0c;探讨其如何使用缓存&#xff0c;辅助数据结构&#xff0c;存储格式&#xff0c;动态文件剪枝&#xff0c;以及 vectorized execution 达到优越的处理性能。 作者&#xff1a;李洁杏&#xff0c;Databrick资深软…

云原生数仓如何破解大规模集群的关联查询性能问题?

简介&#xff1a;AnalyticDB for PostgreSQL(以下简称ADB PG)是一款PB级的MPP架构云原生数据仓库。本文从ADB PG架构设计的角度出发&#xff0c;探讨Runtime Filter在ADB PG中的实现方案&#xff0c;并介绍了基于Bloom Filter的ADB PG Dynamic Join Filter功能技术细节。 作者 …

独家对话Python之父:人类大脑才是软件开发效率的天花板

【CSDN 编者按】十五年前&#xff0c;《程序员》杂志曾专访过 Python 之父 Guido van Rossum&#xff0c;一起探讨了 Python 3.0 的较为明显的新特性&#xff0c;即增加了对中文( Unicode )的支持。十五年过去&#xff0c;Python 的版本号只前进了一个数字&#xff0c;但是 Pyt…

淘系用户平台技术团队单元测试建设

简介&#xff1a;单元测试是工程交付前质量保障的第一环&#xff0c;也无疑是软件工程质量保障的重要基石&#xff0c;有效的单元测试能够提前发现90%以上的代码Bug问题&#xff0c;同时也能防止代码的腐化&#xff0c;在工程重构演进时起到至关重要的作用。 作者 | 问元 来源 …

阿里云弹性计算对视觉计算的思考与实践

简介&#xff1a;利用人类已有和将有的技术加之商业手段&#xff0c;实现对人类感官体验进行全方位升级。 4月21日&#xff0c;“2022英伟达数字孪生技术应用论坛”上&#xff0c;阿里云弹性计算产品专家张新涛为大家带来了题为《阿里云弹性计算在XR业务上的应用实践》的主题分…

游戏行业弹性计算最佳实践

简介&#xff1a;本篇主要介绍三大游戏场景&#xff1a;游戏服务、大数据运营、云游戏的架构特点&#xff0c;以及基于这些场景下的阿里云游戏行业计算基础设施选型与部署方案。 文丨寻野&#xff0c;阿里云弹性计算产品解决方案架构师 摘要&#xff1a;游戏一直以来是互联网…

三大特性,多个场景,Serverless 应用引擎 SAE 全面升级

简介&#xff1a;Serverless 应用引擎 SAE 凭借着天然技术优势&#xff0c;已经帮助成千上万家企业实现容器和微服务技术转型。近日&#xff0c;SAE不仅进一步提供了全套微服务能力&#xff0c;更为传统 Job 和 PHP 用户提供了全新的&#xff0c;更高效、更经济且可平滑迁移的解…

代码覆盖率在性能优化上的一种可行应用

简介&#xff1a;JavaScript 是前端应用主要语言&#xff0c;相较于其他平台编程语言&#xff0c;JS资源多数情况下要通过网络进行加载&#xff0c;那么代码的体积直接影响了页面加载执行时间。“无效的代码”的多寡直接影响到了我们的代码质量&#xff0c;所以度量代码的执行覆…

MaxCompute湖仓一体介绍

简介&#xff1a;本篇内容分享了MaxCompute湖仓一体介绍。 分享人&#xff1a;孟硕 阿里云 MaxCompute产品专家 视频链接&#xff1a;数据智能实战营-北京站 专题回顾 正文&#xff1a; 本篇内容将通过两个部分来介绍MaxCompute湖仓一体。 一、什么是 MaxCompute 湖仓一体…

云原生离线实时一体化数仓建设与实践

简介&#xff1a;本篇内容分享了云原生离线实时一体化数仓建设与实践。 分享人&#xff1a;刘一鸣 Hologres 产品经理 视频链接&#xff1a;数据智能实战营-北京站 专题回顾 正文&#xff1a; 本篇内容将通过五个部分来介绍云原生离线实时一体化数仓建设与实践。 一、离线实…

议题征集|Flink Forward Asia 2022 正式启动

在这数据量爆炸性增长的时代&#xff0c;开源软件如雨后春笋般出现在开发者的视野中&#xff0c;数据的价值被重新定义。同时&#xff0c;越来越多的企业开启实时化道路&#xff0c;数据的实时分析与计算需求与日俱增。作为主打流处理的计算引擎 Apache Flink 于 2014 年正式开…

龙蜥正式开源 SysOM:百万级实战经验打造,一站式运维管理平台 | 龙蜥技术

简介&#xff1a;SysOM集监控、告警、诊断、修复、安全能力于一体的操作系统运维平台。 文/系统运维 SIG 如果你被突如其来的 OOPS 和满屏奇怪的函数弄得满头问号&#xff1f;机器内存明明很大&#xff0c;却申请不出来内存&#xff1f;业务周期抖动&#xff0c;ping 命令偶尔…

微软在华商业应用战略全面升级,首次推出面向医疗和生命科学的云行业套件

2022年9月29日&#xff0c;微软宣布进一步升级在华商业应用战略&#xff0c;落地一系列智能商业应用&#xff08;Biz App&#xff09;功能的同时&#xff0c;以Dynamics 365和Power Platform为基础&#xff0c;进一步完善商业应用战略与价值定位&#xff0c;助力更多客户和合作…