Data Engineer oder sterben: eine einzelne Entwicklergeschichte

Anfang Dezember machte ich einen fatalen Fehler, traf eine entscheidende Entscheidung in meinem Leben als Entwickler und wechselte zum Data Engineering (DE) -Team innerhalb des Unternehmens. In dem Artikel werde ich einige der Beobachtungen teilen, die ich während meiner zweimonatigen Arbeit im DE-Team gemacht habe.




Warum Data Engineering?


Meine Reise nach DE begann im Sommer 2019, als wir Xnegfuhr zur Distributed Computing School und dort erreichte ich die Erleuchtung. Ich begann mich für das Thema zu interessieren, Algorithmen zu studieren und sogar darüber zu schreiben. Dann dachte ich über das Anwendungsgebiet nach und stellte schnell fest, dass die praktische Anwendung in unserem Unternehmen verteilte Datenbanken sind.

Was macht unser Team im Allgemeinen? Wir wollen, wie alle modischen Jungen und Mädchen, ein datengetriebenes Unternehmen werden. Um dies zu ermöglichen, müssen wir zumindest ein zuverlässiges Repository erstellen, auf dem alle vom Unternehmen benötigten Berichte erstellt werden können. Das Wichtigste ist jedoch, dass den Daten in diesem Speicher vertraut werden muss. Darüber hinaus ist es nach diesen Daten erforderlich, den Zustand des Systems zum Zeitpunkt t wiederherstellen zu können. All dies wird durch die Tatsache erschwert, dass wir in einer schönen neuen Welt von Mikrodiensten leben, und diese Ideologie impliziert, dass jeder Dienst seine kleine Funktionalität implementiert, seine Datenbank sein eigenes Geschäft ist und sie mindestens jeden Tag löschen kann, aber gleichzeitig müssen wir In der Lage sein, den Status des Dienstes zu empfangen und zu verarbeiten.

Möchten Sie datengesteuert sein, werden Sie zuerst ereignisgesteuert


Nicht so einfach. Ereignisse sind unterschiedlich, und der Entwickler und der Datumsingenieur sehen sie unterschiedlich. Das Gespräch über Ereignisse ist das Thema eines separaten Artikels, daher werde ich hier nicht darauf eingehen. Außerdem hat schon jemand Martin Fowler einen solchen Artikel geschrieben , ich werde ihm seine Lorbeeren nicht nehmen, ihn auch berühmt werden lassen.

Im Allgemeinen gibt es etwas zu denken und die Gegend ist attraktiv. Es ist einfach so passiert, dass Data Engineer in unserem Unternehmen einen viel größeren Verantwortungsbereich hat als nur eine Person, die ETL / ELT-Pipelines schreibt (wenn Sie nicht wissen, was diese Abkürzungen bedeuten, kommen Sie zum Meeting . Als kontextbezogene Anzeige ).

Wir beschäftigen uns mit der Architektur des Aufbaus eines Lagers und der Modellierung von Daten sowie mit Fragen der Datensicherheit und natürlich der Pipelines selbst. Und wir müssen sicherstellen, dass die Produktentwickler einerseits nicht sehr belastend mit unserer Präsenz waren und durch unsere Anforderungen so wenig wie möglich abgelenkt werden mussten, wenn sie neue Funktionen im System sahen, und andererseits müssen wir sie bequem aufbewahren Daten für Analysten und BI-Teams. So leben wir.

Schwierigkeiten beim Übergang von der Entwicklung


Am ersten Tag meiner Arbeit stieß ich auf eine Reihe von Schwierigkeiten, die ich mit Ihnen teilen möchte.

1. Das erste, was ich sah, war das Fehlen von Tuning und einige Übungen. Nehmen Sie zum Beispiel die Codeabdeckung mit Tests. In der Entwicklung haben wir Hunderte von Frameworks zum Testen. Bei der Arbeit mit Daten ist alles komplizierter. Ja, wir können ETL-Pipelines anhand von Testdaten testen, aber wir müssen dies alles mit unseren eigenen Händen tun und nach Lösungen für jeden speziellen Fall suchen. Infolgedessen ist die Testabdeckung viel schlechter. Glücklicherweise gibt es eine weitere Ebene von Rückmeldungen in Form von Überwachung und Protokollen, aber dies erfordert bereits, dass wir eher reagieren als proaktiv, was uns wütend macht .

2. Die Welt aus der Position von DE ist überhaupt nicht so, wie es einem gewöhnlichen Produktentwickler erscheint (natürlich ist der Leser nicht so und er weiß bereits alles, aber ich wusste es nicht und jetzt harkt er). Als Entwickler habe ich meinen Microservice gesehen, die Daten in eine [Datenbank Ihrer Wahl] gestellt, meinen Status dort gespeichert, etwas anhand der IDs erhalten und es ist normal. Der Service dreht sich, die Bestellungen sind trübe, das ist alles. Sie bitten mich in einem anderen Dienst, meinen Zustand zu fummeln. Nun, ich werde ein Ereignis in ein RabbitMQ werfen und das war's. Und hier sind wir noch einmal auf das oben beschriebene Thema der Ereignisse zurückgekommen.

