どうも、セクションナイン の 吉田真吾(@yoshidashingo)です。
Serverlessというキーワードが一気に盛り上がってきています。今年5月にNY、ブルックリンで開催されたServerlessConf NYCから約2ヶ月。2箇所目として「東京」が9/30&10/1、3箇所目として「ロンドン」が10/26-28に開催されることが発表され、ますます勢いが増しています。
ちなみに東京開催についてはセクションナインが担当することになりましたが、NYCで話したスピーカーやスポンサーも続々決まっていっており、もう少ししたら詳細を発表したり、チケット販売を開始できるようになると思います。
Serverlessとは?
バズワードと認識されることが多いですが、私の認識としては最もクラウドコンピューティングの原理原則に近い活用方法であって、クラウドを活用するうえでプラットフォーム側の実装がよりクラウドコンピューティングの理想に近づいたものという認識です。
martinfowlerブログに記載されているUIドリブンアプリケーションのバックエンドとメッセージドリブンアプリケーションが対象というのが現在の共通認識ではありますが、今後もう少し広い範囲の話題も増えてきて対象範囲が変わっていくかもなと思っています。
あと、元A Cloud GuruのAntさんのスライドも非常に分かりやすいと思います。
www.slideshare.net
関連するパラダイムシフト
- ライセンスというポータビリティの束縛があるプロプライエタリソフト→依存性を解決するパッケージシステムを通じてどこでも実行環境が構築可能なOSSへのシフト
- Infrastructure as Codeによるアプリ/インフラともにソフトウェアのベストプラクティスを適用して管理する流れへのシフト
- Dockerイメージなどのコンテナイメージを用いて即座に実行環境を準備可能とするリソース調達モデルの変化(※俗にまるでCGIのような実行環境の調達方法と言われる)
- 機能ごとにマイクロサービス化するためにAPIに分割していくことでインタフェースの汎用性が高まった→インタフェースさえ変わらなければ自分の環境だろうがどこかのクラウドサービス上だろうが機能ごとにポータブルに配置可能となった
- などなど...(他にもいろいろな要素があると思います)
これらがすべて合流した結果がFaaSやAPIゲートウェイ系サービスを活用したサーバーレスアーキテクチャに結びついたものと個人的にとらえています。
活用シーンの例
代表的なものとして以下のような物が考えられます。自分の組織で管理するもよし、SaaSも活用するもよしです。
- APIサービスとして単機能をAPI Gateway+Lambdaで実装する。認証/認可を行い属性やステータスを管理するDBサービスなど。
- シングルページアプリケーションのバックエンドをAPI Gateway+Lambdaで機能実装する。あるいは静的ページであれば(HugoやStaticPress)S3に配置し必要に応じてCloudFrontやACMを設定して配信する。
- iOSアプリやAndroidアプリのバックエンドをAPI Gateway+Lambdaで機能実装する。
- ログが格納されたらイベントドリブンで解析して、結果をどこかに永続化して、またイベントを発火して終わる。
- などなど...
Serverlessはベンダーロックインか?
ベンダーロックインが「悪」だとされるのは「ライセンスを資産として買い切りさせられるために減価償却の5年間はもったいなくて捨てられない」「仕様がブラックボックスなくせに、バグっぽい挙動を問い合わせるために細かい情報を自分で収集して提供しないといけないベンダーとユーザーの情報の非対称性」などを指して言われることが多いと思います。逆にここらへんがクリアであって、アプリのポータビリティが確保できていれば何も問題ないのではないかと思います。
運用のResponsibility、NoOps
また、通常Opsはカスタマーに提供するサービスレベルを設計し、十分担保できる技術を採用したりサービスを採用したりしますが、いわゆる世に出回っている便利なSaaSにはこのサービスレベル設計において必要な情報(SLA、SLO、内部仕様の公開、トラブルシュートのためのドキュメント、などなど)が足りてない傾向にあることはたしかです。お金を払ってサービスを利用しているからといってそれを用いてカスタマーに提供しているサービスの最終責任者が自分であることには変わりません。そのSaaSがSPoFにならないか、トラブった場合にどう影響範囲を切り離したり別のサービスに切り替えたり、あるいは縮退運転するか、などは自分で考える必要があります。
そういったもろもろをPodcastで語ってみました
ServerlessConfはどんなイベントか
ベンダーニュートラリティ
今後のサーバーレスの広がりを考えると、特定のベンダーだけが得意な分野ではなくなっていくものと推定されます。なぜなら、UIドリブンアプリケーションやイベントドリブンアプリケーションという、Webシステムの文脈だけでなく、たとえば大規模分散コンピューティング環境や、IoT、音声認識やテキスト分析、深層学習といった分野でもServerlessでアプリ利用する瞬間だけ実行環境が用意されるというモデルに近づくことが予想されているからです。
ということで、当初からそういった文脈をすべてオープンに受け入れて会話できる新しいコミュニティが必要だなと認識しており、いい機会だったので日本市場でのServerlessConfの実施のライセンスをしてもらったのが発端です。
スピーカーとスポンサーを募集しています
ということでServerlessConf Tokyoではスピーカーとスポンサーを募集しています。どちらもサイトから必要事項を添えてメールでご応募ください。
スピーカー
上記で述べたようにさまざまな文脈が入り混じって混沌としているのが現在のサーバーレスです。自分はこの分野においてサーバーレスとの関係をこう考えている、などの意見を積極的に発表していくことが、日本におけるサーバーレスの文脈の深化につながっていきます。
以下のような文脈を想定しており、すでにかなりの応募をいただいています。第1弾としては8/8(月)くらいまでには選定したいと思っています。
- サーバーレスな環境を提供するプラットフォームの話
- サーバーレスを便利に利用するフレームワークの話
- サーバーレスを使った開発の話
- サーバーレスを使ったOpsの話
スポンサー
ServerlessConfはサーバーレスの活用を推進するたくさんのエンジニアによって構成され、参加者の幅はフロントでJSをコーディングしている人からインフラを作っているエンジニアまで多岐に広がっています。このリージョナルイベントをスポンサーシップとして応援してください。また、今後Meetup系の小規模イベントを合同企画させていただくことも可能になると思います。興味があればぜひお問合せを。