Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
簡単!Slack+GAS+GCPでIT棚卸自動化
Search
gree_tech
PRO
October 25, 2022
Technology
4.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
簡単!Slack+GAS+GCPでIT棚卸自動化
GREE Tech Conference 2022で発表された資料です。
https://techcon.gree.jp/2022/session/TrackA-7
gree_tech
PRO
October 25, 2022
More Decks by gree_tech
See All by gree_tech
1on1、進捗確認だけになっていませんか?〜明日から使えるTips〜
gree_tech
PRO
0
5
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
960
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
1k
ゲームにおけるメディアミックス展開との向き合い方 -ヘブンバーンズレッドのメディアミックス企画の立て方-
gree_tech
PRO
0
1.1k
課題発見から始めるプロダクト密着型TA組織立ち上げ 〜小規模TAチームが3Dアセットの生産性を倍にした方法〜
gree_tech
PRO
0
1.1k
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
960
20年続く長寿タイトルが、15年目にして売上を伸ばせた理由
gree_tech
PRO
0
1.5k
我々はどう生きるか
gree_tech
PRO
2
1.1k
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
5.6k
Other Decks in Technology
See All in Technology
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.7k
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
390
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
130
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
sanghyuk
0
170
Datadog で始める トークンセーフティなAI 導⼊と定着
vkbaba
1
100
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
810
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.8k
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
1
880
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
34
22k
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
150
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
150
音声コミュニティを守るAI監視基盤_ 90%以上の入力削減を支えたServerless設計と運用判断
shuheioka123
0
110
Featured
See All Featured
Tell your own story through comics
letsgokoyo
1
1.1k
30 Presentation Tips
portentint
PRO
1
410
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
370
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
560
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Practical Orchestrator
shlominoach
192
12k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Transcript
グリー株式会社 蔡 品儀 簡単!Slack+GAS+GCPで IT棚卸自動化
自己紹介 2 • 名前 • 蔡 品儀(ツァイ ピンイ) • 所属
• グリー株式会社 • 開発本部 / 情報システム部 / 業務アプリケーショングループ ITディベロップメントチーム • 経歴 • 台湾出身。大学院を修了してから、2015年に来日し、2017年にグリーに入社。6 年ほどソーシャルゲームの運営・開発に関わって、2021年7月より情報システム 部業務アプリケーションに異動し、現在は社内システム効率化をメインに担当して います。
Agenda 3 •グリーの情報システム部の紹介 •IT棚卸自動化とは • 開発の背景について • 仕組みおよび課題解決 • 開発中に遭遇した問題と解決策
• 実際リリースしてみたら • 運用で気づいた問題と解決策 • 今後の展望
4 4 グリーの情報システム部の紹介 開発本部 情報システム部 IT基盤 サービス オペレーション 業務アプリケーション IT基盤
ITサービス オペレーション 業務アプリケーション 情報システム部 サーバ、ネットワーク担当 ヘルプデスクやPC・ライセンス管理 業務アプリケーション 開発導入
Slack Zoom Confluence クラウドストレージ 電子署名 業務システム Adobe Sign ワークフロー ServiceNow
サービスデスク JIRA Slack データ共有 Google Drive Box ファイルサーバ Cohesity 問い合わせ ナレッジ共有 Wiki Portal Sharepoint Online FAQ ServiceNow コミュニケーション ビジネスチャット Web会議 コラボレーション 開発基盤 アプリケーション開発 Google Cloud データ連携 Workato Google Workspace 設備-ネットワーク 設備-オフィス Active Directory Client VPN Global Protect 電子ホワイトボード Google Jamboard 無人受付システム RECEPTIONIST ビジネスフォン INNOVERA レポート Google データポータル VDI Amazon Workspaces SSO Google Sites 5 情シスが提供するさまざまなツール
Agenda 6 •グリーの情報システム部の紹介 •IT棚卸自動化とは • 開発の背景について • 仕組みおよび課題解決 • 開発中に遭遇した問題と解決策
• 実際リリースしてみたら • 運用で気づいた問題と解決策 • 今後の展望
ツール開発の背景 PC・検証用端末・ソフトウェアライセンスなど、合計140種類以上のIT資産を 管理しています。 この数量・コストの適正化のために、契約更新のタイミングに合わせてかなり の工数をかけて棚卸を行う必要があり、利用者・情報システム部ともに負担が 大きい状況が続いていました。 7
ツール開発の背景 - 導入前の棚卸フロー(運営側) 8 ServiceNowより データ取得 未回答者抽出 シート作成 リマインド フォーマットに
沿って整形 特定カラムで ソート その他の細 かい手作業 Slackで対象者 を検索 棚卸担当者 から連絡 締め切りまで繰り返す 全て手作業です
ツール開発の背景 - 導入前の棚卸フロー(利用者) 9 ポータルでお 知らせ みんなで シート更新 締切まで 繰り返し
ツール開発の背景 - 棚卸あるある • シート作成が手動で時間がかかる • 一斉アナウンスでは利用者に気づいてもらえず、回答率が60%ほど...... • 締切までに何度も手動でリマインドが必要である •
回答に手間がかかるので、利用者がストレスを感じる • Google Spreadsheetの同時編集に上限があるため大人数で同時に回 答できない、等 10
Agenda 11 •グリーの情報システム部の紹介 •IT棚卸自動化とは • 開発の背景について • 仕組みおよび課題解決 • 開発中に遭遇した問題と解決策
• 実際リリースしてみたら • 運用で気づいた問題と解決策 • 今後の展望
Apps Script Apps Scriptを使い、棚卸ごとにシートを作成する システム構成(運用者の操作:シート作成) 12 該当項目 の検索 管理シート テンプレートシート
個別シート
運用で使うシート 1. 管理シート • シート作成およびリマインド時に使用 2. テンプレートシート • シート作成に使用 3.
個別シート • リマインド時に使用 13
1. 管理シート Slack通知の内容をSpreadSheetのマスタで管理 • 資産のタイプ、タイトル、締め切り日、リマインド方法など、シートの内容をメンテす れば通知内容を変更できるようにしている 14
2. テンプレートシート • 個別棚卸シートを作成するためのもの • 管理シートにタイトル等を記入後、テンプレートシートのメニューに表示される 15
3. 個別シート 該当棚卸の対象ユーザー、資産詳細、利用状況等を記載してある 資産ごとに作る 16
導入後の棚卸フロー 17 シート作成 ServiceNowより 所持データ取得 フォーマットに 沿って整形 特定カラムで ソート 役職者除外
新規利用者 除外 管理シート templateシート 所持データ(csv) 格納 入力 ワンボタンで作成 導入前の棚卸フロー
Apps Script Apps Scriptを使い、Slack APIで通知 システム構成(運用者の操作:リマインド送信) 18 該当項目 の検索 Slack
API 管理シート 個別シート 情報システム 部から棚卸の お願いです! : :
導入後の棚卸フロー 19 リマインド 未回答者抽出 Slack ID取得 棚卸担当者 から連絡 締め切りまで繰り返す 個別シート
ボタンを押すだけ 導入前の棚卸フロー
Cloud Functionsでリクエスト(継続/返却の回答)を受け付け、Sheets APIでシートを更 新する システム構成(利用者の操作:回答) 20 管理シート 個別シート Sheets API
で更新 リクエストを受付 Cloud Functions 継続 返却 ライセンスA
ユーザへの棚卸依頼 21 ダイレクトメッセージで棚卸回答を依頼
ユーザの棚卸更新 22 ダイレクトメッセージについているボタンを押すだけ リマインド本文 データ更新中 更新完了 エラー 期限切れ
Agenda 23 •グリーの情報システム部の紹介 •IT棚卸自動化とは • 開発の背景について • 仕組みおよび課題解決 • 開発中に遭遇した問題と解決策
• 実際リリースしてみたら • 運用で気づいた問題と解決策 • 今後の展望
Cloud Functionsの処理時間が長くなった場合に、 Slack Appの制限時間を超えて、タイムアウトエラーが発生 問題1 24 Cloud Functions この部分の処理
問題1 - 解決方法👏 処理完了前にいったんresponse(200)を返し、 Cloud Functionsの処理完了後に、Slackメッセージを更新し ユーザーに処理が本当にちゃんと終わったか伝える 25 Cloud Functionsの処理時間が長くなった場合に、
Slack Appの制限時間を超えて、タイムアウトエラーが発生
SpreadSheetのGASで作成したトリガー(Simple Trigger)からは シートを跨いだ処理を実行できない。 →テンプレートシートから管理シートを参照することができない 問題2 26 Apps Script 該当項目 の検索
管理シート テンプレートシート 個別シート
問題2 ②Simple Triggersから起動したスクリプトで管 理シートを参照(OnOpenURL) Error: SpreadsheetApp.openByUrl を 呼び出す権限がありません テンプレートシート 管理シート
①シートを開く (起動イベント)
問題2 - 解決方法👏 ②Installable Triggerから起動したスクリプトで管 理シートを参照(OnOpenURL) テンプレートシート 管理シート ①シートを開く (起動イベント)
Installable Triggersを設定することで、テンプレートシートから管理 シートを参照できるようになった
SpreadSheetのメニューを動的に設定したい →関数に引数が渡せないので、シートごとに手動で設定しないといけな かった 問題3 29 追加したカスタムメニュー
問題3 - 解決方法👏 30 棚卸対象の資産ごとに項目名を切り替えられるよう、動的に関数を作るこ とにした functionName = 'ITEM_FUNCTIONS.' +
functionName const temData = {name: displayName, functionName: functionName} menuList.push(temData) const ITEM_FUNCTIONS = (function() { let result = {}; for (let key in 項目リスト) { result[項目タイトル] = function() {makeSheet(項目タイトル)} } return result })() ref: https://qiita.com/neonemo/items/86f34ecb0db3cfc51c8d
Agenda 31 •グリーの情報システム部の紹介 •IT棚卸自動化とは • 開発の背景について • 仕組みおよび課題解決 • 開発中に遭遇した問題と解決策
• 実際リリースしてみたら • 運用で気づいた問題と解決策 • 今後の展望
32 実際にリリースしてみたら • シート作成が手動で時間がかかる ▶シート作成の工数が激減し、他の作業に時間を取れるようになった • 一斉アナウンスでは利用者に気づいてもらえず、回答率が60%ほど...... • 締切までに何度も手動でリマインドが必要である ▶リマインドの工数が減り、他の作業に時間を取れるようになった
▶期限内の回答率が90%台に!! • 回答に手間がかかるので、利用者がストレスを感じる • Google Spreadsheetの同時編集に上限があるため大人数で同時に回 答できない、等 ▶ボタンを押すだけなので回答が楽に。SpreadSheetの同時編集にも ひっ かからなくなった。
Agenda 33 •グリーの情報システム部の紹介 •IT棚卸自動化とは • 開発の背景について • 仕組みおよび課題解決 • 開発中に遭遇した問題と解決策
• 実際リリースしてみたら • 運用で気づいた問題と解決策 • 今後の展望
• APIの制約(Rate Limit) • パフォーマンス • 参照が消える問題 34 運用で気づいた問題と解決策
リリース後気づいた問題と対策1 • Google Sheet APIのGETリクエスト上限を超えると、処理が止まる (レコード数が多いときに発生することがある) 1アカウントで最大60回/秒しかリクエストできないので、Google Cloudのサポートに「上限を上げてほしい」という要望を出す ↓ 「長期的に上限を超えた実績が無いと上げられない」と回答
😢 35
Sheet API 36
→レコード数が1000行までの棚卸は、問題なくクリアした 🍺 リリース後気づいた問題と対策1(cont.) • GET回数を減らす • 現状の、管理シートにGETを1回、個別シートに1回を、管理シート1回 のみに変更 • コストをかけて、制限をあげる
• 「一つのアカウント」で最大60回/秒の制限があるため、Google Sheet APIを実行するアカウントを、2つに増やしてみた 37
参照が消えるエラー リリース後気づいた問題と対策2 管理シートの肥大化を避けるため、完了したレコードは消してもらっています。 本来は期限切れの文言を出すはずだが、ユーザーが完了後ボタンを押した ら、管理シートにレコードが見つからないのでエラー →ボタンに締め切り日を持たせて、管理シートにデータがなくても完了後かどう か判定できる 38
Agenda 39 •グリーの情報システム部の紹介 •IT棚卸自動化とは • 開発の背景について • 仕組みおよび課題解決 • 開発中に遭遇した問題と解決策
• 実際リリースしてみたら • 運用で気づいた問題と解決策 • 今後の展望
現状で何となく棚卸はある程度スムーズできていますが・・・ 今後の展望 • WEB UIで個人所持資産をいつでもチェックできるようにして、同時に棚卸 機能も追加したり? • ログインしたアカウントでレコードを絞れるAppSheetに棚卸作業を移行す る? 40
Google Workspace 、 Google Sites 、 Google Drive 、 Google Cloud 、 Google データポータル および、 Google Jamboard は Google LLC の商標です
41