SlideShare a Scribd company logo
How you can speed up
Serverless development
by local
ピクスタ株式会社 星直史
16545027 Photo by Fast&Slow
はじめに
資料は後ほど公開します
撮影OK
(ただし、シャッター音は控えめに)
実況も大歓迎です
#pixta
自己紹介
2018年1月より開発部の部長に就任。
エンジニアの採用、育成、組織作りに取り組んでいる。
星直史
@NaoshiHoshi
ピクスタのご紹介
PIXTAのご紹介
fotowa のご紹介
Snapmart のご紹介
● 現状確認
● テスタビリティをこじあける
アジェンダ
話すこと
話さないこと
● サイズとピラミッドとループ
● そこから先へ
● 何を作ったか(!)
● Golangの書き方や使用感など
今回の開発合宿の目標はココ!
Special thanks
● 現状確認
● テスタビリティをこじあける
アジェンダ
話すこと
話さないこと
● サイズとピラミッドとループ
● そこから先へ
● 何を作ったか(!)
● Golangの書き方や使用感など
How you can speed up serverless development by local
● 109行のコード、1つの関数
● 重複コード
● AWS DynamoDB SDKのラッ
パーが使えていない
● テストが存在しない
● ローカルで回せていない
● デプロイに時間がかかる
→ 開発継続に備えて自動テスト
を書いて振る舞いが変わっていな
いことを確かめる環境を整備した
い
How you can speed up serverless development by local
How you can speed up serverless development by local
How you can speed up serverless development by local
How you can speed up serverless development by local
How you can speed up serverless development by local
● 現状確認
● テスタビリティをこじあける
アジェンダ
話すこと
話さないこと
● サイズとピラミッドとループ
● そこから先へ
● 何を作ったか(!)
● Golangの書き方や使用感など
How you can speed up serverless development by local
● DynamoDBの準備
○ Tableの作成
○ 作成したテーブルにデータの追加
● Lambda Functionを準備してデプロイ
○ デプロイパッケージ作成
■ go get -u hogehoge
■ ビルド
■ ZIP圧縮
○ 実行ロール作成
■ IAMロール作成
■ ARNをメモしてLambdaに適用
● 目視でテスト
○ Lambdaのコンソールでテスト用のJSONを作成、実行、コンソールのログを
目視で確認
○ もしくは、AWS CLIでLambda Functionを実行、結果を目視確認
テスト手順書_v1
● DynamoDBの準備
○ Tableの作成
○ 作成したテーブルにデータの追加
● Lambda Functionを準備してデプロイ
○ デプロイパッケージ作成
■ go get -u hogehoge
■ ビルド
■ ZIP圧縮
○ 実行ロール作成
■ IAMロール作成
■ ARNをメモしてLambdaに適用
● 目視でテスト
○ Lambdaのコンソールでテスト用のJSONを作成、実行、コンソールのログを
目視で確認
○ もしくは、AWS CLIでLambda Functionを実行、結果を目視確認
テスト手順書_v1
● DynamoDBの準備
○ Tableの作成
○ 作成したテーブルにデータの追加
● Lambda Functionを準備してデプロイ
○ デプロイパッケージ作成
■ go get -u hogehoge
■ ビルド
■ ZIP圧縮
○ 実行ロール作成
■ IAMロール作成
■ ARNをメモしてLambdaに適用
● 目視でテスト
○ Lambdaのコンソールでテスト用のJSONを作成、実行、コンソールのログを
目視で確認
○ もしくは、AWS CLIでLambda Functionを実行、結果を目視確認
テスト手順書_v1
● ServerlessFramework定義書作成
● Lambda Functionを準備してデプロイ
○ デプロイパッケージ作成
■ go get -u hogehoge
■ ビルド
■ ZIP圧縮
● 目視でテスト
○ Lambdaのコンソールでテスト用のJSONを作成、実行、コンソールのログを
目視で確認
○ もしくは、AWS CLIでLambda Functionを実行、結果を目視確認
テスト手順書_v2
via. Testable Lambda: Working Effectively with Legacy Lambda / Takuto Wada
AWSにデプロイを行うことでフィー
ドバックループに時間がかかる
1. ローカルでテストを行うための
モックを準備
2. 荒い粒度のテストから始める
アプローチ
How you can speed up serverless development by local
LocalStack
How you can speed up serverless development by local
How you can speed up serverless development by local
● Synonym関数内でStage( dev / staging / test / prod)によるエンドポイントの分岐がある
● コードを直接編集しなくても振る舞いを変えたい
→ Synonym関数の一つ前に薄い関数を噛ませることで、
DyanmoDBのClientを外から差し込めるようにしたい
● Synonym関数にDynamoDBのClientを渡す関数を作成
● Synonym関数はDynamoDBのClientを受け取れる様に
修正
→ TestHandlerは対象の関数にDynamoDBのエンドポイ
ントを変えたClientを渡すだけでモックを利用に可能に
勝てそうな気がしてきた
How you can speed up serverless development by local
How you can speed up serverless development by local
via. Testable Lambda: Working Effectively with Legacy Lambda / Takuto Wada
● ServerlessFrameworkによ
りデプロイの簡略化
● LocalStackのモックを利用
することでデプロイが不要
に
● 粒度の大きいテストでまず
は最低限の動作を担保
フィードバックループにかかる時
間が30分から2秒に
サーバーレスでは、初手で開発生産性が向
上する環境を用意する
1. ローカルテスト環境構築
2. 自動テストによるフィードバックループの
高速化
3. デプロイの簡略化
まとめ
才能をつなぎ、
世界をポジティブにする
We're hiring!
7336449 Photo by Sunny studio

