FiveStars がデータ エンジニアリング スタックを再設計した方法

インフラストラクチャを自分で構築して管理することで、より多くの制御が可能になりますが、すべてを制御下に置く努力は、他の分野のイノベーションからリソースを奪う可能性があります。 中小企業向けのマーケティング プラットフォームである FiveStars の CTO である Matt Doka 氏は、このトレードオフを好まず、できることは何でも外部委託するようにしています。

それは、彼が自分のサーバーを運用することに消極的であることに表れていますが、それはデータ エンジニアリングに対する彼の態度に表れています。日常的なメンテナンス作業の多くを自動化または外部委託し、内部リソースをデータ分析に集中させるための 5 年間の旅の終わりに近づいています。 .

FiveStars は中小企業に、顧客の電話番号と支払いカードにリンクできるオンライン ロイヤルティ カード サービスを提供しています。 10,000 を超える中小企業がそのサービスを利用しており、Doka は約 7,000 万人のアメリカ人が同社が管理するロイヤルティ プログラムを利用していると推定しています。 最近では、クライアントの約 20% が採用するオプションである支払い処理に移行し、独自の PCI 準拠の支払い端末を提供しています。

これらすべてのやり取りを記録すると、膨大な量のデータが生成されますが、それだけではありません。 FiveStars は、端末をドロップオフするだけで、顧客が機能しなくなった場合にサポートを求める必要がある従来の支払い処理業者をワンアップするために、テレメトリー システムを端末に組み込み、接続状態、バッテリー レベル、およびアプリケーション パフォーマンス情報を定期的に報告します。

「私たちの負荷の大部分は、トランザクション、ポイント、またはクレジット カード自体ではありません」と彼は言います。 「誰かが支払いをしたり、ポイントを獲得したりしたいときに、クラス最高のエクスペリエンスであることを確認するのは、膨大な量のデバイス テレメトリ データです。」

データからそれを把握するには、多くの分析が必要です。10 人のデータ チームは、データ インフラストラクチャを維持するだけですべてを食いつぶしてしまうため、時間が足りませんでした。

FiveStars のデータ インフラストラクチャの最初のバージョンを構築したデータ チームは、IT 部門ではなく、営業およびマーケティング部門からスタートしました。 この歴史的な事故は、彼らがデータの使い方をよく知っていても、インフラストラクチャ管理の経験がほとんどないことを意味していたと Doka は言います。

Doka がチームを引き継いだとき、Doka は、サーバー自動化コード、データベース クエリ、分析など、すべてが手作業で書かれていることに気付きました。 「彼らは bash スクリプトを書きました!」 ドカは言います。 「10 年前でさえ、bash スクリプトを抽象化できるシステムがありました。」

このシステムは脆弱で、高度に手作業であり、多くの部族の知識に基づいていました。 正味の効果は、データ アナリストがほとんどの時間をシステムの稼働を維持することに費やしたことです。 「彼らは、新しいデータの洞察を分析に発展させるのに苦労していました」と彼は言います。

2019 年にさかのぼると、このような問題に対する全員の答えは、Python で記述および制御されるデータ エンジニアリング ワークフローを管理するためのオープンソース プラットフォームである Apache Airflow を使用することでした。 これはもともと、Doka のチームがまだ手作業で行っていたことを正確に実行するために、AirBnB で開発されました。

Doka は、FiveStars のリソース集約型自作システムを置き換えるために、ホストされたバージョンの Airflow を選択しました。 「彼らはデータ アナリストやデータ エンジニアであり、経験豊富な SRE ではないため、独自のインフラストラクチャをホストするビジネスから撤退させたかったのです」と彼は言います。 「それは私たちの時間の有効な使い方でもありません。」

Airflow を採用したことで、Doka はサーバー以外のことを心配する必要がなくなりました。 「標準化と実行の基本に大きな改善がありました」と彼は言います。 「あなたは、私たちが独自に発明または再発明したこれらすべてのベスト プラクティスを継承するだけです。」

しかし、彼は嘆きます。 そして、彼の特に不満は、独自のドキュメントのベスト プラクティスを構築する必要があるということでした。

そのため、Airflow への移行を開始してからわずか 1 年で、Doka はデータ エンジニアリング プロセスをより多く自動化し、多くの時間を費やしていたビジネス クリティカルではない意思決定を標準化するのに役立つ、より良い方法を探していることに気付きました。

彼は網を広げましたが、彼が見つけたツールの多くは問題の一部にしか対処できませんでした。

「DBT は、たとえば、単一の Snowflake インスタンス内でデータを変更する方法に焦点を当てていました」と彼は言います。 「これは非常にうまく機能しますが、すべてのソースから Snowflake にデータを取得するにはどうすればよいでしょうか?」 そのために、「Fivetran のように、標準化された方法ですべてのデータ移動を抽象化できるプラットフォームがいくつかありましたが、それらは実際に処理する言語を提供しませんでした。」

