2022年山东省职业院校技能大赛高职组云计算赛项试卷第二场-容器云

2022年山东省职业院校技能大赛高职组云计算赛项试卷

目录

【赛程名称】云计算赛项第二场-容器云

需要竞赛软件包以及资料可以私信博主!


【赛程名称】云计算赛项第场-容器云

【赛程时间】2022-11-27 09:00:00至2022-11-27 16:00:00

说明:完成本任务需要两台安装了CentOS7.9操作系统的云主机:master和node。Chinaskill_Cloud_PaaS.iso镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。

某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入CICD (Continuous Integration持续集成、Continuous Delivery持续交付) 成了公司的当务之急,研发团队决定搭建基于Kubernetes 的CICD环境,希望基于这个平台来实现DevOps的部分流程,来减轻开发、部署、运维的负担。

为了能够让公司开发的web应用系统产品能够基于服务器的性能、可靠性、高可用性与方便维护,研发部决定使用微服务架构,实现基于Kubernetes的容器化部署。

节点规划如表1所示。

表1容器云平台节点规划

节点角色

主机名

VCPUS

内存

硬盘

Master、Harbor、CICD

master

4

12G

100G

Worker Node

node

4

12G

100G

【任务1】容器云平台搭建[5分]

【适用平台】私有云

【题目1】平台部署--部署容器云平台[1分]

使用提供的用户名和密码,登录OpenStack私有云平台,当前租户下,已经存在两台云主机,使用CRT工具进行连接,使用kubeeasy工具完成Kubernetes 1.22.1集群的搭建。然后使用nginx镜像在default命名空间下创建一个名为exam的Pod,并为该Pod设置环境变量exam,其值为2022。(搭建kubernetes集群需要用到的iso镜像已经在master节点中)

完成后提交master节点的用户名、密码和IP到答题框。

【题目2】Pod管理--创建Pod[1分]

在default命名空间下使用nginx:latest镜像创建一个QoS类为Burstable的Pod,名称为qos-demo。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目3】平台部署--部署Istio服务网格[1分]

在Kubernetes集群上完成Istio服务网格环境的安装,在default命名空间下使用busybox镜像创建一个名为busybox的Pod,并手动为该Pod注入Sidecar。

完成后提交master节点的用户名、密码和IP到答题框。

【题目4】平台部署--部署KubeVirt虚拟化[0.5分]

在Kubernetes集群上完成KubeVirt虚拟化环境的安装。

完成后提交master节点的用户名、密码和IP到答题框。

【题目5】平台部署--部署Harbor仓库及Helm包管理工具[0.5分]

在master节点上完成Harbor镜像仓库及Helm包管理工具的部署。然后使用nginx镜像自定义一个Chart,Deployment名称为nginx,副本数为1,然后将该Chart部署到default命名空间下,Release名称为web。

完成后提交master节点的用户名、密码和IP到答题框。

【题目6】集群管理--备份ETCD数据[1分]

Kubernetes使用ETCD来存储集群的实时运行数据,为防止服务器宕机导致Kubernetes集群数据丢失,请将Kubernetes集群数据备份到/root/etcd.db中。

完成后提交master节点的IP地址、用户名和密码到答题框。

【任务2】容器化应用搭建:Docker Compose编排部署[7分]

【适用平台】私有云

【题目1】容器化Memcached服务[1分]

在master节点/root/DjangoBlog目录下编写Dockerfile-memcached文件构建blog-memcached:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)完成memcached服务的安装;

(3)声明端口:11211;

(4)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目2】容器化Mariadb服务[1.5分]

在master节点/root/DjangoBlog目录下编写Dockerfile-mariadb文件构建blog-mysql:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)安装MariaDB服务并设置root用户的密码为root;

(3)创建数据库djangoblog并将sqlfile.sql导入该数据库;

(4)声明端口:3306;

(5)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目3】容器化前端服务[1分]

