サーバーレスアンチパターン今昔物語というイベントを開催しました

f:id:Keisuke69:20200710093627j:plain

昨日、2020年7月9日に表題のイベントを開催しました。こちらです。

connpass.com

参加者数とか配信環境とか

ありがたいことにイベント公開直後から多くの方にご登録いただいて最終的には1144人の方に登録していただき、結構な人数の方に視聴いただきました。

なお、マイナビBLITZ赤坂(赤坂BLITZ)というライブハウスのキャパが1Fスタンディングで1147人とのことなのでまあまあかな、と。

当初はこんなに集まると思ってなかったのでZoomでクローズドな感じでやろうと思ってたんですが、僕のプランの100人をあっという間に上回ってしまったためYouTube Liveでの配信となりました。

僕はライブ配信とか人生で初だったのでこの人数で失敗したらどうしよってのが一番心配でしたね。今までテストで2人でやったとかだけだったので。

昨今、各種イベントがオンラインで開催されるようになっていて皆さんOBSとか使って画面の作り込みをしているんですが省力をモットーとしているためそういったことはせずにZoomだけで配信しています。そもそも1人で喋って配信もするので凝ったことはできないというのがありました。

Zoomを使ったYouTube Liveの配信は簡単でいいですね。これは2000円/月のプランからできるようになります。安い!簡単に今からすぐ配信みたいなことも可能ですし、あらかじめスケジュールしての配信なんかも可能です。

一番言いたかったこと

今回はイベント概要にも記載したとおり過去にいろんな場で紹介してきたアンチパターンについて、プラットフォームの成長につれて今や解消されているというものがいくつかあるはずだからそれを紹介していきたいというものでした。一番大きなものはLambda+RDBMSの話だったりVPCの話だったわけで、これに関しては紹介できたと思います。

それ以外のアンチパターンについて見直してみたんですが、意外となかったんですね。ほとんどのアンチパターンアーキテクチャ的な考え方やプラットフォーム特性に起因することもあって機能のエンハンスにより解消されるといったものではありませんでした。なので多くのアンチパターンは今も有効であるという結論になりました。

逆に当日いただいた質問の回答でも言いましたが新たなエンハンスメントによって生まれる新しいアンチパターンというのもいくつかあります。このあたりはなかなか難しいところだなと改めて思いました。

あとはイベントの最後にも言いましたが、最大のアンチパターンは全てをサーバーレスにすることにこだわることだと考えています。これが実は今回一番言いたかったことですね。

当日の様子

さて、今回はいつもと違ってふわっと軽い感じで省力的にお届けするってのが試みでして、特に資料を用意することなくお届けするという形でした。とはいえ、今回はもともとRDS ProxyがGAになったことをきっかけに過去の自分のブログの内容を否定するというものだったのでそれを画面に出しながら喋ったので一応体裁は保てたかと思っています。なので今後どうしようかなーというのがあります。

そのブログはこちらです。

www.keisuke69.net

配信中は皆さんがTwitterで結構ツイートしてくれたのでいい感じに盛り上がった感も出ました。これに関しては@beajouneymanさんがまとめてくれました。ありがとうございます。

togetter.com

あと、配信前からSlidoで質問を募集していたのですが、僕個人に対する質問も含めて結構集まりました。当日の配信中も質問をいただき、こちらもありがとうございます。QAについても@hiroga_ccさんが以下にまとめてくれています。ありがとうございます。

hackmd.io

これらも含めて全体的なまとめをこれまた@beajouneymanさんがnoteに書いてくれています。ありがとうございます。

note.com

今後

今回そこそこ人数が集まったのとライブ配信も意外といけたのでこれに味をしめて秋くらいに別の切り口の勉強会もやってみたいと思いました。というわけで『俺のTech Festival 2020 Autumn(仮)』を開催しようと思います。すでに話を聞きたいいろんな人がいるのです。Vue.jsのあの人や、Reactのあの人、DBのあの人やソフトウェアアーキテクチャのあの人とか。なのでそんな人たちを集めたごった煮な勉強会やろうと思います。こちらはもう少し煮詰めてから公開します。

それとは別に『サーバーレスアンチパターン今昔物語』の第2回を7月20日の週に開催しようと思います。こちらも近々公開しますのでもう少しお待ちください。フォーマットは同じです。内容は今回も質問があったProvisioned Concurrencyとともに同時実行数まわりの話をすることを考えてます。

