ケーススタディー

haku、Dockerの同期ファイル共有でRuby on Railsにデプロイを高速化

書籍概要: hakuは、大規模な耐久イベントや非営利団体向けに、登録や顧客エンゲージメントから資金調達、分析、eコマースまで、さまざまな機能を備えたオールインワンプラットフォームを提供しています。
産業: エンデュランスイベントと非営利団体
場所:フロリダ州マイアミ

ハイライト

  • 新しい環境のセットアップ時間を数日から数時間に短縮します。
  • Macユーザー向けの同期されたファイル共有により、ローカル応答時間が10倍に改善されます。
  • 環境の一貫性の向上、オンボーディングの迅速化、全体的な開発の強化。

概要

2013年、hakuはフロリダ州マイアミでカルロス・エスコバルとホセ・エスコバルの兄弟によって設立され、耐久レースと非営利の資金調達の運営に革命を起こすというビジョンを掲げています。エンデュランスイベント分野でスタートした最初のミッションは、イベント組織を簡素化し、イベント主催者と参加者の両方に関連する複雑さを管理するプラットフォームを提供することでした。

大規模なイベントのシームレスな管理が求められる耐久イベント管理業界において、hakuは、バンク・オブ・アメリカ・シカゴ・マラソン、海兵隊マラソン・オーガニゼーション、イーグルス自閉症財団など、最大30000参加者を受け入れる企業組織向けのソリューションに注力しました。各イベントの複雑さには、完璧な実行、並外れた参加者の関与、および厳格なロジスティック調整が必要でした。 最先端のテクノロジーを活用するというHakuのコミットメントは、業界標準を再定義するレベルのサービスと効率性を約束し、彼らを際立たせました。

旅の早い段階で、hakuは成長とイノベーションを阻む重大な障壁として、開発環境のセットアップという複雑で時間のかかるプロセスがあることに気付きました。 この社内の課題は、MacOS開発におけるファイル同期の課題と相まって、開発チームと耐久イベント管理における市場の需要への対応を遅らせる恐れがありました。

Haku氏の課題は、さまざまな運用環境で一貫したパフォーマンスを確保し、オンボーディングから終身リードまで質の高い開発者エクスペリエンスを確保するという、テクノロジー業界内のより広範な課題を反映しています。 解決策を模索した結果、DockerとMutagen(Docker拡張機能)がSynchronizedファイル共有としてDocker Desktopに統合されました。 これらのテクノロジーは、開発ライフサイクルの根幹をなす特定のスケーリングの問題に対処することを約束しました。 この決定は、hakuのストーリーにおける極めて重要な章の始まりであり、イノベーションへのコミットメントと、ビジョンを追求するためにテクノロジーを活用する能力が試されることになります。

問題を

MacOS開発のセットアップが遅い

hakuの開発環境の初期セットアップは、複雑に絡み合った依存関係に陥り、煩雑で時間のかかるものでした。 このセットアップは、新しい人材のオンボーディングとイノベーションのペースを維持するために不可欠でした。 Docker を導入する前は、セットアップに 1 日から 3 日かかり、環境固有の技術的な複雑さによって遅くなっていました。 耐久イベント管理のテクノロジーの最前線にいる企業にとって、この遅延は単なる不便以上のものでした。これは、俊敏性と迅速な開発の障壁でした。

各開発者のマシンでは、多数のソフトウェア依存関係を綿密に構成する必要がありました。 このプロセスは潜在的なエラーや不整合をはらんでおり、一般に「依存地獄」と呼ばれる状況に陥りました。 ソフトウェア開発の動的な性質は、これらの依存関係が継続的に進化し、セットアッププロセスがさらに複雑になることを意味していました。

hakuの開発チームは、Macコンピュータのみを使用しています。 これらのチームメンバーは、ローカルマシンと開発コンテナ間で更新されたコードやファイルを頻繁に交換するワークフローの重要な側面であるファイル同期に関する永続的な課題に直面していました。 シニアソフトウェアエンジニアのSteven Witte氏は、「当社のコードベースでは、Dockerのネイティブバインドマウント(基盤となるOSの制限)では不十分でした。 私たちには遅すぎました」 開発者が受けた影響の度合いは、大きなフラストレーションを引き起こしました。

