跳至主要内容

LAIKA 如何将 RabbitMQ 作为动画公司 IT 系统的中枢神经

·阅读 5 分钟
Dormain Drewitz

LAIKA 是一家位于俄勒冈州波特兰的顶尖定格动画公司。凭借《通灵男孩诺曼》、《盒子怪》、《久保与二弦琴》以及最近的《失踪的环节》等屡获殊荣的电影,LAIKA 以其独特的审美而闻名。LAIKA 的电影制作方式融合了高科技和模拟技术。

LAIKA 的小型 IT 团队对动画业务充满热情。“我们支持制作,制作电影。”LAIKA 的高级技术专家 Mahlon Smith 解释道。团队在幕后,与布景木匠、油漆工和电影导演一起工作。“我们尽可能高效地支持制作。节省的每一美元都可以用于屏幕。”

这种财政责任感引导团队转向可重用技术。尤其是在集成方面。考虑到这种节俭,团队早在 2009 年就开始关注 RabbitMQ。他们在过去六年中使用 RabbitMQ 的经验表明,如何利用灵活的消息骨干解决更多问题。

挑战:“发生的一切都是一个事件”

为动画公司运营 IT 会面临一些独特的挑战。电影设计、布景制作和拍摄的循环导致艺术家们来来往往。“我们的行业历史上一直是游牧民族,”Smith 解释道。对于一家规模如此之小的公司来说,身份管理活动的数量非常高。

从广义上讲,LAIKA 的 IT 团队面临着当今普遍存在的挑战。“我们拥有各种内部和第三方系统,”Smith 说。需要集成的环境数量不断增长。正在引入新的软件和系统,而现有系统很少被淘汰。

最后,始终需要进行故障排除。从网络事件到桌面支持,再到渲染农场本身,获取警报并洞察活动至关重要。正如 LAIKA 的高级系统管理员 Will Fife 指出的那样,“越来越多地,发生的一切都会产生一个事件,或者由于一个事件而执行某些操作。”

RabbitMQ:“它是公司的中枢神经系统”

面对动态的用户群体,IT 团队开发了一套工具来跨不同系统配置帐户。他们采用了 RabbitMQ(最流行的开源消息代理)来集成系统。例如,新用户需要配置电话分机,但标准 LDAP 身份没有直接访问电话系统的权限。使用 RabbitMQ,新的用户帐户创建事件会进入队列。电话系统监听该队列并配置分机。

“我们的桌面支持管理员可以创建新的用户帐户,并且我们对知道该帐户现在已推送到所有需要的位置具有一致性和可靠性,”Smith 解释道。该团队开始使用RabbitMQ 的 Web Socket 层将实时更新发送到浏览器。这使桌面支持团队能够实时查看正在发生的事情,从而解决用户问题。

随着 LAIKA 添加新的软件和系统,这种添加新用户的事件驱动方法简化了繁琐的过程。“随着时间的推移,我们向新用户事件添加了越来越多的侦听器,这些侦听器执行其他任务和其他操作。这使得它更具弹性,”Fife 说。

RabbitMQ 设置策略的能力在 NATS 或 NSQ 等其他消息传递工具中脱颖而出。例如,团队可以使用策略确保私人信息保留在访问权限受限的安全虚拟主机上。

RabbitMQ 已成为 LAIKA 的 IT 万能工具。“我们通过 AMQP 控制网络上的大多数虚拟机,”Fife 解释道。“这包括启动、关闭、销毁、创建它们,以及为其创建存储。”如果虚拟机未在预期的时间内重新启动,则读取 RabbitMQ 队列的应用程序会通过聊天通知所有者。

虽然 LAIKA 大约 90% 的内部编码使用 Ruby,但 IT 团队赞赏 RabbitMQ 本身与语言无关。“RabbitMQ 提供的 STOMP 层使您可以通过原始套接字轻松参与网络事件,”Smith 说。

由于易于扩展和集成,RabbitMQ 已成为首选的集成工具。“如果我们需要系统之间进行任何类型的通信,我们都会使用它,”Smith 说。“它是我们信息技术环境的中枢神经系统。”

“我们知道我们有一条可以集成的路径”

使用 RabbitMQ 作为消息传递骨干减少了 IT 团队的大量工作。“从 IT 的角度来看,一旦我们部署了它并建立了我们的框架,现在当我们启动某些东西时,几乎不需要任何工作,”Smith 说。

从新用户到虚拟机操作,IT 自动化了任务并降低了错误风险。例如,最近的建筑搬迁通过向事件队列添加侦听器来配置网络端口而得到简化。

RabbitMQ 的事件模型意味着团队不必硬编码集成。“我们可以松散地耦合事物。我们不需要系统之间的具体契约,”Smith 说。

灵活性和对策略的支持使 LAIKA 团队不断将 RabbitMQ 用于更多用例。集成越多,它对解决下一个挑战就越有用。

“现在有如此多的东西流经它,因此在解决问题时,它是我们首先想到的地方,因为我们知道信息就在那里,或者可以通过最少的努力获得。”Smith 说。“当出现新问题时,我们知道我们有一条可以与该事件流集成的路径。”

倾听更多 RabbitMQ 用户的声音

© 2024 RabbitMQ. All rights reserved.