哨兵每月准备接收200亿次事件,准备处理两次

二万六千七百九十二
LZODXQF
哨兵
开发人员使用哨兵从五小时到五分钟缩短应用程序的时间分辨率。.

通过坎宁安操作工程师,哨兵..


关于哨兵

岗哨插图

除非您的工程团队由每天早上从天堂通勤到办公室的天使组成,否则我们很有信心您在生产中的应用程序开发和迭代上遇到很多问题。.哨兵在用户甚至知道存在问题之前,提供您需要查找、分类、再现和修复应用程序级问题的所有工具。随着额外的奖金,你不会得到更多的讨厌的外观从支持工程师在快乐时光。.

通过自动化错误检测、聚合以及向堆栈跟踪添加重要上下文,Sentry帮助您主动地更正对您的业务造成最大损害的错误,从而更高效、更持久,并且具有最小的中断。缩小产品团队和客户之间的差距可以提高生产力,加快整个开发过程,并帮助工程师专注于他们最擅长的工作:构建让用户生活更美好的应用程序。.

我个人是哨兵在我成为雇员之前的用户方式。早在我以前的公司,我就负责升级开源错误跟踪服务,这项服务并没有真正被维护或使用一段时间。我伸出援助之手,从大卫(哨兵公司的共同创始人)和马特(哨兵公司的第二工程师)那里得到回音,在我看到他们的面孔之前,我在IRC多年里会见了我未来的两位同事(前沿:与Matt联系在LinkedIn上。.


这是Matt

这是Matt


他们非常乐于助人,当我去找新工作时,我想:“嘿,这是一款非常好的软件,运行它的人非常关心他们的社区。我很想成为其中的一员。今天,我愉快地度过了我的清醒时间,保持哨兵的主机服务运行,可用,并响应我们指数增长的事件量(编者按:当他不再为懒惰和水果充饥而拖拖拉拉的新雇员时).

强有力的侧面项目

哨兵从2008开始的一个错误日志工具,开始(并且仍然)是一个开源项目。即使在那时,他还是表现出了真正精明的品牌理念,给这个项目起了一个吸引人的名字,直到今天,全世界的公司都仍然羡慕它:Django数据库日志.哨兵字幕最长一段时间吉瑟布论是一个简单的Django应用程序,用爱建造。“一个更准确的描述可能包括星际争霸和索伦特的爱情;无论如何,这俘虏了哨兵的全部。.

原来的建筑九年前丹戈芹菜(Python的异步任务代码库)后格雷斯作为数据库和雷迪斯作为芹菜背后的力量。.

快速成长公司

正如你所期望的,哨兵使用量成倍增长。过去十年基础设施已经改变和成熟,以适应大规模。我们现在将开源项目作为SaaS产品托管。Sentry为几乎每个框架、平台和语言都提供了SDK,并且与最流行的开发工具进行了集成,这使得它非常容易采用。今天,Sentry是世界各地数以万计的组织和10万多活跃用户的错误跟踪和解决工作流程的中心,他们中的许多人支持对互联网上某些最大属性的实现:Dropbox、Uber、Stripe、Airbnb、Xbox Live、HubSpOT,以及更多。那是50亿每周的事件,只是从托管服务。.

当客户将事件发送给Sentry时,他们不会接收到通知的洗衣清单,而是通过计数事件发生的频率以及哪些用户正在经历该问题来获得总问题。这一切在哨兵中都是非常简单和干净的,但是如果一个用户想要单独的事件,我们也会提供。我们保存每一个我们接受的事件,在传统的关系数据库中非常昂贵。.

解决可伸缩性的第一个改进哨兵之一是将所有这些事件存储在分布式密钥值存储中。这里有各种各样的关键价值商店,都有它们的承诺和陷阱,但是在评估解决方案时,我们最终选择了里亚克.Riak集群正好实现了我们想要的功能:将事件数据写入多个位置,根据请求增加或缩小大小,并在正常故障场景中保持不变。.

我加入Sentry时贡献的第一个主要基础设施项目是横向扩展我们执行离线任务的能力。当Sentry一天到晚都在运行时,我们执行了大约50个不同的脱机任务,从“处理此事件,非常请”到“向所有这些酷人发送电子邮件”。“有一些我们每天执行一次,有些执行每秒数千次。.

管理这种多样性需要可靠的高通量消息传递技术。我们用芹菜拉比麦克实现了,我们偶然发现了一个叫做联邦这允许我们在任意数量的RabbitMQ服务器上对任务队列进行分区,并且给我们信心,如果任何单个服务器被积压,那么其他服务器将加入并分发一些积压的任务给它们的消费者。.

我们经历的另一个项目是在应用程序前设置安全措施,以防止不可预测和不需要的通信量。当接受事件时,我们将疯狂地将PythonWeb过程公开到公共Internet上,然后说:“好吧,给我你所有的!相反,我们使用两种不同的代理服务,它们位于我们的Web机器前面:

  • 恩吉克斯我们的产品感知代理处理许多我们认为合理的上界。它负责各种界限,但它最流行的是保护哨兵免遭非常大的事件量。经常,用户会遇到这样的问题:他们把自己的代码部署到深渊,而他们的事件卷时钟比他们注册的要高几个零。.
  • 在NGNX前面,我们使用另一个代理服务哈格斯作为一个没有任何产品感知逻辑的连接的增量,并且具有更高的吞吐量。它所做的就是接受连接并将它们发送到不同的NGINX服务器,允许我们根据需要优雅地添加或删除NGINX服务器。.


现在一切都好了


不断发展的建筑

哨兵开始了传统的生活丹戈应用程序,并经历了一系列的体系结构迭代。当前的Sentry仪表板(客户用来浏览和调试他们的生产问题)已经发展成为一个单页应用程序反应回流(早期通量库)。我们写ES6转入JavaScript使用巴别塔WebPACK.为了获取和提交数据,我们通过一个简单的基于REST的HTTP API与Django后端通信。.

事件处理流水线(负责处理所有被摄取的事件数据,使其通过我们的离线任务处理)主要被写入蟒蛇.对于特别强的代码路径,比如我们的源映射处理流水线,我们已经开始改写那些锈迹斑斑的东西了。..锈病缺少垃圾收集使它成为嵌入Python的一种特别方便的语言。它允许我们轻松地构建一个Python扩展,其中从Python端管理所有内存(如果Python包装器被Python GC收集,那么我们也清理Rust对象)。)


