サーバーレスの薄い本(Serverless Meetup Tokyoセッション紹介) #serverlesstokyo

セクションナイン吉田真吾@yoshidashingo)です。

Serverless Meetup Tokyoを今週水曜に初めて開催します。

今日は記念すべきMeetupの初回のトップバッターを飾る仲山昌宏さんと軽いチャットをしました。

以前に私が「めもおきば TechReport 2016.08(サーバレスアーキテクチャ特集)※通称サーバーレスの薄い本」をいただいたとき、「網羅的」かつ「簡潔に」サーバーレスの歴史や考え方、周辺の話題との関連性がしっかりと書かれており感銘を受け、無理を言って増刷していただき ServerlessConf Tokyo で頒布していただきました。案の定予備としてお持ちいただいた補充分まで含めて早々に完売しておりました。

今回話す内容は20分枠なのでダイジェストとなってしまいますが、当日頒布もありますので「サーバーレスとは何か」を考えるときに手にとっていただきたい一冊です。

プロフィール

  • 名前:仲山昌宏
  • 会社名:株式会社where
  • 役職:IoT基盤センター サービスプロデューサー

f:id:yoshidashingo:20161108121954j:plain

Quick Chat

---- 仲山さんは普段どんな仕事をしてるんですか?

普段はIoTプラットフォームのクラウド側の開発と、社内IT基盤を兼務でやっています。

その中で、IoTプラットフォームのクラウド側として、Bluetoothのメッシュネットワークから受け取ったデータを収集・分析するためのシステムを開発しています。サーバレスアーキテクチャは、勘所さえ押さえれば、開発や運用のコストを抑えられるだけでなく、開発工数が足りないときに「金の弾丸」で殴りやすいところもあり、人が足りていない現状で大変助かっています。

----- 薄い本シリーズについておしえてください

元々コミケには買う側でずっと参加していましたが、きっかけはニフティさんのお誘いでクラウドに関する書籍執筆に参加したことがきっかけで、自分でも本を出してみたいと思って、思い立ったが吉日と出すことにしました。 今後も、クラウドに限らずなんとなくその時自分でブームになっているキーワードで、継続して出していくつもりです。

---- 今回のサーバーレスの薄い本の経緯や目的はなにでしたか?

昨年末に、Hardeningを第一特集にした一冊目を出したのですが、その時にはやりのキーワードの一つとしてサーバレスアーキテクチャを紹介しようと自分の中で整理するなかで、もう少し掘り下げてみたいという思いがあり、今回の特集になりました。

f:id:yoshidashingo:20161108095515j:plain

---- サーバーレスであることとはなんでしょうか?

システムを実現する上で、人が考えないといけないことを減らし良いシステムを作るための「良き制約」として、サーバという概念を捨てよう、というのが本質だと思います。

---- 今回の薄い本の反響ってありましたか?

正直自分でも、必要な内容は押さえたとは思いつつもここまで評価していただいて嬉しいです。

---- 個々のサービスなどについてちょっと突っ込んだ話などあれば最後におしえてください。

DynamoDBがまだうまく乗りこなせずに色々苦労しています。 あと、「うまくスケールしてくれる」とはいいつつも、DynamoDBのキーやKinesis Streamsのパーティションキーなど、うまくスケールさせるための設計は当然こちらが設計しないといけないので、そのあたりを少しずつ失敗で実績を積み上げているところだったりします。

---- ありがとうございました。

まとめ

短いチャットでしたが非常に明快で面白い内容でした。明日が楽しみですね。 serverless.connpass.com

3分ではじめるWebtask

セクションナイン吉田真吾@yoshidashingo)です。

各社FaaSプラットフォームを提供していますが、Auth0という認証SaaSの別プロダクトであるWebtaskの話をServerlessconf Londonで聞いているところなので聞きながら試してみてます。

Getting Started

  • Webtaskのサイトにアクセスします。

