皆さんこんばんは。胡田です。読めない人も多いとは思いますが「えびすだ」です。
最近「何を勉強しておくと良いでしょうか」という話を学生さんとか駆け出しの管理者さんによくもらうのでブログで回答させてもらいます。
ちょっと昔話から…。
私は小学生の時には親戚のお兄ちゃんからもらったMSX2でBASICやマシン語でゲームを作って遊んでいました。高校入学とともにPC(DOS/V)を購入してもらってWindows 3.1をいじったりC言語を勉強したりVisual Basicをいじったりもしました。大学では情報科学を学びつつ、オブジェクト指向プログラミングやUNIX、サーバー等に触れました。自分でWebサイト構築なども1998年から行っていました。2002年にはSIerに入社し、Windows Server関連のインフラ関連の仕事を多く行いました。Windowsクライアントを大量に展開し、Active Directoryを構築し、Exchange Serverを構築し…。
ここまでには「クラウド」という単語は出てきません。そもそも「クラウド」という単語もない時代も長かったですし。ですが、今では一番ちからを入れて追っているのはクラウドの話ですし、その進化の速度も圧倒的なものになりました。なにかイベントがあったときに何十個もサービスのUpdateが発表され、新サービスが出てきて…、もう追いかけきれない状況です。1つの製品の新バージョンがでたらゆっくり3~5年位はそれが最新版であり続けた昔とはもう全くスピード感が異なります。
この圧倒的なスピード感で物事が移り変わっていくクラウド時代に管理者は何を学ぶべきなのか、何を抑えておくべきなのか、どのような知識が長く使えるのか。そこを抑えておかないと変化の速さに圧倒されて呆然としてしまうと思うのです。
これは極論かもしれませんが私は個人的に「サービスの変化」を追いかけるのはあまり意味がないと思っています。このサービスは今何ができる、今何ができない、それはもちろん重要なことではあるのですが、ちょっと時間が経つと変わっちゃいます。もちろん現場への導入を勧めている中でなにかしら制限事項があるのであればそれをきちんと把握しておいてそこを回避する設計ができること、運用ができることはものすごく重要です。それでも、すぐに変化するんですよね。
私も昔自分がそうだったから気持ちはよく分かるのですがものすごい重箱の隅をつついて「XXXができないからこのサービスはだめだ」という話をするエンジニアがいます。いや、実際今現在はそうなんでしょうけれども。でも、それって半年後、1年後はどうなんでしょうか?それが本当に良くないポイントであるならば世界中から要望が上がって、改善されるんじゃないんでしょうか?改善されないならそれは要望がすくなかったということでそのポイントを回避するうまい使い方があるんじゃないでしょうか?
クラウド時代にはサービスはどんどん改善され続けます。新機能も出てきます。重要なのは「今」のことではなくてそのサービスが、サービス提供者が目指している理想の姿、ビジョンを理解することだと私は思います。サービスの目指すべきビジョンって何年も前に外部にも公開されてるんです。私何年も前からよく引き合いにだしているものの一つは下記のキャッチフレーズです。
Identity is the new control plane
これは2015年6月12日にAzure Active Directoryのチームブログで表明されていたものです。なるほどなぁとおもって私がその数日後に書いたブログ記事が以下です。ちょっと読んでいただけると「今でも通用する話である」ということが納得してもらえると思います。
もう何年も前からビジョンがきちんとあり、そこにむかってサービスは進化し続けてきているわけです。2018年もそろそろ終わる今日このごろですが、ここで言われていることもまだ100%実現、普及したわけではないですよね。でも、ずいぶんとビジョンに実装は追いついてきています、そしてサービスもきちんと普及してきています。今の状況があることはもう何年も前に予告されていたんです。
ですから、私としては細かくサービスの新機能や変化等を追いかけなくても「あ、その機能まだ実装されてないんだ。」「あ、やっと実装されたんだ」というくらいの感想を持ちながらたまに進捗具合を確認するくらいの感じでこの領域を見ていました。
変化の激しいクラウド時代には日々変わっていく細かいサービスの変化を追いかけるのではなくビジョンを理解したうえで「使えるところから使っていく」「サービスの改善に合わせて使い方を変えていく」というスタンスを取ることが非常に重要だと思います。
「今どうなっているかきちんと比較しろ、比較表をつくれ!」「○✕をつけて「今」一番良いものを選択しろ!」「一度使いだしたらもう何も変えるな!」なんていうノリでは話になりません。
そして、そんな変化の早いクラウド時代においてもずーっと変わらないものもあります。それは「プロトコル」です。今でもWebページを見るのにはHTTPを使いますし、メールのやり取りにはSMTPが使われています。TCP/IPで通信しています。これってもう10年も20年も(バージョンの変化は有るにせよ)変化していませんし、これから先もまだまだ使われます。プロトコルだからこそ複数のベンダーをまたいで相互作用できますし、別製品同士でもやり取りが行えます。これは「サービス」とは決定的に違うところですね。
クラウド時代の管理者としても基本的なプロトコルを抑えておいて全く損はありません。なにせその知識の寿命の長さが違います。
基礎力はプロトコルレベルで抑えておき、サービス利用にあたってはそのビジョンを理解した上で「今」ではなく長い目をみて選択していく。そういうやり方が今求められているのだと思います。
あ、あと、プログラミング力はもちろん必要です。言うに及ばず。