场景体验报告——冬季实战营第四期

简介: 第四期着重练习了容器技术,容器可以理解为一个装应用软件的箱子,箱子里面有软件运行所需的依赖库和配置,开发人员可以把这个箱子搬到任何机器上,无需因为更换了机器而重新进行复杂的配置,就可以顺利将这个箱子中的软件跑起来。

阿里云容器服务Kubernetes版快速入门


本场景将在ACK集群中快速部署一个魔方游戏,并可以公网访问。

一、部署并公开应用

  1. 在容器服务控制台,选择一个目标集群,在“工作负载”-“无状态”中,使用镜像创建应用。

1.png

  1. 创建完成后,可以查看应用详情。

2.png

二、访问应用

  1. 在管理控制台的目标集群中,点击“网路”-“服务”,查看刚刚创建的服务的外部端点给出的ip地址。
  2. 在任何时间任何地点,访问这个ip地址,就可以玩魔方了。

Docker镜像管理快速入门


一、搭建Docker服务

具体操作有:安装Docker服务、配置DockerHub镜像加速器、启动Docker服务。

二、准备应用代码和Dockerfile

本步骤操作将在工作空间下创建一个基于Golang的HelloWorld代码文件和一个用来构建运行Hello代码所需环境镜像的Dockerfile文件。

  1. 创建工作空间

mkdir -p /tmp/demo && cd /tmp/demo

  1. 在工作空间下创建HelloWorld代码文件,用来在容器环境中监听HTTP服务,输出HelloWorld字符串。

cat > /tmp/demo/main.go << EOFpackage main

import (     "fmt"     "net/http")

func main() {     http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {             fmt.Fprintf(w, "Hello! World\n")     })

fmt.Println("start to serve...")

http.ListenAndServe(":80", nil)

}EOF

  1. 在工作空间下创建Dockerfile文件。

cat > /tmp/demo/Dockerfile << EOF

FROM golang:1.12-alpine

# change current working dir

WORKDIR /go/src/app

# copy main.go into /go/src/app

COPY . .

# go build and install the app

RUN go install -v ./...

# run the app by default

CMD ["app"]

EOF

三、本地构建镜像并运行镜像

  1. 使用docker build命令构建镜像。

docker build . -t demo:v1

  1. 使用docker run命令运行镜像。

docker run -d -p 8000:80 demo:v1

  1. 使用curl工具访问容器中的HelloWorld服务。

curl localhost:8000

Chaos带你快速上手混沌工程


一、创建应用

  1. 在容器服务控制台中,选择一个集群,在“工作负载”-“无状态”中,使用YAML完成创建。
  2. 创建完成后,在“无状态”中找到frontend,访问其外部端点IP地址,即可进入应用。

二、安装探针

  1. 在容器服务控制台,进入“应用市场”。
  2. 找到ack-ahas-pilot,一键部署到集群中。

三、通过架构感知查看系统整体架构

  1. 在应用高可用服务控制台,点击架构感知,选择Kubernetes监控视图,即可看到视图。

四、自动恢复场景演练

在分布式系统设计中有一种容错策略是故障恢复(failback),通过健康检查等机制,能在机器或者应用出现问题时自动的进行重新部署。我们利用Chaos进行故障演练,测试我们的系统是否具有这样的能力。

五、强弱依赖场景演练

在微服务架构中,各个服务之间存在许多依赖关系。但是当一个不重要的弱依赖宕机时,一个健壮的系统应该仍然能够正常的运行。我们利用Chaos进行故障演练,测试我们的系统处理强弱依赖的能力如何。

六、失败重试场景演练

在微服务架构中,一个大系统被拆分成多个小服务,小服务之间存在大量RPC调用,经常可能因为网络抖动等原因导致RPC调用失败,这时候使用重试机制可以提高请求的最终成功率,减少故障影响,让系统运行更稳定。我们通过利用Chaos,给系统注入失败,看看系统失败重试的性能如何。

七、微服务演练

