【AWS DevDay Tokyo 2019 セッションレポート】オープンソースコミュニティで加速するサーバーレスの未来 #AWSDevDay

2019.10.04

AWS DevDay Tokyo 2019のセッション、「オープンソースコミュニティで加速するサーバーレスの未来」をレポートします。

セッション概要

サーバーレスの世界ではアプリケーションの開発をより簡単にしてくれるオープンソースのプロダクトが多数存在します。

 これはオープンソースコミュニティによりサーバーレスの世界の成長が加速しているといっても過言ではありません。  本セッションではソフトウェアエンジニアとしてオープンソースのコミュニティに参加してサーバーレスのエコシステムを成長させることの意味やそこで得られるもの。  その上で、サーバーレスに関わるソフトウェアエンジニアとしてのキャリアパスやこれからの未来についての話をお届けしたいと思います

スピーカー

Serverless Operation, Inc
CEO

堀家 隆宏 さん

セッション内容

自己紹介

  • Serverless Operationsという会社をやっている
  • Serverless Frameworkのメンテナー
  • サーバーレスの開発が楽になるツールを作ってオープンソースで公開
  • Serverless Meetup Tokyo オーガナイザー

伝えたいこと

  • クラウドの世界にいながらオープンソースコミュニティに参加することの楽しさや意味
  • キャリアにどんな影響を与えるか

私とサーバレス の歴史

歴史

  • 2006
    • 大学の研究室、シミュレーションプログラムをC++で書く。プログラミングの楽しさを感じるようになる
  • 2008
    • 神戸デジタル・ラボという神戸のSIerに新卒入社。PHPでWebアプリ開発
  • 2009
    • WordPressとの出会い
    • プラグイン作る
    • コアにパッチを送る
    • カンファレンス主催
  • WordPress専業の会社に転職
    • ホスティングサービスのバックエンドにAWSを採用、AWSに出会う

AWSが楽しそうに映る

  • 2013ごろは、まだEC2がメイン
  • プログラマの自分はインフラを触ることはあまりなかった

Lambdaの登場

  • サーバーがなくてもプログラムが実行できるようになった
  • ワクワクが増した

API Gatewayリリース

  • LambdaベースのアプリがHTTPを通してAWS外に容易に出せるようになった
  • AWSサービスをうまく組み合わせて面白いアプリを公開できる

動くものを作っては試す日々

  • CloudSearchを組み合わせて検索APIサービス
  • 購買予測WordPressプラグイン

直面した問題

  • マネジメントコンソールから直接ソースをアップロードするためバージョン管理できない
  • 分散環境下での構成管理
  • CI/CD自動化

Serverless Frameworkの登場

  • YAMLやJSONで構成管理
  • AWSの構成をOSS化できる衝撃

関わっているOSSプロジェクト

Serverless Framework

  • Star三万くらい
  • コミュニティが大きい
  • プラグインシステム
    • 足りないところを補える
    • 私も作っている
    • Serverless Step Functions
      • 設定ファイルの書き方
        • YAML
        • Step Functionsのイベントソースを定義
        • 設定ファイルの記述量が少なくて済む
      • 人気が出てきている
      • AWSからリンク貼ってもらえている
    • Serverless API Gateway Service Proxy
      • Lambdaがいらない場合
      • 構成書くのが難しいので、簡略化
      • シンプルな設定ファイル
      • ユースケース
        • リアルタイムランキングAPI
        • APIGateway - Kinesis Stream - Get Ranking API
        • APIGateway - Kinesis Streamのところに利用

その他コントリビュートしたOSS

  • 多数

グローバルのサーバーレスコミュニティに参加することで得たもの

オンラインでコードを中心につながるコミュニティ

  • ゆるーくオンラインでつながる

プログラマとして参加する楽しさ

  • 人気のあるプロダクトにはスキルのある人が集まってくる。ソースレビューを受けることで格段にレベルアップ
  • 遠くの国の会ったことのない人から感謝される喜び
    • 南アフリカの人に感謝された

英語ができないことは大きな問題ではない

  • 日常会話が怪しいレベル
  • 翻訳ツール使えば意見を伝えることは可能
  • 時間がかかっても文章を組み立て伝えることが重要
  • 下手でもみんなちゃんと聞いてくれる

こんなマインドセットでOSSと向かい合う

  • 人気のあるOSSプロダクトは偉くてすごい人だけが作っているのではない
  • 世界を変えることは難しいが、ちょっとだけよくすることはOSSで可能

OSS活動を続けるには

継続が難しい理由

  • 公開してみたが反応がないので飽きる
  • OSS活動はめちゃくちゃ地味

打開方法

  • 先ずはスター1000以上ありよく関わっている人が複数人いる、かつhelp-wantedなどコントリビュータの入り口を作ってくれるプロジェクトで継続的にPRを送り続ける
  • 先送りにされている問題を潰していく人の存在はめちゃくちゃ重要
  • 継続する人の数はめちゃくちゃ少ない。継続することで信頼されてコミット権を付与される可能性は高い
  • コミット権をもらう頃にはOSSプロダクト内でコミュニティの一員として認識される。自分の見える景色も変わる。
    • 業務でスパゲッティコードをメンテしている人なら活躍できるはずだ!
  • PRを出し続けたプロダクトのプラグインなど付随のOSSプロダクトを出してみる
  • コミュニティの人がFBしたり宣伝してくれたり、一緒に開発に参加してくれたりという良いサイクルが回るようになり、継続していけるモチベーションを保ちやすくなる
    • 日本人で有名OSSメンテナーやっている人は少ない、チャンス

サーバーレスの未来とオープンソース

Code is no longer King - Serverless has dethroned it

Cloud 2.0 とは

  • サーバレス で自分たちで責務を持たないといけないのはコードの部分
  • だからその責務から解放されるためにより少ないコードの方が良い
  • 多くのマネージドサービスでは実現できない部分をコードで保管しているケースが多く、そこはあまり価値を生まない
  • サーバレスの狙いはコードをより少なく、クラウドサービスをできるだけ使うことだ
  • これをCloud 2.0と名付けよう
  • フルマネージドサービスをうまく利用することで、アプリケーションロジックの責務の多くをクラウドに任せよりビジネスバリューを出すために仕事に集中すること

そんな変化にどのように向き合うか

  • 2.0の時代でもコードを書くということが本質的になくなることはない
  • なぜならクラウドを含めたこの世のソフトウェアは全てプログラムで動いているから
  • コードを書く視点を変えてみる。単発納品業務のコードに価値はあるのか?継続的に何かを解決できるようなことをコードで表現していく方が良いのでは

OSSであることのチャンス

  • クラウドのサービスは日々新しいものがリリースされる。それに付随して新たな問題も発生するということ。問題はチャンスであるということ
  • OSSで自分の書くコードが多くの人に影響を与えられるはず

Serverless Daysをやります

感想

オープンソースのコミュニティに参加することはメリットしかないな、、と興味が湧きました!先ずは好きなOSSのソースをみて見るところから始めてみたいと思います。