示例介绍|学习笔记

简介: 快速学习示例介绍

开发者学堂课程【ALPD 云架构师系列-云原生 DevOps36计示例介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/82/detail/1266


示例介绍

 

内容介绍:

一、示例介绍

二、示例结构

三、课后作业

四、小结

 

一、示例介绍

简单介绍一个示例图片283.png

 

前段时间花了蛮多的精力的,要写一个有很多服务的,并且有依赖的,能够帮助大家去了解概念,还需要简单易懂的示例。所以在综合各种情况下,写的这样一个示例。
这个服务考虑过换好几个版本,也有好几个想法,最后呈现的实际上是这样的一个东西。

这个服务非常简单。首先它是一个 SSH 的服务,
有个  SSH  入口,然后客户端连到 SSH 的服务商,首先会做鉴权,是由鉴权服务提供的。

鉴权成功之后,客户端可以向这个 SSH 服务发送一些请求,比如查个天气、查一下IP归属地这样的信息。查询之后就会有一个查询机器人的服务,这个服务会调一些外部服务帮我查询。

大家可能发现这里面其实是一个很简单的,完全可以在一个应用里把它都做掉。为什么要拆这么细,首先会发现在现实情况上,比如说一个应用很快的发展,就会变得非常大,如果放在一个应用里面,再拆是很难拆的。本来就需要去做各种优化,所以就有一种诉求,而且在这里加一种鉴定鉴权的类型,或者鉴权方式之后会变得很简单。可以独立发,然后另外就是我们希望大家知道这些服务之间是有依赖的。有外部依赖的情况,比较像现实中的很多研发场景,怎么去解决这种方式场景,怎么去解决比较小的微服务应用的各种交付问题,就是我们接下来会有讨论的一些点。其实就是希望利用模拟一个简单、复杂的场景。但又不是说让你有很大的理解的负担。

图片282.png这是做了一个单独的假设,因为10.105这个地址是我本地的kis的具体值,部署上去之后可以连到它这里去做一个认证。用户名密码也选的pass,之后在这个上面可以去搜一下my IP,可以查IP的归属地、查询天气。这样的话,就实现了助手的功能,是一个很简单的助手。

可能当时觉得前段写的太烂了,以 ssh 的方式会比较简单。其中,这里面有四个应用的仓库。首先就是alpd-bot。里面基本上就是用户名和密码;第二个是 query 服务。

以上两个服务都是 GRBC 的服务,会为 SSH 服务所调用的。第三个是入口 demo服务,即 ssh服务端,会调用上述提及的两个服务;第四个是 protos ,是接口的 IDL 描述。

拉代码为什么编译失败了?因为从model就没拉起来。为什么 model 里面放了protos ,因为 protos 定义了整个接口描述,因此每一个应用都依赖 protos 。这就是目前的一个方法。大家可能会遇到为什么拉不下来,这时要加一个更高的 connection 的参数。


二、示例结果

图片281.png

示例结果 

看一下整个目录结构,首先会有多个 file 去描述镜像是怎么回事,我们是怎样构建的;第二个是 makfile ,所有的应用里都有 makefile ,里面都具有 build 的 test的,一个用来做构建,一个做测试。构建的话就会调到 build 去做构建,然后 README 是做一个工程说明,这过程中是什么,包含了什么东西、怎么构建、怎么开发。 deployment .yml 是为本地k8s做部署用的。

另一个 yml 是为云效 K8S 部署,在云效 K8S 上做部署的时候,因为可能涉及到一些变量,这东西我们会通过jpg文件去描述;protos 的目录,就是刚刚说的,其实是一个some model,是接口的定义。包含两个 protos 文件。整个示例其实是有三个应用加一个 protos 定义,包含了三种语言,一个 goland,一个 Python等。我们特意把它弄得这么复杂,而不是不用一个语言来去实现。

三、课后作业

https://code.aliyun.com/groups/alpd-demo获取所有应用的代码

参照应用的README,在本地构建出alpd-bot-auth、 alpd-bot-query、alpd-bot-ssh三个应用的容器镜像

在本地将三个应用容器运行起来

在本地k8s集群中将三个应用部署起来


四、小结

今天讲的一些东西,对一些专家来说是比较浅显对的,全都是概念。但是魔鬼总是藏在细节里的。经常做这些工程上的事情,很多事情说出来是对的。但是具体去落地的时候总是有各种各样的问题。

图片280.png

比如说配置怎么发布,很多时候并不给你发代码,发的是配置,配置改了怎么办、怎么发,可能还有回滚。

还会经常听到,测试环境不够,没有环境就测不了。第三个就是存在依赖,跟另外人要联调,要等他发了我才能发,不然我发不了;还有就测不完,因为发布的东西太多了,测试用例太多了,即便自动化来不及;还有就是本地跑不起来,或者说我只能跑起我自己,而依赖的跑不起来。

环境不够,8g、16g也跑不动等,各种各样的很细节的问题,才是在做工程的时候可能会真实遇到的情况。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6月前
|
搜索推荐 API 开发工具
百宝箱开放平台 ✖️ Python SDK
百宝箱提供Python SDK,支持开发者集成其开放能力。需先发布应用,安装Python 3.6+环境后,通过pip安装tboxsdk,即可调用对话型、生成型智能体及文件上传等功能。
877 87
百宝箱开放平台 ✖️  Python SDK
|
10月前
|
机器学习/深度学习 自然语言处理 测试技术
魔搭社区模型速递(5.25-6.1)
魔搭ModelScope本期社区进展:📟1636个模型,📁663个数据集,🎨147个创新应用,📄 6 篇内容
479 0
魔搭社区模型速递(5.25-6.1)
|
监控 安全 网络协议
计算机端口:网络通信的桥梁
计算机端口是网络通信的逻辑通道,支持数据传输和服务识别。本文介绍端口定义、分类(知名、注册、动态端口)、作用及管理方法,涵盖常用知名端口如HTTP(80)、HTTPS(443)等,并强调端口安全配置的重要性,帮助读者全面理解这一关键组件。
1371 6
|
数据采集 缓存 前端开发
服务器端渲染(SSR)
服务器端渲染(SSR)
|
存储 项目管理 文件存储
利用LabVIEW项目管理和组织LabVIEW应用程序
利用LabVIEW项目管理和组织LabVIEW应用程序
268 4
|
存储 人工智能 测试技术
[译][AI OpenAI-doc] 批处理 API
了解如何使用 OpenAI 的批处理 API 发送异步请求组,其成本降低 50%,具有一个独立的更高速率限制池,并提供明确的 24 小时完成时间。该服务非常适合处理不需要即时响应的作业。您也可以直接在这里查看 API 参考。
|
敏捷开发 BI 测试技术
阿里云云效产品使用合集之如何获取项目代码量数据
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
存储 缓存 小程序
【小程序开发必备】微信小程序常用API全介绍,附示例代码和使用场景
本篇博文介绍了微信小程序常用API,包括网络请求、数据缓存、交互反馈、设备、媒体、界面、开放接口等方面。每个API都附有详细的介绍和示例代码,以及使用场景。这些API可以帮助小程序开发者快速实现各种功能和交互效果,是小程序开发的必备工具。无论是初学者还是有一定经验的开发者,都能从本篇博文中学到很多实用的技巧和知识。
1693 0
|
设计模式 供应链 前端开发
面向对象分析与设计_类图
面向对象分析与设计_类图
1099 0

热门文章

最新文章