Contents
以前、以下のポエムを書いたのを思い出したので今までやってきた事の振り返りも含めたポエムの続きを書いてみようと思います。
体制について
最近、運用
と 開発
の間に入るインフラ自動化のSRE(表現が微妙かも)ちっくな部隊が欲しいと思った。
何故かと言うと、今までは 運用側
に 開発者
がいたので現場で対応して柔軟に対応できたが 開発専門部隊
みたいなものができて、今まで運用現場で開発していた人間はほぼそっちへ移動することになった。
現在は開発側が運用者の要件に合わせて色々開発して対応できているが、将来サービスが大きくなってサービスメニューが増えた時に中間層がいないとコミュニケーションのコストや開発側の負荷が高くなりそうな予感がした。
運用側が巻き取れる(自分たちで必要だと思う自動化は現場で実装とか)と嬉しいがなかなか現実は難しいところが課題。
サービスが大きくなったら考える
だと今度は初期学習コストがその時に発生して立ち上がるまで時間がかかるし、立ち上がるまでは開発側が対応しなくてはいけなくなるため、これまた負荷が高くなる。(一番早いのはスーパーマンを外から連れてくることだけど…)
昔、クラウドや自動化関連のセミナーでよく「体制」について話を聞いていたけど、こう言う事も含まれてるんだなと実感できた。
一先ず地道に教育していくことと、次の課題はSREっぽいのを作る必要があることについては周りも認識している。
やってわかった自動化する価値
自分が思う価値は以下の通り。
- 効率化・品質向上
- 標準化
- 社内ノウハウの蓄積
- 開発できる人が増える
- 運用管理の自動化
- 社外への価値の提供
効率化・品質向上
繰り返しやる手順は自動化することで最大の効果を発揮した。
また、パラメーターも自動生成してAPI経由から実行することで人間がやるオペレーションも少なくできた。
Linux OSやミドルウェアのセットアップなども標準化出来て誰がやっても同じように出来上がる仕組み作りができた。
また、自動処理が失敗したとしても切り戻しも自動で出来るようになったのでダウンタイムも短くできる。(人間がやると焦って更なるオペミスもあったりするしね)
後は、(全部ではないが)CIも出来るようになって、設定を適応する前に 成功
失敗
が分かるようになった。
人間の曖昧さを少なくするというのも自動化のメリットだと思う。
社内ノウハウの蓄積
今後SIで食っていくと言うよりは、SI会社も自社サービスを作って飯の種にしていく方向になるよなーと思っている。
と、なると内製化していく流れに傾くんじゃないかなと言うことで色々とノウハウが必要になってくる。
自動化はその一つだと思ってて、自動化の開発ノウハウを自社内に蓄積することで内製化にも繋がるだろうしノウハウが次のビジネスを産むかもしれない。
個人的にだけど、そうなると外注も将来的には減っていくんだろうなと思ってて自分立ちで生きていく手段を身につけていくしかない。
その身につけるノウハウってのも自動化から見いだせる可能性がある。
開発できる人が増える
開発できる人は増えた。
ここで言っている 開発できる人
はコーダーではなく自分で考えて設計して実装していける人たちのこと。
コーダーであれば、派遣さんや協力会社の人などにお願いすればいいが、プロパーにはそういうのを求めてなかった。
後、自分の言ってる事を理解してくれる仲間が増えるのは単純に嬉しかった。
運用管理の自動化
システム自動化は運用管理の自動化も考慮して考えるものだと思った。
どう言う事かというと、パラメーターはExcelで実行はAnsibleとかだと非常に管理が煩雑になって非効率になる。
なので、パラメーターやタスク(PlaybookやRole)は全部テキストで管理して実行時にパースして適応するという形にすれば以下のように管理できた。
- GitLab
- いつ
- だれが
- なんの目的で
- なんのファイルを追加・変更・削除したのか
- いつ処理を実行予定なのか
- 切り戻しはどのリビジョンか
- CIの結果はどうだったか
- Ansible Tower
- いつ
- だれが
- どのサーバや機器、コンテナなどに対して
- どういった処理を実行し
- 結果どうなったか
これで、失敗した時の振り返りもやりやすくなったし、次はどうすれば失敗しないか?などを考えやすくもなった。
また、「あのサーバのパラメーターシートはどれが最新版なん?」っていうのもなくなり master
リポジトリが絶対に最新版という風に管理できて曖昧さもなくなった。
社外への価値の提供
元々社外の勉強会とかは好きで色々と出没していたが、何かその場でアウトプットしてはいなかった。
blogとかは書いていたりしたけど、何か出来ないかなと思っていた。
その時に、今までは普通に参加できていた Ansible Night
の倍率がすごいことになってきた時で毎回抽選から落ちて繰り上がりも絶望的だったので前々から興味があった LT枠
で申し込んでみた。1
勉強会終了後のAnsible飯にも参加させてもらった。ただ、Ansibleの話がほどんど出てこなかったのは記憶に残っているw
その後も時々blogとかでアウトプットしていたら @fideleruuth さんからAnsible Nightで話してみないか?というところから背中を押されてボスにも話したら「詳細じゃなければおk」というところから Ansible Night Tokyo 2019.04 で30分話させてもらった。2
元々社内ばかりじゃなくて外でも話してみたいという思いがあったので、これはいい経験をさせてもらった。
発表した内容が誰かの「価値」になっていると嬉しく思う。
また、赤い帽子のスーパーエンジニアの人たちや運営関係者やLTの人達と話せたのもすごく良い経験だった。
自動化を振り返って
2年位かけて周り巻き込んでやってきて思ったのが、自動化は現場で仲間を集めて(言い出しっぺが勉強会したり価値を共有したり)ボトムアップ的な文化を作ってやっていく形がうまくいくのかなと思った。
ただし、現場のスキルにもよるし自動化が本当に必要?というのも考慮する必要はある。
今回は新しく作っていくものに対して自動化をしたので、そんなに抵抗もなく進んだが既存のものを手動から自動化していくというと色々と違う壁が出てくると思う。
後は、自動化する人は手動でも同じものが作れる前提の人がやらないといけなかったり…
って、色々考えたら、結局それが好きな人たちじゃないと出来ないよなぁ〜というオチになってしまった。