他のいくつかのオプションを検討した後、Doka は最終的に Ascend.io に落ち着きました。 「SQL クエリや Python コードを記述する標準的な方法があり、系統とトポロジを生成するという事実が気に入りました」と彼は言います。 「システムは、すべてのデータがどこから来たのかを自動的に知ることができます。 どのようにしてこの最終分析にたどり着いたのか」

これにより、サーバーを実行するという課題が抽象化されるだけでなく、仕事のやり方を決定するという課題も取り除かれると彼は言います。

「これにより、データ エンジニアやデータ アナリストの精神的負担が大幅に軽減されます」と彼は言います。 「彼らは、答えようとしている質問と実行しようとしている分析に完全に集中することができます。」

アナリストが自分の仕事に集中しやすくなるだけでなく、お互いの仕事をフォローするのも簡単になる、と彼は付け加えます。

「設計によって組み込まれたこのすべてのドキュメントがあり、各アナリストは、それについて考えることなく、どのようにして現在の場所にたどり着いたかについての明確な痕跡を残しました」と彼は言います。 「そのため、新しい人がプロジェクトに参加すると、何が起こっているのかを簡単に確認できます。」

Ascend は、別の Apache プロジェクトである Spark を分析エンジンとして使用し、独自の Python API である PySpark を備えています。

最初のいくつかの主要なユースケースを Airflow から移行するのに 1 か月もかかりませんでした。 「電源を入れるのに 1 時間、Postgres と一部のデータ ソースを接続するのに 2 分かかりました」と Doka 氏は言います。 「それはとても速かったです。」

ワークフローの一部を複製することは、基になる SQL を Airflow から Ascend にコピーするのと同じくらい簡単でした。 「パリティで機能するようになったら、 [old] 流れ落ちて [new] 必要な場所に出力コネクタを配置します」と彼は言います。

Ascend で最も役に立ったのは、コードの変更が非常に迅速に実行されるため、チームはリアルタイムで開発および修正できることでした。 「システムは、ワークフローのどこが変更されたかどうかを認識することができ、何も変更されていない場合はすべてを再実行しないため、コンピューティングを無駄にすることはありません」と彼は言います。 「それは本当に素晴らしいスピードアップでした。」

ただし、一部にはまだ一晩待つ必要がありました。 「午前 2 時から午前 5 時までしかダウンロードできないアップストリーム サービスがあるため、そのコードを適切に取得して、1 日の適切な時間にダウンロードしていることを確認するのは苦労しましたが、必ずしも Ascend のせいではありませんでした。」彼は言い​​ます。

文化の変化を促進する

Ascend への移行は、大きな再訓練や雇用の必要性にもつながりませんでした。 「すべてが抽象化されたので、構築はほぼゼロです」と Doka 氏は言います。現在、3 人が新しいシステム上でジョブを実行し、約 6 人のアナリストがレポートを作成し、データから洞察を生成しています。

「インフラストラクチャの作業のほとんどがなくなりました」と彼は付け加えます。 「変換とクレンジングという ETL 作業はまだ残っていますが、今では標準化された方法で行われています。 ただし、理解するのに時間がかかった 1 つのことは、Airflow で使用されるバニラ Python から Spark Python に移行したことです。 手続き型のコードを書くのとは違うと感じます。」 これは難解な知識ではなく、FiveStars チームがこれまで使用したことがなく、慣れる必要のあるものです。

Doka のデータ エンジニアリング ジャーニーで繰り返されるテーマは、構築をやめて代わりに購入できる新しいものを探すことです。

「インフラストラクチャの一部を社内で構築、所有、実行すると、より高いレベルの制御と知識が得られます」と彼は言います。 「しかし、そのために多くの時間を犠牲にすることが多く、多くの場合、それを開発するための最高の専門知識を持っていません。」

仕事を減らすことの利点を同僚に納得させるのは簡単ではありませんでした。 「私は両方の時代でチームと格闘しました」と彼は言います。 「それは常に、より抽象化されたシステムへの移行の一部です。」

Doka は、投資家またはアドバイザーとして複数の新興企業と仕事をしてきたと述べ、技術志向の創業者には、インフラストラクチャを自分で実行するのを避け、クラス最高のベンダーを選んでホストしてくれるように常に伝えています。 「また、それらを使用することで、ベスト プラクティスをより効果的に学ぶことができます」と彼は言います。 彼は、企業の IT リーダーに対して、社内チームとやり取りする際に同じアドバイスを提供しています。 「私が CTO として 11 年間に渡って見た最も一貫したことは、何らかの理由で重力が人々を「ここに構築する」ように引っ張るということです」と彼は言います。 「私はそれを決して理解していませんでした。」 それは、継続的に抵抗しなければならないものであり、コア ビジネスの一部ではないものを維持するために時間を浪費することになります。

Leave a Comment

Your email address will not be published. Required fields are marked *