SlideShare a Scribd company logo
1 of 71
Download to read offline
ソフトウェア工学
nCI/CD
• 継続的インテグレーション,継続的デリバリ,継続的デプロ
イ,DevOps,GitHub,render,webアプリ
玉木徹(名工大)
サイクルを伴う開発
代表的な開発プロセス
n一方通行の開発
• モデル
• ウォーターフォール
• V字
• 上流が下流に影響
• 終わるまで始められない
• 遅れたらしわ寄せ
nサイクルを伴う開発
• モデル
• プロトタイピング
• スパイラル
• アジャイル
• 工程を何度も繰り返す
• 顧客の意見を確認し取り入れる
• 顧客に途中の成果物を見せる
• プロトタイプ
• モックアップ(モック)
• 顧客との信頼関係を築く
システム開発を運用までループ化する
n開発ループ
• コーディング,ビルド,テスト,デリバリ(納品)・デプロイ(運用)
• 効率の悪い部分
• ビルドとテストに人手がかかる
• デプロイのために実稼働システムを止めて更新しなければならない
n改善策
• ビルドとテストの自動化:継続的インテグレーション(CI)
• デリバリ・デプロイの自動化:継続的デリバリ(CD)継続的デプロイ(CD)
• 止めない・止まらないサービスの実現
DevOps=開発+運用
nDevelopment + Operations
nhttps://ja.wikipedia.org/wiki/DevOps
• ソフトウェア開発手法の一つ
• 開発 (Development) と運用 (Operations) を組み合わせた語
• 開発担当者と運用担当者が連携して協力する(さらに両担当者の境目もあいま
いにする)開発手法
• ソフトウェアを迅速にビルドおよびテストする文化と環境により、確実な
リリースを、以前よりも迅速に高い頻繁で可能とする組織体制の構築を目
指す
nDevOpsを実現するための方法
• アジャイル・スクラム,CI/CD
Illustration showing stages in a DevOps toolchainKharnagy - Own work
CC BY-SA 4.0
DevOpsの派生
nMLOps:機械学習のDevOps
• MLOpsとは?DevOpsとの違いや
機械学習プロジェクトに求められ
る理由, Alsmily, 2023/4/18
• MLOps(機械学習基盤)とは?
AIOpsとの違い, @IT, 2019/11/21
nAIOps:AIのDevOps
• 特集:AIOpsとは何か〜インフラ運
用、AIで変わること、変わらないこ
と〜, @IT
• AIOpsとは何か? 事例や市場、実
際のツールまで一挙に解説, ビジネ
ス+IT, 2023/3/14
継続的インテグレーション
継続的インテグレーション(CI)
nCI(Continuous Integration)
• コードの変更を定期的に中央リポ
ジトリのメインブランチにpushす
る
• すべての開発者が,1日に数回
から数十回も行う
• push・プルリクされたらビルドと
テストを自動実行
• ビルドとテストが成功したら自
動マージ
n利点:手戻りが短い
• エラーにすぐ気が付ける
• 放置することがない
n手順
• ローカル
• ビルドとテスト(自動)
• テストが通れば次へ
• push・プルリクでCI
• CI側でビルドとテスト(自動)
• テストが通ればマージ
クラウドCIサービス
nCI専用サービス
• TravisCI
• circleCI
nホスティング+CIインフラ
• GitHub Actions
https://github.co.jp/features/actions
https://circleci.com
https://www.travis-ci.com
CIによる開発ルーチン
変更
修正 ローカル
リポジトリ
リモート
リポジトリ
push
CIサービス
自動ビルド
自動テスト
結果
返送
トリガー
CIがOKなら
運用へ展開
実際のCIの例
https://github.com/PointCloudLibrary/pcl/pull/4614
ここではPRをマージす
るときにCIを使ってい
る
CIの結果がこれ
多数の環境でビルドで
きるか確認している
このビルドについては
テストは100%パス
このビルドは失敗して
いる?
CIサービスにはMicrosoftのAzure DevOpsを
利用している
失敗している場所が赤
になっている
詳しい内容はここ
ライブラリのビルドに
失敗していることがわ
かった
継続的デリバリ
継続的デプロイ
CIによる開発ルーチン
変更
修正 ローカル
リポジトリ
リモート
リポジトリ
push
CIサービス
自動ビルド
自動テスト
結果
返送
トリガー
CIがOKなら
運用へ展開
ここが手作業
CDによる開発ルーチン
変更
修正 ローカル
リポジトリ
リモート
リポジトリ
push
CI/CDサービス
自動ビルド
自動テスト
OKなら
自動展開
トリガー
ここまで自動!
n継続的デプロイ(CD)
• ビルドとテストが成功し
たら自動的に実環境へデ
プロイ
• クラウドサービスに適し
ている
n継続的デリバリ(CD)
• 実際にデプロイするのは
手動
• 最終確認ができる
結果
返送
世の中CI/CDは当たり前
CI CD
MarkdownでCI/CD結果
へのリンクとバナーが
埋め込める
世の中CI/CDは当たり前
https://github.com/pytorch/pytorch
JenkinsでCI
世の中CI/CDは当たり前
https://github.com/tensorflow/tensorflow
Google CloudでCI
CI/CDを実践してみる
CDはwebアプリに最適
nクラウドサービスを開発・デプロイする
• ローカルで開発
• コーディング
• ビルドとテスト
• ローカル環境で実行
• CI/CD側に投げる
• 自動ビルドとテスト
• 成功したらデプロイ
• web経由で利用可能になる
nフレームワーク
• Python: Streamlit, Flask, Django, dash, FastAPI
• JavaScript: Node.js, React
• Ruby on Rails
• PHP: Laravel
Webix provides a great number of JavaScript UI
widgets with a pefect look and feel great on various
devices. All of them can be effortlessly customized in
accordance with your preferences thanks to the rich
and clear API.Kelluvuus - Own work
CC BY-SA 4.0
streamlit:軽量webアプリ作成ライブラリ
画像をダウン
ロード
RGBのヒストグ
ラムを計算
ラジオボダンで
RGBを選択 ローカルでアクセス
した画面
main.py
import numpy as np
import pandas as pd
import streamlit as st
from skimage.io import imread
# download the image
img_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/d
/df/Mount_Fuji_from_Mount_Aino.jpg/640px-Mount_Fuji_from_Mount_Ai
no.jpg'
im = imread(img_url)
st.image(im, caption='image from wikimedia commons’,
use_column_width=True)
# show histgram of all colors
hist_red, _ = np.histogram(im[:, :, 0], bins=64)
hist_green, _ = np.histogram(im[:, :, 1], bins=64)
hist_blue, _ = np.histogram(im[:, :, 2], bins=64)
hist = np.stack((hist_red, hist_green, hist_blue), axis=1)
df_hist = pd.DataFrame(hist, columns=['R', 'G', 'B'])
st.bar_chart(df_hist)
# choose one color
color = st.radio(
"choose R, G, or B",
('R', 'G', 'B'))
if color == 'R’:
df_hist = pd.DataFrame(hist_red)
st.bar_chart(df_hist)
if color == 'G’:
df_hist = pd.DataFrame(hist_green)
st.bar_chart(df_hist)
if color == 'B’:
df_hist = pd.DataFrame(hist_blue)
st.bar_chart(df_hist)
今から行うCI/CDの概要
https://github.com/logos
変更
修正 ローカル
リポジトリ
clone push
リモートリ
ポジトリ
https://render.com/
web
アプリ
• 手動でデプロイ
• pushされたら自動デプロイ
• pushされてCIがpassしたら自
動デプロイ
連携
render:PaaS
n各種言語のwebアプリをデプロ
イできる
• 無料枠
• 月100GBまでの通信(外向き)
• 月500分までのビルド時間
https://render.com/pricing
まずフォーク https://github.com/tttamaki/show_img_hist
それをクローン
ここは自分のアカウント
名になる
フォークした自分のリポ
ジトリのsshのURLを
使ってください
それをクローン
フォークした自分のリポ
ジトリのsshのURLを指
定してください
$ git clone git@github.com:tttamaki/show_img_hist.git
Cloning into 'show_img_hist'...
remote: Enumerating objects: 57, done.
remote: Counting objects: 100% (57/57), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 57 (delta 23), reused 45 (delta 12), pack-reused 0
Receiving objects: 100% (57/57), 6.35 KiB | 3.17 MiB/s, done.
Resolving deltas: 100% (23/23), done.
$ cd show_img_hist
$
自分でフォークしたリポジトリURL
まずはローカルで確認:build
$ docker compose build
[+] Building 28.0s (7/9)
[+] Building 60.9s (10/10) FINISHED
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 195B 0.0s
...
=> => exporting layers 4.3s
=> => writing image sha256:a405268705e58f85aa72ecda190e9b52fb6959cc422ae 0.0s
=> => naming to docker.io/library/show_img_hist_mypython 0.0s
$
まずはローカルで確認:up -d
コンテナの8888
ポートを
ホストの8888
ポートへ転送し
ている
コンテナを起動
コンテナ情報を
見ると
$ docker compose up -d
[+] Running 2/2
⠿ Network show_img_hist_default Created 0.0s
⠿ Container show_img_hist-mypython-1 Started 1.1s
$
$ docker compose ps
NAME COMMAND SERVICE STATUS PORTS
show_img_hist-mypython-1 "python3" mypython running 0.0.0.0:8888->8888/tcp
$
$ docker compose down
まずはローカルで確認:ブラウザでアクセス
ndockerfile内で「実行用ファイルをコ
ンテナ内の/root/にコピー」する
• デプロイを想定
• クラウドでは
「ローカルを/mnt/にマウント」
ができない
n実行コマンドはentrypointに記載
• up -dしたらこれが実行されている
n使用ポートは環境変数を利用
• コンテナ内では${PORT}を参照
• コンテナ起動時に設定する
http://localhost:8888/に
アクセスすればOK
止めるときには
ポート「8888」composeが使う環
境変数はファイル「.env」に書い
た番号
起動の仕組み:コンテナ外のファイル
FROM python:slim
COPY requirements.txt /root/
RUN pip install -U pip ¥
&& pip install -r /root/requirements.txt
COPY main.py start.sh /root/
RUN chmod +x /root/start.sh
ENTRYPOINT [ "/root/start.sh" ]
services:
mypython:
build: ./
tty: true
environment:
PORT: ${PORT}
ports:
- "${PORT}:${PORT}"
dockerfile
docker-compose.yml
ローカルのファイルmain.pyを
コンテナ内の/root/にコピー
コンテナ内で使
用するポート
コンテナを起動した時
にコンテナ内で実行す
るコマンド
コンテナ内で使
用する環境変数
composeが使う環境変数は
ファイル「.env」に書く
PORT=8888
.env
streamlitの起動
はshスクリプ
トの中で
起動の仕組み:コンテナ内のファイル
#!/bin/bash
streamlit run /root/main.py --server.port=${PORT} --server.address=0.0.0.0
/root/start.sh
streamlitサーバを
起動するコマンド
streamlitを使った
pythonスクリプト
コンテナ内の/root/に
コピーしたスクリプト
streamlitが使用する
ポートの指定(環境
変数PORTを使う)
streamlitが起動するサー
バのアドレス(不定なの
で0.0.0.0にする)
renderへのデプロイ
renderのアカウント作成
sign inした後のダッシュボード画面
get startedを押してsign up
GitHubやGoogle
やメールアドレ
スでsinupする
GitHubのアカウントに連携
account settings
から
connect githubを
押す
githubアカウン
トが間違ってい
ないことを確認
してAuthorize
連携される
webアプリの作成
NewからWeb
Serviceを作成
もしこんなメッ
セージがでたら
githubを一旦サ
インアウトする
リポジトリが出ないなら以下の
URLからgithubにおけるrenderの権
限を修正
https://github.com/apps/render/installations/new
githubにおけるrenderの権限を修正
リポジトリが出ないなら以下の
URLからgithubにおけるrenderの権
限を修正
https://github.com/apps/render/installations/new
自分のアカウン
トを選択して
renderにアクセ
スを許すリポジ
トリを選択して
インストール
webアプリの作成
renderに許可した
GitHubリポジトリが
表示されるので
connect
webアプリの作成
一意の名前を
つける
ブランチを選択
(自分で使うも
のを選ぶ)
dockerを選択
webアプリの作成
Advanced以下のauto-deployを
Noにしたら手動デプロイ
Yesにしたら自動デプロイ(CD)
作成するとビルドプ
ロセスが開始
ビルド開始
ビルドプロセスは長い
In progressがLiveに変わるまで待つ
ビルド終了&webアプリにアクセス
In progressがLiveに変わったら起動したので
このURLをクリックして
webアプリにアクセス
停止の仕方(停止しないと無料枠が減る)
Settingsから
Suspendを選択
停止中.もう一度押
すとresumeする
停止の確認(停止しないと無料枠が減る)
Dashboardを見
れば起動中かど
うかが分かる
suspendになっ
ていれば停止さ
れた
デプロイの履歴
Eventsを見れば
履歴が分かる
個々のログが見
られる
環境変数の登録
ポートを変更したいなら環境変数PORTを登録・に設定
その後,Manual Deployでlatest commitを選択して再度デプロイ
(render環境変数PORTのデフォルトは10000)
自動デプロイ(CI/CD)
• GitHubへpush
• ActionsでCI
• passしたらrenderでデプロイ
現代社会:ほぼシステム外部
nやり取りにはAPI
を利用
nクラウドにはWeb
API
• 楽天API
• Yahoo API
• Amazon API
• Google Cloud API
• 【2023年最新】作りたいアプリ
別API一覧を全紹介〜随時更新〜
n開発にはSDKを利
用
社内サーバ
社内DB 本社システム 入退室
システム
クラウド
他社
システム
工場システム
社内PC
開発する
システム
エンドユーザー
API
API
API
API
API
SDK
SDK
SDK
SDK
APIキーとSecrets
n外部システムへのアクセス
• パスワードは入力したくない,他人にログインされたくない
• アクセス専用のパスワードみたいなものがあればよい:これがAPI key
nAPI keyをコードに書いてはダメ,絶対
• commitしてpushして公開してしまったら全世界からアクセスされてしまう
• 出前サービス「Wolt」のAndroidアプリに外部サービスのAPIキーがハードコードされている問題, 2023年3月14
日, インプレス窓の杜
• Android アプリ「Hulu」に外部サービスの API キーがハードコードされている問題, 2022年7月28日, Scan Net
Security
• 3200以上のモバイルアプリでAPIキー漏えい判明!Twitterアカウントの乗っ取りが可能に, 2022.08.03, カミアプ
nローカルなら
• 別ファイルに記載(.gitignoreでgit管理外)
• 環境変数から取得(~/.bashrcなどで設定)
• 専用のファイルに記載(例:~/.comet/configなど)
nクラウドは?:これがSecrets
APIキーとSecrets
パスワード
(ログイン可能)
API key(ログイ
ン不可,情報ア
クセスのみ)
パスワード
API key
厳重に保管された
API key
API key
ファイル
コード
API key
API key
API key
ファイル
コード
API key
API key
API key
Secrets
リポジトリにpushされる・
デプロイされるファイル
他人には公
開されない
API key(ログイ
ン不可,情報ア
クセスのみ)
デプロイ
render:自動デプロイをoffにしておく
nrenderの自動デプロイはCIなしCDのみ
• render側の自動デプロイ機能は使わないのでoffにしておく
nGitHub ActionsでCI/CDを実現する
• ActionsでCIをパスしたらActionsからrenderへデプロイする
auto-deployをNoにしたら手動デ
プロイ(自動デプロイoff)
準備:renderアカウントのAPIキーを取得
account
settingsから
create API key
キーに名前
をつけて
これで作成
された
作成されたキーを今すぐコピー!
(後からコピーはできない)
不要になっ
たらrevoke
で削除
準備:renderアプリのサービスID取得
Hook URLのこの部分が
サービスIDなのでコピー
(/から?の間)
再生成が可能
準備:GitHubのリポジトリにsecrets追加
リポジトリの
settingsから
Actionsに
Secretsへ行き
このリポジトリ
のsecretsを新
規作成
renderのAPI keyと
service IDを登録
この名前で登録
すること!
GitHub Actionsの設定
nこの場合は
ワークフローは
設定済み
• .github/workflo
s/以下にある
登録した名前の
secretsが使える
secretsに登録した
名前を使うこと!
CI/CDの実行
npushすると
• Actionsが実行
• flake8がパスすれば
• renderへデプロ
イ
• flake8が失敗すれば
• そこで中断
• デプロイは実行
されない flake8がパスしたの
でrenderへのデプロ
イが実行されている
Actionsをみると
補足:複数のActionsの設定
render_testブランチ
にpushされた時に実
行
mainブランチにpush
された・プルリクが
合った時に実行
CIが失敗する場合
では,わざとコード
を間違えてみる
(flake8が検出でき
る構文エラー)
CIが失敗する場合
間違ったままコードをadd,
commit, pushしてみよう
(当然できてしまう)
$ git add main.py
$ git commit -m "commit with error"
[render_test c4401e4] fix error
1 file changed, 1 insertion(+), 1 deletion(-)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 293 bytes | 293.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/tttamaki/show_img_hist.git
094c181..c4401e4 render_test -> render_test
$
自分でフォークしたリポジトリURL
CIが失敗する場合
Actionsをみると
flake8が失敗したの
でそこで中断,デプ
ロイは実行せず
修正したらCIは成功+CD
コードを修正して,add,
commit, pushしなおすと
CIはパスする(デプロイ
もされる)
さっきのCI失敗
自分でワークフローを設定するなら
Actionsへ行って
pythonならpython
packageがおすすめ
大量のテンプレート
があるので探す
自分でワークフローを設定するなら
yamlの中身を書いて
ファイル名を指定
yamlファイルの追加をコ
ミットすると,それ以降
はActionsが実行される
マニュアルがんばっ
て読む
課題
n今回のwebアプリを作成せよ
• スライドの手順に従って
• localhostのwebアプリにアクセスできることを確認する
• renderアプリを作成し,GitHubと連携して手動でデプロイする
• ブラウザでrenderアプリにアクセスできることを確認する
• CI/CDを体験する
• GitHub Actionsを設定する
• コードを修正,commitしてGitHubへpushする
• renderに自動デプロイされていることを確認する
• renderアプリを終了するのを忘れないこと
n(上級者編)アプリを修正(もしくは自作)してみよう
想定試験問題
nDevOpsとは何かを説明せよ
nCIとは何かを説明せよ
nCDとは何かを説明せよ
nCI/CDの商用サービスには何があるのかを列挙せよ
nPaaSとはどのようなサービスなのかを述べよ

