ReplicatedがCloudflare Accessを使ってリモート開発する方法

この記事は、Replicatedの共同創設者であるMarc Campbell氏とGrant Miller氏によるオリジナルのゲスト投稿から引用したものです。両氏がCloudflare AccessとArgo Tunnelを利用して、クラウドベースのIaaSソリューションの開発に至った詳しい経緯については、Cloudflareのブログをご覧ください。

より多くのモノがインターネットにつながる世界になり、デプロイメント環境がより複雑になってきていることは間違いありません。すべてのソフトウェア開発がインターネットと連携して行われるようになるのは時間の問題だと言われるのも当然のことです。

2014年に創設されたReplicatedは、Kubernetes Off-The-Shelf(KOTS)ソフトウェアと呼ばれるエンタープライズソフトウェアを提供する新しいモデルを可能にすることに重点を置いたインフラストラクチャソフトウェア企業です。Replicatedの目標は、ユーザーがサードパーティソフトウェアを容易にインストールして運用できるようにすることで、データをマルチタレントSaaSプロバイダーに送信するのがプロバイダーのサービスを使用する唯一の方法ではないようにすることです。

「大きな運用上のオーバーヘッドなしに、簡単かつ安全にアプリケーションを利用できるようにすることは可能だと考えます」と両氏は言います。

課題

Kubernetes内で実行されるKOTSは、Kubernetesクラスターのサードパーティアプリケーションのライフサイクルを管理するため、Replicatedでは、開発環境はKubernetes上で実行する必要があります。プロダクトを構築して検証するには、開発者はクラスターにアクセスする必要があります。

Replicatedのエンジニアリングチームの規模が、本来なら独自のクラスターの構築と管理について気にする必要がない専任のフロントエンドエンジニアやほかのスペシャリストを含むまで大きくなったため、ローカル環境の管理が複雑となり負担が増しました。開発者の生産性を維持するために簡略化を図る必要がありました。

「エンジニアがローカル環境のトラブルシューティングに毎週何時間も費やしていました」と両氏は説明します。「(Kubernetesののエキスパートになることを期待されていなかった)フロントエンドエンジニアが問題を抱えると、バックエンドエンジニアに支援を求める必要がありました。1人分ではなく2人分の貴重な時間が奪われたのです。より良いソリューションが必要だと思いました」。

簡単に実装して管理できるソリューションを探しているときに、ReplicatedはCloudflareに目を向けたのです。当初、ReplicatedはCloudflareのDNSやDDoS対策を利用していましたが、後に、自社サービスの高い可用性と安全性を確保するためにCloudflareのほかのサービスも利用し始めるようになりました。

Replicatedは、クラウド内の開発環境を保護するのにCloudflareを利用しています

Replicatedは、Cloudflare AccessとArgo Tunnelを用いてアクセスおよび保護される、クラウドベースのインフラストラクチャコンポーネントを使用するソリューションを設計して、開発環境からInfrastructure as a Service(IaaS)に移行しました。つまり、開発環境全体がクラウド内にあります。

その結果、開発者がローカル環境のトラブルシューティングに費やす時間を削減し、チームのすべてのエンジニアがKubernetesに関する深い専門知識を持っていなくても、フルスタックの開発環境を維持することができるようになりました。

「このコンフィギュレーションには、従来のデプロイメントにはない長所がいくつかあります」と両氏は言います。「1つ目は、サーバーにはパブリックIPがないため、SSHを含めて、Googleロードバランサーにてポートを開いておく必要がありません。これらのサーバーと接続する唯一の方法はCloudflare Accessで保護されているArgo Tunnelを経由することです。Cloudflare Accessは、BeyondCorp方式の認証を提供するので、VPNを使用せずに世界中のどこからでも環境にアクセスできるようにします」。

Cloudflare Accessはセキュリティの不安を解消します

これで、Replicatedは、ユーザーがアクセスできるマシンを定義するポリシーを策定し、それをあらゆる場所に確実に適用できるようになりました。開発者は、(長命で失効手続きが面倒である)SSH証明書を管理する代わりに、ほかの場所で使用しているのと同じGoogle認証情報でログインできます。開発者が退職しても、即座に認証情報を失効させることができるので、まだ有効かもしれない公開鍵が放置される心配をしないで済みます。

Cloudflare Accessを使用することで、Replicatedの開発者は、(たとえば、新しいk8sバージョンを試すための)複数の環境を簡単に立ち上げることができるので、そのために最大かつ最強のノートパソコンを用意する必要がありません。また、SSHもサポートされている限り、すべてのバージョンがサポートされているので、ローカルOSとローカル環境(MacOS、Windows、Linux)を選ぶことができます。コードは開発者のノートパソコンにはないため、喫茶店といったような安全でない場所にコードが持ち出されることはありません。ノートパソコンを手放すことができるということは、コードベースが侵害される危険性もなくなったことを意味するので、このことは、セキュリティ上の大きなメリットになります。

「Cloudflare AccessとArgo Tunnelの助けを借りて、すべての開発環境が協調の場になりました」と両氏は言います。「2人のエンジニアが同じ部屋にいない場合、これは素晴らしいことです。また、開発環境への執着が強くなりすぎることもなくなります。自分のサーバーが原因不明で正常に動作しなくなった場合、何時間もかけてトラブルシューティングする代わりに、サーバーを削除して新しいクリーンなものを入手できます」。

ReplicatedがCloudflare Accessを使ってリモート開発する方法
関連製品
主な成果
  • 開発者は、VPNなしで世界中のどこからでも開発ツールにアクセスできます
  • Replicatedの開発環境は完全にIaaSで実行されるようになりました
  • 職場のあらゆるアプリケーションにアクセスする際に、従業員には同じシームレスなログイン体験が提供されます

“Cloudflare Accessは、BeyondCorp方式の認証を提供するので、VPNを使用せずに世界中のどこからでも環境にアクセスできるようにします。”

Marc Campbell and Grant Miller
共同創設者