More Related Content

PPTX
kintoneフロントエンド開発 モダン化への道
PDF
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1
PPTX
ゲーム開発現場の中心で心理的安全性を叫ぶ [RSGT2018]
ODP
現場にsahaginを取り入れた話
PDF
今日から始めるアジャイル開発
PDF
なぜ、アジャイル開発は うまくいかないのか? プロダクトオーナーをサポートすれば、きっとうまくいく!
PDF
アジャイル入門
PDF
Webエンジニアになるための戦略と戦術
kintoneフロントエンド開発 モダン化への道
チームのチームによるチームのためのアジャイル開発 -誰がやる!?じゃあ俺やるよ!- #devsumi #kansumi #kansumiA1
ゲーム開発現場の中心で心理的安全性を叫ぶ [RSGT2018]
現場にsahaginを取り入れた話
今日から始めるアジャイル開発
なぜ、アジャイル開発は うまくいかないのか? プロダクトオーナーをサポートすれば、きっとうまくいく!
アジャイル入門
Webエンジニアになるための戦略と戦術

What's hot (20)

PDF
ゲーム開発出身者がチームラボで働いてみた
PPTX
Git入門
PDF
俺とInstant team building
PDF
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
PPTX
Osashimi
PPTX
Jawsug yokohama recap_week1_gp3
PDF
【第13回RxTStudy勉強会】Redmine BacklogsプラグインでScrum開発! ~Redmineでアジャイルに開発しよう
PPTX
Event bridge で s3 イベント通知を試してみた
PDF
はじめてのJavaScript / JS Girls Tokyo #1
PDF
Salary negotiation battle on Cybozu - employee side
PPTX
Pythonの10年と今、これから
PDF
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
PDF
簡単ログ解析ハンズオン