Was der Service für die operative Arbeit benötigt, passt nicht zu uns für historische Daten, die Frage der Bearbeitung von Serviceverträgen und der engen Zusammenarbeit mit Entwicklungsteams beginnt. Sie können sich nicht einmal vorstellen, wie viele Stunden wir gebraucht haben, um zuzustimmen: Was für eine Veranstaltung ist er in unserem Unternehmen?

3. Sie müssen mit Ihrem Kopf denken. Nein, ich meine nicht, dass die Entwickler nicht denken (obwohl ich für alle sprechen soll), es ist nur so, dass Sie in der Produktentwicklung oft bereits eine Art Architektur haben und verschiedene Rückstände abbauen. Dies erfordert natürlich Planung und Reflexion, aber dies ist eine Streaming-Arbeit, bei der das Hauptproblem einfach gut und von hoher Qualität ist.

Dies ist hier nicht so einfach, da die Übertragung verschiedener Systemkomponenten von einem warmen und komfortablen Monolithen in die Welt des wilden Mikroservice-Dschungels nicht so einfach ist. Wenn der Dienst mit Ereignissen übersät ist, müssen Sie die Logik zum Füllen des Speichers überarbeiten, da die Daten jetzt anders aussehen. Hier muss man viel und gründlich nachdenken, nicht als Entwickler, sondern als Dateningenieur. Es ist eine normale Geschichte, wenn Sie Tage mit einem Notizbuch und einem Stift oder mit einem Marker in der Nähe der Tafel verbringen. Es ist sehr schwierig, ich denke nicht gern, ich liebe Feigenfeigen und in der Produktion.

4. Das vielleicht wichtigste sind Informationen. Was machen wir, wenn uns Wissen fehlt? Wer hat Stackoverflow gesagt? Nehmen Sie diese Person aus dem Raum. Wir werden Dokumente und Bücher zu diesem Thema lesen, und es gibt immer noch eine Community, die Foren, Meetings und Konferenzen organisiert. Die Dokumentation ist cool, aber leider unvollständig. Wir verwenden Cosmos DB in einer Reihe von Projekten. Viel Glück beim Lesen der Dokumentation zu diesem Produkt. Bücher sind die einzige Rettung, zum Glück existieren sie und können gefunden werden, sie haben viel Grundwissen und man muss viel und ständig lesen. Aber die Gemeinde ist in Schwierigkeiten.

In unserer Richtung ist es jetzt schwierig, mindestens eine angemessene Konferenz oder Besprechung zu finden. Natürlich gibt es viele Mitaps mit dem Wort Daten, aber seltsame Abkürzungen wie ML oder AI erscheinen normalerweise neben diesem Wort. Das ist also nichts für uns, wir sprechen darüber, wie man Lagereinrichtungen baut und nicht wie man mit Neuronen verschmiert. Diese Hipster füllten alles. Infolgedessen sind wir ohne Gemeinschaft. Übrigens, wenn Sie ein Data Engineer sind und gute Communities kennen, schreiben Sie bitte in die Kommentare.

Schlussfolgerungen und Ankündigung des Mitap


Was haben wir am Ende? Meine erste Erfahrung zeigt mir, dass es für jeden Entwickler nützlich sein wird, sich in die Lage eines Ingenieurs zu versetzen. Sie können die Dinge nur anders betrachten und sich nicht wundern, wenn unsere Augen bluten, wenn Sie sehen, wie Entwickler mit ihren Daten umgehen. Wenn Ihre Firma DE hat, unterhalten Sie sich einfach mit diesen Leuten und lernen Sie viel (über sich selbst).

Und schließlich die Ankündigung. Da es tagsüber unmöglich ist, Mitaps zu unserem Thema zu finden, haben wir uns entschlossen, unsere eigenen zu erstellen. Und was, was sind wir schlimmer? Zum Glück haben wir eine erstaunlicheSchvepsssund unsere Freunde vom New Professions Lab , die wie wir der Meinung sind, dass Datumsingenieure zu Unrecht der Aufmerksamkeit beraubt werden.

Ich nutze diese Gelegenheit, um alle Beteiligten zu unserem ersten Community-Meeting mit dem vielversprechenden Namen „DE or DIE“ einzuladen, das am 27.02.2020 im Büro von Dodo Pizza stattfinden wird. Details zum TimePad .

Wenn überhaupt, werde ich da sein, Sie können mir persönlich sagen, wie falsch ich in Bezug auf die Entwickler bin.

All Articles