在master节点/root/DjangoBlog目录下编写Dockerfile-nginx文件构建blog-nginx:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)安装nginx服务;

(3)使用提供的nginx.conf作为默认的配置文件;

(3)声明端口:80;

(4)设置服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目4】容器化Blog服务[1.5分]

在master节点/root/DjangoBlog目录下编写Dockerfile-blog文件构建blog-service:v1.0镜像,具体要求如下:(需要用到的软件包:Django.tar.gz)

(1)基础镜像:centos:7.9.2009;

(2)安装Python3.6环境;

(3)使用pip3工具离线安装requirements.txt中的软件包;

(4)安装DjangoBlog服务;

(5)声明端口:8000;

(6)设置DjangoBlog服务开机自启。

完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。

【题目5】编排部署博客系统[2分]

在master节点/root/DjangoBlog目录下编写docker-compose.yaml文件,具体要求如下:

(1)容器1名称:blog-memcached;镜像:blog-memcached:v1.0;端口映射:11211:11211;

(2)容器2名称:blog-mysql;镜像:blog-mysql:v1.0;端口映射:3306:3306;

(3)容器3名称:blog-nginx;镜像:blog-nginx:v1.0;端口映射:80:8888;

(4)容器4名称:blog-service;镜像:blog-service:v1.0;端口映射:8000:8000。

完成后编排部署该博客系统,并提交master节点的用户名、密码和IP地址到答题框。

【任务3】容器云应用部署:基于Kubernetes构建CICD[8分]

该公司决定采用GitLab +Jenkins来构建CICD环境,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成GitLab + Jenkins + Kubernetes的CICD环境部署(构建持续集成所需要的所有软件包在软件包BlueOcean.tar.gz中)。CICD应用系统架构如下:

【适用平台】私有云

【题目1】安装Jenkins环境[1.5分]

使用镜像jenkins/Jenkins:latest在Kubernetes集群devops命名空间下完成Jenkins的部署,Deployment和Service名称均为jenkins,要求以NodePort方式将Jenkins的8080端口对外暴露为30880,并使用提供的软件包完成Blue Ocean等离线插件的安装。部署完成后设置Jenkins用户名为jenkins;密码为000000,并在授权策略中配置“任何用户可以做任何事(没有任何限制)”。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【题目2】安装GitLab环境[1.5分]

使用镜像gitlab/gitlab-ce:latest在Kubernetes集群devops命名空间下完成GitLab的部署,Deployment和Service名称均为gitlab,设置GitLab的root用户密码为admin@123,并以NodePort方式将GitLab的80端口对外暴露为30888。部署完成后新建公开项目springcloud,并将springcloud文件夹中的代码上传到该项目。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【题目3】配置Jenkins连接GitLab[1分]

在GitLab中生成名为jenkins的“Access Tokens”,在Jenkins中配置GitLab凭据并测试其连通性。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【题目4】构建CI/CD[4分]

在Jenkins中新建流水线任务springcloud,流水线选择“Pipeline script from SCM”。在springcloud项目中新建Jenkinsfile脚本文件,编写声明式Pipeline,要求完成构建maven项目,然后构建Docker镜像并推送到Harbor仓库的springcloud项目,并基于新构建的镜像完成config和gateway服务自动发布到Kubernetes集群springcloud命名空间下。最后配置Webhook触发构建。

完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径http://<IP>/BlueOcean.tar.gz)

【任务4】容器云服务运维:Kubernetes基于容器的运维[10分]

【适用平台】私有云

【题目1】安全管理--配置Pod安全上下文[0.5分]

使用busybox镜像启动一个名为context-demo的Pod,为该Pod配置安全上下文,要求容器内以用户1000和用户组3000来运行所有进程,并在启动时执行“sleep 1h”命令。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目2】CRD管理--创建自定义资源类型[0.5分]