はい、というわけでこれからもどうぞよろしく。

最近聞いてる技術系ポッドキャストまとめ

f:id:Keisuke69:20200625161245j:plain

はじめに

コロナの関係でいろんな生活習慣が変わってきています。僕の中でも変わったことがいくつかあってその一つがポッドキャストです。

これまでポッドキャストというのはほとんど聴くことがありませんでした。

特に理由はなかったのですが習慣がほとんどなかったんです。過去に少し聞いたときもあったのですがそれほど面白いコンテンツとも感じませんでした。

ところが、最近Twitterのタイムラインでfukanori.fmをよく見かけたので試しに聞いてみてとても面白かったんですね。それがきっかけでいろいろ聞くようになりました。

というわけで僕がよく聞くポッドキャストをいくつかあげていきます。仕事がら技術系のポッドキャストが多いです。なお、都合によりリンクはAppleポッドキャストだけですが、おそらくGoogleSpotifyでも配信されていると思います。

ちなみに現状では主にランニングしながら聞いてることが多いですね。まさにコロナ需要。

よく聞くポッドキャスト

主に新エピソードが配信されたら必ず聞くポッドキャストたちです。

fukabori.fm

podcasts.apple.com

冒頭でも書いたとおり、今のようにポッドキャストを聞くきっかけとなったポッドキャストです。

Iwashiさんが有識者や著名人を招いて番組名どおり深堀りしていくポッドキャストです。この聞く、質問するに徹する感じがインタビュー力の高さを感じさせるとともにこういうスタイルもありなのかと思った。

内容的にもソフトウェア開発に限らず、k8sとか開発プロセス、デザインや採用までと幅広いです。新しいエピソードを楽しみにしている1つです。

UIT INSIDE

podcasts.apple.com

LINEのフロントエンド周りの開発をしているUIT室の開発者によるポッドキャスト。フロントエンド、特にJS関連の話が多いです。

たまにミートアップも開催されています。これもまた更新を楽しみにしているものの1つで昨今における僕のフロントエンド周りの知識はここできっかけを仕入れていることも多いです。

Software Engineering Daily

Software Engineering Daily

Software Engineering Daily

  • Software Engineering Daily
  • 技術ニュース
  • ¥0
podcasts.apple.com

これは英語のポッドキャストですね。なんと毎日更新。おすすめのポッドキャストを探しているときにTwitterで教えてもらったものです。

fukabori.fm同様にいろんな人をゲストに招くインタビュー形式です。

ソフトウェア・エンジニアリングと言いつつも内容的にはKubernetesから各種OSSや各企業の開発組織の話など範囲は広いです。あと機械学習関連の話題も多め。

米国発なだけあってゲストもUberFacebookといった日本ではあまり話を聞く機会がない会社のエンジニアが多いのも特徴です。

あと、英語とは言え非常に聞き取りやすいです。

mozaic.fm

podcasts.apple.com

Jxckさんが月一回くらいの頻度で提供しているポッドキャストです。長めです。

内容はWeb標準や次世代Web周りが中心です。その月にあったブラウザ周りのアップデートなどをかなりのボリュームで紹介してくれるのでWeb界隈の最先端をざーっと知るのにとてもいいです。

これも大好き。

ポッドキャスト | Serverless NOW

podcasts.apple.com

Serverlessを愛する2人が届けるポッドキャストです。今の所不定期だと思います。

Serverlessを愛する者の1人として聞き逃すわけにはいきません。僕も過去にゲスト出演しました。

たまに聞くポッドキャスト

ここからはエピソード更新のたびに聞くというより、興味のあるエピソードだったら聞くといったものです。

Behind The Tech with Kevin Scott

podcasts.apple.com

MicrosoftのCTOであるKevin Scottがやってるポッドキャストです。MicrosoftのCTOだからといってMicrosoftテクノロジーだけを扱っているわけではなく、むしろMicrosoftテクノロジーには直接関係のない広範な話題を扱っています。

こちらもゲストを招いていることが多いです。英語です。

Code[ish] JP

podcasts.apple.com

日本のHerokuの人によるポッドキャストです。ゲストを迎えて月に一回くらいの頻度で更新されています。ソフトウェア開発そのものの話題よりもその周辺を取り巻く環境などの話題のほうが多めだと思います。

