#はじめに
こんにちは、drama(@1901drama)です!
今回は、先月私が参加した「マイグレーションコンペティション」について書きます。
(AR記事でなくてすみません。。)
#マイグレーションコンペティションとは
日本MSP協会(MSPJ)が開催している競技会です。
全国から集まったメンバーでランダムにチームを組み、制限時間内に 既存システムを新たな環境へいかに移行できるか を競います。
いわゆるIT系コンテストでは 成果物の機能 を元に評価されることが多いのですが、
この競技会は、以下のような実際のサービスや顧客を意識することが評価に含まれています。
・既存環境の機能が継続して使えるか
・移行時のサービス停止をどれだけ短くできるか
・顧客とのコミュニケーションが円滑に取れているか
・その後の運用に必要な情報(システム構成、実施内容、手順書)がまとめられているか... など
また、賞金額が**「3位:10万円!、準優勝:30万円!、優勝:60万円!!!」**と
高額なためか、ある程度技術力に自信のあるエンジニアの方が多かった印象です。
私の本職はインフラ系(元エンジニアで、今はディレクション/サービスデザイン/要件定義等)で 昨年参加したのですが、入賞さえ出来ませんでした...。
今年は、そんな昨年の悔しい思いを晴らすべく、事前に勉強し準備万全の状態で臨みました!
#競技開始まで
開会時間になると、最初にメンバーの振り分けが行われます。
今回の参加者は29名で、9チーム(1チーム3名で、2チームだけ4名編成)
私のチームは3名編成の「Team5」となりました。
※チーム分けの様子
そして、今回のお題は以下のようなものでした。
【とある文書サイトを移行します。】
お題:いま動いているシステムを新しい環境に移行して欲しい
要望的な何か
・今の環境を新しい環境に完全移行して欲しいです。
・実施した内容と結果については報告が欲しいです。
・システムを止めるときは利用者に告知が必要なので連絡が欲しいです。
・昔から使っている古い環境なので、バージョンアップして欲しいです。
・できれば利用者に影響を出さないように切り替えたいです。
・できればサーバに関する資料があるとありがたいです。
・できれば今はまったくバックアップを取っていないのでバックアップを取れるようにしたいです
・できれば今後は利用者が増えるのでシステムを冗長化したいです。
・できれば新しいインフラエンジニアに引継ぎするために必要な情報がまとまっていると嬉しいです。
担当者のコメント
・体制変更とかいろいろありまして、システムが分かる人がいなくなってしまいました。
・結構前から使っているので、いいタイミングなのでリフレッシュしたいなと思っています。
・サイト上での商売は続いているので、できるだけ利用者さんに影響が少ないと嬉しいです。
・そうそう、近々新しいインフラエンジニアが入社予定だから、その方に引き継げるようになっていると嬉しいですね。
・本当はいろいろとナウっぽいこともしていい感じにしていきたいんですよ
・このご時勢ですから、セキュリティ的なものも気になっていますが詳しくなくて……
移行元環境
・Amazonです
・そろそろサポート期限が切れそうなCentOS
・アパッチとパイソンとギットなど
移行先環境
・Microsoftのクラウドを用意しました
お題はホームページ上で事前に公表されており、当日に詳細や 追加要望が発表されました。
#競技スタート!
まず、大まかな役割分担を決めます。
事前に必要な役割を以下のように想定し、どれでもできるよう準備していました...
1.移行元環境の調査 役
2.移行先環境の構築 役
3.ディレクション(顧客対応・チームの進行・補助など) 役
が、メンバーのスキルが上手く分かれ
自分の得意分野である 3.ディレクション を担当することができました!
※競技中の様子
競技中には多くの課題があったので、特に印象に残っている課題のみ記載します。
①新環境へ移行したJenkinsから大量のワーニングログが出力されていた。
▶文書サイトを表示するために参照しているファイルが、想定外の場所にも存在していました。(外字ファイル)
メンバーの一人が細かく稼働確認をしていたおかげで、発見することができました。
②Jenkinsの処理実行時にメール通知を行っているが、新環境では失敗していた。
▶MicroSoft Azureで作成したインスタンスは、25番ポートを標準でブロックする仕様です。
MicroSoft Azureの特徴として事前に把握していたため、紆余曲折を経て、回避策を実施できました。
③追加要望を「どのように」「どこまで」実装するか。
▶例えば、一口に「セキュリティ強化」と言っても、想定する脅威によって導入すべき手段は異なってきます。
今回は 文書サイトを参照できなくなることがサービス影響に対する最大の脅威と考え、
多重アクセスを検知して次の行動に移すための監視機能と、簡易的なアクセス制限を導入しました。
また、その他の要望として、構成への影響が少ないバックアップを導入することにしました。
顧客要望をヒアリングしたり、既存環境の変更リスクや制限時間を加味したうえではできることが少なかったので、結果として良い判断だったと思います。
いずれの課題においてもメンバーの連携やスキルが上手く活用されて、着々と解決できたので、とても良いチームだな...と思いながら競技に取り組んでいました。
#競技終了!
何とか制限時間内に「システム移行」「切り替え」「資料の納品」を完了!
朝10時に開始しましたが、気づけば17時となっていました。
競技終了後、約2時間ほどの懇親会を挟み、結果発表となります。
そこで急遽、運営から「レギュレーション変更のお知らせ」が!
なんと、優勝チームが賞金を総取りということに!
突然の展開に 会場内がざわつきます。
優勝は.......................
Team5!!!
まさかの優勝でした。
(賞金100万円は メンバーと仲良く3等分に!)
#感想
ということで、無事 昨年の雪辱を果たすことができました!
最後に、競技を通じて感じたことを記載しておきます。
1.準備の大切さ
今回は、事前に移行環境を想定したマイグレーションを行ったり、
ホームページでお題として公表されていた環境・ツールのコマンドや仕様などを、ある程度調査しておきました。
また、ディレクションを行う際は、どのようなタイムスケジュールやプランで進めるか シミュレーションして臨みました。
※必要そうなコマンドやリンクまとめ
※開始時の進行メモ(字が汚いですね...)
当日はディレクション担当だったので、実際にシステム移行処理を行うことは少なかったし、必要なかった情報もありましたが、準備してきた結果が自信に繋がり積極的に行動できたと思います。
2.チームで行動するには
チームで何かを達成するためには「お互いの不足を補い合えること」「同じ目標に向かっていること」「モチベーション」の3つが大事と考えています。
今回のチームメンバーは、スキルが高い上に 役割分担が上手くできていたので、
自ずとそれぞれ不足を補い合えたチームでした。一緒になったメンバーには とてもとても感謝しています!
また、目標については「達成すべきこと」「達成したほうがいいこと」の違いをチーム内で明確に共有できていたのが幸いでした。実際の現場でもぶれないように心がけたいです。
※チーム内で共有していたタスク表
※達成すべきことである移行先環境での「サイト表示」「メール通知」を実装できていたのは、2チームだけでした。
#まとめ
業務で明確な勝敗がつくことって中々ないので、勝っても負けても貴重な経験になると思います。
もちろん賞金だけでなく、他社の方とプロジェクトを進めるなかで、いろいろなことを学べるイベントでした。
次年度も開催予定とのことですので、皆さんも是非参加してみてくださいね!
写真は公式の開催ログからお借りしました。
写真引用元:マイグレーションコンペティション 2019 WINTER 開催ログ