https://webtask.iowebtask.io

  • GithubやFacebookなどでログイン(アカウント作成)します。

  • wtクライアントをインストールします

$ npm install wt-cli -g

ちなみにこのクライアントはオープンソースで開発されています。

github.com

  • 環境の初期化をします
$ wt init <作成したアカウントのメールアドレス(https://webtask.io/cliにあらかじめ表示されています)>

Please enter the verification code we sent to <メールアドレス> below.
Verification code:

メールアドレスに6桁の確認コードが届いているので入力して環境の初期化をします。

  • サンプルコードを試す
$ echo "module.exports = function (cb) {cb(null, 'Hello');}" > hello.js
$ wt create hello.js

Webtask created

You can access your webtask at the following url:

https://xxxxxxxxxxxxxxxxxxxx.run.webtask.io/hello?webtask_no_cache=1

こんな表示が出るのでURLにアクセスすると、コードが実行されて画面に表示されますね。

f:id:yoshidashingo:20161027215119p:plain

  • ちょっとコードを編集してみましょう。
$ wt edit hello

と入力するとブラウザ上がエディタが起動してコードが編集可能になります。

f:id:yoshidashingo:20161027215525p:plain

コードを以下のように編集して実行すると、

var view = (function view() {/*
    <html>
    <head>
      <title>Welcome to Webtasks</title>
    </head>
    <body>
      <h1>Hello, <%= name %></h1>
    </body>
    </html>
*/}).toString().match(/[^]*\/\*([^]*)\*\/\s*\}$/)[1];

module.exports = function (context, req, res) {
  console.log('hoge');
  res.writeHead(200, { 'Content-Type': 'text/html' });
  res.end(require('ejs').render(view, {
      name: context.data.name || 'Anonymous'
  }));
}

HTMLをレスポンスして f:id:yoshidashingo:20161027221115p:plain

ログ出力されるコードが簡単に実行できました。 f:id:yoshidashingo:20161027220957p:plain

実行環境について

Webtaskの実行環境も他のFaaSと同様にコンテナベースでできており、Dockerをベースにしているそうです。(かつ常に実行環境が裏で事前にプロビジョニングされておりウォーミングされている)

その他のアクション

セッション内ではデモとしてSlackを使ったChatOpsが披露されていました。

それ以外にもGitHubのリポジトリにサンプルがたくさん入っており、Webtaskにホストしているコードをスケジュール実行する方法や、認証後のJWTの内容を自分でカスタマイズする方法などがあり、結構有用かもしれないと思っているところです。

去年のブログの答え合わせとかServerlessconf LondonでのAWS IoTの話とか雑記

セクションナイン吉田真吾@yoshidashingo)です。

この記事はSORACOM1周年記念リレーブログの10/17分です。 blog.soracom.jp

昨日からServerlessconf Londonに来ています。

朝日が昇る時間が遅いので朝7時のラッシュアワーでもまだ幻想的な感じです。

気になっていたFabricですが人気がまったくなくてすっかりサビれた感じでこりゃ復活はないなといった印象。

さて、去年、こんなエントリーを書きました。 今年は残念ながら SORACOM Air がつながる場所にいないので、こちらの答え合わせといくつかよもやま話をしたいと思います。最初に言っておくとあまりオチはないです。

yoshidashingo.hatenablog.com

答え合わせ

海外から日本への渡航者向けプリペイドSIM

私が予想するなんかより早く事業として着手していたんでしょう、SORACOMのリリース後ほどなくリリースされたeConnect JapanさんのJapan Prepaid SIM、30日間から使え、独自のアプリでサービスの開始や停止などコントロールできて非常に便利なSIMです。

www.econnectjapan.com

音楽ストリーミングサービス専用SIM

SORACOMとは関係ないですが、LINEモバイルが月額500円でLINEのトラフィックをノーカウントにするという話が上がりましたがLINEミュージックは対象外ということで、インターネットの中立性の話や、そもそもストリーミングをカウントしないというのはなかなか事業として成立しないという背景があるかもしれません。