哨兵释放动画


一个简单的部署工作流

在大多数情况下,哨兵仍然是一个经典的单片应用程序。部分原因是,Sentry仍然是开源的,我们希望我们的社区能够更容易地安装和运行服务器本身。为了做到这一点,我们提供码头工人图像的安装细节它包含所有哨兵的核心服务在一个地方。这种整体性质使得我们自己相对简单地参与和部署哨兵。.

当有人想对代码库进行更改时,它会被提交给我们的公共项目。github.从那里,特拉维斯词运行一组并行构建,其中不仅包括单元和集成测试,还包括通过以下方式管理的可视化回归测试佩尔西.由于我们仍然是一个支持不同关系数据库的开源项目,因此我们不仅为Postgres运行测试套件,而且还为MySQL数据库也一样。.

一旦所有的测试都是绿色的,代码就会被检查,并且任何检测到的UI更改都会被批准,代码就会通过GitHub合并。然后我们使用一个内部的开源工具运费建造和部署我们的码头工人图像到生产。此外,运费注入唯一的封闭源哨兵,我们的计费平台。一旦图像在生产中,我们触发一个重新启动的每个哨兵容器拿起新的图像。.


哨兵加松弛积分


不可预测的世界

我们最大的挑战之一是,Sentry的流量本质上是不可预测的,并且根本无法预测用户的应用程序何时会崩溃,并给我们发送大量事件。在裸露金属上,我们通过准备最坏的(ISH)和过量供应机器来应对事件泛滥。不幸的是,随着需求的增长,我们需要新机器的时间窗口缩小了。我们开始向供应商要求更多,在需要机器之前请求它们,并让普通机器连续几天处于空闲状态,等待看哪个组件最需要它。.

