ストレスフリーなデプロイを目指して
サンディエゴ市では CircleCI を導入してデータ公開を自動化しています
CircleCI を選んだ理由
2016 年中頃、サンディエゴ市では DataSD をローンチしました。サンディエゴ市民に市の運営や財源、認可、許可証などのデータをダウンロード可能な形で公開する、Drupal ベースのポータル (ホストは民間業者が担当) です。 翌年 2 月、市はこのポータルを独自の Jekyll ベースのポータルに置き換えました。 現在は、サンディエゴ市チーフ データ オフィサーの Maksim Pecherskiy 氏がポータルへの変更のデプロイを担当しています。デプロイの頻度は 1 日に複数回ですが、CircleCI を活用することで、インフラを最小限に抑えたまま対応できているといいます。 Pecherskiy 氏は次のように語ります。「CircleCI を採用したおかげで、先行投資の額を抑えながらシステムの自動化を実現できました。 手動でデプロイするとミスが起こりやすく、ストレスも溜まってしまうため、それに比べてはるかに快適だと実感しています」。
CircleCI 導入前の課題
ポータルの Web サイト (data.sandiego.gov) は 1 日に複数回更新されています。 データの更新時には、まずメタデータの変更をポータルにコミットしてから、新しいコードを本番環境にデプロイしなければなりません。 新しいデータセットやブログ記事、データ ストーリーも、同じように日々作成され続けています。 こうした変更を手動で反映しようとすると、時間がいくらあっても足りません。 「私たちのチームは人員が限られているので、インフラはできるだけ小規模に抑える必要がありました。 マシンに適したことはマシンに任せ、私たちは私たちにしかできないことに専念しようと決めました」(Pecherskiy 氏)
ソリューション
そこで Pecherskiy 氏は、CircleCI を活用してポータルへのデプロイを自動化しました。 コミット先のブランチに応じて、コードがプロセスの次のステップに対応したサイトにデプロイされる仕組みを構築したのです。 具体的には、まず担当チームがワークフロー ツールの Airflow を使用して、DataSD に対するデータ更新を管理。CircleCI がそれらのデータを Netlify のステージング サイトに展開し、受け入れテストを実施しています。 「本番ブランチにマージすれば、後は CircleCI がデータを取得しデプロイしてくれます」と、Pecherskiy 氏。 「CircleCI が本番環境へのデプロイを進めてくれている間、私たちは会議を開いたり、リリースするデータを探したり、解析をしたりと、人間の得意な仕事を進めています。 CircleCI と継続的インテグレーションを導入したことで、マシンが得意な仕事はマシンに任せられるようになりました」(Pecherskiy 氏)
「CircleCI はストレスなく利用できます。」
Maksim Pecherskiy | チーフ データ オフィサー | サンディエゴ市
DataSD について
DataSD は、サンディエゴ市の公式ポータルです。 公共安全、道路の補修、公共施設、条例の執行、事業許可など、市の運営に関するデータを公開しています。 同市は DataSD を通じ、市民参加の推進、サービス提供体制の改善、市民との意見交換の効率化、経済開発のチャンスの拡大を実現しようと取り組んでいます。