UZABASE Tech Blog

株式会社ユーザベースの技術チームブログです。 主に週次の持ち回りLTやセミナー・イベント情報について書きます。

Hinemos3.1.2→Hinemos5.0.1に移行しました

前回の投稿から約1年と、だいぶ時間が空いてしまいました。
ご無沙汰しておりますユーザベース インフラチームの小林です。

当時海外留学していたメンバーも無事帰国し、新メンバーも増え、インフラチームはだいぶにぎやかになっております。

Hinemos3.1.2→Hinemos5.0.1に移行!

さて、本題なのですが、昨年5月にHinemos5が発表されました。
すぐに導入したかったのですが、昨年9月の5.0.1の公開を待って、満を持してHinemos3.1.2→Hinemos5.0.1への移行を行いました。 f:id:manabu-kobayashi:20160215231044p:plain


この移行時の顛末については、次回にさせていただくとして、今回はHinemos5にしてみて、実際どうだったかというところを紹介させていただきます。

Hinemos5.0.1で大幅な運用改善を実現!

おさらいですが、Hinemos3の運用での困っていた点は以下の通りです。

  • Hinemosエージェントが、Windows8だと動かない
    • ⇒そもそもWindows対応のみで、Mac作業者が作業できない。
  • 画面を開くの重い、ジョブの登録はもっと重い
    • ⇒あまりに重くて、常時PC開きっぱなし。

ジョブ管理ツールとしては問題なく動いてくれていたのですが、パフォーマンス面でどうしても運用メンバーの負荷が上がっている状態でした。

では、これらが、Hinemos5になって解決されたかというと、、
はい、ばっちりです!


Webクライアントについては、下のブログで詳しく紹介されているのでそちらをご確認いただきたいですが、リッチクライアントと遜色ない仕上がりで、
ようやくジョブ監視のWindows縛りから解放されたのであります!
tech-sketch.jp


次に、画面が開くまで時間ですが、僕の実測ベースで、

  • Hinemos3の時
    • ログインするまで:2分7秒(そのあとに、ジョブ履歴の画面を開くのにまた待ち時間)
    • ジョブの登録時の待ち時間:2分30秒
  • Hinemos5の時
    • ログインするまで:30秒(更にジョブ履歴の画面まで開いてる!!)
    • ジョブの登録時の待ち時間:10秒位

と大幅改善されていて、常時画面を開いている状態からも解放されました。
毎日Hinemos開いていたので、待ち時間だけで1年で約10時間の削減効果です(笑


それ以外にも、

  • ジョブのスケジュール予定がわかるようになったり、
    (新規でスケジュールしたときに想定通り動くか確認できて超便利!) f:id:manabu-kobayashi:20160217225235p:plain
  • 祝日のパターンなどを複数のカレンダで共有できたり(デフォルトで祝日入ってるし!)
  • ジョブのエラー時にSlackに通知出るようにしたf:id:manabu-kobayashi:20160215215536p:plain

と、いろいろと運用負荷が下がっています。(通知の機能は、Hinemos3からあった機能を使ってます。)

Hinemos5.0.1のちょっといけていない点

で、いいことばかりでもなく、ちょっといけてない点もあったりしてます。

  • Hinemos5.0.1でも若干不安定。
    • →なんかメモリリークしてそうな感じ。月に何回かサービス再起動してます。
  • ジョブスケジュールを臨時で停止したい時、日跨ぎしたいとき不便。(例えば、今日の12時から、明日の12時まで止めたい時とかは2度登録必要。)
    f:id:manabu-kobayashi:20160215225823p:plain
  • ジョブ履歴画面から落ちたジョブのコマンド確認したい時に、グレーアウトされてて見れない。
    (下の例だと短いコマンドですが、長いコマンドだと途中で切れる。)
    f:id:manabu-kobayashi:20160215225116p:plain

下の2つは、Hinemos3とHinemos5で操作が違って慣れてないだけの気もしますが・・・



HInemos5.0.0→5.0.1へのアップグレード手順

最後に、開発環境にあった、5.0.0環境を5.0.1にアップグレードしてみましたので、簡単に手順を載せておきます。 (そんな難しいことはしてませんが。。)

1. DBのバックアップを取得

念のため、jvmを停止後バックアップを取得します。

# /opt/hinemos/bin/jvm_stop.sh
# /opt/hinemos/sbin/mng/hinemos_backup.sh
# /opt/hinemos/bin/jvm_start.sh

2. それぞれサービス停止

弊社環境では、ManagerとWebクライアントが同居しています。

# service hinemos_web stop
# service hinemos_manager stop

3. さらに念をおしてHinemosマネージャver.5.0.0のバックアップを取得

# cp -rp /opt/hinemos /tmp/hinemos_500_backup
# cp -rp /opt/hinemos_web /tmp/hinemos_web_500_backup

4. rpmコマンドでUpdate

# rpm -Uvh hinemos-manager-5.0.1-1.el7.x86_64.rpm
# rpm -Uvh hinemos-web-5.0.1-1.el7.x86_64.rpm

5. serviceファイルをリロードする

# systemctl daemon-reload

6. それぞれサービス起動

# service hinemos_manager start
# service hinemos_web start

って、この記事準備してたら、2016/2/15にHinemos5.0.2が公開されたので、さっそくもう一度試す羽目に。。

Hinemos5への移行記は今後も続きますので楽しみにお待ちください!