为此,我们跃跃欲试。谷歌云平台(GCP)在2017年7月给我们带来更大的灵活性。称之为“飞跃”使它听起来很冲动,但过渡实际上花了数月的计划。无论我们在Google Compute Engine中花费了多长时间来预测资源的使用,我们永远不会预测到吞吐量的增加。由于GCP的缺省微体系结构Haswell,我们注意到跨CPU密集型工作负载(即源映射处理)的性能立即提高。运营团队在接下来的几周里保守地削减了我们的基础设施,并且仍然设法削减了大约20%的成本。没有花哨的云技术,没有庞大的基础设施事业——只是在数学上更好的新岩石。.

你可以找到更多关于它的细节谷歌云平台博客..

可观测性与行动

我们能够支持Sentry的一个重要原因是它属于需要大量资源来托管的可观察性工具的类别。我们自己跑哨兵,因为我们已经很擅长它了。我们依靠Sentry来跟踪生产应用程序中的错误,并根据用户体验和影响力帮助我们设置迭代的优先级。.

但是,对于监视堆栈的其余部分,我们采用与每天注册Sentry托管服务的用户相同的思想:“以美元支付正常运行时间比在工程小时内支付要好。“(如果你还没用过)哨兵托管服务只需要几分钟和几行代码就可以建立起来。)

我们在生产环境之外使用一些工具链。我可以写一篇详细的文章(我也许会写一篇),但是让我们来概括一下如何通知我,我们已经在请求延迟的第95个百分点中倒退了:

  • 运行Web服务器的每个主机将请求的时间发送给条带。贴面
  • VENEURR创建请求时序的直方图并转发到数据报
  • 数据阈值警报检测到我们已经超过500毫秒
  • 阈值警报被配置为通知松弛航道与航道分页税旋转
  • PauleRevice轮转通知当前正在运行的两个操作工程师


哨兵欢迎

我们介绍每一位新员工,他们都欢迎自己的GIF。


奇妙的同事

我们的工程org分为四个小组在两个项目:产品和基础设施。他们的名字描述了他们的目的,但

  • 产品被分解为工作流和成长团队。工作流特别关注用户如何在自己的工作流和开发过程中与哨兵进行交互。增长着眼于我们可以做出的调整,这将增加新用户发现与Sentry相关的、在机上有效的、并坚持使用它的可能性。.

  • 基础设施被分解为平台和运营团队。平台专用于为我们的API供电的所有哨兵代码,包括事件摄取。操作是我生活的地方,我们致力于构建、部署、维护和监视所有保持哨兵状态的组件。IO稳定。.

我们还有一个非官方的第五团队,在Sentry的开发中扮演着重要角色,并且总是比其他团队多:我们的开源贡献者。哨兵的全部代码库是正确的吉瑟布论为了让全世界都看到,许多改进我们的服务已经由不在这里工作的用户和社区成员引入。.

其他行业

正如Sentry是许多软件团队的亚博的一部分一样,我们依赖于许多附加的商业和开源服务来帮助运行我们的业务。我们使用条纹处理客户账单,森格栅为了可靠的电子邮件发送,松弛团队沟通,谷歌分析对于基本的Web分析,大查询数据仓库,以及吉拉项目管理。.

在开源方面,我们的成长和BI团队使用红粉从我们的数据中得到有用的统计数据。我们使用杰基尔发表哨兵。输入输出和其他在线营销内容一样博客..

关闭


哨兵团队照片


开放源码,开放式公司。这是我们的信条,它真正抓住了我们的一切。正如我前面提到的,我申请了哨兵的工作,因为它是一个很好的软件,管理公司的人对社区的作用很在意。因为每个在这里工作的人都是开源社区的成员,所以这种意识延伸到员工之间并在员工之间流动。.

这里的增长是不可避免的。艰难的决定不是规模,而是何时。运营团队有责任将工时投入到正确的主动性中,并平衡与安全、可靠性和生产率的比例。也许你想在我的团队里做出一些艰难的决定??

也许操作不是你的事情,但你想建立一些开源的东西。想为哨兵贡献更多的代码吗??我们正在招聘几乎在整个组织中,如果您已经阅读了整个帖子,并且认为您仍然可能像我一样喜欢哨兵,那么非常乐意与您交谈。.

LZODXQF
哨兵
开发人员使用哨兵从五小时到五分钟缩短应用程序的时间分辨率。.
软件工程师-增长
CA旧金山

