容器服务slack运维机器人

简介: ## 初识slack 几年前开始创业,组建团队的第一天,我们首先讨论和考虑的不是高屋建瓴的业务场景和目标,而是整个团队的协同和沟通的问题。选择使用什么作为团队的IM,选择什么作为BUG的记录,选择什么作为需求的跟踪,这些基础设施的存在无形中提高了整个团队的生产力,保证了协作的顺畅和流程。由于团队的成员有些是外国人,而在国外GEEK圈中风光无限的SLACK也就顺理成章的被老外们安利到了团队中。

初识slack

几年前开始创业,组建团队的第一天,我们首先讨论和考虑的不是高屋建瓴的业务场景和目标,而是整个团队的协同和沟通的问题。选择使用什么作为团队的IM,选择什么作为BUG的记录,选择什么作为需求的跟踪,这些基础设施的存在无形中提高了整个团队的生产力,保证了协作的顺畅和流程。由于团队的成员有些是外国人,而在国外GEEK圈中风光无限的SLACK也就顺理成章的被老外们安利到了团队中。

那么slack是个什么东西呢。

    Slack 是聊天群组 + 大规模工具集成 + 文件整合 + 统一搜索。截至2014年底,Slack 已经整合了电子邮件、短信、Google Drives、Twitter、Trello、Asana、GitHub 等 65 种工具和服务,把可以把各种碎片化的企业沟通和协作集中到一起。

slack不仅仅是一个聊天的IM工具,在团队中的他的职责更多是工具集成,slack支持非常丰富的系统集成。
20150930185234_34720.png
你可以在slack中看到在github中的代码提交记录,可以修复jira中的需求issue,可以触发jenkins中的单元测试,甚至可以直接部署远程服务器的代码。

虽然后来离开了团队,但是slack的使用习惯还是保持到了现在。关于slack的workflow,大家可以参考这篇文章

关于触发器

容器服务作为阿里云的CaaS层的产品,与传统的PaaS产品不同,容器服务更多的侧重在提供容器集群的管理能力以及与三方系统的集成能力。对于三方集成,最常见的一种方式就是触发器,比如github提供了webhook机制可以在代码提交的时候通知其他的系统,这种简单快捷的方式在持续集成的系统中非常常见。

容服务提供了重新部署与自动扩容扩缩容两种触发器,如下:
2052da86c5aa475411bab00728573ab8.png

可以简单的使用GET或者POST请求的方式调用这两个地址,从而达到重新部署与扩缩容的目的。容器服务本身提供了集群级别的openapi,应用级别的兼容docker的api,那么为什么还需要提供这种使用curl、wget甚至浏览器访问都可以调用的API。

这就要从这几个API的定位讲起,阿里云大部分的产品是IaaS的产品,这些产品只要将自身提供的能力做到性能、易用性以及原子性功能的更优即可。但是容器服务是CaaS层的产品,是对IaaS层的更高级的抽象,我们需要关心不只只是容器如何部署,更多是和开发如何结合,如何符合大家的编程模型或者适应大家的编程模型。而大家的编程模型又各不相同,我们不应该用PaaS的方式去规约开发者的使用习惯以及限制自身系统的能力,更合理的做法是提供原子性的功能,可以集成现有的系统与编程模型。而最简单的方式就是触发器。

容器服务的slack集成

那么是否有能力让slack集成容器服务,通过slack来运维容器呢。其实用slack做运维并非是一个新潮的词汇,GEEK们用slack在aws上管理云资源,做持续集成,大部分依赖slack的一个令人称赞的功能,slack机器人。

下面我们从0部署一个可以运维容器服务的slack机器人。

步骤0 创建slack的team与机器人

首先要学会使用slack的基本功能,然后学会创建一个slack机器人并取得token,这个步骤在本文中就不过多的赘述了。

步骤1 部署应用并创建触发器

在容器服务上部署一个demo的应用,并创建触发器。

2048:
  image: 'blackicebird/2048:latest'
  labels:
    aliyun.scale: '1'
    aliyun.routing.port_80: 2048
  restart: always

点击应用详情页面的创建触发器,即可创建自动扩容的触发器或者重新部署的触发器。
4eed6562d2b3c03b4d1b0b3285acd8ad.png

