公衆Wi-Fiサービスを提供するワイヤ・アンド・ワイヤレスは、オープンソースソフトウェアを活用したDevOpsに取り組んでいる。
その内容が、「RED HAT FORUM TOKYO 2017」にて技術運用本部 CTOの相馬 賢司氏により紹介されたので概要をお伝えしようしよう。
不具合の早期発見に向けて
ワイヤ・アンド・ワイヤレスは、公衆無線LANサービス「Wi2 300」や訪日外国人向け「TRAVEL JAPAN Wi-Fi」、au向け公衆Wi-Fiサービスなどを提供する公衆Wi-Fi事業者だ。同社は提供するサービスの品質改善や新機能リリースを迅速化する「シフトレフト」を目指して、自動化プロセスの構築に取り組んでいる。
相馬氏はまず「DevOpsの手法を取り入れてビルドパイプラインを構築し、テスト工数の削減、テストの前倒し実施を行うようになりました。これにより、不具合の早期発見が可能になり、リスクを回避して、サービス品質の向上を実現することができるようになりました」と取り組みの成果を報告。
そのうえで、具体的にどのような背景や課題のもと、取り組みを進めてきたかを紹介していった。
デジタルトランスフォーメーションへの対応
まず背景には、デジタルトランスフォーメーションというトレンドのなか、サービスの提供品質と提供スピードをどう向上させていくかという問題意識があったという。
「品質、効率、スピード、コストなどに同時に取り組んでいく必要がありました。ただ、これらは、いずれかを向上させようとするといずれかが低下するというトレードオフの関係になりがちです。当社の日々の活動でもどう両立させていくかが悩みでした」と相馬氏。
課題は変更作業の効率化
ワイヤ・アンド・ワイヤレスのシステム開発は、開発ベンダーに開発、構築/デプロイ、アプリ保守を依頼し、自社では要件定義、インフラ構築、運用監視を中心に行うという体制だ。納品のソースコードはファイルで、エビデンスはスクリーンショット、ベンダーはビルドツールを使わないケースも多かった。
そんななか開発・運用では、「問題が発生すると毎回フルリグレッションテストになる」「検証環境がいつのまにか変更されている」「リポジトリの状況が不明」「外部連携システムとのバージョン齟齬」「主導でのビルドやデプロイ」「手順書に依存した作業」といった課題が生まれていた。
「変更のリスクや期間を最小にして、自信をもってリリースするためにはどうしたらいいか。そこでDevOpsのメソッドを検討しはじめました。ただ、DevOpsにはフィードバックループを回すためのさまざまなプラクティスやツールがあります。何から手を付けていいかがわかりにくく、既存のシステムに手を入れることで不具合が出る不安もありました。そのため、最初から全部に取り組むのではなく、できるところから部分的に始めてみることにしました」(同氏)
同社は、AWSと既存データセンターを専用線で接続し、ネットワークに近い機器をデータセンターで、アプリケーションの設備はAWSで運用するというシステム構成をとっている。今回対象にしたのは、AWS側にあるWi-Fi認証システムの一部で、対象はTomcatやSpring Framework、Struts2などを用いたJavaベースのアプリケーションだ。
CI環境整備に向けたタスク
最初の取り組みになったのがCI(継続的インテグレーション)と自動テストだ。CIでは定期的なビルドと試験の実施、自動テストでは単体テストと結合テストの自動実行を目指した。
「開発、ビルド、ステージング、リリース、運用という流れになりますが、そのなかでも繰り返しの多い部分をパイプライン化、自動化しようとしました。また、テストの前倒しによるスピードの向上を図りました。ただ、自分たちではなかなかうまくいかす、レッドハットの力を借りながら、課題と対策を検討し、ビルドパイプライン導入のタスクに分けて進めていくことになりました」
ツールとしては、チケット管理に使っていたRedmineに加え、ソースコード管理のGitLabとCIツールのJenkinsをクラウド上に構築。そこに既存のテストコードやレッドハットに協力して作成したもらったビルドスクリプトやテストケース、ビルドパイプラインを取り込んで進めた。