Rebuild

Rebuild

Rebuild

podcasts.apple.com

日本の誇るソフトウェア開発者の1人である宮川さんがやってるポッドキャストです。最も有名な技術系ポッドキャストと言っても過言ではないかも知れない。

基本的にゲストを迎えての雑談系です。

しがないラジオ

しがないラジオ

しがないラジオ

podcasts.apple.com

ゲストを招いて複数人でやってることが多いです。ソフトウェア開発そのものというより、開発組織やキャリアに関する話題が多めです。

engineer meeting podcast

engineer meeting podcast

engineer meeting podcast

podcasts.apple.com

おそらく若手のエンジニア数名による雑談系ポッドキャストです。

omoiyari.fm

podcasts.apple.com

Scrum開発やアジャイルに関する話題を中心としたポッドキャストです。ゲストを招いていることも多いです。

各社のアジャイル開発への取り組みなんかを聞けることが多いです。

アジャイルラジオ

podcasts.apple.com

こちらもアジャイル開発に関する話がメインのポッドキャストです。アジャイルにまつわる様々なトピックをテーマに数人で語るスタイルです。

ポッドキャスト始めました

というわけで僕が最近聞いているポッドキャストをざっと紹介したのですが、聞いているうちに自分でもやりたくなって、同僚の@toriclsと2人で始めました。特にテーマも定まっていない技術系ポッドキャストですがよかったら登録してください。

podcasts.apple.com

一応、GoogleSpotifyにも登録されています。

今の所は自分たち2人で話したものだけですが、ぼちぼちゲストを呼びつつ技術的ないろんな話を聞きたいと思っています。クラウドとかAWSの話題が中心というわけではなく、雑多な話を扱っていきます。自分たちがあまり明るくない方面のゲストを呼んでディープに話を聞いていくこともやっていきたい。あとはフレームワークの開発者とかそういう人呼んでいろいろ話聞くとか。

なお、なるだけ省力でやっていきたいので今の所オープニングとかエンディングとかそんな小洒落たものはありません。いきなり始まって突然終わる感じです。省力すぎて名前も『名無しさんのポッドキャスト』のままでいくことになった。

そんな感じなのでアートワークも僕がとりあえずで作ったものです。そのうちちゃんとデザイナーに発注しようと思います。

Gridsomeで作ったサイトをせっかくなのでちゃんとホスティングしてみる、Amplify Consoleで。

f:id:Keisuke69:20200609112825p:plain

はじめに

先日、Gridsomeを試したわけですがせっかくなのでホスティングしてみようと思いついたため、サクッと試してみようと思ったらサクッとできたのでメモ。

www.keisuke69.net

ホスティングにはNetlifyあたりが鉄板かと思いつつ、ここはやはりAmplifyでしょーということでAmplify Consoleを使ってます。

なお、前回使ったAWS Lightsailをつかって立てたWordpressは削除してしまっていたので、そこは話題のShifter Headless使ってます。

www.getshifter.io

Shifter

サーバーレスなWordPressのサービスです。 StaticとHeadlessの2種類あって今回は後者のHeadlessを使います。

Free trialで7日間なら無料で使えますのでサクッとサインアップします。

前回同様、ここにはてなブログのデータをインポートしていきます。と思ったらインポーターが使えないようです。。。困ってたら、

と教えていただきました。もう一回、WordPress立てる必要あるのかーと思ってたらShifter StaticでもOKとのことだったのでそっちで。

手順は前回と同様の手順でShifter staticに一度インポートして、今度はWordPressの形式でエクスポート、それをHeadless側でインポートします。ちなみにShifter Staticって静的サイトジェネレータなのでWordPressの管理画面を触りたい場合はインスタンスを作業時のみ明示的に立ち上げる必要があります。

Shifter HeadlessへのインポートはAll-in-One WP Migrationというプラグインを有効にしておけばできます。

ところで、Shifterって初めて利用したんですが、Dashboardの各種値がクリックされると勝手にコピーされるのとても使い勝手がいいですね。また、初見で何も見ずにセットアップ可能なのも簡単でよかったです。

Gridsome

