マンガでわかるLINE Clova開発 1話「どんな仕組みで動くの? サーバーレスって何?」

トレンド
Serverless VUI FaaS Azure Functions スマートスピーカー
マンガでわかるLINE Clova開発 1話「どんな仕組みで動くの? サーバーレスって何?」
マンガで楽しくスマートスピーカー開発入門! この連載では、初心者わかばちゃんが、LINE Clovaの開発に挑戦していきます。まずはこの第1話で、開発の全体像をサクッと押さえちゃいましょう。

(アイキャッチイラスト: 湊川あい / ちょまど )

この記事でわかること

この記事では

  • スマートスピーカー「LINE Clova」のスキルが動く仕組み
  • スキル開発の流れ
  • サーバーレスって何?
がわかるよ!

LINE Clovaって何?

Clova(クローバ)は、LINEが開発したAIアシスタントです。
スマートスピーカー「Clova WAVE」や「Clova Friends」などに搭載されています。
音声操作で音楽やニュースを聞けたり、友達とメッセージのやりとりや無料通話ができます。

ニュースを聞いたり、天気を聞いたり……。こうした機能は、Clovaでは「スキル」と呼ばれているよ。
スキル、つまり「Clovaが使えるワザ」ってことですね!
このスキルを私たち第三者が作れるようにするための開発環境が用意されているんだ。それがClova Extensions Kit(CEK)だよ。
それって、何か新しくソフトをインストールする必要がありますか?
ううん、Web上で操作できるよ!
Clova Developer CenterからLINE IDでログインすれば、誰でも無料で使えるよ。

作ったスキルは「Clovaスキルストア」で配信

CEKで作ったスキルは、審査を経て、LINE Clovaアプリ内の「Clovaスキルストア」上で配信されます。

▼今回作るスキル「わかばちゃん占い」
すごい!こんな機能が自分で作れるんですね!

開発の流れ

LINEの公式チュートリアルにあるように、この順番で開発していきます。

  • ステップ1:Extensionサーバーを用意する
  • ステップ2:Extensionの基本情報を登録する
  • ステップ3:対話モデルを登録する
  • ステップ4:Extensionの実際の動作をテストする
Extensionっていうのは、開発側から見た「スキル」の別名なんだって。

サーバーの用意はどうする?

アジュール……ファンクションズ?

まず、マイクロソフトはクラウド プラットフォームを提供していて、それはMicrosoft Azure(アジュール)って呼ばれているのね。

Azure って辞書で引いたら英語で青空って意味ですね!

うん! で、Azure はサーバーレスのサービスも提供していて、それはAzure Functionsって呼ばれてるの。

Azure Functionsは、小規模なコードをクラウド上でお手軽に実行できるサーバーレスアーキテクチャだよ。

AWSでいうところの「AWS Lambda」、GCPでいうところの「Cloud Functions」に相当するサービスだね。

サーバーレスアーキテクチャって?

サーバーレスアーキテクチャのキモとなるのが、FaaS(Function as a Service)です。 FaaSとは、プログラムの実行環境を提供するサービスです。

C#やJava、JavaScriptなどのソースコードをアップロードし、そこで定義した関数に対して外部からリクエストを渡すと、その処理結果をJSON形式で受け取れます。

▼今回作ろうとしている仕組み

▼Azure Functionsの画面。自分が書く言語はC#・JavaScript・F#・Javaから選べます。

「サーバーレス」って、最近よく聞きます! サーバーを使わないってことですか!?
ううん、「サーバーレス」というのは、Azure自体が「サーバーを使っていない」というわけじゃないんだよ。
実際のクラウドサービスはサーバー上で動いてるからね。
!? サーバーがないわけじゃないんだ!

開発者がサーバーの存在を「意識せずとも」アプリを開発できる。
そういう意味で「サーバーレス」と言われているんだよ。

開発者はアプリを動かすのに必要なコードだけ書けばいいというワケ!

IaaS、PaaS、FaaS……何が違うの?

最近PaaSだとかFaaSだとか、いろんな言葉が出てきてますよね?
それぞれ具体的に何が違うのか、よくわからないんですけど……。
そんなわかばちゃんにはこれ!
オンプレミス、IaaS、PaaS、サーバーレス(FaaS)の違いをまとめたよ。
青い部分が自分で用意する必要があるものだよ。
▼ちょまどさんのスライド


わかりやすいです!
自分でサーバー本体から用意するオンプレミスだと、ハードウェア・OS・ランタイム・アプリ・関数までトータルでやらなきゃいけない。でも、Azure Functionsのようなサーバーレスのサービスを使えば、関数だけ書けばいい。

サーバーレスはPaaSのうちのひとつだけど、「一般的なPaaSを超えた機能を提供しているモノ」と捉えるといいよ。

結局のところ、今回使うAzure Function の Comsumption planに関しては「サーバーレスでFaaS」だと思っておいて間違いないよ。

今回のまとめ

  • Clova ── LINEが開発したAIアシスタント
  • スキル ── Clovaのアプリのこと。たとえば、明日の天気を聞くと教えてくれるのは「天気スキル」
  • Extension ── 開発者側からの「スキル」の呼び方。
  • Clova Extensions Kit(CEK) ── Clovaのスキルを作るための開発環境
  • Clova Developer Center ── Web上のサービス。ここでClova Extensions Kitを使って開発できる
  • Azure Functions ── 小規模なコードをクラウド上でお手軽に実行できるサーバーレスアーキテクチャ

次回、第2話へ続く

次回以降、Clova Developer CenterとAzure Functionsを使ってClovaのスキルを作っていくよ。
あらかじめ登録しておいてね。

こちらのページの右上の[ログイン]をクリックし、自分のLINEアカウントでログインします。無料です。

こちらのページから[無料で始める]をクリックします。

「マンガでわかるLINE Clova開発」次回以降の流れ

  • 第1話:Clova開発の全体像・サーバーレスって何?(本記事)
  • 第2話:Clova Developer Centerでスキルの基本情報を登録しよう
  • 第3話:対話モデルを作ろう
  • 第4話:バックエンドをつくろう
  • 第5話:実機で動かしてみよう
  • 第6話:審査に出して公開してみよう
  • 第7話:Clovaのスキルをもっとリッチにしてみよう
こんな流れで開発していくんですね! 私みたいな初心者でもできる内容になるみたい。楽しみだなぁ~!


マンガ・解説: 湊川あい / ちょまど

他にもある「わかばちゃんと学ぶ」シリーズ

マンガと図解で技術がわかる「わかばちゃんと学ぶ」シリーズ。
全国の書店・Amazonで発売中です。

わかばちゃんと学ぶ Git使い方入門:湊川あい 著・DQNEO 監修

著者プロフィール

湊川あい

絵を描くWebデザイナー。高等学校教諭免許状 “情報科” 取得済。マンガと図解の力で、物事をわかりやすく伝えることが好き。2014年より「マンガでわかるWebデザイン」をインターネット上に公開していたところ、出版社より声がかかる。
Twitter: @llminatoll
Webサイト: マンガでわかるWebデザイン


ちょまど(千代田まどか)

エンジニア兼マンガ家。Microsoft 社のソフトウェアエンジニアとしての本業のかたわら、マンガ家やイラストレーター、松屋エバンジェリスト(非公式)としても活動。MS入社前から Twitter 廃人であり、フォロワーは4万人を超える。
Twitter: @chomado
ホームページ: http://chomado.com/