More Related Content

Similar to ソフトウェア工学2023 09 CI CD

マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2Kazuhito Matsuda
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
Docker & Kubernetes基礎
Docker & Kubernetes基礎Docker & Kubernetes基礎
Docker & Kubernetes基礎Daisuke Hiraoka
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜Masaya Aoyama
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)Iwana Chan
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコムTomoyaTakegoshi
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】Tomoharu ASAMI
 
AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法Amazon Web Services Japan
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所真吾 吉田
 
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】Tomoharu ASAMI
 
反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所Yoshifumi Tsuda
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewKeiji Kamebuchi
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学Takuma SHIRAISHI
 

Similar to ソフトウェア工学2023 09 CI CD (20)

マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2
 
Word bench7月号
Word bench7月号Word bench7月号
Word bench7月号
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Docker & Kubernetes基礎
Docker & Kubernetes基礎Docker & Kubernetes基礎
Docker & Kubernetes基礎
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
 
AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法AWS Black Belt Online Seminar AWS上のJenkins活用方法
AWS Black Belt Online Seminar AWS上のJenkins活用方法
 
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
 
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】
 
反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所反復型ソフトウェア開発の勘所
反復型ソフトウェア開発の勘所
 
Github第8章
Github第8章Github第8章
Github第8章
 
