Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SAMを使った通貨変換API開発

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 SAMを使った通貨変換API開発

Avatar for Masahiko Funaki(舟木 将彦)

Masahiko Funaki(舟木 将彦)

November 08, 2021
Tweet

More Decks by Masahiko Funaki(舟木 将彦)

Other Decks in Technology

Transcript

  1. 4 開発プロセスを自動化し、早く、セキュアで、スケーラブルに CircleCI の簡単な自己紹介 世界最大の CI/CD サービス プラットフォーム • 開発生産性を向上

    • より早く、確信を持って、セ キュアにソフトウェアをリリー スするサポート クラウドネイティブな CIの「リー ダー」 • 毎日 AWS 上で200万 CI/CD パイプラインを 実行 • 4万以上の組織の100万人 以上の開発者が利用
  2. 5 AWS 利用メリットを CircleCI でさらに引き上げる 早く、セキュアで、コストパフォーマンス良く DevOps 成熟度 リリース頻度・回数が 少ない

    待ち時間が数多く発生 スケールしないビルド環境 AWS での使用に最適化 他の選択肢よりも早い CI/CDを実現 スケール可能〜開発時に待 ち時間を発生させない セキュリティ 厳しすぎるコンプライアンス が制約に 専業ベンダーのソリューショ ンを取り込みたい SOC-2 に準拠し FedRAMP 認証取得 専業ベンダーの セキュリティー ソリューションとの連携 GovCloud 対応 CI/CD コスト高 CI/CD インフラの 管理に忙殺 使用量ではなく、 インフラサイズでの費用 CircleCI が管理する マネージドサービス 使用量に応じた課金
  3. 自動化の導入で開発プロセスにおける待ち時間を最小化 アイ デア コード ビルド テスト リリース デプ ロイ 運用

    監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 非正常系は 自動化できない 自動化できる →継続的であるために自動化し、人の待ち時間を最小化 事業が継続する限り、アイデアが生まれ、プロジェクトは続く コード追加・修正時は 常にビルド・テスト (最後にまとめてやらな い→早く失敗すれば 早く品質が安定する) サービス停止せず常に リリース/デプロイ (失敗時にはクイックに 修正 / 前バージョンに 戻せる)しくみ 共有 リポジトリ上 で 常に作業 運用・監視しやすい 品質をコードに反映 (必要なデータの取得、 スケーラビリティの 確保)
  4. 開発するもの: 通貨変換APIをサーバーレスで実装 APIエンドポイント http://サーバーのアドレス/api/<コマンド>... GETリクエスト コマンド パラメータ 説明 list (なし)

    変換可能な通貨(unit)と変換レート (rate)を格納した配列をJSON形式で通 知 convert unit=通貨短縮形(英字3文字) value=変換元金額 通貨短縮形(unit)が示す通貨で設定し た金額(value)を日本円に変換した 結果(amount)をJSON形式で通知
  5. 12 開発プロセス[人]: コード プラン コード ビルド テスト リリース デプ ロイ

    運用 監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) 人が作業 CircleCI コンフィグに ジョブ定義 仕様策定 app.js app.test. js build_api ジョブ test_api ジョブ CircleCI ジョブ間で 情報共有 キャッシュ ワークスペース 環境変数(コンテクスト) release_api ジョブ deploy_api ジョブ
  6. 開発プロセス[自動化]: ビルド〜テスト プラン コード ビルド テスト リリース デプ ロイ 運用

    監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) 人が作業 CircleCI コンフィグに ジョブ定義 仕様策定 app.js app.test. js build_api ジョブ test_api ジョブ CircleCI ジョブ間で 情報共有 キャッシュ ワークスペース 環境変数(コンテクスト) release_api ジョブ deploy_api ジョブ
  7. 開発プロセス[自動化]: リリース~デプロイ プラン コード ビルド テスト リリース デプ ロイ 運用

    監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) 人が作業 CircleCI コンフィグに ジョブ定義 仕様策定 app.js app.test. js build_api ジョブ test_api ジョブ CircleCI ジョブ間で 情報共有 キャッシュ ワークスペース 環境変数(コンテクスト) release_api ジョブ deploy_api ジョブ
  8. 自動化における4つの評価ポイント CircleCIユーザーの 中央値(2020/08) CircleCIが考える目標値 スループット ワークフローの実行数 0.7回/日 プルリクエストのマージごと いつでも(遠慮せずに)ビルド可能 実行時間

    ワークフローの実行時間 4分以内 5~10分 自動化可能なことは全て任せる 復旧時間 ワークフローの失敗~成功の時間 56分以内 60分以内 大きな失敗を最後にではなく、すぐ に復旧できる失敗を早期に 成功率 ワークフローの成功数/実行数 デフォルトブランチで 80% デフォルトブランチで 90%以上 ここの数値に「近い目標」として まずは追いつき ここの数値を「あるべき姿」として 目指す 現時点での数値を「課題」として 把握した上で