PDF
今からでも遅くない! 2から始めるangular js
PDF
はじめてのアジャイル - Agile in a nutshell
PDF
アジャイルサムライ壱の太刀 - 説得しないはじめないアジャイル開発のはじめ形 -
PDF
UiPath Go!フレームワーク探求記
PDF
Redmineプラグイン導入・開発入門
PPTX
匠Methodを使った製品開発の現場
PDF
Jaws niigata#8
ゲーム開発出身者がチームラボで働いてみた
Git入門
俺とInstant team building
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Osashimi
Jawsug yokohama recap_week1_gp3
【第13回RxTStudy勉強会】Redmine BacklogsプラグインでScrum開発! ~Redmineでアジャイルに開発しよう
Event bridge で s3 イベント通知を試してみた
はじめてのJavaScript / JS Girls Tokyo #1
Salary negotiation battle on Cybozu - employee side
Pythonの10年と今、これから
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
簡単ログ解析ハンズオン

今からでも遅くない! 2から始めるangular js
はじめてのアジャイル - Agile in a nutshell
アジャイルサムライ壱の太刀 - 説得しないはじめないアジャイル開発のはじめ形 -
UiPath Go!フレームワーク探求記
Redmineプラグイン導入・開発入門
匠Methodを使った製品開発の現場
Jaws niigata#8
Ad

Similar to How you can speed up serverless development by local (20)

PDF
クラウドを積極活用した サービスの開発のために
PDF
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
PDF
Going Serverless, Building Applications with No Servers
PDF
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
PDF
PIXTAの紹介
PDF
組織の問題も解決するアーキテクチャ BackendsForFrontends
PDF
テスト環境まるごとAwsにのっけてみた
PDF
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
PPTX
20190620 aws summit_tokyo_2019
PDF
クラウド時代のソフトウェアアーキテクチャ
PDF
20141003 webマーケティングエンジニアリング
PDF
Serverless services on_aws_dmm_meetup_20170801
PPTX
20170803 bigdataevent
PDF
AWS初心者向けWebinar AWSでBig Data活用
PDF
Eight meets AWS
PDF
コスト削減から考えるAWSの効果的な利用方法
PDF
AWS - Windowsアップデート re:Invent & Windows Server 2016
PDF
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
PPTX
社員数100名の壁を越える タイミングに在籍する、 組織・サービスを支える プロダクトチームの 苦悩と喜び−ランサーズ− のサマリ
PDF
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
クラウドを積極活用した サービスの開発のために
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
Going Serverless, Building Applications with No Servers
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
PIXTAの紹介
組織の問題も解決するアーキテクチャ BackendsForFrontends
テスト環境まるごとAwsにのっけてみた
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
20190620 aws summit_tokyo_2019
クラウド時代のソフトウェアアーキテクチャ
20141003 webマーケティングエンジニアリング
Serverless services on_aws_dmm_meetup_20170801
20170803 bigdataevent
AWS初心者向けWebinar AWSでBig Data活用
Eight meets AWS
コスト削減から考えるAWSの効果的な利用方法
AWS - Windowsアップデート re:Invent & Windows Server 2016
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
社員数100名の壁を越える タイミングに在籍する、 組織・サービスを支える プロダクトチームの 苦悩と喜び−ランサーズ− のサマリ
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
Ad

More from PIXTA Inc. (11)

PDF
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
PDF
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
PDF
マネージャーになってからの技術を磨く戦略と戦術
PDF
Reactnative はじめの一歩
PDF
WebエンジニアのReactNativeでの戦い方
PDF
ピクスタ株式会社 完全到着マニュアル
PDF
サービスのスケール化のための検索システム改善
PDF
スクラムを導入してみて一回挫折したけど再起させた話
PDF
PIXTAにおけるCloudSearchのコスト削減
PPTX
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016 LT
PPTX
PIXTAにおけるABテスト
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
マネージャーになってからの技術を磨く戦略と戦術
Reactnative はじめの一歩
WebエンジニアのReactNativeでの戦い方
ピクスタ株式会社 完全到着マニュアル
サービスのスケール化のための検索システム改善
スクラムを導入してみて一回挫折したけど再起させた話
PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearch運用 - JAWS DAYS 2016 LT
PIXTAにおけるABテスト

How you can speed up serverless development by local