【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
20170124 linux basic_2
20170124 linux basic_220170124 linux basic_2
20170124 linux basic_2
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
 

More from Toru Tamaki

論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...
論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...
論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...Toru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex Scenes
論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex Scenes論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex Scenes
論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex ScenesToru Tamaki
 
論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...
論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...
論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...Toru Tamaki
 
論文紹介:Tracking Anything with Decoupled Video Segmentation
論文紹介:Tracking Anything with Decoupled Video Segmentation論文紹介:Tracking Anything with Decoupled Video Segmentation
論文紹介:Tracking Anything with Decoupled Video SegmentationToru Tamaki
 
論文紹介:Real-Time Evaluation in Online Continual Learning: A New Hope
論文紹介:Real-Time Evaluation in Online Continual Learning: A New Hope論文紹介:Real-Time Evaluation in Online Continual Learning: A New Hope
論文紹介:Real-Time Evaluation in Online Continual Learning: A New HopeToru Tamaki
 
論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...
論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...
論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...Toru Tamaki
 
論文紹介:Multitask Vision-Language Prompt Tuning
論文紹介:Multitask Vision-Language Prompt Tuning論文紹介:Multitask Vision-Language Prompt Tuning
論文紹介:Multitask Vision-Language Prompt TuningToru Tamaki
 