关于哨兵

哨兵的任务是授权软件开发团队更快地建立更好的产品。我们的崩溃报告平台帮助了将近一百万开发人员和数以万计的软件团队在互联网上最受欢迎的网站/应用程序(Dropbox、Uber、Airbnb、Stripe、Atlassian等等)中发现、筛选和解决生产软件问题,这样他们就可以花费更少的时间来开发产品。窃听和更多的时间建设软件。.

生长工程

增长团队的目标是让哨兵成为开发者工具带中的GIT标准。正如产品工程建立的系统捕捉错误,增长建立系统,占领市场份额。成长是一个过程,所有的过程都可以被编纂、仪器化、改进和自动化。.
Growth团队是一个多学科的团队,使用数据、产品和工程来理解Sentry今天如何成长,以及未来最有效的增长方式会是什么样子。作为团队的早期工程师,您将带着您的技术技能来处理这个问题,并且使用多种功能,包括产品、市场营销和设计,以帮助定义增长的路线图。.

我们理想的候选人:

  • 采取长远、可持续的发展观
  • 可以解释我们的产品如何成长,不断提高我们对它的理解。
  • 深入思考用户行为,打破采纳障碍
  • 关注可测量的、有影响的工作,而不考虑学习曲线。
  • 用数据支持假设并运行实验来验证假设
  • 能够快速独立地迭代,不产生长期技术债务
  • 把发展看作是一个团队而不是整个组织的责任

责任

  • 通过识别缺失的数据片段和检测产品,绘制出我们的定性和定量增长模型;在必要的时候使用客户调查和其他方法来加强我们的理解
  • 主动寻找成长机会
  • 与产品、工程和业务团队交叉工作,定义、实施、测试和推出新的特性
  • 对实验结果进行分析,并对模型进行改进;我完善我们的分析和实验基础设施,以提高我们的整体灵活性
  • 领导工程讨论和写抽象,使我们能够更快地学习和学习
  • 确定关键指标并确保我们朝着他们努力

资格条件

  • 2年以上软件工程师和/或相关工作经验 (相似)角色包括增长工程师,全栈工程师,A (非常)技术产品经理
  • 使用Python和/或JavaScript的经验
  • 居住在旧金山湾地区,或愿意搬迁

效益

  • 有助于开源产品成千上万的公司使用
  • 有经验有名望的人团队这对一些世界上最流行的软件产品和开源工具起了作用。
  • 有竞争力的薪酬和有意义的公平
  • 100%医学、牙科和视觉覆盖
  • 通勤补贴
  • 401K
  • 慈善配套计划
  • 慷慨的父母离休政策与529大学储蓄计划
  • 灵活的工作时间表和休假政策,以及实际的工作/生活平衡
  • 公司活动(周、手、季度社交活动)和亲朋好友事件
  • 搬迁援助

我们公司的哨兵重视多样性和包容性,是一个机会均等的雇主。我们不基于种族、宗教、肤色、国籍、性别、性取向、年龄、婚姻状况、退伍军人状况或残疾状况进行歧视。

评论
开放式工作
软件工程师
CA旧金山

我们正在寻找生活和呼吸技术的工程师。你是一个多才多艺的人,热爱语言。在过去的生活中,你可能已经完成了Java、C或IOS的开发。您将从事各种项目,从哨兵API到塑造我们的SDK。此外,您还将经常与开源社区进行交互,帮助指导Sentry平台以及各种集成上的各个贡献者。.

作为一个软件工程师,你会:

  • 提升哨兵核心产品的架构师软件解决方案
  • 构建用户界面,有助于应用程序编程接口(API)和服务器逻辑
  • 与跨功能的软件工程师团队协作优化终端用户操作
    设计师
  • 使用动态编程语言、系统和技术的程序软件实现,包括Python、JavaScript、Rust、PostgreSQL、Redis和.。开发后端服务和API端点,以推动产品的主动性和创新。确保哨兵平台不断扩大并为客户服务
  • 追求架构和工具,使开发团队更快更自信地交付代码
  • 坚持质量和可靠性分析和评估代码
  • 在开源软件开发和工程领域实现最新的技术和创新