在Kubernetes集群中自定义一种资源类型Student,API为stable.example.com/v1,单数形式为student,复数形式为students,简写为stu,作用域为命名空间级,然后在default命名空间下创建一个名为exam的Student对象。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目3】HPA管理--创建HPA规则[0.5分]

默认情况下HPA是无法调整伸缩灵敏度的,但不同的业务场景对伸缩灵敏度的要求不一样。要求在default命名空间下使用nginx镜像创建一个名为web的deployment,自定义HPA的伸缩灵敏度,为该deployment创建一个名为web的HPA,扩容时立即新增当前9倍数量的副本数,时间窗口为5s,伸缩范围为1--1000。例如一开始只有1个Pod,当CPU使用率超过80%时,Pod数量变化趋势为:1 → 10 → 100 → 1000。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目4】节点亲和性管理--创建软限制规则的Pod[1分]

在default命名空间下使用nginx镜像运行一个Pod,名称为nginx,要求使用preferredDuringSchedulinglgnoredDuringExecution策略将Pod调度到具有"disktype=ssd"标签的节点。

完成后提交master节点的用户名、密码和IP到答题框。

【题目5】驱逐机制管理--配置节点压力驱逐[0.5分]

设置kubelet数据存储在/apps/data/kubelet目录下,并设置当kubelet的存储空间不足5%,或者当容器运行时文件系统可用存储空间不足5%时开始驱逐Pod。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目6】LimitRange管理--配置内存默认值[0.5分]

创建命名空间default-mem-example,在master节点/root目录下编写YAML文件,具体要求如下:

(1)LimitRange名称:mem-limit-range;

(2)命名空间:default-mem-example;

(3)设置容器默认分配256M的内存请求和512M的内存上限。

完成后使用该YAML文件创建LimitRange,并提交master节点的用户名、密码和IP到答题框。

【题目7】RBAC管理--创建角色并绑定[1分]

创建一个名为deployment-clusterrole的clusterrole,并且对该clusterrole只绑定对Deployment、Daemonset、Statefulset的创建权限。在指定命名空间exam创建一个名为exam-user的serviceaccount,并且将上一步创建clusterrole和该serviceaccount绑定。

完成后提交master节点的用户名、密码和IP地址到答题框。

【题目8】存储卷管理--Pod时间同步[1分]

容器默认的时区采用的是UTC时区,而宿主机采用的是CST时区。使用nginx:latest镜像在default命名空间下创建一个名为exam的Pod,要求Pod时区与宿主机时区同步。

完成后提交master节点的IP、用户名和密码到答题框。

【题目9】流量管理--创建Ingress Gateway[0.5分]

使用提供的软件包ServiceMesh.tar.gz将Bookinfo应用部署到default命名空间下,使用Istio Gateway可以实现应用程序从外部访问,请为Bookinfo应用创建一个名为bookinfo-gateway的网关,指定所有HTTP流量通过80端口流入网格,然后将网关绑定到虚拟服务bookinfo上。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目10】服务网格--创建默认目标规则[1分]

为Bookinfo应用的四个微服务设置默认目标规则,名称分别为productpage、reviews、ratings和details。定义好可用的版本,productpage服务可用的版本为v1,reviews服务可用的版本为v1、v2、v3,ratings服务可用的版本为v1、v2,details服务可用的版本为v1、v2。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目11】服务网格--创建基于用户身份的路由[0.5分]

创建一个名为reviews路由,要求来自名为Jason的用户的所有流量将被路由到服务reviews:v2。

完成后提交master节点的用户名、密码和IP到答题框。

【题目12】VM管理--创建VM[0.5分]

使用镜像fedora-virt:v1.0在default命名空间下创建一台vm,名称为vm-fedora,内存为1G。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目13】存储与卷--创建emptyDisk卷[1分]

使用镜像fedora-virt:v1.0在default命名空间下创建一台vmi,名称为vmi-fedora,并使用emptyDisk卷为vmi挂载一块2G的磁盘。

完成后提交master节点的IP地址、用户名和密码到答题框。

