• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
29
0
0

読み込み中.... (全文を見る)

全文

(1)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

画面に映る資料の撮影などによる本セッション資料の転用を禁止しております

サーバーレスで

「使いやすい」APIを公開する

〜作る側・使う側の双方にCircleCIが提供できる価値

舟木 将彦

CircleCI合同会社

Developer Advocate

P A R - 2 4

(2)

本日のアジェンダ

ソフトウェア開発において

継続的であるとは?

デモ

CircleCIのある開発プロセス

作りやすさ・使いやすさを

拡げよう!

(3)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ソフトウェア開発において

継続的であるとは?

(4)
(5)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

6

継続

するビジネスと開発・運用の

継続

をつなげる

プラン

コード

ビルド

テスト

リリー

デプ

ロイ

運用

監視

継続

的インテグレーション(CI)

デプロイ

継続

(CD)

自動化できない

継続的

であるために

自動化・省力化

すべき

自動化できない

非正常系は

ビジネスが

継続

する限り、プロジェクトは続く

共有

リポジトリ

上で

常に作業

コード追加・修正時は

常にビルド・テスト

(最後にまとめてやら

ない→早く失敗すれば

早く品質が安定する)

サービス停止せず常時

リリース/デプロイ

(失敗時にはクイック

に修正 / 前バージョ

ンに戻せる)しくみ

運用・監視しやすい

品質をコードに反映

(必要なデータの取得、

スケーラビリティの

確保)

継続的ではない:

「それ、手元の

コードでは

もう直したんです

けど」

継続的である:

お願いドリブンで

ないこと

遠慮なしに依頼可

能な状態

依頼しなくても

左から右に

(自動的に)流れる

状態

継続

性にディレイを

生じさせない!

(6)

今どき、人手でやってません?

(7)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

デモ: CircleCIのある

開発プロセス

(8)

開発するもの: 通貨変換APIをサーバーレスで実装

APIエンドポイント

http://サーバーのアドレス/currency/command=<コマンド>...

GETリクエスト

コマンド

パラメータ

説明

list

(なし)

変換可能な通貨(unit)と変換レート(rate)を

格納した配列をJSON形式で通知

convert

unit=通貨短縮形(英字3文字)

value=変換元金額

通貨短縮形(unit)が示す通貨で設定した金額

(value)を日本円に変換した結果(amount)を

JSON形式で通知

※ AWS サーバーレスアプリケーションモデル(SAM, Serverless Application Model)

https://aws.amazon.com/jp/serverless/sam/

(9)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

10

開発プロセス: コード

プラン

コード

ビルド

テスト

リリー

デプ

ロイ

運用

監視

継続

的インテグレーション(CI)

デプロイ

継続

(CD)

人が作業

CircleCI

コンフィグに

ジョブ定義

仕様策定

app.js

test-handler.

js

build_api

ジョブ

test_api

ジョブ

deploy_api

ジョブ

CircleCI

コンテクストで

共有

awsコンテクスト(aws-dev, aws-deploy…)

AWS_ACCESS_KEY_ID, AWS_REGION,

AWS_SECRET_ACCESS_KEY

(10)

コード: app.js

通貨変換テーブル currencyArray を

用意しておき

API呼び出し時に指定した

commandがconvertで

パラメータ unit(通貨短縮形)が

通貨変換テーブルに該当ありなら

パラメータ value(日本円での金額)に

rate(変換レート)をかけた値を

amountとしてJSON形式で通知

(11)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

12

開発プロセス: ビルド〜デプロイ

プラン

コード

ビルド

テスト

リリー

デプ

ロイ

運用

監視

継続

的インテグレーション(CI)

デプロイ

継続

(CD)

人が作業

CircleCI

コンフィグに

ジョブ定義

仕様策定

app.js

test-handler.

js

build_api

ジョブ

test_api

ジョブ

deploy_api

ジョブ

CircleCI

コンテクストで

共有

awsコンテクスト(aws-dev, aws-deploy…)

AWS_ACCESS_KEY_ID, AWS_REGION,

