Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ドキュメントを支える技術 / PHP Conference Fukuoka 2016
Ken’ichiro Oyama
May 21, 2016
Technology
3
4.3k
ドキュメントを支える技術 / PHP Conference Fukuoka 2016
ドキュメントを支える技術 PHPカンファレンス福岡2016
Ken’ichiro Oyama
May 21, 2016
Tweet
Share
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
runn is a package/tool for running operations following a scenario. / golang.tokyo #32
k1low
1
290
GitHub Actions Deep Dive using PHP / PHPerKaigi 2022
k1low
0
920
io/fs.FS for testability. io/fs.FS for abstraction. / Go Conference 2021 Autumn (Online)
k1low
0
300
Continuous Documentation - CI/CDパイプラインを活用した文書化技術 - / Pepabo Tech Conference #16
k1low
1
160
システムの変化に追従可能でかつ理解し易いドキュメントシステムのモデル化 / Web System Architecture #8
k1low
9
3k
目的に沿ったDocumentation as Codeをいかにして実現していくか / PHPerKaigi 2021
k1low
15
4.3k
Documentation as Codeで継続的なドキュメント運用を実現する / July Tech Festa 2021 winter
k1low
6
5k
tblsで実現したいシステムとGoによるその実装 / Fukuoka.go#16
k1low
1
350
データ基盤のメタデータを継続的に管理できる仕組みを作る(ペパボ編) / pepabohatena
k1low
5
1.6k
Other Decks in Technology
See All in Technology
Implementing Kubernetes operators in Java with Micronaut - TechWeek Java Summit 2022
alvarosanchez
0
120
DOM Invader - prototype pollution対応の衝撃 - / DOM Invader - prototype pollution
okuken
0
150
約6年間運用したシステムをKubernetesに完全移行するまで/Kubernetes Novice Tokyo
isaoshimizu
5
870
紙にまつわる苦しみを機能化してきた カミナシの歴史
kaminashi
0
1.2k
Accelerated Computing for NLP on AWS
shokout
1
200
Building smarter apps with machine learning, from magic to reality
picardparis
4
3.2k
【toranoana.deno#7】Denoからwasmを呼び出す基礎
toranoana
0
130
インフラのCI/CDはGitHub Actionsに任せた
mihyon
0
110
【SAP知らない人向け】SAP on AWS 個人学習メモ/sap-on-aws-study
emiki
3
1.2k
ROS再入門-はじめてのSLAM-
miura55
0
410
リファインメントは楽しいかね?
kitamu_mu
1
430
データエンジニアと作るデータ文化
yuki_saito
4
1.6k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
We Have a Design System, Now What?
morganepeng
35
3k
A Modern Web Designer's Workflow
chriscoyier
689
180k
What's in a price? How to price your products and services
michaelherold
229
9.4k
Making the Leap to Tech Lead
cromwellryan
113
7.4k
Web Components: a chance to create the future
zenorocha
303
40k
The Mythical Team-Month
searls
209
39k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
920
Designing for humans not robots
tammielis
241
23k
The Invisible Side of Design
smashingmag
290
48k
The Invisible Customer
myddelton
110
11k
Embracing the Ebb and Flow
colly
73
3.4k
Transcript
ドキュメントを⽀支える技術 Kenʼ’ichiro Oyama Fusic Co.,Ltd. 2016.5.21 1 PHPカンファレンス福岡2016
Who 2 PHPカンファレンス福岡2016
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
ドキュメント? PHP Manual README PHPDoc 今回はそういう技術ドキュメントの話しではあ
りません 4 PHPカンファレンス福岡2016
ドキュメントを⽀支える技術 概算⾒見見積とか 概算スケジュールとか 定例例報告書とか クライアントと共有するためのドキュメントの 話しをします
5 PHPカンファレンス福岡2016
ドキュメントを⽀支える技術 情報を取得して(INPUT) まとめて(COLLECT) 表⽰示(OUTPUT) 紙(PRINT) 6
PHPカンファレンス福岡2016
紙(PRINT) 紙が⼤大切切(印刷できないとクライアントとのミ ーティングで使えない。提出できない) 可視化だけじゃ⾜足りない 最低限体裁を整える必要がある 紙は、、、死なないっっ!
7 PHPカンファレンス福岡2016
体裁を整えるドキュメントの代表 Word PowerPoint Excel Officeちょっと苦⼿手。。。
なんとかしたい ドキュメントを書きたくない ドキュメントをより効率率率よく作成したい あわよくば⾃自動化したい 8 PHPカンファレンス福岡2016
今回はその試⾏行行錯誤を いくつか紹介します 9 PHPカンファレンス福岡2016
例例1: サーバの利利⽤用状況レポート 10 PHPカンファレンス福岡2016
サーバの利利⽤用状況レポート? 「⽉月次でサーバの利利⽤用状況をレポートとして提 出してほしい」 サーバの利利⽤用状況=メトリクス情報 アクセス数、ロードアベレージ、CPU Usage、 IO、etc、etc
AWS上でオートスケールするようなシステム なんですけど。。 11 PHPカンファレンス福岡2016
システム構成 12 PHPカンファレンス福岡2016
メトリクス情報をグラフで Fluentdで全メトリクス情報をS3に保存 情報を収集する基盤は構築していたが、出⼒力力の 基盤がない。。 かつてはEMR+Excel+PowerPointを駆使して 提出していた
ログがMySQLにあれば。。。 ツラみがある。。。 13 PHPカンファレンス福岡2016
14 PHPカンファレンス福岡2016
Embulk バルクデータローダ(Java製) http://www.embulk.org/ 設定を書くだけで⼤大量量のデータを転送できる システム構築当時はなかった⼀一筋の光
Fluentdで保存したログとの親和性が⾼高い S3のログをMySQLに展開できれば!戦え る!! 15 PHPカンファレンス福岡2016
システム構成 16 PHPカンファレンス福岡2016
そして、紙 17 PHPカンファレンス福岡2016
PHP 18 PHPカンファレンス福岡2016
19 古き良良きインラインPHP PHPカンファレンス福岡2016
PHP, HTML, CSS, JavaScript いつものようにPHPでMySQLに接続 HTMLとCSSで体裁をととのえる HTMLとCSSは印刷に対して優秀だった!!
page-‐‑‒break-‐‑‒*とか グラフはD3.jsで ビルドインサーバで $ php -‐‑‒S localhost:8000 ブラウザで表⽰示したページを印刷 1ファイルで気軽にWebページが作れるPHPの 強み 20 PHPカンファレンス福岡2016
システム構成 21 PHPカンファレンス福岡2016
22 PHPカンファレンス福岡2016
印刷出来ました 23 PHPカンファレンス福岡2016
例例2: サーバのインベントリ情報 のレポート 24 PHPカンファレンス福岡2016
インベントリ情報 「サーバにイントールされているパッケージの バージョン⼀一覧を提出して欲しい」 現在稼働しているインスタンス数⼗十台 まったく別の時期にまったく別のサービスを 構築している
全部SSHでログインして確認。。。??そして その後まとめるの。。。? ツラみがある。。。 25 PHPカンファレンス福岡2016
26 koma PHPカンファレンス福岡2016
koma エージェントレスでリモートホストのインベン トリ情報を収集するツール(Ruby製) https://github.com/k1LoW/koma 類似ツール: ohai /
facter SSH接続できるならsshをkoma sshに変えるだ けで、リモートホストのインベントリ情報を JSONで取得できる $ koma ssh example.com 27 PHPカンファレンス福岡2016
そして、紙 28 PHPカンファレンス福岡2016
取得したJSONを表にして印刷 29 PHPカンファレンス福岡2016
よろしいならばExcelだ 30 PHPカンファレンス福岡2016
PHP 31 PHPカンファレンス福岡2016
k1low/xlsx PHPExcelのラッパーライブラリ https://github.com/k1LoW/xlsx テンプレート.xlsxに値を差し込むシンプルスタ イル 32
PHPカンファレンス福岡2016
33 値を差し込むだけ PHPカンファレンス福岡2016
印刷出来ました 34 PHPカンファレンス福岡2016
例例3: 概算スケジュール 35 PHPカンファレンス福岡2016
概算スケジュール ガントチャート。。。 ⽅方眼紙Excel。。。 祝⽇日。。。 スケジュールは頭の中にあるんだよ!?
あとは体裁だけ。。。 ツラみがある。。。 36 PHPカンファレンス福岡2016
そう、紙 37 PHPカンファレンス福岡2016
Webサービス化してます 38 PHPカンファレンス福岡2016
ti.mefra.me 39 PHPカンファレンス福岡2016
ti.mefra.me http://ti.mefra.me CSVからExcel⽅方眼紙スケジュールに⼀一発変換 ⽇日本の祝⽇日対応 / cURLで⽣生成もできる 40
PHPカンファレンス福岡2016
印刷出来ました 41 PHPカンファレンス福岡2016
まとめ 42 PHPカンファレンス福岡2016
ドキュメントを⽀支える技術 1. HTMLとPHP良良い 2. PHP良良い 3. PHPで作ったWebサービス良良い 43 PHPカンファレンス福岡2016
ドキュメントを⽀支える技術 紙はなくならなかった。。。 なくならないなら⾃自分たちの⼟土俵に持ち込むし かない PHPにこだわらず、使えるものは使って効率率率化 をしていく
ただ、最後の紙へのアプローチはPHPが1番楽 やはりPHPerだった まだまだ多くのドキュメントを⽀支える技術があ りますが。。。時間がないっっ! 44 PHPカンファレンス福岡2016
Thank you! Fusicはテクノロジーが 好きなエンジニアを募集しています https://fusic.github.io 45
46 PHPカンファレンス福岡2016