要求

  • 2年以上软件工程、产品工程或相关经验,使用Python、Java和SQL开发数据基础设施和产品解决方案
  • 两年以上创建高可伸缩性后端平台和系统的经验,构建多线程系统,负责产品部署、故障排除、系统分析和使用编程语言,包括
  • 对碰撞报告和监控的软件基础有很强的理解
  • 在各种语言和框架中阅读和理解代码的能力
  • 在旧金山或愿意搬迁

效益

  • 为开源产品做出贡献(http://Github。通讯/哨兵/哨兵)被成千上万的软件开发人员使用。.
  • 成为有经验的团队的一员(http://gsStEnt.COM/约/这对一些网络最流行的软件产品和开源工具起了作用。.
  • 有竞争力的薪酬和有意义的公平。.
  • 医疗、牙科和视力保险。.
  • 灵活的工作计划和实际的工作/生活平衡。.
  • 休闲工作环境。.
  • 搬迁援助
数据工程师
CA旧金山

关于这个角色

我们正在寻找我们的第一位数据工程师来设计和开发健壮的、可伸缩的解决方案,用于收集和分析大型数据集,从而推动Sentry的业务向前发展。您将创建和维护数据管道、数据结构和报告,并创建直观的工具,以允许不同的业务功能从我们的数据中获得深入的洞察力和分析,并主动地识别有趣的趋势 (和) 不仅仅是代表他人进行查询。
对于那些想在商业和产品的交叉点工作的人来说,这是一个绝佳的机会,帮助我们更好地理解我们的企业,并对一家高速发展的公司产生巨大的影响。 (几乎) 一百万用户快速增长!)如果是你,开始想你 新聘GIF 马上!!
作为哨兵的第一位数据工程师,你会:
  • 设计、构建和管理数据集市以满足日益增长的数据需求
  • 将不同来源的数据整合成一个统一可靠的真相来源
  • 确保数据质量和验证复杂查询的正确性
  • 启动和支持新的数据模型,为内部客户提供直观的分析
  • 与内部数据用户接口以了解数据需求
如果你喜欢这个角色,你会喜欢的:
  • 你真的很兴奋与真正的合作 “大”不适合记忆的数据
  • 你喜欢与其他部门交叉工作,学习他们的业务流程,以及如何加速他们的业务流程。
  • 在影响整个组织的高影响力的角色中,你会获得深深的满足感。

资格条件

  • 3年以上数据工程师或类似工作经验,熟悉大型数据集
  • 建立商业智能可视化的经验
  • SQL专业知识 (你可以闭着眼睛运行查询!)
  • 至少有以下专业知识:星火、卡夫卡、金驰、BigQuy、Redshift、气流
  • 计算机科学或相关定量领域的学士学位
  • 优秀的书面和口头沟通能力,清晰清晰地表达技术概念的能力
  • 在旧金山湾地区或愿意搬迁

效益

  • 有助于开源产品成千上万的公司使用
  • 有经验有名望的人团队这对一些世界上最流行的软件产品和开源工具起了作用。
  • 有竞争力的薪酬和有意义的公平
  • 100%医疗、牙科和视觉覆盖
  • 灵活的工作计划和休假政策,以及真实的工作/生活平衡
  • 年度学习与发展报销
  • 通勤补贴
  • 401K
  • 慈善配套计划
  • 慷慨的父母离休政策与529大学储蓄计划
  • 公司活动(黑客周,所有人,季度社会事件)和繁荣文化!!
  • 搬迁援助

士绅价值多元化和包容性在我们的公司,是一个机会均等的雇主。我们不基于种族、宗教、肤色、国籍、性别、性取向、年龄、婚姻状况、退伍军人状况或残疾状况进行歧视。.

PHP/Ruby工程师
奥地利维也纳

关于这个角色

我们正在寻找有经验的PHP/Ruby开发人员,以帮助使Sentry成为PHP/Ruby生态系统中最好的崩溃报告工具。您的主要职责包括监督我们官方PHP/Ruby客户机库的开发,以及改进核心Sentry产品,使Sentry成为PHP/Ruby开发人员使用的乐趣。理想情况下,您还将在PHP/Ruby社区中代表Sentry——在会议、会议和书面材料中——以既突出我们的产品又反映我们的价值的方式。.

数以万计的开发人员使用Sentry,作为我们的小型工程团队的一部分,您会发现成长和成功需要无数的挑战。如果你有很强的技术背景并且想公开参与软件开发社区,这是一个绝佳的机会!!

资格条件

  • 3年以上软件工程师相关工作经验
  • 熟悉PHP& Ruby语言和具有不同PHP的专业经验(E)。G.Laravel,Suffand)和Ruby(E)。G.RAILS)Web框架
  • 熟悉Python
  • 熟悉哨兵
  • 优秀的书面和口头沟通能力,清晰清晰地表达技术概念的能力
  • 独立工作的能力和对工作的责任感
  • 奖金:有助于维护或维护开源项目的经验
  • 在维也纳或愿意搬迁

