$30 off During Our Annual Pro Sale. View Details »

AWSAmplifyHappyDev.pdf

 AWSAmplifyHappyDev.pdf

Koji Ishida

May 21, 2019
Tweet

More Decks by Koji Ishida

Other Decks in Technology

Transcript

  1. 1
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    AWS Amplify Consoleを使うと
    本当に幸せになれるか︖
    2019/05/21
    Acroquest Technology Co., Ltd.
    ⽯⽥ 浩司

    View Slide

  2. 2
    ⽯⽥ 浩司( @kojiisd)
    ‒ ミャンマー⽀社CTO (2012 – 2015)
    技術カンファレンスでの登壇
    ‒ JavaOne スピーカー (2015)
    ‒ JAWS-UG 横浜⽀部参加 (2016)
    ‒ ミャンマー⽀社CTO (2017 – 2018)
    ‒ IoTクラウドサービス開発
    クラウド/サーバレス /IoT/機械学習
    スクラム
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    Acroquest Technology株式会社
    シニアソリューションアーキテクト

    View Slide

  3. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    4
    今⽇は開発者⽬線のお話です
    DevOpsくらいな感じ

    View Slide

  4. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    5
    AWS Amplify Console︖

    View Slide

  5. AWS Amplify Consoleとは︖
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    6
    1. 継続的なデプロイによるフルスタックのサーバーレスウェブアプリ
    ケーションのホスティング

    View Slide

  6. AWS Amplify Consoleとは︖
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    7
    類似サービスには

    View Slide

  7. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    9
    この圧倒的CD感

    View Slide

  8. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    10
    AWS Amplify Consoleで
    開発者は幸せになれるか︖

    View Slide

  9. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    11
    無理

    View Slide

  10. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    12
    なぜか︖

    View Slide

  11. 結局開発者が抱える悩みを解消できそうにない
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    13
    1. Amplify Consoleを利⽤してみたボクの感想。
    ①静的ページのアップロードならお⼿軽に利⽤できそうだ。
    – ただ⾃分のプロジェクトはそもそもそんなに単純な構成ではない。
    (少なくともサーバサイドの処理があり、SPAがあり、きちんとテストし
    ないといけない)
    ②「ビルド→デリバリ」以外の部分は⾃前になるのかな︖
    ③メール通知とかドメイン設定とか便利そうだけど、実案件だと使
    いどころが少なそう。
    ④仮にCI部分を実装しても、結果はログにしか出ないじゃん。結果
    を⾒ようとは思えない。可視化必須。
    腰が重くなる

    View Slide

  12. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    14
    開発者あるある

    View Slide

  13. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    15
    どうすればよい︖

    View Slide

  14. 16
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    開発者がCI/CDを通して幸せになるには︖
    〜開発者視点からのアプローチ〜
    2019/05/21
    Acroquest Technology Co., Ltd.
    ⽯⽥ 浩司

    View Slide

  15. [前提] これからはパイプラインファーストの時代
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    17
    ただエンジニアからすると、どうしても感じてしまう「⼤変さ」
    https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/welcome.html
    1. パイプラインの設定
    2. 静的解析実施設定
    3. ユニットテスト実施設定
    4. E2E試験設定
    これらを開発の中で揃え育て
    ていくのは「無理」と思って
    しまう。
    静的解析
    ユニットテスト
    E2Eなど
    +可視化

    View Slide

  16. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    18
    どこかできちんと
    時間をとってパイプライン組もう
    プロジェクト開始時の開発者の思考

    View Slide

  17. で、後回しの連続の結果・・・
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    19
    1. なかなか⼊れ込めないCI/CD
    フロー(やる気はある)
    2. 頭の⽚隅にCI/CDを置いたま
    ま開発継続(やる気はある)
    3. 最後にNGが出て最低限⼊れ
    る(やる気はある)
    4. 次フェーズでは改善しようと
    思う(やる気はある)
    5. 次フェーズになっても⼤体時
    間はない(やる気はある)
    あとで
    次⼯程で
    本気出す
    時間ない
    次フェーズで

    View Slide

  18. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    20
    やる気はある
    理解してもらいたいポイント

    View Slide

  19. 開発者が感じる「⼤変」ポイント
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    21
    リポジトリ
    ビルド
    (単体試験)
    検証環境
    (結合試験)
    本番環境
    継続的インテグレーション
    継続的デリバリ デプロイ
    Amplify Console対応箇所
    Amplify Consoleで
    対応できるのはココだけ
    1.単体試験/E2Eなどを実装時に同時に開発する必要あり。
    →遅れが発生するとないがしろになり、後から問題発生のパターン。
    2.作成した試験をローカルだけではなくビルドサーバ上で動作させる必要あり。
    3.冪等性を保つ試験内容にする必要あり。 etc…
    可視化
    テストコード実装で
    遅れるかもしれない
    経験少ないけど
    大丈夫か?
    ネガティブな⼼情

    View Slide

  20. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    22
    つまり不安がある
    不安=経験がないことの確約
    最近の流行りの言葉で言うと心理的安全性が重要

    View Slide

  21. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    23
    やれそうな感覚を
    開発者が持てることが重要
    感覚でいいんです、感覚で

    View Slide

  22. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    24
    ⾊々な⼿法がありますが、
    今回は開発者視点からの
    アプローチの紹介
    そのほかのアプローチ方法はぜひ懇親会で話しましょう。
    1)スケジュール調整
    2)長期的にみた教育
    3)上流工程開発者が啓蒙すべきこと
    4)テストサイドからの視点、など

    View Slide

  23. 例︓SPAのWebアプリ開発のCI/CD
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    25
    1. SPA(シングルページアプリケーション)のWebアプリ開発
    ① Amazon Cognitoのユーザ管理ができる機能
    – フロントエンドにはAngular 7
    – バックエンドはPython3系のAWS Lambda + Cognito

    View Slide

  24. 例︓SPAのWebアプリ開発のCI/CD
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    26
    l 開発者の⼼配点
    ① テストコードをビルドサーバ上で実⾏する。
    ② 画⾯側のシナリオテストをビルドサーバ上で実施する。
    ③ 静的解析、各種テスト結果を可視化して⾒えるようにする。
    1本通るサンプルがあるだけで不安はだいぶ軽減される(経験則)
    作りました

    View Slide

  25. 例︓SPAのWebアプリ開発のCI/CD
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    27
    1. フロントエンドのシナリオテストにKarateを利⽤。レポートはHTML化。
    2. バックエンドはPythonのunittestを採⽤。PyUnitReportでHTML化。
    3. Amplify Console上で動作確認済み ← 超重要︓⼀本通ってる
    https://github.com/kojiisd/cognito-user-manager
    S3へ

    View Slide

  26. 例︓SPAのWebアプリ開発のCI/CD
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    28
    1. でもやっぱりこれを通すのは⼤変なんですよ。
    だからサンプルの
    存在が重要。
    amplify.yml

    View Slide

  27. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    29
    DEMO

    View Slide

  28. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    30
    今後CI/CDの適⽤、設定に
    不安を感じている開発者には

    View Slide

  29. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    31
    開発者ならコード読め
    と、このサンプルを渡してみてください
    一本通るサンプルであることを忘れず伝えてね

    View Slide

  30. まとめ
    Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    32
    1. 各サービスで対応できる範囲を認識すべし。
    2. (今回は開発者視点ですが)不安な部分を取り除く動きを
    すべし。
    ①サンプル渡すとか、⼀本早々に通すサポートするとか。
    3. ⻑期的に⾒た⽂化の浸透はまだまだあるので、それは懇親
    会で話ができればと思います。

    View Slide

  31. Copyright © Acroquest Technology Co., Ltd. All rights reserved.
    33
    CI/CDの浸透で
    Happy Development
    Evolve the Earth with Emotion of Technology

    View Slide