論文紹介:MovieCLIP: Visual Scene Recognition in Movies
論文紹介:MovieCLIP: Visual Scene Recognition in Movies論文紹介:MovieCLIP: Visual Scene Recognition in Movies
論文紹介:MovieCLIP: Visual Scene Recognition in MoviesToru Tamaki
 
論文紹介:Discovering Universal Geometry in Embeddings with ICA
論文紹介:Discovering Universal Geometry in Embeddings with ICA論文紹介:Discovering Universal Geometry in Embeddings with ICA
論文紹介:Discovering Universal Geometry in Embeddings with ICAToru Tamaki
 
論文紹介:Efficient Video Action Detection with Token Dropout and Context Refinement
論文紹介:Efficient Video Action Detection with Token Dropout and Context Refinement論文紹介:Efficient Video Action Detection with Token Dropout and Context Refinement
論文紹介:Efficient Video Action Detection with Token Dropout and Context RefinementToru Tamaki
 
論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...
論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...
論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...Toru Tamaki
 
論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...
論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...
論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...Toru Tamaki
 
論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusion
論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusion論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusion
論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusionToru Tamaki
 
論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous Driving
論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous Driving論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous Driving
論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous DrivingToru Tamaki
 
論文紹介:Spatio-Temporal Action Detection Under Large Motion
論文紹介:Spatio-Temporal Action Detection Under Large Motion論文紹介:Spatio-Temporal Action Detection Under Large Motion
論文紹介:Spatio-Temporal Action Detection Under Large MotionToru Tamaki
 