AWS_SECRET_ACCESS_KEY

(12)

コンテクスト

ログインシークレット(ID, パスワードなど)や、

各種設定(リージョンなど)を複数のプロジェクト間で共有可能。

開発用コンテクスト(aws-dev)と本番用コンテクスト(aws-deploy)の

ように使い分けることも効率的

(各種設置値は異なるが手順が同じ場合)

(13)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

14

開発プロセス: ビルド

プラン

コード

ビルド

テスト

リリー

デプ

ロイ

運用

監視

継続

的インテグレーション(CI)

デプロイ

継続

(CD)

人が作業

CircleCI

コンフィグに

ジョブ定義

仕様策定

app.js

test-handler.

js

build_api

ジョブ

test_api

ジョブ

deploy_api

ジョブ

CircleCI

コンテクストで

共有

awsコンテクスト(aws-dev, aws-deploy…)

AWS_ACCESS_KEY_ID, AWS_REGION,

AWS_SECRET_ACCESS_KEY

(14)

ビルド: build_apiジョブをコンフィグ(config.yml)に定義

executor(ビルド作業環境)では

AWSが提供する SAM CLIを使用

GitHubからソースコードを取り出し(checkout)

ビルド作業環境にSAM CLIをインストールし

コードをビルドする(sam build)

ビルド結果(+必要なライブラリ等)は

.aws-sam ディレクトリに格納されているので

「テスト」「デプロイ」時にも使うため

workspaceという場所に保存しておく

(15)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

16

開発プロセス: テスト

プラン

コード

ビルド

テスト

リリー

デプ

ロイ

運用

監視

継続

的インテグレーション(CI)

デプロイ

継続

(CD)

人が作業

CircleCI

コンフィグに

ジョブ定義

仕様策定

app.js

test-handler.

js

build_api

ジョブ

test_api

ジョブ

deploy_api

ジョブ

CircleCI

コンテクストで

共有

awsコンテクスト(aws-dev, aws-deploy…)

AWS_ACCESS_KEY_ID, AWS_REGION,

AWS_SECRET_ACCESS_KEY

(16)

テストコード: test-handler.js

パラメータ(command=convert&

unit=USD&value=2)を用意し

Currency APIを呼び出す

その結果(result)、

実行結果(statusCode)が

正常終了(200)で、

返答(response)が

amount: 208.98 ならテストにパス

同様に USD 10 に対して、

変換結果 JPY 1044.90(1044.9)が

返ってくればテストにパス

(17)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

18

テスト: test_apiジョブをコンフィグ(config.yml)に定義

executor(テスト作業環境)では

AWSが提供する SAM CLIを使用

GitHubからソースコードを取り出し(checkout)

Workspaceに保存しておいた

ビルド結果(+必要なライブラリ等)を

.aws-sam ディレクトリに格納しなおし

テスト作業環境にSAM CLIをインストールし

テスト(npm test)する

(18)

開発プロセス: リリース〜デプロイ

プラン

コード

ビルド

テスト

リリー

デプ

ロイ

運用

監視

継続

的インテグレーション(CI)

継続

デプロイ

(CD)

人が作業

CircleCI

コンフィグに

ジョブ定義

仕様策定

app.js

test-handler.

js

build_api

ジョブ

test_api

ジョブ

deploy_api

ジョブ

CircleCI

コンテクストで

共有

awsコンテクスト(aws-dev, aws-deploy…)

AWS_ACCESS_KEY_ID, AWS_REGION,

AWS_SECRET_ACCESS_KEY

(19)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

20

デプロイ: deploy_apiジョブをコンフィグ(config.yml)に定義

executor(デプロイ作業環境)では

AWSが提供する SAM CLIを使用

GitHubからソースコードを取り出し(checkout)

Workspaceに保存しておいた

ビルド結果(+必要なライブラリ等)を

.aws-sam ディレクトリに格納しなおし

デプロイ作業環境にSAM CLIをインストールし

デプロイ(sam deploy)する

(ただし変更箇所がなくても失敗にしない)

