SlideShare a Scribd company logo
STRICTLY PRIVATE AND CONFIDENTIAL|© 2016 iRidge, Inc.
「5年前の自分たちに伝えたい」
ユーザー数5,500万人になる前にやっておきたい事
自己紹介
植木 基博
■ 何やってる人
・自社サービス popinfoの責任者
・popinfoチームのリーダー
■ Python歴は
・アイリッジに入ったタイミング から 8年
・美術大学卒 なので、計算機言語科学とかを専攻してない
・プログラム初めて書いたのは小3 Basic, Z80
1
popinfoチームの紹介
自社サービス、popinfoの企画、開発、運用
2
大切にしていること / チームの目線
● 良い設計
● 良いコード
● 良いレビュー
● 良い手順
普段から最善を尽くす
3
年前
数字で見る popinfo (ポップインフォ)
数字で見る popinfo
349,053,710 件 .
5,216,056,559 箇所
43 台 .
10 人 . 5
数字で見る popinfo
349,053,710 件 .
.
6
数字で見る popinfo
5,216,056,559 箇所
7
数字で見る popinfo
43 台 .
.
8
9
年前
すみません、古すぎてわかりませんでした。
3年前 ってことにさせてください。
10
11
年前
数字で見る popinfo
20,712,048 件 .
699,649,508 箇所
5 台 .
2.5 人 . 12
1
10
数字で見る popinfo
13
2008 2011 2014 2017
こん時
今困っていること
急激に増える配信数に対して、、、
・性能を追いつかせるだけで大変
・インフラ台数も増えだし、管理が大変
・人を増やしても、キャッチアップが大変
▶ こういった問題はすぐに解決できない
14
3年前の自分たちに伝えたいこと
「モニタリング」
そろそろ始めたほうが良いよ。
15
STRICTLY PRIVATE AND CONFIDENTIAL
株式会社アイリッジ
どんなの
16
どんなの?
17
どんなの?
18
直近1時間のシステム利用動向を表示
どんなの?
19
指定期間の動向をグラフ表示
月単位、年単位での推移を確認
STRICTLY PRIVATE AND CONFIDENTIAL
株式会社アイリッジ
今の課題 (創るにあたる経緯)
20
課題
popinfoでは、今、パフォーマンスに起因する問題が大半。
反省点
・顧客のユースケースを見れていなかった。
⇛いつの間にか、高負荷、高スループットな要求が。。
・エラーではカバーできない (というかエラーではない)
⇛遅延やレイテンシを継続的に計測する必要がある。
▶来年、3年後、5年後を予想する必要!!
▶アプリケーション / サービスの動向をモニタリングが必要!!
21
アプリケーション / サービスの何を監視するのか
「アプリケーション / サービスの動向」をモニタリングする
似ているけど違うもの
・システムリソース監視 (CPU,Memory,Disk, I/O, Network… )
・サービスの死活監視 (APIは動いている?)
22
アプリケーション / サービスの何を監視するのか
リソース監視、死活監視は別で用意
23
Datadog 、CloudWatchを利用した、リソース、End2Endの監視
なぜアプリケーション / サービスの監視をするのか
リソース監視だけではなぜダメなのか?
SLO(Service Level Objective)との関連性が無い。
⇛ 入稿から配信まで 99.995%で10秒以内を目標とする
⇛ API成功率 99.995% を目標とする
・アプリケーションが動作した結果のモニタリングが必要
・CPU利用率80% メモリ利用率 80% とは無関係
・これら指標を、長期的に見続けていく必要がある
24
STRICTLY PRIVATE AND CONFIDENTIAL
株式会社アイリッジ
システム構成
25
利用したもの
26
S3 lambda CloudWatch SNS
概要
27
STAGE: Buffer
・とにかく永続化する
STAGE: Routing
・ログ種別ごとに分割
STAGE: Processing
・任意の処理を実行
概要
28
STAGE: Buffer
・とにかく永続化する
役割
このステージではログの保全を第一に考える。各サーバのログを信
頼性の高いS3に入れることでログのロスト等を防ぐ。ログの分類、
加工等は後続の処理に任せる。
要件
ログをロストしないこと
ログ出力から集約されるまでの時間を可能な限り短くすること
ログ基盤の停止をすぐに検知できること
基盤停止からの復旧時に途中から処理を再開できること
構成
fluentd + fluent-plugin-s3
概要
29
STAGE: Routing
・ログ種別ごとに分割
役割
ログの種類やホスト毎に分類し各S3バケットに転送。
バケット毎にログの種類を分類することで、後続の処理で一貫した
処理ができるようにする。
要件
ログ出力から集約されるまでの時間を可能な限り短くすること
極力、転送のみを行い、複雑な処理を持ち込まないこと
構成
lambda (S3 -> S3)
概要
30
役割 (メトリクスの生成)
CloudWatch メトリクスを生成し、中長期的なモニタリングを可能にす
ること。
一定頻度以上で起きるWarningに対し、適切なアラームを運用の中
で設定できるようにする。
構成
lambda (S3 -> CloudWatch Put Metrics)
役割 (エラーメールの送信)
ログレベルがErrorのものは、いち早く通知する。
構成
lambda (S3 -> SNS) (+ lambda (SNS -> Slack))
STAGE: Processing
・任意の処理を実行
概要
31
ちなみに、この2つのバケットは、「サービスログ」と、「その他ログ」
サービスログは、BIツールなどに取り込むようなビジネス側で利用するデータ。
その他ログは、StackTraceなど。これからroutingしていく候補。
数字で見る popinfo
349,053,710 件 .
5,216,056,559 箇所
43 台 .
10 人 .32
運用費
33
$9/month
まとめ
まとめ
35
● 自分たちのサービスの「数字」をモニタリング
して、将来に備えた対策をしよう
We are hiring
37
● Python + AWS Lambda 等、サーバーレスな
開発に興味がある方
● 品質にこだわって、サービス開発をしたい方
● Go言語書きたい人