Gridsome側は基本的には前回のやつのURLをShifter Headlessで用意されたURLに変更するだけです。ただ、今回はPublic Repositoryに置くのでgridsome.config.jsにベタ書きするのではなく環境変数BASE_URLから取得する方法に変えています。もちろん環境変数は自分でセットする必要ありますよ。これはこのあとのAmplify Consoleでも必要です。

    {
      use: "@gridsome/source-wordpress",
      options: {
        baseUrl: process.env.BASE_URL, // required
        typeName: "blog",
        apiBase: 'wp-json',
        perPage: 10,
        concurrent: 1,
      },
    },

試しにgridsome developでしたところ特に問題もなくさくっと動きました。

Amplify Console

静的サイトのホスティングに今回はAmplify Consoleを使います。

aws.amazon.com

Amplify Consoleでは任意のリポジトリと結びつけることで更新があるとビルドして公開するってのが自動でできます。今回はGithubのPublic Repositoryとして作ってるのでそれと紐付けます。

ここからはAWSのマネージメントコンソールでやっちゃいます。

f:id:Keisuke69:20200612123104p:plain f:id:Keisuke69:20200612123125p:plain f:id:Keisuke69:20200612123150p:plain

基本的にデフォルトのままで大丈夫なのですがBuild Settingsだけ少し修正します。baseDirectoryをGridsomeでビルドした成果物の出力先である/distに変更するだけです。 f:id:Keisuke69:20200612123220p:plain f:id:Keisuke69:20200612123408p:plain

設定が終わると自動的にビルドからデプロイが走るのですが今回は先の環境変数をまだ設定していないので最初の一回は失敗します。 f:id:Keisuke69:20200612123430p:plain

環境変数を設定します。 f:id:Keisuke69:20200612124155p:plain

右上のRedeploy this versionを押して再度デプロイします。 f:id:Keisuke69:20200612124411p:plain

今度は成功。 f:id:Keisuke69:20200612124511p:plain

というわけで表示されてるURLにアクセスすると無事にデプロイされてることがわかると思いますー。同じデータでやったので表示内容は前回と一緒です。 f:id:Keisuke69:20200612124839p:plain

簡単ですね。ブログ書くほうが時間かかるってくらい簡単。

ここらへんが気になる

今回、Amplify Consoleでデプロイをしてみたわけですが、こういったGitでのフローの場合にいくつか気になったのがコンテンツ更新からサイト更新の運用フロー。

静的サイトジェネレータなので新しい投稿をしたらビルドし直す必要があるんですが、それってどういうフローでやるのがベストなのか気になります。

コンテンツを更新したらローカルでビルドして/distの下だけホスティングサイトにアップするって運用が多いんですかね?コンテンツを更新する人って必ずしもエンジニアではないと思うのですがそのあたり実運用ではどうやってるのか気になりますね。

プロダクションでこの手のサイトを運用している人はこのあたりどうしてるのかな。

新たにPodcastを始めました。名前はまだない

最近、Tech系のPodcastを聞くことが増えていて聞いてるうちに自分もやりたいなーと思っていたPodcast@toriclsに全面的におんぶに抱っこな感じで始めました。

こちらで聞けます。なお、割と僕はダラッとした気怠い感じで喋りがちなので再生速度を1.25倍くらいにするといいと思います。

www.buzzsprout.com

前半は割と雑談ぽい感じで後半は先日ブログにも書いたGridsomeの話をしてます。

全般的に見切り発車感が強く、正式な名前も決まっていません。あとオープニングとかエンディングとかももちろんないし、ちゃんと考えずに喋ったため1.5時間も喋ったのにいろいろカットした結果、20分ちょっとになってしまった。

そのうち、ちゃんと名前とかサイトとかも作っていく所存。AppleとかSpotifyPodcastに載せるのが夢です。

話の内容としてはリンク先にNoteがありますが、カットされた話としては以下のような内容を話してました。

  • 社内事情、人材の話
  • 昨今のオンラインイベント事情
  • 各社ベンダーカンファレンスの話
  • 最近の個人的なソフトウェア開発事情
  • Kubernetesは本当に必要か
  • ソフトウェアエンジニアからみたk8sとかクラウド
  • Jeffyの話
  • OSSとかエコシステムの話

学んだことはふざけ半分のいじりとかすると編集が大変。編集したのは僕じゃないけど。

今後はこんな話とかしたり聞いたりしたいと勝手に思ってます。あとはその道の第一人者とか詳しい人呼んで一方的に話を聞く回とか。

©Keisuke Nishitani, 2020   プライバシーポリシー