上述三个场景演练手动部署参数的过程是比较繁琐的。接下来我们体验一下更为方便快捷的强弱依赖治理。

  1. 在高可用服务控制台,单击微服务演练,选择强弱依赖治理,并创建治理方案。
  2. 治理应用选择frontend
  3. 依赖预判中,自行选择依赖对象的强弱依赖预判,例如nacos-standalone和checkoutservice的强弱依赖预判可选择强依赖,其他依赖对象默认弱依赖。
  4. 在依赖验证中,选择任意用例进行验证。例如选择frontend与nacos-standalone强弱依赖验证用例,单击去验证
  5. 去验证前的参数确认对话框中,单击确定验证
  6. 在演练详情页面中,单击演练
  7. 切换至Hipster Shop页面,单击网页的任意功能。您可以发现Hipster Shop网页和相关功能均可以正常访问,说明frontend服务与nacos-standalone服务是弱依赖关系。
  8. 切换至应用高可用服务控制台,在演练记录详情页面,单击终止
  9. 结果反馈对话框中,结论选择不符合预期验证结果选择弱依赖,单击确定,返回强弱依赖治理
  10. 在依赖验证中,可以验证其他用例,验证完成后,单击方案归档
  11. 返回如下页面,表示归档完毕。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
缓存 安全 Nacos
nacos常见问题之Nacos报错权限认证失败如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
存储 Kubernetes 安全
|
Windows
Windows 技术篇-文件管理器访问ftp服务失败,提示:“打开FTP服务器上的文件夹是发生错误,请检查是否有权限访问该文件夹。”问题解决方法
Windows 技术篇-文件管理器访问ftp服务失败,提示:“打开FTP服务器上的文件夹是发生错误,请检查是否有权限访问该文件夹。”问题解决方法
3397 0
Windows 技术篇-文件管理器访问ftp服务失败,提示:“打开FTP服务器上的文件夹是发生错误,请检查是否有权限访问该文件夹。”问题解决方法
|
10月前
|
数据可视化 项目管理 调度
多任务处理方法:6大项目管理工具
项目管理中,合理选择工具至关重要。本文介绍了六种常用工具:SWOT分析、任务分解(WBS)、甘特图、二八原则、看板法和6W2H法,每种工具都有助于项目不同阶段的有效管理。
399 3
多任务处理方法:6大项目管理工具
|
11月前
|
运维 JavaScript jenkins
鸿蒙5.0版开发:分析CppCrash(进程崩溃)
在HarmonyOS 5.0中,CppCrash指C/C++运行时崩溃,常见原因包括空指针、数组越界等。系统提供基于posix信号机制的异常检测能力,生成详细日志辅助定位。本文详解CppCrash分析方法,涵盖异常检测、问题定位思路及案例分析。
415 4
|
JavaScript 前端开发
Vue3里如何上传图片以及图片回显
Vue3里如何上传图片以及图片回显
493 0
|
Web App开发 JavaScript 安全
Vue状态管理库Pinia详解
Pinia 是一款专为 Vue 设计的状态管理库,它提供了一套简洁且直观的 API,旨在简化状态管理流程。Pinia 的设计理念强调简单性和易用性,相较于 Vuex,它摒弃了许多复杂的概念如 mutations 和模块的深层嵌套结构,转而提供一种更现代化且与 Vue 3 Composition API 高度兼容的状态管理模式。
318 0
|
自然语言处理 开发者
《黑神话:悟空》的剧情脚本与对话系统设计
【8月更文第26天】在《黑神话:悟空》这款游戏中,引人入胜的故事情节和丰富多样的对话系统是吸引玩家的关键因素之一。本文将详细介绍游戏剧情脚本的编写过程以及交互式对话系统的实现技术。
617 0
分布式锁设计问题之节点A向节点C发起对R1的加锁请求如何解决
分布式锁设计问题之节点A向节点C发起对R1的加锁请求如何解决
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka集成的深度指南
Spring Boot与Apache Kafka集成的深度指南