数据工程师或死亡:一位开发人员的故事

XNUMX月初,我犯了一个致命的错误,成为了我作为一名开发人员的人生转折点,转到了公司内部的数据工程(DE)团队。 在这篇文章中,我将分享我在 DE 团队工作两个月期间的一些观察。

数据工程师或死亡:一位开发人员的故事

为什么选择数据工程?

我的 DE 之旅始于 2019 年夏天,当时我们 克内格 让我们去 分布式计算学院,在那里我得到了启蒙。 我开始对这个话题产生兴趣,研究算法,甚至关于它们 ,然后思考了一下应用范围,很快发现我们公司实际应用的是分布式数据库。

我们的团队具体是做什么的? 像所有时尚男孩和女孩一样,我们希望成为一家数据驱动的公司。 为了实现这一点,我们至少需要建立一个可靠的存储设施,可用于构建公司所需的任何报告。 但最重要的是这个存储中的数据必须是可信的。 而且,使用这些数据,您需要能够恢复系统在时间 t 的状态。 所有这一切都因为我们生活在一个微服务的美丽新世界而变得复杂,这种意识形态意味着每个服务都实现自己的小功能,它的数据库是它自己的业务,它至少每天都可以删除它,但在同时我们必须能够接收并处理服务的状态。

如果你想成为数据驱动,首先成为事件驱动

没那么简单。 事件不同,开发人员和数据工程师对它们的看法也不同。 谈论事件是另一篇文章的主题,所以这里不再赘述。 另外,这样的文章已经 написал 某个马丁·福勒,我不会夺走他的桂冠,让他也成名。

总的来说,有很多值得思考的地方,这就是这个领域有吸引力的原因。 恰好在我们公司,数据工程师的职责范围比仅仅编写 ETL/ELT 管道的人要广泛得多(如果你不知道这些缩写是什么意思,来 聚会. 作为上下文广告).

当然,我们处理存储架构、数据建模、与数据安全相关的问题,以及管道本身。 我们还需要确保,一方面,我们的存在不会给产品开发人员带来很大的负担,他们在向系统中添加新功能时,必须尽可能少地被我们的要求分散注意力,另一方面,我们需要为分析师和 BI 团队提供方便的存储数据。 这就是我们的生活方式。

从开发转型的困难

第一天上班,我遇到了很多困难,想和大家分享。

1.我首先看到的是没有图灵和一些练习。 以测试的代码覆盖率为例。 我们正在开发数百个测试框架。 当处理数据时,一切都变得更加复杂。 是的,我们可以在测试数据上测试 ETL 管道,但我们必须手动完成这一切,并为每个特定案例寻找解决方案。 结果,测试覆盖率更差。 幸运的是,还有另一层以监控和日志形式存在的反馈,但这已经要求我们做出被动反应而不是主动反应,这是令人愤怒和不安的。

2. DE 视角下的世界根本不是普通产品开发人员所看到的那样(当然,读者不是那样的,他已经知道了一切,但我不知道,现在我把它搞砸了)。 作为一名开发人员,我创建自己的微服务,将数据放入[您选择的数据库]中,在那里保存我的状态,通过 ID 获取某些内容,这样就可以了。 服务很慢,订单很混乱,仅此而已。 他们要求我在另一个服务中查找我的状态,所以我将一个事件放入某个 RabbitMQ 中,仅此而已。 在这里我们再次回到上述事件的问题。

运营工作所需的服务并不适合我们的历史数据,因此重新制定服务合同并与开发团队密切合作的问题就开始了。 你甚至无法想象我们花了多少个小时才达成共识:他在我们公司是一个什么样的事件驱动型人。

3.你需要用头脑思考。 不,我并不是说开发人员不思考(尽管我是谁,可以代表所有人发言),只是在产品开发中,很多时候你已经有了某种架构,并且你从待办事项中削减了不同的洗牌。 当然,这需要计划和思考,但这是流式工作,主要问题就是如何做好、高效地完成它。

对我们来说,这并不那么简单,因为将各种系统组件从温暖舒适的整体转移到野生微服务丛林的世界并不那么简单。 当服务开始喷出事件时,您需要重新考虑填充存储的逻辑,因为数据现在看起来不同。 这是你需要深入思考的地方,不再是作为开发人员,而是作为数据工程师。 当你花几天时间拿着笔记本和笔或者在黑板上用记号笔时,这是一个很正常的故事。 这很困难,我不喜欢思考,我也喜欢制作。

4. 也许最重要的是信息。 当我们缺乏知识时我们该怎么办? 谁说stackoverflow? 把这个人带出房间。 我们阅读有关该主题的文档和书籍,还有一个组织论坛、聚会和会议的社区。 文档很棒,但不幸的是,它可能不完整。 我们在许多项目中使用 Cosmos DB。 祝您阅读该产品的文档好运。 书籍是唯一的救赎;幸运的是,它们存在并且可以找到,它们包含很多基础知识,你必须大量且不断地阅读。 但问题出在社区。

现在,在我们地区很难找到至少一场足够的会议或聚会。 不,当然,有很多聚会都提到“数据”这个词,但这个词旁边通常有一些奇怪的缩写,比如 ML 或 AI。 所以,这不适合我们,我们谈论的是如何建造存储设施,而不是如何用神经元涂抹我们自己。 这些时髦人士已经接管了一切。 结果,我们没有社区。 顺便说一句,如果您是数据工程师并且了解好的社区,请在评论中写下。

聚会的结论和公告

我们最终会得到什么? 我的第一次经验告诉我,站在数据工程师的角度思考对每个开发人员来说都是有用的。 它只是让我们能够以不同的方式看待事物,当我们看到开发人员如何处理他们的数据时,当我们的眼睛充血时,我们不会感到惊讶。 所以,如果你的公司里有一个DE,只要和这些人交谈,你就会学到很多新东西(关于你自己)。

最后是公告。 由于白天很难找到有关我们主题的聚会,因此我们决定自己举办聚会。 为什么我们更糟糕? 幸运的是我们有一个惊人的 施韦普斯 和我们的朋友 新职业实验室,他们和我们一样,认为数据工程师被不公平地剥夺了关注。

借此机会,我邀请所有关心的人来参加我们的第一次社区聚会,这次聚会的标题是“DE or DIE”,该聚会将于 27.02.2020 年 XNUMX 月 XNUMX 日在 Dodo Pizza 办公室举行。 详情请见 时板.

如果发生任何事情,我都会在那里,你可以当面告诉我我对开发人员的看法有多么错误。

来源: habr.com

添加评论