【题目14】KubeVirt运维--创建VMI[1分]

将提供的镜像exam.qcow2转换为docker镜像exam:v1.0,然后使用镜像exam:v1.0镜像在default命名空间下创建一台vmi,名称为exam,将虚拟机的80端口以NodePort的方式对外暴露为30082,并使用数据源在启动时将VM的主机名初始化为exam。

完成后提交master节点的IP地址、用户名和密码到答题框。

【任务5】容器云运维开发Kubernetes APIs运维开发[10分]

【适用平台】私有云

【题目1】Kubernetes Python运维脚本开发:使用Restful API方式管理service服务[3分]

在提供的OpenStack私有云平台上,使用k8s-python-dev镜像创建1台云主机,云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默认账号密码为“root/1DaoYun@2022”。

使用python request库和Kubernetes Restful APIs,在/root目录下,创建api_manager_service.py文件,要求编写python代码,代码实现以下任务:

(1)首先查询查询服务service,如果service名称“nginx-svc”已经存在,先删除。

(2)如果不存在“nginx-svc”,使用service.yaml文件创建服务。

(3)创建完成后,查询该服务的信息,查询的body部分以json格式的文件输出到当前目录下的service_api_dev.json文件中。

(4)然后使用service_update.yaml更新服务端口。

(5)完成更新后,查询该服务的信息,信息通过控制台输出,并通过json格式追加到service_api_dev.json文件后。

编写完成后,提交该云主机的用户名、密码和IP地址到答题框。

【题目2】Python运维开发:基于Kubernetes Python SDK方式管理deployment服务[3分]

在提供的OpenStack私有云平台上,使用“k8s-python-dev”镜像创建1台云主机,云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默认账号密码为“root/1DaoYun@2022”。使用Kubernetes python SDK的“kubernetes”Python库,在/root目录下,创建sdk_manager_deployment.py文件,要求编写python代码,代码实现以下任务:

(1)首先使用nginx-deployment.yaml文件创建deployment资源。

(2)创建完成后,查询该服务的信息,查询的body部分通过控制台输出,并以json格式的文件输出到当前目录下的deployment_sdk_dev.json文件中。

编写完成后,提交该云主机的用户名、密码和IP地址到答题框。

【题目3】Python运维开发:Pod资源的Restful APIs HTTP服务封装[2分]

编写Python程序实现Pod资源管理程序,将Pod资源管理的封装成Web服务。

在/root目录下创建pod_server.py程序,实现Pod的增删查改等Web访问操作。http.server的host为localhost,端口8889;程序内部实现Kubernetes认证。

提示说明:Python标准库http.server模块,提供了HTTP Server请求封装。

需要实现的Restful API接口如下:

GET /pod/{name} ,查询指定名称{name}的Pod;Response的Body以json格式输出。

POST /pod/{yamlfilename} 创建yaml文件名称为{yamlfilename}的Pod;Response的Body以json格式。

编码完成后,“手工下载”文件服务器主目录所有*.yaml文件到root目录下,“手动执行”所编写pod_server.py程序,提交答案进行检测。

【题目4】Python运维开发:Service资源Restful APIs HTTP服务封装[2分]

编写Python程序实现Service资源管理程序,将Service资源管理的封装成Web服务。

在/root目录下创建service_server.py程序,实现Service的增删查改等Web访问操作。http.server的host为localhost,端口8888;程序内部实现Kubernetes认证。

提示说明:Python标准库http.server模块,提供了HTTP Server请求封装。

需要实现的Restful API接口如下:

GET /services/{name},查询指定名称{name}的Service;Response的Body以json格式输出。

POST /services/{yamlfilename} 创建yaml文件名称为{yamlfilename}的Service;Response的Body以json格式,(手工将文件服务器主目录所有*.yaml文件下载到root目录下)。

DELETE /services/{name};删除指定名称的Service;Response的Body以json格式。

