昨年末のFutureMeetup vol.1(過去記事参照)に続き、第2弾を開催しました!
今回のテーマは「聞いたことあるけど、よく知らないITワード」です。
今までなんとなく知っているふりをしていたITワード達を、
一気にスッキリさせちゃいましょう!という企画です。
事前に社内アンケートで集めたキーワードについて、
総勢10名のスピーカーに語っていただきました。
タイムテーブル
●「暮らしを変える技術」
・とあるライブ家族の話(1部イントロ) M.Iさん
・Internet of Things ? Y.Iさん
・自動車の自動運転 T.Iさん
・5分で分かる!APIエコノミー T.Mさん
●「X-Techとそれを支える技術」
・X-Techとそれを支える技術(2部イントロ) S.Mさん
・ブロックチェーン~常識破りの新技術~ S.Mさん
・はじめてのFPGA T.Hさん
・Data Driven Marketing K.Iさん
●「開発技術」
・開発技術(3部イントロ) M.Tさん
・Agile/DevOps Y.Aさん
・クラウド時代に知っておくべきアーキテクチャ Y.Kさん
以下、開催レポートです。
私たちの生活がどのように変わって今に至るのか、そしてこれからどう変わっていくのかを「知人からライブチケットをもらった家族が様々な時代でライブに行こうとする」といったストーリーで発表をしていただきました。
1970年代~2000年代の様々な技術を駆使するものの、なかなか家族揃ってのライブに行けない家族。不運な家族ではありますが、技術の進化によって買い物や働き方が変わっていきます。続けてM.Iさんは未来の生活の様子について語ります。腕につけたウェアラブル端末から健康状態や生活の様子を病院に送り続け、病院ではその情報を元に、どんな栄養を摂るべきなのかを判断する。その情報を利用して、自分の状態にピッタリのドリンクがドリンクメーカーで受け取れる。そんな世界が待っているとのことでした。ライブ家族は大渋滞につかまってしまいましたが、未来の世界では自動車は自動運転によって制御され、渋滞も今よりずっと少なくなると予想しているそうです。こんな世界になってしまえばライブ家族も晴れてライブに行けます。
M.Iさんの独特な世界観の夢のあるお話でしたが、どれも急速に進化を遂げている分野でこんな未来もそう遠くないかもしれませんね。
「Internet of Things」の和訳は「〇〇〇 の インターネット」ですが、〇〇〇には何が入るでしょうか?Y.Iさんはそれを今一度考えてみて欲しいと言います。IoTの分野はここ数年で大きな成長を遂げ、最近では新聞や雑誌、さらにはテレビなどでも取り上げられ、スマート家電などと共に一般の方にも浸透し始めてきました。なぜここにきてその考えが急成長を遂げたのか。その理由の一つに、IoTを構成する世界の技術が伸びているということが挙げられると言います。物理世界の面では、センサーの価格や品質が向上し、そのセンサーから得た情報を届ける通信網も発達しています。仮想世界の面では、クラウドの発達が進み、従来より素早く・安価にシステムが構築できるようになりました。これらの要因によってIoTは急成長を遂げることができたとY.Iさんは言います。
次に話は「IoT成熟度」に移ります。
IoT成熟度とは「1.可視化→2.制御→3.自動化→4.最適化→5.自律」といった、IoTのレベルの考え方だそうです。Internet of Thingsの「Things」を「モノ(ハードウェア)」に限定してしまうと、このIoT成熟度はレベル1~2にしか到達しません。この先IoT成熟度3~5に到達し、新しい価値を創造するにはどうするべきかというと、「Things」を「モノ」だけでなく「コト」としても捉えることが大切だと言います。もし、ライブ家族がライブに行ったとすると、そのライブに「行った」ということもIoTの対象です。これまでは「場所」の情報だけだったのに対して、これからは「ライブ開催時間」や「参加している」という情報を使って、そのライブに特化した価値が提供できるのだそうです。
「自動運転に関して10個くらい喋りたいテーマがあるんですけど今日は”AI”の部分だけ。」とT.Iさん。“人間が運転する車”と”自動運転車”で何が違うのか。表面的に見るとやっていることは変わらず、「走る・曲がる・止まる」といった基本操作です。ですが、ここに至るまでが違います。まずは判断・行動決定。人間は自分の頭で考えて状況の判断を行いますが、自動運転ではAIが判断を行います。そしてこの判断・行動の決定を行うためには認識が必要となります。その判断を人間は自分の目や耳などで感じるのに対して、自動運転技術ではセンサー(カメラ・レーダーなど)を使って認識を行います。こういったものを駆使して、認識→判断→操作を繰り返していきます。このサイクルのことを「ドライビングループ」といいます。
今回は認識の部分の紹介です。センサーの種類はいくつかありますが、その中でも視覚部分、つまりカメラの役割です。人間の視覚をAIで代行するものですが、主に画像認識を使って交通参加者(ヒト、クルマ、標識など)の認識を行います。画像認識と一言に言ってもいくつかの技術があり、「画像分類」「画像検出」「画像セグメンテーション」などが挙げられます。画像分類は、その画像が何の画像なのかを識別する技術。画像検出は、その画像のどこに何があるのかを識別する技術。画像セグメンテーションは、その画像のピクセル一つ一つが何を意味するかを識別する技術です。画像分類と画像セグメンテーションの処理の様子を動画で紹介してくれました。
今回の発表のゴールは「APIエコノミーが注目されている背景を理解すること、他人に説明できるようになること」の2つ、とした上で発表が始まりました。APIエコノミーの概要を掴む為にはまず「シェアリングエコノミー」「API」を理解する必要があると言います。シェアリングエコノミーとは「単独所有から共同利用へと消費スタイルが変化する中で誕生したビジネスモデル」だそうです。例えば、今までは車を個人で所有し利用していない間も家に保管していたのに対してシェアリングエコノミーでは、利用しない間は他人に貸し出してお互いに利益(メリット)を得ることなどが当てはまります。車ではUberが有名ですが、民泊のairbnbなど各業界で賑わっています。
次にAPIです。APIとは「アプリケーションの機能を簡単に利用するためのインタフェース」のことです。車に例えると、最近の車はボタン1つでエンジンがかかりますが、実際に裏では様々な部品がそれぞれのタイミングで動き出しています。利用者はそれを意識することなく、簡単に利用できています。このように、中の仕組みを理解していなくても簡単に機能を利用できるインタフェースをAPIと呼びます。ではなぜ、APIが注目されているのでしょうか。それは「使いたい機能を部品として呼び出すことで、開発コスト低減、開発期間の短縮などが実現できるから」です。
最後に、APIエコノミーが「シェアリングエコノミー」と「API」とどう関わっているのか。APIエコノミーは「サービスとサービスをAPIでつないで価値を生み出す経済圏」です。例えば、GoogleとUberをAPIでつなぐことで、GoogleMap上で「ここからここまで行きたい」と入力するとUberのサービスが呼び出され、車が手配されるなど。自社のAPIを外部に公開して使ってもらうことで、Uberは利用機会の拡大が見込めるので得をする。反対にGoogle側では、自社のサービスに他社のAPIを組み込むことで、開発コストの低減と利便性の向上が見込めるので得をする。シェアリングエコノミーが拡大していき、その中でAPIを使っていくことでAPIエコノミーがどんどん広がっていくんだそうです。
2部では、ビジネスとテクノロジーが融合する「X-Tech」を支える技術についてお話いただきました。
「X-Tech」という言葉の認知度は25%を超え、一般常識となりつつあります。それに対してベンチャー企業での認知度は37%、既に実践しているのは25%にも上るそうです。X-Techとは「洗練されたITをコアとして、その業界では新参者である企業(あるいは事業主)が、新しい価値や仕組みを提供する動向」だそうです。X-Techの中で最も有名なのが「Finance(金融)」と「Technology(技術)」を融合させた「FinTech」です。FinTechの中にもいくつも種類があります。例えば、スマートフォンでカード決済を可能にするデバイスを開発している企業、消費者の消費動向から個人の稼ぎを予測し、融資の材料とする企業など様々あるそうです。
こういった動向の裏にも理由があると言います。クラウドの登場によってベンチャー企業がトライ&エラーでアイディアを手軽に試すことができるようになったこと、スマートフォンの普及によってユーザの手元でできることが増え、それをログデータとして取得できるようになったこと、ハードウェアの進化、分散処理技術の進化によって大量データ処理の能力が向上したことが挙げられるそうです。
引き続きS.Mさんにはブロックチェーンについても紹介していただきました。しかし、5分という時間の中でブロックチェーンを正しく理解するのは難しいとした上で、なんとなく概要を持ち帰って欲しいと言います。
ブロックチェーンを端的に説明すると”「物理的に壊れない」「論理的に壊れない」「管理者が要らない」「入出力履歴情報を管理する」仕組みのこと”だそうです。物理的に壊れないとは、仕組みを実現するハードウェアの大半が壊れてもシステム自体が崩壊しないこと。ブロックチェーンは分散ノードによって情報が管理されているので、大半のノードを失ってもシステムは止まりません。論理的に壊れないとは、不整合データを書き込めないこと。さらに、過去のデータを書き換えられないこと。分散ノードが書き込みの可否を判断しているので、不整合データは書き込めません。そして、処理が終わったデータを次に処理するデータに組み込むので、どこかのデータを書き換えようとすると、それに連なっている全てのデータを変更しなくてはなりません。管理者が要らないとは、RDBMSのような仕組みを持たなくてもシステムが成立すること。分散ノードだけで成立しています。入出力履歴情報とは、「誰が何をどれだけ持っている」ではなく「誰から誰に何を渡した」の情報のこと。ブロックチェーンではこれだけを管理しています。
ここまでの説明でブロックチェーンが無敵のシステムのように感じるかもしれないですが、実際にはそうではありません。全ての分散ノードが壊れるとシステムは崩壊するし、ネットワークが分断されても信頼性は失われます。こういったメリットとデメリットを踏まえた上で、どこに適用ができるのか世界各地で研究開発されているそうです。
FPGAとは「Field Programmable Gate Array」の略で、「その場でプログラム可能な論理集積回路」のこと。ソフトウェアエンジニアにはあまり馴染みのない技術ですが、実はルータやスマホなど身の回りのものにも組み込まれているそうです。FPGAは名前の通りプログラムの書き換えが可能、省電力、並列処理能力が高いなどの特徴があります。実際には、SRAM上の真理値表の書き換えによって回路の構造を変えることができます。さらにCPUやGPUとはデータの処理方式が違い、データを低クロックで並列処理できるので、かなり低電力で動作します。
最近、FPGAが利用されているのは主に2つの目的があります。1つはビットコインのマイニング。特定の目的に対する並列処理に長けていて、かつ省電力なのでFPGAは最適でした。もう1つがディープラーニングへの利用。ディープラーニングというとGPUの利用が有名ですが、実はFPGAも使われることがあります。GPUと同等の処理能力を出した時の消費電力が、GPUの1/5程度にまで抑えられるんだそうです。さらに、FPGAのプログラミングを支援する便利なツールの登場や、FPGA自体が安価で高性能になってきたことなどもあって注目を集めています。
K.Iさんには「データドリブンマーケティング(DDM)」について紹介していただきました。
旧来のマーケティングは「KKD(勘と経験と度胸)」によるものが多く、熟練者の「カンピューター」に頼っていたそうです。それに対して最近のマーケティングでは、インターネットの普及によってWebが多く用いられるようになりました。それによってアクセスの数や時間などの行動データが容易に取得できるようになりました。これらのデータを元に、次のアクションを考えるマーケティング手法のことを「データドリブンマーケティング」と呼ぶそうです。A/Bテストに代表されるように、Web上での広告の出し方を気軽に試すことができるようになったことも注目の大きな理由となっているそうです。
3部では、これまでの発表にあったような世界を実現していく、これからの「開発技術」についてお話いただきました。
私たちを取り巻くテクノロジーに対応する「開発技術」について技研のM.Tさんにお話しいただきました。
IT自体がビジネスをリードし、新しい価値を創造する時代になってきています。従来のITシステムでは、業務のコスト削減、効率化などを目的としたものが主でした。このようなシステムはお客様の要望をよく聞いて、業務を理解して、安定した稼働に向けて時間をかけて作るものでした。それに対して新時代のITシステムでは、そのシステム自体がビジネス戦略の達成に直結します。そして時代のニーズに合わせたものを作るので、素早い開発が求められています。
しかし旧来の開発スタイルでは、この新時代のITシステムの開発には対応できません。旧来の開発スタイルでは開発からリリースまでに膨大な時間を要するからです。そしてこれからのシステム開発に求められているものが「Agility」です。Agilityとは「ビジネス戦略、世の中のニーズの変化などに俊敏、柔軟に対応すること」というビジネス用語ですが、システム開発に求められているAgilityは、高速な開発スピード、差別化されたサービス、リスクの最小化といった俊敏性です。
それを達成する為のアプローチを3部のこのあとの発表で紹介します、と次の発表に繋げました。
Agilityを実現するプロセスの紹介として「Agile/DevOps」を語っていただきました。
まずAgile(アジャイル)とは「迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称」のことです。その代表的なものに「Scrum」「XP」「FDD」などが挙げられます。2010年頃、XPが大きな注目を集めました。従来のウォーターフォール開発に対するアンチテーゼとして大きな期待がなされていました。しかし、結果的にはあまり普及はせず、バズワードと化してしまいました。その理由として「ドキュメントを作らずに開発を進めてよい」という大きな誤解が解けないまま浸透してしまい、イロモノ扱いを受けるようになったことが挙げられるそうです。
それが近年のクラウドの急速な普及によって、ビジネスAgilityとそれを実現するシステム開発のAgilityを改めて意識するようになりました。そうしてAgileがここにきて再注目されるようになりました。
次に、Agileに対するよくある誤解について触れていきます。1つ目は「要件は不明瞭だが欲しいシステムが開発できる」という誤解です。全体の要件を理解する必要はないですが、直近取り掛かる要件については明確でなくてはなりません。2つ目に「安く早くシステムが開発できる」という誤解です。機能単位で開発サイクルを廻す特性上、総開発コストは基本的に高くなります。このようなことから、作るものやスケジュールが明確な場合においては、ウォーターフォール型開発の方が安く作れる可能性が高いと言います。
次はDevOpsの紹介です。
DevOpsとは「開発(Development)」と「運用(Operation)」がお互いに協力し合い、システムの変更を本番にリリースすること。開発は新しい機能のリリース、運用はシステムの安定稼働をミッションとしています。開発がもたらす変更がシステムの安定稼働を損なう恐れがある為、相反するミッションと言えます。しかし、ビジネスAgilityを実現するため、新しいサービスを迅速に繰り返しリリースする必要が出てきました。それを「ツール」と「文化」によって実現することが「DevOps」だと言います。
Y.Kさんにはマイクロサービスアーキテクチャと、サーバーレスアーキテクチャについて紹介していただきました。
まずは「アーキテクチャ」そのものについて。今回の話に登場するアーキテクチャとは「システムアーキテクチャ」のことです。システムアーキテクチャとは「目的のシステムを実現するために何を組み合わせてどこで何をするか決めたもの」だと言います。そしてこれからの時代、Agilityを実現するためにクラウドの利用は必須となってきます。そのクラウドにFitするアーキテクチャとして「マイクロサービスアーキテクチャ」と「サーバーレスアーキテクチャ」が登場します。
まずはマイクロサービスアーキテクチャについてです。
マイクロサービスアーキテクチャとは「独立した小さなサービスの組み合わせにより、単一のサービスを実現するアプローチ」です。従来のモノシリックなサービスでは、リリースサイクルが1つしか回せず、チームも技術レイヤに依存した構成となってしまいます。これを「縦に切る」ことで、機能ごとのリリースサイクル、機能ごとのチーム構成を持つことが可能になります。
次にサーバーレスアーキテクチャについてです。
ここ数年でバズワードと化しているキーワードですが、Y.Kさんは「サーバーについて一切考えることなくコードをビルドして実行できるアーキテクチャ」のことだと言います。サーバー不要、オートスケール、実行回数に応じた課金などが特徴として挙げられます。一般的にアプリケーションはビジネスとしてお金に直結する部分で、ミドルウェアはサーバーはビジネスを支える部分だと言います。そこから「お金に直結しないインフラはできるだけ意識したくない」という思いがわいてきます。そこでサービスを「横に切り」ます。ミドルウェアやサーバーはPaaSやFaaSといったサービスを利用し、切り離します。こうしてAgilityを高めるのがサーバーレスアーキテクチャだそうです。しかし、PaaSやFaaSの利用によって開発の自由度が下がることもあるので、ケースに合わせて利用することが大切だと言います。
最後に「マイクロサービスアーキテクチャは”縦に切る”」、「サーバーレスアーキテクチャは”横に切る”」ということを覚えて行って欲しい、と発表を締めくくりました。
記事の終盤にきて、総文字数に驚きました。すみません、ゆっくり読んでください。
今回のFutureMeetupは発表キーワード数にこだわって開催しました!(※その分、発表者のみなさんには「1人5分で!」と無茶なお願いを聞いてもらいました。本当にありがとうございました…。)若手エンジニアを中心に、もっと技術に興味を持ってもらいたい!そのきっかけになって欲しい!という思いで開催しました。開催後のアンケートでも「たくさんのキーワードについて知れて楽しかった!」との声もいただきました!