Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ドキュメントを支える技術 / PHP Conference Fukuoka 2016

ドキュメントを支える技術 / PHP Conference Fukuoka 2016

ドキュメントを支える技術 PHPカンファレンス福岡2016

Ken’ichiro Oyama

May 21, 2016
Tweet

More Decks by Ken’ichiro Oyama

Other Decks in Technology

Transcript

  1. ドキュメントを⽀支える技術
    Kenʼ’ichiro  Oyama
    Fusic  Co.,Ltd.
    2016.5.21
    1
    PHPカンファレンス福岡2016  

    View full-size slide

  2. Who
    2
    PHPカンファレンス福岡2016  

    View full-size slide

  3. k1LoW
      Kenʼ’ichiro  Oyama
      @k1LoW
      Fusic  Co.,Ltd.  エンジニア
      CakePHP/AWS/さくらVPS
      GitHub  organizations
      fukuokarb  /  dotcake  /  emacs-‐‑‒jp  /  etc.
      awspecというAWS⽤用のテストツールを作って
    います
      https://github.com/k1LoW/awspec
    3
    PHPカンファレンス福岡2016  

    View full-size slide

  4. ドキュメント?
      PHP  Manual
      README
      PHPDoc
      今回はそういう技術ドキュメントの話しではあ
    りません
    4
    PHPカンファレンス福岡2016  

    View full-size slide

  5. ドキュメントを⽀支える技術
      概算⾒見見積とか
      概算スケジュールとか
      定例例報告書とか
      クライアントと共有するためのドキュメントの
    話しをします
    5
    PHPカンファレンス福岡2016  

    View full-size slide

  6. ドキュメントを⽀支える技術
      情報を取得して(INPUT)
      まとめて(COLLECT)
      表⽰示(OUTPUT)
      紙(PRINT)
    6
    PHPカンファレンス福岡2016  

    View full-size slide

  7. 紙(PRINT)
      紙が⼤大切切(印刷できないとクライアントとのミ
    ーティングで使えない。提出できない)
      可視化だけじゃ⾜足りない
      最低限体裁を整える必要がある
      紙は、、、死なないっっ!
    7
    PHPカンファレンス福岡2016  

    View full-size slide

  8. 体裁を整えるドキュメントの代表
      Word
      PowerPoint
      Excel
      Officeちょっと苦⼿手。。。
      なんとかしたい
      ドキュメントを書きたくない
      ドキュメントをより効率率率よく作成したい
      あわよくば⾃自動化したい
    8
    PHPカンファレンス福岡2016  

    View full-size slide

  9. 今回はその試⾏行行錯誤を
    いくつか紹介します
    9
    PHPカンファレンス福岡2016  

    View full-size slide

  10. 例例1:  サーバの利利⽤用状況レポート
    10
    PHPカンファレンス福岡2016  

    View full-size slide

  11. サーバの利利⽤用状況レポート?
      「⽉月次でサーバの利利⽤用状況をレポートとして提
    出してほしい」
      サーバの利利⽤用状況=メトリクス情報
      アクセス数、ロードアベレージ、CPU  Usage、
    IO、etc、etc
      AWS上でオートスケールするようなシステム
    なんですけど。。
    11
    PHPカンファレンス福岡2016  

    View full-size slide

  12. システム構成
    12
    PHPカンファレンス福岡2016  

    View full-size slide

  13. メトリクス情報をグラフで
      Fluentdで全メトリクス情報をS3に保存
      情報を収集する基盤は構築していたが、出⼒力力の
    基盤がない。。
      かつてはEMR+Excel+PowerPointを駆使して
    提出していた
      ログがMySQLにあれば。。。
      ツラみがある。。。
    13
    PHPカンファレンス福岡2016  

    View full-size slide

  14. 14
    PHPカンファレンス福岡2016  

    View full-size slide

  15. Embulk
      バルクデータローダ(Java製)
      http://www.embulk.org/
      設定を書くだけで⼤大量量のデータを転送できる
      システム構築当時はなかった⼀一筋の光
      Fluentdで保存したログとの親和性が⾼高い
      S3のログをMySQLに展開できれば!戦え
    る!!
    15
    PHPカンファレンス福岡2016  

    View full-size slide

  16. システム構成
    16
    PHPカンファレンス福岡2016  

    View full-size slide

  17. そして、紙
    17
    PHPカンファレンス福岡2016  

    View full-size slide

  18. PHP
    18
    PHPカンファレンス福岡2016  

    View full-size slide

  19. 19
    古き良良きインラインPHP
    PHPカンファレンス福岡2016  

    View full-size slide

  20. PHP,  HTML,  CSS,  JavaScript
      いつものようにPHPでMySQLに接続
      HTMLとCSSで体裁をととのえる
      HTMLとCSSは印刷に対して優秀だった!!
      page-‐‑‒break-‐‑‒*とか
      グラフはD3.jsで
      ビルドインサーバで  $  php  -‐‑‒S  localhost:8000
      ブラウザで表⽰示したページを印刷
      1ファイルで気軽にWebページが作れるPHPの
    強み
    20
    PHPカンファレンス福岡2016  

    View full-size slide

  21. システム構成
    21
    PHPカンファレンス福岡2016  

    View full-size slide

  22. 22
    PHPカンファレンス福岡2016  

    View full-size slide

  23. 印刷出来ました
    23
    PHPカンファレンス福岡2016  

    View full-size slide

  24. 例例2:  サーバのインベントリ情報
    のレポート
    24
    PHPカンファレンス福岡2016  

    View full-size slide

  25. インベントリ情報
      「サーバにイントールされているパッケージの
    バージョン⼀一覧を提出して欲しい」
      現在稼働しているインスタンス数⼗十台
      まったく別の時期にまったく別のサービスを
    構築している
      全部SSHでログインして確認。。。??そして
    その後まとめるの。。。?
      ツラみがある。。。
    25
    PHPカンファレンス福岡2016  

    View full-size slide

  26. 26
    koma
    PHPカンファレンス福岡2016  

    View full-size slide

  27. koma
      エージェントレスでリモートホストのインベン
    トリ情報を収集するツール(Ruby製)
      https://github.com/k1LoW/koma
      類似ツール:  ohai  /  facter
      SSH接続できるならsshをkoma  sshに変えるだ
    けで、リモートホストのインベントリ情報を
    JSONで取得できる
      $  koma  ssh  example.com
    27
    PHPカンファレンス福岡2016  

    View full-size slide

  28. そして、紙
    28
    PHPカンファレンス福岡2016  

    View full-size slide

  29. 取得したJSONを表にして印刷
    29
    PHPカンファレンス福岡2016  

    View full-size slide

  30. よろしいならばExcelだ
    30
    PHPカンファレンス福岡2016  

    View full-size slide

  31. PHP
    31
    PHPカンファレンス福岡2016  

    View full-size slide

  32. k1low/xlsx
      PHPExcelのラッパーライブラリ
      https://github.com/k1LoW/xlsx
      テンプレート.xlsxに値を差し込むシンプルスタ
    イル  
    32
    PHPカンファレンス福岡2016  

    View full-size slide

  33. 33
    値を差し込むだけ
    PHPカンファレンス福岡2016  

    View full-size slide

  34. 印刷出来ました
    34
    PHPカンファレンス福岡2016  

    View full-size slide

  35. 例例3:  概算スケジュール
    35
    PHPカンファレンス福岡2016  

    View full-size slide

  36. 概算スケジュール
      ガントチャート。。。
      ⽅方眼紙Excel。。。
      祝⽇日。。。
      スケジュールは頭の中にあるんだよ!?
      あとは体裁だけ。。。
      ツラみがある。。。
    36
    PHPカンファレンス福岡2016  

    View full-size slide

  37. そう、紙
    37
    PHPカンファレンス福岡2016  

    View full-size slide

  38. Webサービス化してます
    38
    PHPカンファレンス福岡2016  

    View full-size slide

  39. ti.mefra.me
    39
    PHPカンファレンス福岡2016  

    View full-size slide

  40. ti.mefra.me
      http://ti.mefra.me
      CSVからExcel⽅方眼紙スケジュールに⼀一発変換
      ⽇日本の祝⽇日対応  /  cURLで⽣生成もできる
    40
    PHPカンファレンス福岡2016  

    View full-size slide

  41. 印刷出来ました
    41
    PHPカンファレンス福岡2016  

    View full-size slide

  42. まとめ
    42
    PHPカンファレンス福岡2016  

    View full-size slide

  43. ドキュメントを⽀支える技術
    1. HTMLとPHP良良い
    2. PHP良良い
    3. PHPで作ったWebサービス良良い
    43
    PHPカンファレンス福岡2016  

    View full-size slide

  44. ドキュメントを⽀支える技術
      紙はなくならなかった。。。
      なくならないなら⾃自分たちの⼟土俵に持ち込むし
    かない
      PHPにこだわらず、使えるものは使って効率率率化
    をしていく
      ただ、最後の紙へのアプローチはPHPが1番楽
      やはりPHPerだった
      まだまだ多くのドキュメントを⽀支える技術があ
    りますが。。。時間がないっっ!
    44
    PHPカンファレンス福岡2016  

    View full-size slide

  45. Thank  you!
     Fusicはテクノロジーが
     好きなエンジニアを募集しています
     https://fusic.github.io 45

    View full-size slide

  46. 46
    PHPカンファレンス福岡2016  

    View full-size slide