编码完成后,自己手动执行提供Web HTTP服务的service_server.py程序,提交答案进行检测。

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

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

相关文章

【流复制环境PostgreSQL-14.1到PostgreSQL-16.1大版本升级】

PostgreSQL大版本会定期添加新特性&#xff0c;这些新特性通常会改变系统表的布局&#xff0c;但内部数据存储格式很少改变。pg_upgrade通过创建新的系统表和重用旧的用户数据文件来执行快速升级。 pg_upgrade升级主要有三种用法&#xff1a; 1、使用pg_upgrade拷贝升级。 2、…

【工具】windeployqt 在windows + vscode环境下打包

目录 0.背景简介 1.windeployqt简介 2.打包具体过程 1&#xff09;用vscode编译&#xff0c;生成Release文件夹&#xff08;也有Debug文件夹&#xff0c;但是发布版本一般都是用Release&#xff09; 2&#xff09;此时可以看下Release文件夹内&#xff0c;一般是.exe可执行…

【学习笔记】Java函数式编程03 Stream流-终结操作

书接上回 3.3.3 终结操作 3.3.3.1 forEach 对集合的每一个元素进行处理 接触很多了不赘述 3.3.3.2 count 用来获取当前流中的元素的个数 比如&#xff0c;打印出所有作家的作品的总数 System.out.println(authors.stream().flatMap(author -> author.getBooks().stre…

Linux安装Python3.12.0

我们这里按照最新的Python3.12.0为示例 下载源文件。 wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz解压。 tar -zxvf Python-3.12.0.tgz进入文件夹。 cd Python-3.12.0指定安装目录。 ./configure --prefix/usr/local/python3.12/编译&#xff0c;把…

文献研读|Prompt窃取与保护综述

本文介绍与「Prompt窃取与保护」相关的几篇工作。 目录 1. Prompt Stealing Attacks Against Text-to-Image Generation Models&#xff08;PromptStealer&#xff09;2. Hard Prompts Made Easy: Gradient-Based Discrete Optimization for Prompt Tuning and Discovery&#…

汽车零配件装配产线中使用RFID技术和不使用RFID技术的优缺点

汽车零配件装配产线中使用RFID技术和不使用RFID技术的优缺点 RFID(射频识别技术)是非接触式自动识别技术&#xff0c;经常被使用于工业制造、物流管理、仓储物品盘点等领域。我们聊一聊在汽车零配件装配产线中使用和不使用RFID技术的优缺点 在汽车零配件装配线使用RFID技术可以…

Java解决数组的度问题

Java解决数组的度问题 01 题目 给定一个非空且只包含非负数的整数数组 nums&#xff0c;数组的 度 的定义是指数组里任一元素出现频数的最大值。 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组&#xff0c;返回其长度。 示例 1&#xff1a; 输入&…

.NetCore NPOI 读取excel内容及单元格内图片

由于数据方提供的数据在excel文件中不止有文字内容还包含图片信息&#xff0c;于是编写相关测试代码&#xff0c;读取excel文件内容及图片信息. 本文使用的是 NPOI-2.6.2 版本&#xff0c;此版本持.Net4.7.2;.NetStandard2.0;.NetStandard2.1;.Net6.0。 测试文档内容&#xf…

[足式机器人]Part4 南科大高等机器人控制课 CH11 Bascis of Optimization

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 课程链接 &#xff1a; https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/ 南科大高等机器人控制课 Ch11 Bascis o…

前端axios与python库requests的区别

当涉及到发送HTTP请求时&#xff0c;Axios和Python中的requests库都是常用的工具。下面是它们的详细说明&#xff1a; Axios&#xff1a; Axios是一个基于Promise的HTTP客户端&#xff0c;主要用于浏览器和Node.js环境中发送HTTP请求。以下是Axios的一些特点和用法&#xff1…

Python获取指定文件夹中的所有文件名脚本

