CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
最近よく耳にするのが「フルスタックエンジニア」という言葉です。元々は、スタートアップ企業が少人数のチームで新しいサービスを立ち上げる際に、さまざまな技術を一人で使いこなすメンバーを集めるために使われだした言葉です。「fullstack engineer」というキーワードでWebを検索すると、古くは、2011年ごろから、「fullstack」というキーワードで人材を募集するスタートアップ企業があったようです。
一方、日本語で「フルスタック」を検索すると、転職エージェントや人材育成プログラムの煽り文句、あるいは、「フルスタック」の意味を考察する多数のブログエントリーが発見されます。いまさら、私がここで「フルスタック」の話をするのも、少し気が引けてしまいます。ただ、一つ重要なのは、「fullstack」というキーワードで人材を募集することが、現実的に可能になったという点だと考えています。
落ち着いて考えてみれば、「必要な仕事を一人で全部こなせる」、そんな都合のいい人材がいたら、誰だって雇いたいと思うでしょう。それなりに複雑なシステムを適切に設計・構築・運用するには、今も昔も変わりなく、複数レイヤーにまたがってシステム全体を理解したエンジニアの存在は欠かせません。しかしながら、いわゆるエンタープライズ企業の巨大なシステムでは、ベンダー独自の特殊な技術がそこかしこで利用されており、それらすべてを個人で理解するのは至難の技でした。一人で勉強しようにも、技術情報を入手したり、あるいは、検証に必要な機器を個人で準備するのは簡単ではありません。
一方、前述のようなスタートアップ企業では、x86サーバーとオープンソースを中心とした「コモディティ技術」を中心に利用しています。そのため、時間と労力を惜しまなければ、個人で手の出せる範囲において、幅広い技術を身に付けることは十分に可能です。このようなコモディティ技術を主体としたシステムで、膨大なユーザーを対象とするコンシューマー向けのWebサービスが実現できるようになった ―― そのような時代背景が「fullstack engineer」を現実的な存在に変えたのかも知れません。
先ほど、「コモディティ技術」という言葉を用いました。この言葉にもさまざまな意味がありますが、ここでは、「特別な入手先を持たなくとも、誰でも自由に入手して利用できる」というぐらいの意味で用いています。この意味では、オープンソースソフトウェアは、コモディティ技術の典型と言えるでしょう。しかしながら、前述のようなWebサービスを支えるコモディティ技術は、オープンソースだけではありません。一説によると、技術のコモディティ化の波は、これまで10年ごとに起きてきたそうです(*1)。
まず、1980年代に生まれたのが、いわゆる「IBM PC」、現代のx86サーバーの先駆けです。それまで、「コンピューター」といえば、高価なメインフレームが中心で、個人でコンピューター使うなどは夢のような話でした。そのような中で、突然、個人で自由に使えるコンピューターが登場したわけです。続いて、1990年代に起きたのが、ネットワーク回線のコモディティ化です。当時、国際的なネットワーク回線への投資が盛んに行われて、海底ケーブルの敷設が進められました。当初、インターネットを利用できるのは、学術機関や研究所など、ごく一部の組織だけでした。それが突然、個人が自宅からインターネットを利用して、世界中の個人や企業と簡単にデータのやり取りができるようになりました。そして、最後に、2000年代にやってきたのがオープンソースの潮流です。これまで、高額なライセンス費用を払わなければ利用できなかった高度なソフトウェア技術が、すべての人に無償で開放されました。その上、プロプライエタリソフトウェアとは異なり、ソースコードレベルで技術のすべてを理解することが可能なのです。
この2000年代のオープンソースの波をきっかけに、Web系のスタートアップ企業が巨大な組織へと変革を遂げていくようになりました。それまでは、どれほどすばらしい「起業家精神」を持っていたとしても、それなりの資金がなければ、新しいソフトウェアやサービスを開発して、世界中の企業やユーザーと取引をするのは困難でした。コンピューター、ネットワーク、ソフトウェアという3つの技術がコモディティ化することにより、言うならば、「起業家精神のコモディティ化」が起きたと言ってもよいでしょう。
ここまで来ると当然のように気になるのは、オープンソースの次に来る、新たな技術のコモディティ化の波でしょう。2010年代に生まれたコモディティ技術とは、果たして何でしょうか ―― 若干「ベタ」な回答ですが、「クラウドサービス」は、その候補に間違い無いでしょう。これにより、大量のコンピューティングリソースを個人で活用するという、新たな世界が生まれました。スタートアップ企業の多くが、パブリッククラウドを利用することで、初期投資を押さえながら、サービス提供に必要なリソースを迅速に確保しているというのは、よく耳にする話になりました。
しかしながら、現代の企業システムを振り返ると、このようなコモディティ技術は、スタートアップ企業だけのものではありません。今では、ほとんどすべての企業が、x86サーバーとオープンソースを利用したシステムを活用しています。ただ少し残念なのは、コモディティ技術ならではの人材活用がまだまだ進んでいないように思われる点です。冒頭でも触れたように、どのようなシステムにおいても、複数レイヤーにまたがってシステムの全体を理解したエンジニアの存在は欠かせません。ミッションクリティカル、あるいは、基幹系と呼ばれるような重要なシステムでは、なおさらです。システムの構造があまりにも複雑で、システム全体の整合性がとれずに炎上した(あるいは、失敗した)プロジェクトの話を聞いた(あるいは、経験した)ことのある方も多いでしょう。
コモディティ技術の活用には、幅広く、そして、深い知識を身につけたエンジニアを活用できるというメリットが隠されています。エンタープライズと呼ばれる大企業になるほど、組織ごとの分業体制がしっかりしているものですが、それ故に、エンジニアの広い知識が活用しきれていないという現実はないでしょうか? エンタープライズ企業においてこそ、オープンソースを中心としたコモディティ技術に強いエンジニアが活躍できる場を広げることが、本当の意味で先進的な、そして、安定したシステムを実現するための王道に間違いありません。
前回、「エンタープライズ企業にOpenStackは使いこなせるのか?」というテーマでコラムを執筆しました。OpenStackが提供するプライベートクラウド環境も、まさに、大量のコンピューティングリソースを個人で自由に活用する場を与える道具の1つです。このような技術を自由に使いこなすエンジニアは、あなたの周りにいるでしょうか? そして、そのようなエンジニアが活躍する場を用意することは、企業システムにどのようなメリットをもたらすでしょうか。ぜひ、一度、考えてみてください。
次回は、ネットワーク仮想化技術についての話題をお届けしたいと思います。
(*1) 「The World Is Flat, 3.0 - A Brief History of the Twenty-First Century」
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes