容器服务slack运维机器人

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: ## 初识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)

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
运维 Kubernetes 监控
提升运维效率:容器化技术在现代IT基础设施中的应用
本文将探讨容器化技术如何优化企业的IT基础设施,提高部署效率和资源利用率。我们将深入分析容器技术的优势、实现步骤以及在实际运维中的应用场景。通过实例展示,帮助读者更好地理解并应用这一前沿技术,助力企业实现高效运维。
|
4月前
|
运维 监控 Cloud Native
自动化运维的魔法书云原生之旅:从容器化到微服务架构的演变
【8月更文挑战第29天】本文将带你领略自动化运维的魅力,从脚本编写到工具应用,我们将一起探索如何通过技术提升效率和稳定性。你将学会如何让服务器自主完成更新、监控和故障修复,仿佛拥有了一本能够自动翻页的魔法书。
|
2月前
|
缓存 运维 Docker
容器化运维:Docker Desktop 占用磁盘空间过大?教你轻松解决!
Windows Docker Desktop 使用过程中,因镜像、容器数据及构建缓存的累积,可能导致磁盘空间占用过高。通过删除无用镜像与容器、压缩磁盘以及清理构建缓存等方法,可有效释放空间。具体步骤包括关闭WSL、使用`diskpart`工具压缩虚拟磁盘、执行`docker buildx prune -f`清理缓存等。这些操作能显著减少磁盘占用,提升系统性能。
390 4
|
2月前
|
运维 资源调度 调度
容器微服务运维
【10月更文挑战第16天】业务容器化后,运维需采用面向容器的新型平台,主要由镜像仓库、资源调度、容器调度、调度策略和服务编排组成。镜像仓库负责存储与分发容器镜像,支持权限控制、镜像同步和高可用性设计;资源调度解决不同环境下的机器部署问题;容器调度实现容器在主机上的合理分配;调度策略优化容器主机选择;服务编排则处理服务间的依赖关系和服务发现,支持自动扩缩容以适应业务需求变化。
|
2月前
|
运维 Prometheus 监控
提升运维效率:容器化技术与自动化工具的结合
在当今信息技术飞速发展的时代,运维工作面临着前所未有的挑战。为了应对这些挑战,本文将探讨如何通过结合容器化技术和自动化工具来提升运维效率。我们将介绍容器化技术的基本概念和优势,然后分析自动化工具在运维中的应用,并给出一些实用的示例。通过阅读本文,您将了解到如何利用这些先进技术来优化您的运维工作流程,提高生产力。
|
3月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
212 3
|
4月前
|
运维 Kubernetes 负载均衡
震惊!容器化运维竟藏如此大招,容器调度与服务编排让你的软件部署 “逆天改命”
【8月更文挑战第31天】在数字化时代,容器化技术革新了软件开发与运维方式,其高效、灵活及可移植的特点为企业应用部署提供了全新方案。容器调度与服务编排作为核心环节,通过优化资源分配、提升系统可靠性和可扩展性,实现了自动化管理。Kubernetes 等工具不仅简化了容器调度,还通过 Deployment、Service、Ingress 等资源对象实现了复杂应用架构的自动化运维,大幅提高了资源利用率和系统稳定性,减少了人工干预,加速了企业数字化转型。
55 2
|
4月前
|
运维 开发者 Docker
Docker容器化技术在运维中的应用实践
【8月更文挑战第27天】本文旨在探讨Docker容器化技术如何在现代运维工作中发挥核心作用,通过深入浅出的方式介绍Docker的基本概念、优势以及实际应用场景。文章将结合具体案例,展示如何利用Docker简化部署流程、提高资源利用率和加强应用的可移植性。读者将获得对Docker容器技术在实际运维中应用的全面认识,并能够理解其在提升运维效率与质量方面的重要性。
|
4月前
|
存储 资源调度 运维
【容器化运维的艺术】揭秘镜像仓库与资源调度的完美协同!
【8月更文挑战第25天】随着容器技术的发展,企业日益倾向于采用容器化方式部署应用,以提升部署效率及资源管理灵活性。其中,镜像仓库和资源调度成为核心组件。镜像仓库实现容器镜像的集中存储与管理,确保版本一致性和安全性;资源调度则依据实际需求优化容器运行位置与资源配置,提高资源利用率和应用性能。二者协同作用,显著简化应用部署流程,为企业创造更大价值。
74 3
|
4月前
|
运维 Kubernetes 监控