2020.10.15
スピードとクラウドの時代だからこそ技術者が知るべき「本質の技術」
日本電気株式会社
NECフェロー
宮澤 忠(みやざわ ただし)さん(右)
特定非営利活動法人エルピーアイジャパン(LPI-JAPAN)
理事長
鈴木 敦夫(すずき あつお)(左)
目次
オープンソースでの高いミッションクリティカル性を持ったシステム開発にいち早く取り組んだNEC
鈴木 LPI-JAPANは今年で設立20年を迎えました。NEC様においては設立当初からこれまで非常に多くの技術者の方々にLPI-Japanの認定を受けていただいています。また最近でも、LinuCの推進に熱心に取り組んでいただく等、我々を支えていただき感謝しています。本日は、NECフェローの宮澤様にこれからの時代に求められるIT技術者像について、お話を伺いたいと思っています。
まずは宮澤様のプロフィールをお聞きしておきたいのですが。
宮澤 では、年齢はいわずに(笑)
私はNECに入社した当初、NECのメインフレームおよびOS(オペレーティングシステム)であるACOS(Advanced Comprehensive Operating System)の一系列である「ACOS-6系」の開発を担当するグループに所属していました。オープン同様にメインフレームにもソフトウェア・スタックがありますが、その通信系の部分が私の担当でした。
そこからWindows上でメインフレームと繋ぐプロダクトの開発に参加しました。オンラインで繋ぐ、今のWebの走りのようなものです。さらにUnix上のミドルウェア開発を手がけた後にSE部門に移ってからは「システムインテグレーションとはどういうものなのか」等について金融系やキャリア系のお客さまに実際対峙しながら開発を進めてきました。
鈴木 ACOS-6系を開発されていたということは、もともとUnix系の流れのOSに精通されていたということですね。
宮澤 そうです。唯一Windowsのプロダクトにいたときだけ、ちょっと違いましたが(笑)、私の技術者としてのベースはUnix系の考え方から来ているといっていいと思います。
鈴木 なるほど、そうするとオープンソースの推進部隊も見られてきたと思いますが、Linuxについても技術的によく理解されていたということですね。
宮澤 ええ、まったく違和感はありませんでした。というより個人的にもけっこう高額なマシンを組み立てていました。当時はFreeBSD※が流行っていた時代でしたので、これをインストールしてソース分析をしたり、そこからVine Linux※を使ったりなど、さまざまなUnix系、Linux系を個人的に経験したのでかなり親近感を持っています。
※FreeBSD(フリービーエスディー)
フリーでオープンなUnix風のオペレーティングシステム
※Vine Linux(ヴァイン・リナックス)
RPM系の日本国産Linuxディストリビューション
鈴木 ACOSからUnix系、Linux系のOSを体験されると、エンタープライズという意味では、だいぶ違いを感じられると思いますが、いかがでしたか。
宮澤 NECは、「ネオダマ」※と呼ばれるオープン化の波が押し寄せていた1997年くらいから、「メインフレームで実現していた高いミッションクリティカル性を持ったシステムをどうやってオープン製品の技術で動かすか」という課題にいち早く取りかかっていました。それと並行して、メインフレームとオープン製品の違い、またオープン製品が提供している機能範囲、あるいは非機能含めてですが、「それをどうやって埋めていくか?」ということも考えてきました。
その意味では、良いものと悪いもの、足りないものを埋めるのが一つの技術的な成長のポイントだったのかなと思います。
※ネオダマ
ネットワーク、オープンシステム、ダウンサイジング、マルチベンダー(マルチメディア)を意味する。1990年代初頭に流行した、企業等によるコンピュータシステム導入についての標語となった言葉。
NECの技術力を試すひとつの場として、基本となる技術力が総合的に身につくLinuC認定に期待
鈴木 その後のSIの現場では、かなりLinuxは使われていたのでしょうか。
宮澤 はい。お客さまの名前は出せませんが、私が知っている案件でLinuxをいちばん使っているのは某キャリア様で、数百台レベルで使われています。
鈴木 そういった大規模なプロジェクトでは、技術者の方々も深い知識が必要になると思いますが、これまでどのように技術者を育成されてこられたのですか。
宮澤 まずひとつとして、いわゆる「座学」で勉強したことにブラスアルファして「経験値」をどう積み上げていくかが大事になります。その際、「プロダクトの視点で見る経験値」と「システムインテグレーション(SI)の視点で見る経験値」があり、それぞれ違いがあるんですね。たとえば「プロダクトの視点」ではプロダクトの人に対する指導や期待、「SIの視点」であれば、NECでMC性(ミッションクリティカル性)と呼んでいる「IPAの非機能要求グレードの目線」です。その違いを意識して、それぞれ理解してもらいながら育成してきました。
鈴木 なるほど。宮澤様は、認定の「意義」についてどのようにお考えでしょうか。
宮澤 認定の意義のひとつは「基準」です。先に述べた通り、「座学」と「実践」があるとしたら、「座学」の段階で基本的なスキルをしっかり身に付けているかどうかのチェックを認定試験という形で実施されているのだと思っています。また、外部の仕組みの中で認定されるということは非常に大きな意味があります。その点においても認定試験は、NECの技術力を試すひとつの場といえるでしょう。
鈴木 LinuCは、試験範囲が非常に広いことが大きな特徴となっています。そのため、受けていただいた方の多くから認定を取得するために勉強したことで成長に繋がったと実感したとおっしゃっていただいています。また我々の活動は技術者の方々に支えられていますが、その方たちは、後に続く若い技術者たちに対しても同じように育って欲しいという理由から協力してくださっている方が多くいらっしゃいます。ですから我々が提供する認定試験は、技術者のスキルを「引き上げる」効果が高いと感じています。
宮澤 それは素晴らしいですね。
NECもLPI-Japanの実施する認定で2万人以上の受験実績があり、全社的にLinuCを採用しています。新しくなったLinuC Version10.0に対応したオンラインの教育コースもいち早く提供しており、Linuxだけでなく現場で必要となるコンテナや、統合運用管理、自動化といった技術も含めて基本となる技術が総合的に身につくLinuC Version10.0に大変期待しています。
鈴木 ありがとうございます。LinuC Version10.0はITの現場で活躍する多くの技術者の方々のご協力により一緒に開発させて頂いたからこそ、クラウドやDX時代を見据えた今の時代に合った現場で即戦力として活躍できる他にはない価値ある認定にすることができました。御社からもカーネル技術者や、OSSコミュニティで活躍されている方、OSSを使ったシステム構築をされてる方や教育に携わっている方など幅広くご協力いただきました。協力いただいた技術者の方々には本当に感謝しています。学習環境も御社の教育コースをはじめ、多くの方のご協力により書籍や、動画教材、オンライン問題集などすでに安心して学習できる環境を整えることができ、大手SI企業や、大手通信企業を中心に標準の認定として採用が進んでいます。
OSの動きを理解しているからこそ安心・安全なシステムが作れる
鈴木 今年に入ってから新型コロナウィルスの影響で人々の働き方や意識が急激に変化しました。今後の世界でITが果たす役割にはどのようなものがあるとお考えでしょうか。
宮澤 NECが常に考えているのは「社会課題」をどう定義し、IT技術を使ってそれをどう解決していくかということです。たとえばたとえば新型コロナウィルスによってさまざまな交流が制限された今なら、「人とのコミュニケーションをとる」という課題に対してITがどう貢献できるか、またそういったサービスをお客さまにいかに速くお届けできるかといったことにチャレンジしているわけです。
今後は、AIの活用がもっと進むでしょうし、モニターに映る映像ではなく、サイエンスフィクションに出てくるようなホログラムで目の前の物理的なイメージと会話ができる時代に繋がっていくのかもしれません。
鈴木 素晴らしいですね。今やあたりまえのように、クラウドを介して仕事をしたり、コミュニケーションしたりしていますが、その基盤となっている技術の多くはLinuxが使われています。その意味でIT技術の基本の部分にはOS(Linux)があると考えていいわけですね。
宮澤 はい、基本という意味で私は、「要素技術」「製品技術」「SI技術」の3つでソリューションができると考えていいます。いわゆる研究所がやるような「要素技術」に対して、より汎用化する「製品技術」があり、さらにそれを組み合わせて作るのが「SI技術」です。
そして「製品技術」の中には「OS(Linux)技術」が当然あります。システムを作るときOS(Linux)の動きを理解しているからこそ、それをどう活用するか、あるいはその上層のミドルウェアをどう作れば安心・安全なシステムに繋がっていくかを考えられるのです。だから「本質の技術」としてOS(Linux)を理解していることがまだまだ必要な時代だと思います。
鈴木 そうですね。あるいは仕組みが分かっていると、その先をどうしたらいいのかも自分で考えられると思います。「アプリケーションを作る人はOS(Linux)の知識は要らない」とおっしゃる方がよくいらっしゃいますが、知識がなくても「なにか」はできるかもしれませんが、知識があればそれとは違うものが作れるはずです。
宮澤 「正しくシステム化できる」ということですね。メモリ管理やスケジューラー、ファイルシステム等、詳細なところは各専門家に任せてもいいですが、やはりアプリケーションレイヤーからOS(Linux)を使ったときに、OS(Linux)がどう振る舞うのかは理解して使って欲しいと思います。
「仕組みを理解して考える」と「仕組みがわからないまま考える」の大きな差
鈴木 最近思うのですが、クラウドの時代になり、仮想マシンやコンテナが使われるようになって、それをオーケストレーティング※するためのツールが生まれてくると、アプリケーションも変わってくるのではないでしょうか。
つまり、従来のアプリケーションが持っていたスケールアウト、障害時のリカバリ等、仕組みをアプリケーションに作り込まなくても済む時代になってきていると考えると、インフラを提供した後にアプリケーションが動くのではなく、アプリケーションが欲しいリソースをインフラが提供するといった、アプリケーション主導の世界になってくる気がしています。
※オーケストレーション
コンピュータシステムやソフトウェア、サービス等の構築、運用管理を自動化する技術。仮想化環境においては、仮想サーバーやアプリケーションの設定を統合的に行う、あるいは運用を自動化すること。
宮澤 私は常に意識してソフトウェア・スタックで見るようにしているのですが、OS(Linux)の上にはミドルウェアがあり、さらにアプリケーションフレームワークがあってアプリケーションがあります。アプリケーションフレームワークから下のインフラ系がアプリケーションの動きや振る舞いを意識してリソースを切り出せれば、アプリケーションを作る人にとっては適切なリソースを適切に払い出してもらって適切に活用できるようになるわけです。
今、IT業界の流れは、そういった世界をめざしていると思います。そのひとつがクラウドという技術の中で実現されつつありますが、それが今後ますます進むというご指摘は、まさにその通りだと思います。
また、アプリケーションのアルゴリズムだけではなく、データドリブン※もあります。データの世界も仮想化することで、極端にいえばどこに配置されていても、アプリケーションが欲しいと思うものがすぐに取得できる世界が可能になります。ビジネス的にはデータそのものの別の切り口での活用もありますが、技術的にはアプリケーションからみて「さまざまな制約がない」ような見え方が進んでいくのではないかと思います。
※データドリブン
データ駆動とも呼ばれるものであり、効果測定などで得られたデータをもとに次のアクションを起こしていくこと。つまりひとつのデータで終了するのではなく得られた結果からさらにデータを分析していくものであり、計算機科学における計算モデルのひとつ。
鈴木 多くの企業がDX化(デジタル・トランスフォーメーション化)を推進している今、さまざまな職種の人たちがソフトウェアやITに関わらなくてはなりません。やはり、アプリケーションを作る方もコンピュータ・アーキテクチャーをよく理解することが大事ですね。
宮澤 はい。アプリケーションのアルゴリズムやデータの活用法について「仕組みを理解して考える」のと「仕組みがわからないまま考える」のとでは、かなり差が出てきてしまうのではないかと思います。
さらに今、世の中はスピードが優先されています。このスピードを実現するためには仕組みを理解するのに時間がかかってしまうことが大きなネックになってしまうわけです。また、お客さまからもスピードを要求されますから、とにかく早く作るためには表面的なことだけを理解して、何となくそれっぽく作ればとりあえずは早くできます。
しかし、それはいわゆるプルーフ・オブ・コンセプト(PoC)※のような領域でやれば動くのですが、その1000倍の規模になったときも本当に正しく動くのかどうかは誰もわかりません。そこに私はとても危機感を持っています。
※PoC
Proof of Conceptの略で、「概念実証」という意味。新しい概念や理論、原理、アイディアの実証を目的とした、試作開発の前段階における検証やデモンストレーションを指す。
鈴木 その意味でも「技術の本質を理解する技術者」の育成が大事になるということですね。
宮澤 まさにその通りだと思います。そこにLinuCの役割があるわけです
「使う技術」と「作る技術」が相互に関係してPDCAを回すことが求められる時代
鈴木 我々が4月からリリースした新しいLinuCは、Linuxだけではなく、クラウドの基本的な仕組みも盛り込んだ内容の技術者認定となっています。LinuCを取得することを通してこれらの内容を学び、技術者の方々に本質的な技術を知っていただくことによって、常に「仕組みを考える習慣」をつけて欲しいというのがそのねらいです。
宮澤 そういった教育は、とても大事ですね。たとえば「横軸に時間」、「縦軸にスキル」があったとします。我々の時代は、原点からスタートし、さまざまなことを勉強することで徐々にスキルが上がっていくという道程で育てられてきました。しかし今の若い方々は、その途中から参加してくるわけですから、我々が経験したことのすべてを経験することはできません。そのため、今の技術者の教育においては、我々が20年〜30年かけて理解してきた「本質」を経験できなかった人たちにいかに効率的、あるいは的確に理解してもらうかがとても大事なのです。それがまさに新しいLinuC認定だと思います。
鈴木 ありがとうございます。昔は便利なツールもあまりなかったので大変だった反面、しっかり技術の本質を理解しながら育つ時間と環境がありました。その意味で我々は非常に幸せな世代なのかもしれません。 今はさまざまなツールが使えて便利になり、すぐに実現してしまうのですが、かえってなかなか本質的なことにたどり着きにくいのかもしれません。本質の技術を身に付けられる環境をどう作っていくかが大きな課題ですね。
ノイマン型コンピュータの時代が続く限り、積み上げられてきたLinux技術が簡単に置き換わることはない
鈴木 様々な新たな技術が生まれていますが、Linuxに今後、大きな変化はあると思いますか。
宮澤 Linuxは、すでにあらゆるものに必要とされている技術です。たとえばスマホ等の端末系からデータベース等のいわゆる「奥の院」の世界、またその途中にある、エッジやネットワーク機器、サーバー等、あらゆるものにLinuxは使われています。そして、Linuxが生まれてから今までに作られてきた世界が、言葉の上でいう「パラダイムシフト」のように簡単に置き換わることはないと思います。なぜなら、技術は「積み上げるもの」だからです。
ただし、量子コンピュータの世界ではもしかするとパラダイムシフトが起きるかもしれません。しかし、現状のノイマン型コンピュータ※で動いている世界では、やはりLinuxは重要なコンポーネントであり、それは今後も続いていくでしょう。
※ノイマン型コンピュータ
ノイマン型コンピュータとは、ハンガリー出身の数学者であるジョン・フォン・ノイマン(John von Neumann)によって提唱された、コンピュータの基本構成(アーキテクチャ)のこと。今日の一般的なコンピュータシステムのほとんどが、このノイマン型。ノイマン型コンピュータは、構造上、処理速度に限界があることが知られている。ニューロコンピュータや量子コンピュータなどでは、並列処理や分散処理といった構造を採用することで、処理のいっそうの高速化が図られる場合も多い。
鈴木 ノイマン型のコンピュータができてから70年以上が経ちますが、技術的にはもう40年前にはだいたいの技術は出そろってしまって、今のコンピュータ技術はいわばその焼き直しです。しかし、コンピュータのCPUやネットワークが速くなったことで、使い方や使われ方に新たな可能性が生まれてきました。そこで「使う技術」がどんどん進化し、今に至っていますが、使われている技術の本質的なものが変わっているわけではないということですね。
本質の技術を「核」にさらに自らの世界を広げていって欲しい
鈴木 ソフトウェアの世界には無限の可能性があります。その膨大な仮想空間の中で遊べるということが、IT技術者にとっていちばんのメリットかも知れないですね。
宮澤 まさにそうかもしれません。自由度が非常に高いですね。その反面、難しいところもありますが、しかしポジティブに捉えるとさまざまな可能性をソフトの世界で実現できるということはすごく楽しいことだと思います。
鈴木 それを楽しみ切るためには、やはり中身をちゃんと理解していなければならないというということになりますね。
宮澤 我々はずっとOMCS(=オープンミッションクリティカルシステム/ソリューション)としてお客さまにさまざまなシステムをご提供してきたわけですが、その本質には内部構造や動作原理を明らかにする「ホワイトボックス(white box)化」※があります。プログラムの中身(構造と振る舞い)を正しく把握していないとシステムは作れませんから、このホワイトボックス化にはもっとも注目ししています。
しかし、プログラムの動作を既定する全パラメータをきちんと定義しようとする人は少なくなってきています。もちろん、安定して製品を動作させるため、できるだけ設定の変更を考えないようにするという思想で、プロダクトを提供するようになってきたことも関係していると思います。しかし、お客さまとベンダーの間にいるSIer、あるいはものづくりをしている開発者にしてみると、やはり構造や動作を正しく理解した上で、どう設定したら目的とするシステムに繋がるのかを考えていくのは重要なことです。
その意味で、LinuCがチャレンジしている「本質の技術を理解する」ことや「中身や動きを理解する」という思想はとても大事だと思っています。
※white box
ホワイトボックスとは、内部構造や動作原理、仕様などが公開されたり明らかになっている装置やソフトウェア、システムなどのこと。また、対象の内部構造などが分かることを前提にして、対象の内部構造や詳細な実装などに立ち入って検討する考え方のこと
鈴木 我々の認定の試験問題は、ほとんどが選択式です。認定で問えるのは狭い範囲ですが、選択式の問題はかなり複雑なことを問うことができます。たとえば、「さまざまなシチュエーションの中でどれを選択するか」という問題を投げかけた場合、すべての選択肢が間違いではないので、質問の条件からもっとも最適な答えを選ばなければなりません。その選び方でその人の知識の深さ技術力だけでなく、合理的な判断がきちんとできるかどうかの知見も問えます。
よく「パフォーマンスベースの実技試験でないと深い知識は問えない」とおっしゃる方がいますが、実は選択式の問題もうまく作ればその人の本当の実力がしっかり問えるのです。また、パフォーマンスベースの実技試験は緊張する中で実施されるため、その意味での価値はありますが、実施にも採点にもそれなりの労力がかかります。
より試験を広め、より多くの技術者を育てるという意味で、LinuCではこの選択式の問題にこだわっています。また、我々ができることは限られていますが、さまざまな認定や教育機関とうまくコラボレーションしながら補完関係を持ち、相互に作用して技術者の育成にかかわっていければと思っています。
宮澤 なるほど。テストのメソドロジー(開発方法論)の一つですね。OS(Linux)を中心にシステムやコンポーネントの動きを正しく若い人たちに伝えていくこと。そこにLinuCの役割があります。これからも多くの技術者がLinuCを「核」にさらに自らの世界を広げていって欲しいと思います。
鈴木 はい、オープンテクノロジーを通して本質的な技術を学び、技術者として大きな成長を目指していただくためにオープンテクノロジーのキャリアマップ※というものを公開していますが、LinuCはそのベースとして、まさに「核」になる認定です。
これからも、多くの技術者の皆さんと一緒に技術者の成長を支えていけるように努力していきますので、引き続きよろしくお願いいたします。
本日は沢山の示唆に富むお話を頂き、ありがとうございました。
※オープンテクノロジーのキャリアマップ
様々な技術者タイプに対して有効な認定を示したもの。技術者育成の指針となるとともに、技術者の見える化を促進し、技術者の活躍を支援する。 https://lpi.or.jp/know/
関連記事