步骤2 部署slack robot
newtown:
    image: registry.aliyuncs.com/ringtail/newtwon:latest
    restart: always
    environment:
        - debug=true
        - key=<如果需要图灵聊天机器人,需填写此项,此项为图灵机器人的appkey>
        - token=<slack机器人的token>

其中key是图灵机器人的key,这个值选填,如果不填写,请删除key,图灵机器人只是为了增加这个项目的趣味性。token是slackbot的token,您可以通过slack的team管理中找到。

附录:
图灵机器人:http://www.tuling123.com/

步骤3 可以玩耍了

在这个slack robot中包含了两个基本模块,记忆模块与容器服务模块。命令的格式如下

记忆模块:    
记住 key value    //设置key,如果在别的模块使用,可以采用$key的方式
记住 key              // 获取 key
记住 全部         // 列出全部key 


容器服务模块:    
容器服务 触发 <触发器地址>  // curl url,建议用<>括起来网址,因为回显到slack的时候回自动触发。     

下面我们利用slack robot进行一次简单的运维 -- 容器扩容

83638b5db1e06a9961ef0e1144cf683f.png

主题命令如下

记住 2048触发器 <你的触发器地址>    

记住 2048触发器    

容器服务 触发 $2048触发器    

输入 “容器服务 触发 $2048触发器的后“,查看容器的服务列表,可以发现容器已经处在伸缩中了。

fe57371918c31dbc34dec235d9631950.png
稍后可以发现容器已经扩容完成,欢迎大家探究更多的好玩的方式。
ec2c9da02ae2bff223a7d2572d0f6f41.png

项目仓库

纽敦的仓库:https://github.com/ringtail/newtwon (出于对newton的尊敬改用newtown)

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
5月前
|
运维 算法 机器人
阿里云AnalyticDB具身智能方案:破解机器人仿真数据、算力与运维之困
本文将介绍阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL推出的全托管云上仿真解决方案,方案采用云原生架构,为开发者提供从开发环境、仿真计算到数据管理的全链路支持。
|
3月前
|
人工智能 运维 监控
AI加持下的容器运维:别再当“背锅侠”,让机器帮你干活!
AI加持下的容器运维:别再当“背锅侠”,让机器帮你干活!
245 8
|
5月前
|
人工智能 弹性计算 运维
通勤路上修故障?钉钉机器人+ OOS AI 助手实现 7×24 小时运维自由
通过钉钉机器人配置阿里云 OOS AI 助手,您可以直接在钉钉群内发送文字指令,实现免登录、跨设备、秒级响应的阿里云运维操作。
|
人工智能 弹性计算 运维
通勤路上修故障?钉钉机器人+OOS AI助手实现7×24小时运维自由
通过钉钉机器人配置阿里云OOS AI助手,您可以直接在钉钉群内发送文字指令,实现免登录、跨设备、秒级响应的阿里云运维操作。
|
运维 Kubernetes 监控
提升运维效率:容器化技术在现代IT基础设施中的应用
本文将探讨容器化技术如何优化企业的IT基础设施,提高部署效率和资源利用率。我们将深入分析容器技术的优势、实现步骤以及在实际运维中的应用场景。通过实例展示,帮助读者更好地理解并应用这一前沿技术,助力企业实现高效运维。
|
运维 监控 Cloud Native
自动化运维的魔法书云原生之旅:从容器化到微服务架构的演变
【8月更文挑战第29天】本文将带你领略自动化运维的魅力,从脚本编写到工具应用,我们将一起探索如何通过技术提升效率和稳定性。你将学会如何让服务器自主完成更新、监控和故障修复,仿佛拥有了一本能够自动翻页的魔法书。
|
10月前
|
人工智能 边缘计算 运维
容器化浪潮下的AI赋能:智能化运维与创新应用
近年来,容器技术以其轻量、高效、可移植的特性成为云原生时代的基石,推动应用开发和部署方式革新。随着容器化应用规模扩大,传统运维手段逐渐力不从心。AI技术的引入为容器化生态带来新活力,实现智能监控、自动化故障诊断与修复及智能资源调度,提升运维效率和可靠性。同时,AI驱动容器化创新应用,如模型训练、边缘计算和Serverless AI服务,带来更多可能性。未来,AI与容器技术的融合将更加紧密,推动更智能、高效的运维平台和丰富的创新应用场景,助力数字化转型。
|
12月前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。

相关产品

  • 容器服务Kubernetes版