效益

  • 有助于开源产品成千上万的公司使用
  • 有经验有名望的人团队这对一些世界上最流行的软件产品和开源工具起了作用。
  • 有竞争力的薪酬和有意义的公平
  • 通勤补贴
  • 慈善配套计划
  • 慷慨的休假政策
  • 灵活的工作时间表和休假政策,以及实际的工作/生活平衡
  • 公司活动(周、手、季度社交活动)和亲朋好友事件
  • 搬迁援助


士绅价值多元化和包容性在我们的公司,是一个机会均等的雇主。我们不基于种族、宗教、肤色、国籍、性别、性取向、年龄、婚姻状况、退伍军人状况或残疾状况进行歧视。.

根据法律规定,我们必须征收39欧元的最低工资。550,根据各自的集体协议(IT-KV),每年该职位的毛额。.

IT经理
CA旧金山

关于这个角色

哨兵的任务是授权软件开发团队更快地建立更好的产品。我们的崩溃报告平台帮助成千上万的软件团队发现、筛选和解决生产软件问题,因此他们可以花费更少的时间调试和更多的时间构建软件。.

哨兵正在寻找我们的第一个IT经理,引导我们的IT实践,并帮助我们实现以下目标:

  • 愿景:发展和阐明一个如何发展IT实践的愿景。.
  • 认证:自己的钢笔测试和安全认证。.
  • 自动化:不要两次解决同一个问题。.
  • 业务影响:通过无摩擦的执行使公司吞吐量最大化。.

如果您对在快速成长的初创企业拥有IT运营感到兴奋,并且希望深刻地影响公司的文化和整体业务,那么开始考虑您的新聘GIF现在!!

作为IT经理,你会:

  • 评估新供应商和业务工具,使其符合要求,维护长期项目,并协助集成
  • 监控和维护公司网络、会议室媒体设备、桌面设备等
  • 应用信息安全政策和任务,测试安全控制,对安全政策进行教育和反应

资格条件

  • 深入了解IT环境的各个方面,包括Mac/Linux/Windows笔记本电脑、iPad、AV设备、打印机
  • 熟悉企业认证、授权和MFA
  • 熟悉自动化和脚本编写
  • 暴露于运行符合性和认证程序
  • 网络故障排除经验
  • 优秀的诊断和解决问题的能力

奖金/优先技能:

  • Python软件开发经验
  • 有团队领导经验或管理经验

效益

  • 有助于开源产品成千上万的开发者和公司使用
  • 有经验有名望的人团队这对一些世界上最流行的软件产品和开源工具起了作用。
  • 有竞争力的薪酬和有意义的公平
  • 100%医学、牙科和视觉覆盖
  • 通勤补贴
  • 401K
  • 慈善配套计划
  • 慷慨的父母离休政策与529大学储蓄计划
  • 灵活的工作时间表和休假政策,以及实际的工作/生活平衡
  • 公司活动(周、手、季度社交活动)和亲朋好友事件
  • 搬迁援助

我们公司的哨兵重视多样性和包容性,是一个机会均等的雇主。我们不基于种族、宗教、肤色、国籍、性别、性取向、年龄、婚姻状况、退伍军人状况或残疾状况进行歧视。

你也可能喜欢
规模化电子商务:SueTuy公司的技术栈
SDENGRID每月如何处理400亿封电子邮件
流如何用JavaScript构建现代RSS阅读器
堆如何构建一个自动跟踪每个用户事件的分析平台