- 德赢体育app
- 提示和技巧
在大流行期间,大多数公司迅速适应并转向在家工作的模式,因为为了抗击COVID-19的传播,突然有必要实施封锁限制。
你写了代码。你甚至测试过它。现在,你急着去推它。但你如何验证它是否真的有效呢?在Taboola中,我们在产品中测试代码!在本文中,您将看到每个软件工程师(即使是在公司的第一天)如何在生产中进行测试——这都得益于专门的Jenkins管道工作和许多度量标准。在生产中进行测试有多难?很困难的。你可能已经知道了。每个人都害怕需要在生产中测试变更的时刻。 The main reason is that not everyone has the required IT skills. Moreover, people have to repeat error-prone, manual tasks – which might result in downtime and revenue loss. For our release engineers, it was also an unmanageable headache – a “thundering herd” of developers eager to test their features in production. […]
Taboola负责每天数十亿的推荐,我们正在尽我们所能让这些推荐符合每个观众的个人品味和兴趣。我们通过更新基于深度学习的模型、增加计算资源、改进探索技术等等来实现这一目标。然而,所有这些事情都有一个共同点——我们需要了解更改是否更好,并且我们需要在允许多个测试并行运行的同时这样做。我们可以把许多KPI的新算法修改系统延迟,建议或用户交互的多样性等等,但在一天结束的时候,最重要的一个指标为我们在Taboola RPM(收入/机,或每1000建议收入),这表明我们为双方客户创造了多少金钱和价值——[…]
这篇文章不是关于K8S,也不是关于AWS。它不是关于容器——也不是关于管理大型应用程序的一些新的“酷”技术。相反,这篇文章是关于我们如何将一个高度复杂的Java服务,一个每天都在积极开发的重型服务,部署到我们遍布全球的7个数据中心的1000多个服务器上。那么问题是什么呢?获取服务器列表,让版本部署并使用像ansible这样的自动化工具运行还不够吗?好吧,这并不像看起来那么简单。该服务提供Taboola的建议,每秒响应数十万个请求。服务必须快——快到它的p95应该低于每请求500毫秒。这意味着我们根本不能有任何停机时间,甚至负担不起更慢的[…]
故事从参数开始。每个成熟的软件公司都需要一个度量系统来监控资源的利用。在某些时候,我们注意到spark执行器及其cpu的利用率不足。通常,为了通过共享提高CPU利用率,使用动态分配而不是静态资源分配。在这篇博文中,我们将定义问题,分享我们的工作目标,并强调许多与动态分配使用相关的技术特性。在Taboola,我们使用Grafana、Prometheus以及基于kafka的管道来收集来自世界各地多个数据中心的参数。大规模度量是一个非常有趣的话题,它本身涉及到多个问题,我们之前在博客和meetup演示中已经讨论过这些问题。我们的数据平台包括几个计算数据投影的服务,重要的是,这些服务都是具有长寿命spark上下文的长时间运行的流程。当被触发时,这些服务会周期性地处理新的数据块,[…]
在Taboola,我们处理规模,巨大的规模。一个小问题可能在几小时内变成一场灾难。用新的服务重写和替换现有的服务是一个真正的挑战,而且在不造成停机的情况下这样做是可怕的。不能读取日志。日志是巨大的,笨重的,跨越许多机器。把它们结合起来分析需要几个小时。在这篇文章中,我将与你分享三个我认为是观察新代码必须的Grafana图表。我打断生产了吗?您编写了闪亮的代码,(甚至)对其进行了测试,但是,如何验证没有破坏生产环境呢?幸运的是,我们用的是Grafana,这确实会带来很大的不同。 My plan was to compare old code vs. new in Grafana, but, where to start? You have Grafana… let’s use it! Frankly, I […]
在Taboola,我们每天都在改进基于深度学习的内容推荐模型。我们每天使用它向数亿用户推荐个性化的新闻文章和广告,所以自然我们必须坚持最先进的深度学习建模方法。但我们的工作还不止于此——分析我们的结果也是必须的,然后我们有时会回到数据科学的根源,应用一些非常基本的技术。让我们把这个问题说出来。我们正在研究一个行为相当奇怪的深层模型:它在看似随机的广告主群体中战胜了我们的默认模型,而在另一个群体中却失败了。这种行为在日常生活中是稳定的,所以看起来可能有一些固有的广告商品质(我们称之为——广告功能)要为此负责。您可以在下面看到4个活动的典型模型行为。所以我们假设[…]
有时我们需要快速测试紧急功能。当没有足够的时间为该特性运行完整的测试计划时,它必须在一个非常短的时间范围内。这可能发生在不同的场合。当QA中没有足够的人力来覆盖一个特性的完整测试计划时。在发布截止日期之前,一个重要客户提出了新的特殊要求。在开发人员部署新产品版本之前,产品管理需要进行新的调整。当客户、团队领导或项目经理想要一个新特性时,也可能发生这种情况,而这个特性昨天就应该完成了!它也可以积极地发生。每隔一段时间运行一次大规模的后期测试,或者花有限的时间来寻找漏洞。我们Taboola视频解决方案部门称之为“周四搜索漏洞”。 This unplanned development might end up launching a “half baked” product. It […]
在Taboola,我们的目标是预测用户是否会点击我们呈现给他们的广告。我们的模型使用了各种各样的功能,但最有趣的往往是与用户的历史相关的。了解如何很好地使用这些特性,可以对模型的个性化功能产生巨大的影响,因为它们拥有特定于用户的知识。不同用户的用户历史特征差异很大;例如,一个流行的特性是用户类别——用户以前阅读过的主题。此类列表的示例可能如下所示:{" sports ", " business ", " news "}。这些列表中的每个值都是分类的,并且它们有多个条目,因此我们将它们命名为多分类特性。多类别列表可以为每个用户提供任意数量的值——这意味着我们的模型必须同时处理非常长的列表和完全空的列表(对于新用户)。提供长度未知的输入[…]
同步时钟:有人应该受到指责……我怪Ariel。他看了看不同办公室设置时区的5个模拟挂钟,说:“我讨厌这个。”我想知道为什么。是的,所有的秒针都有很大的不同,分针也都有轻微的偏差。我一直在想我的下一个电子项目会是什么。“这能有多难呢?”通过NTP (Network time Protocol,网络时间协议)来实现正确和准确的时间不应该有两个时钟相差超过100毫秒,它们应该在同一时刻运行。电池操作。大约一年的电池更换。自动夏令时调整记住时钟的位置/状态在电源损耗便宜-少于20美元的部分,不包括时钟和电池。 Initial Research Started with […]