1.获取指定文件夹中的所有文件名 要获取指定文件夹中的所有文件名&#xff0c;您可以使用 os.listdir 函数来列出文件夹中的所有文件和文件夹&#xff0c;然后使用 os.path.isfile 函数来过滤出仅为文件的项。示例代码&#xff1a; import osdef get_file_names(folder_path)…

linux 中 ext2文件系统实现

ext2文件系统结构 图片的svg下载链接&#xff08;图中关于buffer的部分&#xff0c;上下两部分是重复的&#xff0c;是从不同维度下看的buffer结构&#xff09; linux内核本身不提供ext2文件系统的格式化功能&#xff0c;可以参考busybox中对mkfs.ext2的实现&#xff08;mkfs.…

sheng的学习笔记-【中】【吴恩达课后测验】Course 4 -卷积神经网络 - 第二周测验

课程4_第2周_测验题 目录 第一题 1.在典型的卷积神经网络中&#xff0c;随着网络的深度增加&#xff0c;你能看到的现象是&#xff1f; A. 【  】 n H n_H nH​和 n W n_W nW​增加&#xff0c;同时 n C n_C nC​减少 B. 【  】 n H n_H nH​和 n W n_W nW​减少&#x…

【论文笔记】Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks

论文地址&#xff1a;Run, Dont Walk: Chasing Higher FLOPS for Faster Neural Networks 代码地址&#xff1a;https://github.com/jierunchen/fasternet 该论文主要提出了PConv&#xff0c;通过优化FLOPS提出了快速推理模型FasterNet。 在设计神经网络结构的时候&#xff…

性能优化,让用户体验更加完美(渲染层面)

前言 上一篇我们已经围绕“网络层面”探索页面性能优化的方案&#xff0c;接下来本篇围绕“浏览器渲染层面”继续开展探索。正文开始前&#xff0c;我们思考如下问题&#xff1a; 浏览器渲染页面会经过哪几个关键环节&#xff1f;“渲染层面”的优化从哪几方面着手&#xff1f…

初试Kafka

Kafka 是一个分布式流处理平台&#xff0c;通常用作消息中间件&#xff0c;它可以处理大规模的实时数据流。以下是从零开始使用 Kafka 作为消息中间件的基本教程&#xff1a; 步骤 1: 下载和安装 Kafka 访问 Apache Kafka 官方网站&#xff1a;Apache Kafka下载最新的 Kafka …

【Redis】一文掌握Redis原理及常见问题

Redis是基于内存数据库&#xff0c;操作效率高&#xff0c;提供丰富的数据结构&#xff08;Redis底层对数据结构还做了优化&#xff09;&#xff0c;可用作数据库&#xff0c;缓存&#xff0c;消息中间件等。如今广泛用于互联网大厂&#xff0c;面试必考点之一&#xff0c;本文…

2022年山东省职业院校技能大赛高职组云计算赛项试卷第三场-公有云

2022年山东省职业院校技能大赛高职组云计算赛项试卷 目录 2022年职业院校技能大赛高职组云计算赛项试卷 【赛程名称】云计算赛项第三场-公有云 【任务1】公有云服务搭建[10分] 【适用平台】华为云 【题目1】私有网络管理[0.5分] 【题目2】云实例管理[0.5分] 【题目3】数…

什么是 MVVM?

Model–View–ViewModel &#xff08;MVVM&#xff09; 是一个软件架构设计模式&#xff0c;由微软 WPF 和 Silverlight 的架构师 Ken Cooper 和 Ted Peters 开发&#xff0c;是一种简化用户界面的事件驱动编程方式。 由 John Gossman&#xff08;同样也是 WPF 和 Silverlight…

.NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布

作者&#xff1a; Jon Galloway - Principal Program Manager, .NET Community Team Mehul Harry - Product Marketing Manager, .NET, Azure Marketing 排版&#xff1a;Alan Wang .NET Conf 2023 是有史以来规模最大的 .NET 会议&#xff0c;来自全球各地的演讲者进行了 100 …