https://mobile.line.me/pdf/linemobile_countfree.pdf

DJプレイのリアルタイム共有サービス

これはまだIoT的な分野で出てきてませんが、SpotifyなどでDJプレイできるターンテーブルがすでに販売されてるので、セットトップボックスを設置してプレイリストをシンクロさせることで、音声を拾わなくてもDJプレイをお茶の間でリアルタイムに再現するラジオチャンネルみたいなのはできそうですが、ないですね。この際ちょっと作ってみようかな。

ソーシャル自爆ボタン

これはネタなのでアレですが、そもそも大手SNSにおいては本人死亡時に家族の申し立てで設定変更ができる追悼アカウントというのもあるそうです。ただ、自分の知り合いでもいくつかすでに訃報に触れてはいますが、特に追悼アカウントが運用されている感じはないですね。今後に期待です。

https://nanapi.com/ja/128783nanapi.com

今後

さて、先日こんな記事が出ていました。

jp.techcrunch.com

SORACOM vConnec CoreをKDDIに開放し、KDDIが事業主体となってSORACOM Airと同様のサービスを提供するというものです。 すでにKDDIは自社が回線プラットフォームとしてMVNE/MVNOに提供していることから、vConnec Coreを使う意味を考えると、Beam以降のサービスを提供(するんじゃないかという仮定に基いて書きますが)することこそが価値だと思いますし、でなければ回線プラットフォームがSORACOMと組んだメリットが見いだせません。

SIMを組み込んだデバイスからKDDI網の内側を通してセキュアな環境でデータ収集やデバイスへの通信が行えるというのがひとつの売りになっていくんじゃないかと思います。

Building better IoT Applications without Servers

ゆうべたまたまスピーカーディナーの前にAWSのテクニカルエバンジェリストのIanとTrek10のJaredと居合わせたのでちょっと呑んで、今日も午前中からServerlessconf LondonのセッションでIanがIoTの話をしていたのでその話をリポートして締めたいと思います。

IoTのデバイスについての雑感

  • CPUパワーが弱い、バッテリーをたくさん積めない。

IoTの課題

  • デバイスへのアプリケーションのデプロイ
  • セキュリティ
  • デバイスとの接続は低電力で行わなければいけないし使われる場所の電波がよいとは限らず、実際不安定であることがよくある。
  • デバイスの認証/認可
  • デバイスの登録
  • 予測的な分析、可視化

AWS IoTでの解決方法

上記のすべての課題を解決するためにAWSが展開しているのがAWS IoTです。

  • レジストリにデバイスのメタデータを格納することでデバイスの登録管理ができます。
  • デバイスのアプリケーションにSDKを埋め込むことでTLSで暗号化されたデータ通信が可能です。
  • サーバー側から端末にアップデートのトリガを送るときなどもDevice Shadowを使うことでデバイスの電源状態を気にせず非同期にコマンドを送信することができます。

ということで、IoTプラットフォームはAWS IoTのようなプラットフォームに乗ると便利ということで、あとは回線事業者だからこそ提供できる網の内部を通してインターネットを経由しないでデバイスとサービス側のアプリケーションをつなげる仕組み、まさにSORACOMが提供している部分を活用していくことが重要なアプローチですね(一例でいえば端末で暗号化せずにMQTTでSORACOMに投げて暗号化した状態でSORACOMからサーバーアプリケーションに投げるというのは上手い例だと思います。)

AWS IoTボタンを使ったちょっと面白いプロジェクト

セッションの最後にAWS IoTボタンを使った実例がいくつか紹介されたので掲載しておきます。

  • Ping Pong Showdown

www.hackster.io

  • A Slack-powered doorbell

www.andrewmcgill.me

  • Emergency Sweet Green Ordering

www.andrewmcgill.me

  • Nerding Out With the Amazon IoT Button

medium.com

www.slideshare.net