More Related Content

What's hot

IT企業じゃなくてもできる!ジワジワスクラム
IT企業じゃなくてもできる!ジワジワスクラムIT企業じゃなくてもできる!ジワジワスクラム
IT企業じゃなくてもできる!ジワジワスクラム
大貴 蜂須賀
 
つながりから俯瞰するキャリア戦略 ~事例と活用法の話~
つながりから俯瞰するキャリア戦略 ~事例と活用法の話~つながりから俯瞰するキャリア戦略 ~事例と活用法の話~
つながりから俯瞰するキャリア戦略 ~事例と活用法の話~
大貴 蜂須賀
 
POのグッとくるメトリクス
POのグッとくるメトリクスPOのグッとくるメトリクス
POのグッとくるメトリクス
大貴 蜂須賀
 
CoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組みCoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組み
Masao Niizuma
 
GAOGAOゲート2期生サービス概要資料
GAOGAOゲート2期生サービス概要資料GAOGAOゲート2期生サービス概要資料
GAOGAOゲート2期生サービス概要資料
Takuya Tejima
 
越えない越境
越えない越境越えない越境
越えない越境
大貴 蜂須賀
 
ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」
ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」
ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」
Fumitaka Inayama
 
ビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のり
ビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のりビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のり
ビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のり
Haruo Sato
 
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
Hiroyuki Ishikawa
 
20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...
20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...
20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...
Noriaki Takahashi
 
First Commitの前にやっておきたいプロダクトオーナーのお仕事
First Commitの前にやっておきたいプロダクトオーナーのお仕事First Commitの前にやっておきたいプロダクトオーナーのお仕事
First Commitの前にやっておきたいプロダクトオーナーのお仕事
大貴 蜂須賀
 
はち の自分戦略
はち の自分戦略はち の自分戦略
はち の自分戦略
大貴 蜂須賀
 
Trunk運用book
Trunk運用bookTrunk運用book
Trunk運用book
Naomichi Sawamura
 
[Gree] DataEngConf NYC’18 セッションサマリー #1
[Gree] DataEngConf NYC’18 セッションサマリー #1[Gree] DataEngConf NYC’18 セッションサマリー #1
[Gree] DataEngConf NYC’18 セッションサマリー #1
Takashi Suzuki
 
あの日、あのとき、あの場所で 君に会えなかったら・・・
あの日、あのとき、あの場所で 君に会えなかったら・・・あの日、あのとき、あの場所で 君に会えなかったら・・・
あの日、あのとき、あの場所で 君に会えなかったら・・・
大貴 蜂須賀
 
#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義
#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義
#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義
大貴 蜂須賀
 
Next.js Storybook Driven Development
Next.js Storybook Driven DevelopmentNext.js Storybook Driven Development
Next.js Storybook Driven Development
Takuya Tejima
 
