Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Redmineosaka 20 talk_crosspoints

1.710 Aufrufe

Veröffentlicht am

2019年8月31日 第20回 Redmine大阪Talk資料

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

Redmineosaka 20 talk_crosspoints

  1. 1. とあるメーカーのRedmine 活用事例 – RedmineとTableau – 2019年8月31日(土) 第20回 Redmine大阪 田村
  2. 2. 自己紹介 名前: 田村進司(たむらしんじ) 所属: 古野電気 仕事内容: 表の仕事 裏の仕事 1995 デジタル変復調のシミュレーション 社内ネットワーク・サーバー管理 2001 GPSモジュールの開発 WEBサーバー, 全文検索システム, ファイル サーバー構築・運用・保守 2003 Matlab導入 新規衛星端末のデジタル変復調、 TURBO符号の研究・開発、システム 設計 メーリングリスト, CMS(PukiWiki, Xoops)導 入 Trac, Subversion導入 2010 主としてシステム設計, ネットワーク 設計, IoTシステムの研究開発 Redmine構築・運用・保守 関西Tableauユーザー会幹事2015 Tableau導入 2017 AWS導入, Tableau Server構築 PSIRT立ち上げ 2019 セキュリティ(CSIRT), 故障予測, データ解析, データカタログ色々構築中 @crosspointst crosspoints crosspointscrosspointst
  3. 3. 情報システム部になっって6ヵ月 RedmineはシャドーITから昇格!? でも… お守りはまだ引き継げていない…
  4. 4. 使用している部署と利用目的 社内外向けすべてで約30サイト 企画部門 • ナレッジ • タスク管理 • ポータル • 文書管理 • BIツール向 けデータ 部門横断 • ナレッジ • タスク管理 • ポータル • 文書管理 • 案件管理 • 在庫管理 • 出荷管理 • ヘルプデス ク 研究・開発 • ナレッジ • タスク管理 • ポータル • 文書管理 • アイデア シート • Gitlab連携 • RocketChat 連携 営業業務 • タスク管理 (国内外) • CRM サービス部門 • インシデン ト管理 本社部門 • ヘルプデス ク 情シスも使い 始めた!
  5. 5. 主な利用プラグイン • Clipboard image paste • Computed custom field • Redmine Agile(RedmineUP) • Redmine Banner • Redmine Issue Templates • Redmine Select2 • Redmine Checklists(RedmineUP) • Redmine Default Custom Query • DMSF • Knowledgebase • Redmine LDAP Sync • Redmine Startpage • Redmine Tags • Redmine Wiki Extensions • Redmine Wiki Lists • Redmine Wiki Unc • Redmine XLSX format issue exporter • Sidebar Hide • Spectator • View Customize • WikiNG • 一部 Lychee(検証レベル),採番プラグイン等 Qiitaにも古いですが書いてます https://qiita.com/crosspointst/items/33f0313e14b2c7b3595a 本格導入 Akikoさん 使ってます
  6. 6. 基本構成 社内向け: VM, 社外向け: AWS(EC2) 1ホストでApacheのVirtualHostで個別に立てている ShellScriptでホスト立ち上げをできるように簡略化 認証は基本的にActive Directoryで連携(同期をとっている) 社内向けもSSL化(ADで証明書配布) • 混在コンテンツ対応
  7. 7. 運用ポリシー  社内システムの隙間を埋める • 社内上にシステムがあるけど、個人作業を共有したいけどエクセルで破綻している • システム立ち上げたいけど、どんな規模になるかわからないから、要件定義をするためにRedmineで構築 してみる  データの正規化 • エクセルで入力させると自由すぎる • 履歴がわからん • 誰かが編集してたら編集できない • BIツールで可視化できる状態になる  システム管理者おまかせ • 各ホスト管理者にお任せ(ブラウザで操作できる範囲) • “こんなことしたい”って言われたらそれに対応する • おかげで?ViewCustomizeでワークフロー作る人もでてきた!(非エンジニア)  社内コミュニティ • 基本社内コミュニティで情報共有で助け合い(数人) • サーバー側の管理者は一人…
  8. 8. どうやって管理してるの? 田村 使いたい人が システム管理者 システム管理者 システム管理者 システム管理者 システム管理者 システム管理者 Redmine 使いたい人 使いたい 依頼 作成 プラグインいれて こんなんしたい なんかおかしい  サーバー構築  プラグインインストール  プラグインのサポート(デバッグ含む)  要件定義  使い方支援  運用ルールきめる  WEBから設定できることは基本システム管理者(ユーザ部門)がする  不具合対応窓口
  9. 9. 最近やったこと Redmineのページビュー解析 • Matomo(旧piwik) + View Customize • https://matomo.jp/
  10. 10. Matomoを利用するための Redmine(View Customize)の設定 var _paq = window._paq || []; _paq.push(["trackPageView"]); _paq.push(["enableLinkTracking"]); function embedTrackingCode() { var u=“https://<matomoのホストurl>"; var user_id = "anonymous"; if(($('div#loggedas').length)){ user_id = $('#loggedas').text(); } _paq.push(['setUserId', user_id]); _paq.push(["setTrackerUrl", u+"matomo.php"]); _paq.push([“setSiteId”, “<matomoで割り振られるID>"]); var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; g.defer=true; g.async=true; g.src=u+"matomo.js"; s.parentNode.insertBefore(g,s); } if (window.addEventListener) { window.addEventListener("load", embedTrackingCode, false); } else if (window.attachEvent) { window.attachEvent("onload",embedTrackingCode); } else { embedTrackingCode(); } RedmineのログインID取得
  11. 11. Matomo上でみるとこんな感じ
  12. 12. みなさんに質問
  13. 13. 会社で データドリブンな経営 とか DX(デジタルトランスフォーメーション) とか って言われてないですか?
  14. 14. RedmineもDXのためのツールとして使えます!! 可視化は弱いけど それを補助するためにTableau使いましょう Tableauの営業じゃないですよ
  15. 15. Redmine × 新商品開発スケジュールの管理はガントチャートだけでは無理 RedmineをDBとしてつかって、CSVファイルをデイリーで抽 出してTableau用のファイルを作成 年単位のガントチャート、条件によって色分け等、可視化で弱 い部分をTableauでカバー + パッケージドワークブック UNZIP Dataフォルダ ワークブック データファイル更新 チケット一覧をクエリ毎にCSVダウンロード ZIP Dataフォルダ デイリー & 任意のタイミングで更新 今日はコレ
  16. 16. Tableauとは  BI(Business Intelligence)ツール • ビジネス上の判断を適切に行うためにデータを 可視化する • 様々なデータを多角的に見て、仮説検証を行う • データそのものを可視化して法則・関連性を発 見する • データによる予測を行う  その他のBIツール • Power BI(Microsoft) • Google Data Portal(Google) • Qlik Sence(Qlik) • Motion Board(WingARC)
  17. 17. Tableauのライセンス体系  Tableau Creator – 102,000円 • ローカル環境でデータ接続をしてワークブックを作成できる • Tableau Server/Onlineにワークブックをアップロードできる • Desktopライセンス、Serverライセンス、Tableau Prep Builderのライセンス含む  Tableau Explorer – 60,000円 • Tableau Server/Online上でワークブックの編集ができる  Tableau Viewer – 22,000円 • Tableau Server/Online上のワークブックを閲覧できる  Tableau Reader – 無料 • Tableau Desktopで作成されたデータファイルを含んだワークブックを閲覧できる  Tableau Public – 無料 • ローカル環境でデータ接続をし、データファイルを含んだワークブックの作成を行うことができる。ただ し、ワークブックの保存先はTableau Public上のみ  現状のDesktopアプリケーションは64bitOSのみ対応
  18. 18. Tableau(デモ) Tableauのサンプルデータを使用
  19. 19. TableauとRedmineの連携方法  RedmineのDBに直接接続(Postgresql, mysql) • https://www.redmine.org/projects/redmine/wiki/DatabaseModel • 頑張ればできる • Tableau上でjoinもできるし • でも面倒くさい  WebDataConnectorを使う • https://help.tableau.com/current/pro/desktop/ja-jp/examples_web_data_connector.htm • RedmineのREST APIからWebDataConnector経由でTableauが読み込める形式に変換してデータを読み 込ませる • Javascriptで開発が必要 • レスポンスにやや問題あり(昔は。今はわからない) • https://tableau.github.io/webdataconnector/community/ • だれかRedmine用の作って…  カスタムクエリでCSVダウンロードしたものを使う • これの説明します • 参考: https://www.slideshare.net/crosspoints/tableau-81126611
  20. 20.  背景 • Excelで管理していたが変更履歴がわからない • Excelだとデータ型が自由すぎる(日付の列にコメント書いたの誰だ!) • ↓履歴管理・データの正規化を実現するために • データをRedmineに集約・更新作業はRedmine • ↓Redmineでは可視化が弱い, 会議時点の状態と比較したい • そうだTableauを使おう  レシピ • 基本になるTableauパッケージドワークブックを作成する • (データのファイル名に日本語は使わない. ファイル名がUTF-8のため) • パッケージドワークブックをZIPで解凍しておく(アンパッケージを使わない) • ↓ データの更新をスクリプト(バッチ処理)で自動化 • 毎日RedmineからCSVデータをダウンロードして, 更新対象フォルダーに上書きコピー • 解凍フォルダをZIP圧縮する  更新されたパッケージドワークブックの出来上がり Tableau運用事例
  21. 21. 実際の手順 元のワークブックの作成と準備 Redmine (1)必要なカスタムクエリ作成 (2)APIキー準備 (3) CSVをダウンロード (4) CSVを”Data”とか適当な英名ファイル名に保存 (5) ダウンロードしたCSVを使ってTableauのワークブックを作成 (6) 完成したらパッケージドワークブック(twbx)で保存 (7) パッケージドワークブックを更新処理するサーバーへアップロード (8) パッケージドワークブックをunzipしておく 更新処理 (1)クエリID, APIキーでwget or curl でcsvをダウンロード (2)保存先はパッケージドワークブックを展開した”Data”フォルダに保存 (3)ダウンロードしたら、zip圧縮して拡張子をtwbxにする (4)DMSFの指定ファイルに上書き保存
  22. 22. データ接続 子チケット親チケット 親チケットのスナップ ショット 製品マスター
  23. 23. Tableau(デモ) Redmineのチケットを使用
  24. 24. 本気で! Ruby, Javascriptのエンジニア募集中!

×