これらの技術的な課題に気づいたことで、hakuは革新し、市場の需要に応えることができなくなり、変化が促進されました。 経営陣は、開発環境のセットアップを合理化し、生産性を向上させるソリューションの必要性を認識し、Dockerに焦点を移しました。 この戦略的決定は、チームが直面している特定の課題に対処し、新しいレベルの効率性とイノベーションを解き放つ準備ができていました。

ソリューション

Dockerの採用とファイル同期の改善により、効率性を向上

hakuのターニングポイントは、Dockerの戦略的導入でした。 このプラットフォームにより、さまざまな環境にわたるRuby on Rails技術スタックのセットアップと管理が合理化されました。 しかし、DockerがMutagenを買収し、Docker Desktopに統合したことで、特にhaku氏のチームのMacユーザーにとっては、技術力が飛躍的に向上しました。 「新しい組み込みの同期ファイルをDockerと共有することで、全体的にパフォーマンスが大幅に向上しました」と、エンジニアリング担当副社長のAdam Toro氏は述べています。

Dockerのコンテナ化テクノロジーは、開発、テスト、本番環境に一貫性のある分離された環境を提供し、以前のセットアップを悩ませていたばらつきを排除しました。 同期されたファイル共有をDocker Desktopに統合することは、ファイル同期の課題(まさにMacを使用する開発者が直面するパフォーマンスの低下の問題)の解決策であり、非常に役立ちました。 Witte氏はこの重要性を強調し、「Docker Desktopの同期ファイル共有機能は、私たちにとって簡単なことでした。 おかげで、地域開発の効率が大幅に向上しました」 ホスト環境とコンテナ環境間のファイル共有の速度と信頼性が劇的に向上したため、開発者が行った変更は、面倒な手動同期を必要とせずにアプリケーションに迅速に反映されるようになりました。

主な利点

アイコン 23 の主な利点

迅速な機械セットアップとオンボーディング時間の短縮

Dockerへの移行により、開発用の新しいマシンのセットアップに必要な時間が大幅に短縮されました。 「特に開発環境を Docker に移行したことで、新しいチームメンバーのオンボーディングが大幅に迅速になり、セットアップ時間が数日から数時間に短縮されました」と Toro 氏は語ります。

アイコン 25 の主な利点

技術スタックをアップグレードし、Ruby on Railsの複数バージョンを実行する

Dockerは、Hakuの技術スタックをアップグレードする上で極めて重要であり、異なるバージョンのRuby on Railsをより効率的に実行できるようにしました。 この機能により、最新バージョンのRuby on Railsで新しいアプリを開発し、macOSシステムの依存関係管理に関連する課題を回避できるようになりました。

アイコン 09 の主な利点

新サービスのシームレスな導入

Dockerの使用により、Hakuのプラットフォームに新しいサービスを導入するプロセスが合理化され、シームレスで労働集約的なエクスペリエンスが可能になりました。 この効率性は、Dockerを使用した開発環境のセットアップの容易さから得られ、一貫性を確保し、異なる開発者のマシン間で複数のバージョンのソフトウェアを管理することに関連する複雑さを軽減します。

アイコン 26 の主な利点

開発と出荷のスピード

Dockerを利用することで、Hakuはアップデートをより迅速に開発し、リリースできるようになりました。 開発、ステージング、および運用環境の間で一貫性のある環境により、デプロイ中の予期しないものが排除され、下位環境でテストされた内容が運用環境でも同じように実行されるようになります。 「Dockerは単なる開発ツールとしてではなく、開発サイクル全体を大幅に強化し、物事をより速く、より信頼性の高いものにするものと考えています。」

アイコン 24 の主な利点

環境間の一貫性

Dockerは、すべての依存関係、オペレーティングシステムのバージョン、およびライブラリがすべての環境で一貫していることを保証します。 この一貫性により、ローカルのmacOSマシンとLinuxの本番サーバー間など、環境の違いによって発生する不一致の問題が解決されます。

結果

ゴールライン:コンテナ化は技術進化のモデル

