【サービス】ハローワーク求人サーチのまとめ

ハローワーク求人サーチ

この度、2020年3月3日(火曜日)10:00 をもって個人で運用をしていた求人検索システム「ハローワーク求人サーチ」を停止いたしました。
今回の停止に伴いシステムの運用やインフラ、目的などをまとめました。

ハローワーク求人サーチとは?

このシステムはハローワーク公式サイトに掲載されている求人情報を「スマホ利用」「検索」「お気に入り記録」ができるシステムになります。
ハローワーク公式サイトは2020年1月6日にリニューアルされるまでスマホサイトが無くPCサイトのみの運用でした。
知り合いの方で「使いにくい、、、」という意見があり作成いたしました。

サイトの目的は?

目的は下記2点を考えておりました。
1.スマートフォンでも簡単にハローワーク求人を検索できるようにしたい。
2.サービスを運用する知識の獲得したい。

現状と目的からTOC分析

現状システムが無い状態から「どのような機能が必要か?」「課題・障害は何か?」「必ずしたいことは何か?」など考慮して設計を考える必要があります。
私は制約理論(TOC)を利用して分析を行います。
下記は分析結果をまとめた物になります。

ハローワーク検索システムのTOC結果

TOCのチケット別詳細

サーバ、インフラについて

個人で運用する点からインフラ費用は極力下げたいと考えました。
TOCの中にも「インフラ費用を削減する」という内容を入れてGCPの無料体験を活用しています。
サーバとデータベースはGMOのConohaを利用しています。
Conohaはクラウドサービスで必要なサーバ(インスタンス)を状況に合わせて使う事ができ1時間=何円で費用が発生します。
アクセスの増減に合わせてスケールアウト・スケールインするようにしています。

ハローワーク検索システムのインフラ構成

システムについて

システムの開発は時間短縮を考慮して「Laravel 5.5 LTS」を利用して開発を行いました。
LaravelはPHPのフレームワークで0から作るのでは無くコマンドで自動生成を行いできた物を改修してシステムを作るため短期間で作る事ができます。
現在は、Laravel 5.8が最新安定バージョンとなります。

Laravel公式

デザインについて

私がシステムを作る上で必ず上がってくる問題点として「CSSデザインができない」があります。これをクリアするために海外のフリーテンプレートを活用します。
今回はマテリアルデザインを簡易実装できる「Materialize」を使いました。

Materialize公式サイト

機能について

システムの中で1番重要と考えているのはスクレイピングによる求人情報取得です。スクレイピングはWebサイト上に掲載されている情報を抽出して活用することです。
上記技術はメリットデメリットをきちんと把握して対策・活用しないといけません。

メリット

  • 他のサイトに掲載されている情報を活用できる。
  • 自動操作による生産性の向上 (登録をシステムがやってくれる)

デメリット

  • 取得元のサーバに負荷がかかる。
  • 著作権に触れる問題が発生するリスクがある。
  • 事件として訴えられる場合がある。

今回、ハローワーク公式サイトに問合せを行い情報取得の許可と、アクセス頻度・求人掲載のルールを守り情報取得を行いました。

運用中の問題点は?

データベース負荷

サイトをオープンしてからしばらくして全求人取得を完了したタイミングで利用者アクセスによるデータベースの負荷問題が発生しました。
当時データベースサーバは1GBを利用しておりメモリが有効活用できていない、インデックスが効いていない問題がありました。
これらは定期的に発生するため監視ツールの導入とmysqlslap等を利用して負荷テスト・チューニングを行いました。

利用者様から要望に対する対応

利用者の増加に伴いご要望がいろいろ出てきました。
ご要望は検討した後、「対応」から「見送り」まで全て進捗表にまとめて公開いたしました。導入見送りは何故かという点も記載しました。

今回の件で学んだこと

私はこのサービス開発・運用を通して3つのことを学びました。

目的と中間目標(ゴール)の大切さ

何をするにもそうですが、ゴールがあるから頑張れるんだと感じました。
「4つの機能があり、実装すればゴール」というように常に目標を作り集中して向かえる環境を作る事で短期間に対応できる事を学びました。
今回、工数算出で12日間予定を9日で対応完了しています。

問題が出たときに自力で解決する技術

サービスを運用していると、障害クレームの発生があり対応する必要がでます。知識を持っていない場合も自身で探し出して対応する技術を学びました。

常に不完全なシステムを作る事の大切さ

不完全と聞くとあまり良いイメージではないかもしれません。
サービスを運用してから1年が経過したタイミングで類似サービスがいくつか出てきました。それらはよく似たサービスでした。

自身の中で「完全なシステム」を作った場合、改修もなくライバルのシステムに埋もれていたかもしれません。「不完全なシステム」と考えることで常に良くする為に試行錯誤したり、新しい事を挑戦したりできるのだと思います。

利用者様に

2017年より運営してまいりました当サービスですが、色々な利用者様のご意見・ご要望があり改善ができ運営を続けることができたのだと思います。
本当に、ありがとうございました。

これからの求職、転職活動において良い会社に巡り合うことを心よりお祈り申し上げます。

管理運用者:戸田知宏