論文紹介:Vision Transformer Adapter for Dense Predictions
論文紹介:Vision Transformer Adapter for Dense Predictions論文紹介:Vision Transformer Adapter for Dense Predictions
論文紹介:Vision Transformer Adapter for Dense PredictionsToru Tamaki
 
動画像理解のための深層学習アプローチ Deep learning approaches to video understanding
動画像理解のための深層学習アプローチ Deep learning approaches to video understanding動画像理解のための深層学習アプローチ Deep learning approaches to video understanding
動画像理解のための深層学習アプローチ Deep learning approaches to video understandingToru Tamaki
 

More from Toru Tamaki (20)

論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...
論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...
論文紹介:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Gene...
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex Scenes
論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex Scenes論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex Scenes
論文紹介:MOSE: A New Dataset for Video Object Segmentation in Complex Scenes
 
論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...
論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...
論文紹介:MoLo: Motion-Augmented Long-Short Contrastive Learning for Few-Shot Acti...
 
論文紹介:Tracking Anything with Decoupled Video Segmentation
論文紹介:Tracking Anything with Decoupled Video Segmentation論文紹介:Tracking Anything with Decoupled Video Segmentation
論文紹介:Tracking Anything with Decoupled Video Segmentation
 
論文紹介:Real-Time Evaluation in Online Continual Learning: A New Hope
論文紹介:Real-Time Evaluation in Online Continual Learning: A New Hope論文紹介:Real-Time Evaluation in Online Continual Learning: A New Hope
論文紹介:Real-Time Evaluation in Online Continual Learning: A New Hope
 