エンタープライズでもできるアジャイル開発
エンタープライズでもできるアジャイル開発エンタープライズでもできるアジャイル開発
エンタープライズでもできるアジャイル開発
Yoshiyuki Ueda
 
人事や総務を兼務してわかった「小さく始める」は開発だけではないということ
人事や総務を兼務してわかった「小さく始める」は開発だけではないということ人事や総務を兼務してわかった「小さく始める」は開発だけではないということ
人事や総務を兼務してわかった「小さく始める」は開発だけではないということ
大貴 蜂須賀
 
妄想ジャーナリングのススメ
妄想ジャーナリングのススメ妄想ジャーナリングのススメ
妄想ジャーナリングのススメ
大貴 蜂須賀
 

What's hot (20)

IT企業じゃなくてもできる!ジワジワスクラム
IT企業じゃなくてもできる!ジワジワスクラムIT企業じゃなくてもできる!ジワジワスクラム
IT企業じゃなくてもできる!ジワジワスクラム
 
つながりから俯瞰するキャリア戦略 ~事例と活用法の話~
つながりから俯瞰するキャリア戦略 ~事例と活用法の話~つながりから俯瞰するキャリア戦略 ~事例と活用法の話~
つながりから俯瞰するキャリア戦略 ~事例と活用法の話~
 
POのグッとくるメトリクス
POのグッとくるメトリクスPOのグッとくるメトリクス
POのグッとくるメトリクス
 
CoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組みCoderDojo ひばりヶ丘の取り組み
CoderDojo ひばりヶ丘の取り組み
 
GAOGAOゲート2期生サービス概要資料
GAOGAOゲート2期生サービス概要資料GAOGAOゲート2期生サービス概要資料
GAOGAOゲート2期生サービス概要資料
 
越えない越境
越えない越境越えない越境
越えない越境
 
ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」
ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」
ISACA2017年10月例会「アジャイル開発における開発プロセスと監査ポイント」
 
ビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のり
ビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のりビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のり
ビープラウドの紹介と渋谷区千駄ヶ谷5-32-7に漂着するまでの道のり
 
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
 
20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...
20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...
20190520エンジニア交流会Google Apps Scriptミートアップ#4「~ノンプログラマー向けGAS活用~GAS×Chatwork・Slac...
 
First Commitの前にやっておきたいプロダクトオーナーのお仕事
First Commitの前にやっておきたいプロダクトオーナーのお仕事First Commitの前にやっておきたいプロダクトオーナーのお仕事
First Commitの前にやっておきたいプロダクトオーナーのお仕事
 
はち の自分戦略
はち の自分戦略はち の自分戦略
はち の自分戦略
 
Trunk運用book
Trunk運用bookTrunk運用book
Trunk運用book
 
[Gree] DataEngConf NYC’18 セッションサマリー #1
[Gree] DataEngConf NYC’18 セッションサマリー #1[Gree] DataEngConf NYC’18 セッションサマリー #1
[Gree] DataEngConf NYC’18 セッションサマリー #1
 
あの日、あのとき、あの場所で 君に会えなかったら・・・
あの日、あのとき、あの場所で 君に会えなかったら・・・あの日、あのとき、あの場所で 君に会えなかったら・・・
あの日、あのとき、あの場所で 君に会えなかったら・・・
 
#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義
#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義
#1 Youtubeはじめました。 コロナの時代におもうOutputの再定義
 
Next.js Storybook Driven Development
Next.js Storybook Driven DevelopmentNext.js Storybook Driven Development
Next.js Storybook Driven Development
 
エンタープライズでもできるアジャイル開発
エンタープライズでもできるアジャイル開発エンタープライズでもできるアジャイル開発
エンタープライズでもできるアジャイル開発
 
人事や総務を兼務してわかった「小さく始める」は開発だけではないということ
人事や総務を兼務してわかった「小さく始める」は開発だけではないということ人事や総務を兼務してわかった「小さく始める」は開発だけではないということ
人事や総務を兼務してわかった「小さく始める」は開発だけではないということ
 
妄想ジャーナリングのススメ
妄想ジャーナリングのススメ妄想ジャーナリングのススメ
妄想ジャーナリングのススメ
 

Similar to 5年前の自分たちに伝えておきたいこと モニタリング

プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
Takayuki Shimizukawa
 
プログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのかプログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのか
Haruo Sato
 
就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof
DIVE INTO CODE Corp.
 
アウトプットのすすめ
アウトプットのすすめアウトプットのすすめ
アウトプットのすすめ
KoichiHirai1
 
プログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonプログラミング学習とScratch raspi python
プログラミング学習とScratch raspi python
Yoshitaka Shiono
 
IT系プロボノのすすめ~エンジニアの遊び方
IT系プロボノのすすめ~エンジニアの遊び方IT系プロボノのすすめ~エンジニアの遊び方
IT系プロボノのすすめ~エンジニアの遊び方
Yurie Saitoh
 
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
Osamu Ise
 
インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】
インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】
インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】
collabotechnology
 
みんなのPython勉強会#35 Pythonのお仕事動向
みんなのPython勉強会#35 Pythonのお仕事動向みんなのPython勉強会#35 Pythonのお仕事動向
みんなのPython勉強会#35 Pythonのお仕事動向
Yasuki Kishi
 
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと
hirokiky
 
2018 programing
2018 programing2018 programing
2018 programing
m_miyamoto
 
第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる
DIVE INTO CODE Corp.
 
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
Akinori Kohno
 
プロボノ説明用資料
プロボノ説明用資料プロボノ説明用資料
プロボノ説明用資料
Nuta2
 
新規事業作って学んだ事_WCK_20190119発表
新規事業作って学んだ事_WCK_20190119発表新規事業作って学んだ事_WCK_20190119発表
新規事業作って学んだ事_WCK_20190119発表
Hiromi Kobayashi
 
Marketing×Python/Rで頑張れる事例16本ノック
Marketing×Python/Rで頑張れる事例16本ノックMarketing×Python/Rで頑張れる事例16本ノック
Marketing×Python/Rで頑張れる事例16本ノック
Teruyuki Sakaue
 
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業
Makoto Koike
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5
Takeshi Akutsu
 
初めてのWebプログラミング講座
初めてのWebプログラミング講座初めてのWebプログラミング講座
初めてのWebプログラミング講座
DIVE INTO CODE Corp.
 
ロジカルコミュニケーション力養成・実践講座
ロジカルコミュニケーション力養成・実践講座ロジカルコミュニケーション力養成・実践講座
ロジカルコミュニケーション力養成・実践講座Yusuke Kuroda
 

Similar to 5年前の自分たちに伝えておきたいこと モニタリング (20)

プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
 
プログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのかプログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのか
 
就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof
 
アウトプットのすすめ
アウトプットのすすめアウトプットのすすめ
アウトプットのすすめ
 
プログラミング学習とScratch raspi python
プログラミング学習とScratch raspi pythonプログラミング学習とScratch raspi python
プログラミング学習とScratch raspi python
 
IT系プロボノのすすめ~エンジニアの遊び方
IT系プロボノのすすめ~エンジニアの遊び方IT系プロボノのすすめ~エンジニアの遊び方
IT系プロボノのすすめ~エンジニアの遊び方
 
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
 
インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】
インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】
インフルエンサー・マッチング・プラットフォーム【コラボマーケティング】
 
みんなのPython勉強会#35 Pythonのお仕事動向
みんなのPython勉強会#35 Pythonのお仕事動向みんなのPython勉強会#35 Pythonのお仕事動向
みんなのPython勉強会#35 Pythonのお仕事動向
 
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと
 
2018 programing
2018 programing2018 programing
2018 programing
 
第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる
 
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
 
プロボノ説明用資料
プロボノ説明用資料プロボノ説明用資料
プロボノ説明用資料
 
新規事業作って学んだ事_WCK_20190119発表
新規事業作って学んだ事_WCK_20190119発表新規事業作って学んだ事_WCK_20190119発表
新規事業作って学んだ事_WCK_20190119発表
 
Marketing×Python/Rで頑張れる事例16本ノック
Marketing×Python/Rで頑張れる事例16本ノックMarketing×Python/Rで頑張れる事例16本ノック
Marketing×Python/Rで頑張れる事例16本ノック
 
[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業[PyConJP2019]Pythonで切り開く新しい農業
[PyConJP2019]Pythonで切り開く新しい農業
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5
 
初めてのWebプログラミング講座
初めてのWebプログラミング講座初めてのWebプログラミング講座
初めてのWebプログラミング講座
 
ロジカルコミュニケーション力養成・実践講座
ロジカルコミュニケーション力養成・実践講座ロジカルコミュニケーション力養成・実践講座
ロジカルコミュニケーション力養成・実践講座
 

5年前の自分たちに伝えておきたいこと モニタリング