(20)

ワークフローとコンテクスト

awsコンテクスト(aws-dev, aws-deploy…)

AWS_ACCESS_KEY_ID, AWS_REGION,

AWS_SECRET_ACCESS_KEY

build_apiジョブをawsコンテクストで実行する

build_apiジョブが正常終了していれば(requires)、

test_apiジョブをawsコンテクストで実行する

test_apiジョブが正常終了していれば(requires)、

deploy_apiジョブをawsコンテクストで実行する

(21)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

22

CircleCIにはワークフローの [実行] ボタンはありません

(22)

作りやすさ・使いやすさを

拡げよう!

(23)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

エンジニアの生産性を高めるのは何?

速いCPU、リッチなメモリ、広い画面?

肩こりや腰痛と無縁になれる椅子?

(24)

実データから見る自動化(CI/CD)

調査期間

2020/08/01~30

(2019年版は90日間)

調査対象

44,000組織

160,000プロジェクト

200万ジョブ/日

https://circleci.com/ja/resources/2020-state-of-software-delivery/

(25)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

28

CircleCIユーザーの

中央値(2020/08)

ベンチマーク目標値

スループット

ワークフローの実行数

0.7回/日

いつでも(遠慮せずに)ビルド可能

プルリクエストのマージごと

実行時間

ワークフローの実行時間

4分以内

自動化可能なことは全て任せる

5~10分

復旧時間

ワークフローの失敗〜成功の時間

56分以内

60分以内

大きな失敗を最後にではなく、す

ぐに復旧できる失敗を早期に

成功率

ワークフローの成功数/実行数

デフォルトブランチで80%

デフォルトブランチで90%以上

自動化における4つの評価ポイント

ここの数値に「近い目標」として

まずは追いつき

ここの数値を「あるべき姿」として

目指す

現時点での数値を「課題」として

把握した上で

(26)

評価ポイント1: スループット

評価ポイント3: 復旧時間

評価ポイント2: 実行時間

(27)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

30

お客様にとっての使いやすさも拡げよう!

貴社のAPIが世の中に普及するには、

マーケティングや営業も大事です

APIドキュメントの整備は当然必要でしょう

それに加えて、サンプル+テストが、(技術的素養が深くなく

ても)すぐに試しに動かしてみることができることが

重要

具体的にはクラウドベースのCI/CDを使ったサンプル

→PC上に開発環境をセットアップしなくても、

クラウド上でビルド

して、結果がすぐに見れる!

(28)

CircleCIをもっと知りたい!人に...

最新の情報なら

@CircleCIJapan をフォロー!

#CircleCIJp タグつけて情報共有!

イベント、セミナー、勉強会の情報なら

connpassのCircleCIグループから!

https://circleci.connpass.com/

動画でCircleCIについて学ぶなら

CircleCIチャンネルを登録!

(日本語プレイリストもあり)

(29)

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Thank you!

© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.

舟木 将彦

サーバーレスで

「使いやすい」APIを公開する

〜作る側・使う側の双方に

参照

関連したドキュメント

Network 、 Training 、 Validation 、 Runtime 、 ConvUnit の 5 つのネッ トワークタブが存在. Unit

◎ Spiritual pain assessment sheet ; SpiPas

2022年3月現在 ドライブレコーダー搭載 11.1型デジタルミラー / 11.1型デジタルミラー

• 自動溶接を行う場合、「金属アーク溶接等作 業」には、自動溶接機による溶接中に溶接機

●Gartner Magic QuadrantにてクラウドHCM Suiteにおけるリーダーの評価.. Copyright © 2022 Nomura System Corporation Co, Ltd. All Rights Reserved.. Copyright © 2022 Nomura

支援要請入力詳細 13ページ 患者受入入力詳細 14ページ 支援可能スタッフ3.

and Kristjan Vassil (2010) Internet voting in Estonia : a comparative analysis of four elections since 2005 : report for the Council of Europe”Report for the Council of Europe.

2021年1月15日にHa Tay Pharmaceutical Joint Stock Company(