Docker Teamの導入はhaku社に変革をもたらし、最も顕著な影響は環境のセットアップ時間の大幅な短縮です。以前は数日かかっていた作業が数時間で完了するようになり、開発サイクルが大幅に短縮され、生産性が向上しました。 その利点は、セットアップの効率だけにとどまりません。アプリケーションのパフォーマンスが大幅に向上し、読み込み時間が短縮され、開発エクスペリエンスがよりシームレスになりました。 「同期されたファイル共有と Docker Desktop への統合により、ローカルでの応答時間が 10 倍に改善され、状況が変わりました」と Witte 氏は述べています。

さらに、これらのテクノロジーを統合することで、より機敏で応答性の高い開発アプローチが容易になりました。 必要に応じて環境をすばやくスピンアップまたは破棄できる機能により、hakuはより自由に実験し、迅速に反復することができ、技術的な俊敏性が重要な差別化要因である業界で時代を先取りすることができました。

hakuの事例は、的を絞った技術的介入が組織の業務効率とイノベーション能力に与える影響を例示しています。 Dockerを採用することで、hakuは特定の課題に対処し、社内プロセスを改善しました。 彼らは、耐久イベント管理業界での将来の成長と成功に向けて自らを位置づけました。

この取り組みは、継続的な技術進化と、開発プロセスを強化し、市場投入までの時間を短縮し、最終的にビジネスの成長を促進するためのツールの戦略的実装の重要性を強調しています。 Hakuの経験は、テクノロジーを活用して運用上の課題を克服し、ビジネス目標を達成する組織にとって刺激的な青写真です。

「コードベースのサイズが大きかったため、ネイティブのバインドマウントは、OSの制限によりDockerが制限されていましたが、うまくいきませんでした。 彼らは私たちには遅すぎました。 同期されたファイル共有とDocker Desktopへの統合により、ローカルでの応答時間が10倍に改善され、状況が変わりました。」

スティーブン・ウィッテ
シニアソフトウェアエンジニア、haku

「Docker Desktop の同期ファイル共有機能は、私たちにとって簡単なことでした。 おかげで、地域開発の効率が大幅に向上しました」

スティーブン・ウィッテ
シニアソフトウェアエンジニア、haku

「もちろんです。 Dockerの影響は、開発からデプロイまで包括的であり、一貫性とスピードを確保しています。」

スティーブン・ウィッテ
シニアソフトウェアエンジニア、haku

「Dockerは、開発チームの「依存関係地獄」を解消し、ワークフローを合理化し、新しい開発者のセットアップ時間を大幅に短縮しました。」

スティーブン・ウィッテ
シニアソフトウェアエンジニア、haku

「Dockerのおかげで、開発と出荷を迅速化できるようになりました。下位環境でテストしたものが本番環境でも同じ性能を発揮するという自信があります。」

スティーブン・ウィッテ
シニアソフトウェアエンジニア、haku

「Docker Pro との新しい組み込みの同期ファイル共有により、全体的にパフォーマンスが大幅に向上しました。」

アダム・トロ
haku エンジニアリング担当副社長

「特に開発環境において、Docker に移行したことで、新しいチーム メンバーのオンボーディングが大幅に短縮され、セットアップ時間が数日から数時間に短縮されました。」

アダム・トロ
haku エンジニアリング担当副社長

「Dockerは単なる開発ツールとしてではなく、開発サイクル全体を大幅に強化し、物事をより速く、より信頼性の高いものにするものと考えています。」

アダム・トロ
haku エンジニアリング担当副社長

「Dockerに移行したことで、技術スタックをはるかに少ない手間でアップグレードし、最新のソフトウェアバージョンを簡単に採用し、依存関係の競合を減らすことができました。」

デビッド・ロサノ
シニアDevOpsエンジニア、haku

「Dockerのおかげで、本番環境をローカルにミラーリングできるようになり、デプロイ中の予期せぬ事態がなくなり、Hakuのお客様へのサービス提供が強化されました。」

デビッド・ロサノ
シニアDevOpsエンジニア、haku

自分に合ったサブスクリプションを見つける

今すぐ専門家に連絡して、Dockerサブスクリプションのコラボレーション、セキュリティ、サポートの完璧なバランスを見つけてください。