論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...
論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...
論文紹介:PointNet: Deep Learning on Point Sets for 3D Classification and Segmenta...
 
論文紹介:Multitask Vision-Language Prompt Tuning
論文紹介:Multitask Vision-Language Prompt Tuning論文紹介:Multitask Vision-Language Prompt Tuning
論文紹介:Multitask Vision-Language Prompt Tuning
 
論文紹介:MovieCLIP: Visual Scene Recognition in Movies
論文紹介:MovieCLIP: Visual Scene Recognition in Movies論文紹介:MovieCLIP: Visual Scene Recognition in Movies
論文紹介:MovieCLIP: Visual Scene Recognition in Movies
 
論文紹介:Discovering Universal Geometry in Embeddings with ICA
論文紹介:Discovering Universal Geometry in Embeddings with ICA論文紹介:Discovering Universal Geometry in Embeddings with ICA
論文紹介:Discovering Universal Geometry in Embeddings with ICA
 
論文紹介:Efficient Video Action Detection with Token Dropout and Context Refinement
論文紹介:Efficient Video Action Detection with Token Dropout and Context Refinement論文紹介:Efficient Video Action Detection with Token Dropout and Context Refinement
論文紹介:Efficient Video Action Detection with Token Dropout and Context Refinement
 
論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...
論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...
論文紹介:Learning from Noisy Pseudo Labels for Semi-Supervised Temporal Action Lo...
 
論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...
論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...
論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...
 
論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusion
論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusion論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusion
論文紹介:Revealing the unseen: Benchmarking video action recognition under occlusion
 
論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous Driving
論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous Driving論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous Driving
論文紹介:Video Task Decathlon: Unifying Image and Video Tasks in Autonomous Driving
 
論文紹介:Spatio-Temporal Action Detection Under Large Motion
論文紹介:Spatio-Temporal Action Detection Under Large Motion論文紹介:Spatio-Temporal Action Detection Under Large Motion
論文紹介:Spatio-Temporal Action Detection Under Large Motion
 
論文紹介:Vision Transformer Adapter for Dense Predictions
論文紹介:Vision Transformer Adapter for Dense Predictions論文紹介:Vision Transformer Adapter for Dense Predictions
論文紹介:Vision Transformer Adapter for Dense Predictions
 
動画像理解のための深層学習アプローチ Deep learning approaches to video understanding
動画像理解のための深層学習アプローチ Deep learning approaches to video understanding動画像理解のための深層学習アプローチ Deep learning approaches to video understanding
動画像理解のための深層学習アプローチ Deep learning approaches to video understanding
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (9)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

ソフトウェア工学2023 09 CI CD