Slide 1

Slide 1 text

Webマニュアル30分クッキング MarkdownにJAMstackを添えて 株式会社ヒューマンサイエンス ドキュメントソリューション部コンサルティンググループ 米倉 裕基

Slide 2

Slide 2 text

アジェンダ 自己紹介 Webマニュアル制作の状況 技術選定において大事なこと LAMPstack vs JAMstack レシピ紹介 30分クッキング 本日の振り返り

Slide 3

Slide 3 text

米倉 裕基 システムエンジニア テクニカルコンサルタント テクニカルライター 主なタスク ドキュメントシステム提案/プロビジョニング 軽量マークアップ言語とエコシステムの普及

Slide 4

Slide 4 text

株式会社ヒューマンサイエンス マニュアル制作 ローカライズ 機械翻訳 ドキュメント制作標準化コンサルティング eラーニングコンテンツ制作 moodle運用サポート

Slide 5

Slide 5 text

Webマニュアル制作の状況

Slide 6

Slide 6 text

従来の開発手法 WordPress/MovableType等のCMSを利用 Wordで編集しRoboHelpで変換 DITA等でワンソースからのHTML変換 導入・運用に相応のコスト、リードタイムが必要。 パッと入れて、パッと使うという用途には向かない。

Slide 7

Slide 7 text

他の手法はないの?

Slide 8

Slide 8 text

他の手法はないの? たくさんあります

Slide 9

Slide 9 text

Web開発技術の変遷 https://github.com/kamranahmedse/developer‑roadmap

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

いや、ありすぎでしょ? 逆に多すぎて適切な技術を選べない...

Slide 12

Slide 12 text

技術選定において大事なこと

Slide 13

Slide 13 text

目的を明確にする Webマニュアル制作の目的を明確にする。

Slide 14

Slide 14 text

Webマニュアル制作に置ける目的とは 例えば... 高機能で見た目の良いリッチなWebマニュアル 安く運用できるWebマニュアル コンテンツの更新が簡単にできるWebマニュアル

Slide 15

Slide 15 text

本発表で制作するWebマニュアル目的を設定 「早く」 「安く」 「簡単に」 30分でサイト構築から公開まで行う必要がある。

Slide 16

Slide 16 text

「早く、安く、簡単に」を目的として技術選定 ロゴ マイクロサービス名 用途 Markdown 軽量マークアップ言語 VuePress MarkdownからHTMLを生成 Firebase 生成されたWebサイトのホスティング Git/GitHub データのバージョン管理 Visual Studio Code Markdownの編集エディタ CircleCI 自動ビルド・デプロイ 技術選定の根拠は論文を参照してください。

Slide 17

Slide 17 text

JAMstackと呼ばれる概念 前ページの技術選定はおおよそJAMstackと呼ばれるシステム構成

Slide 18

Slide 18 text

LAMPstack と JAMstack

Slide 19

Slide 19 text

LAMPstack 従来型のWebサイト構築のための技術 Linux (OS) Apache (Webサーバー) MySQL (データベース) PHP (プログラム)

Slide 20

Slide 20 text

JAMstackとは Javascript APIs Markup 公式サイト https://jamstack.org/

Slide 21

Slide 21 text

JAMstackの提唱者 Matt Billmann (Netlify CEO)

Slide 22

Slide 22 text

JAMstack命名の由来 The JAMstack Origin Story They were highly dynamic web applications. They were single‑page apps or they were big, content‑driven sites that just used content APIs instead of a traditional monolithic dynamic CMS. それらは高度に動的なWebアプリであり、SPAであり、旧来のモノリシックな動 的CMSではなくコンテンツAPIを使った巨大なコンテンツドリブンなサイトだっ た。 "But that's really like a new stack, right? Before it was the LAMPstack. You should have like a name for that, like what about..." And he thought a bit, and then he said JAM. 「こういうサイトって新しいStackって言えない? LAMPstackというよりは...」 ちょっと考えた後、彼は「JAM」と言ったんだ。

Slide 23

Slide 23 text

JAMstackのエコシステム

Slide 24

Slide 24 text

LAMPstack と JAMstack の相違点 LAMPstackは モノリシック (一枚岩的)デザイン JAMstackは アトミック (原子的)デザイン

Slide 25

Slide 25 text

モノリシックデザイン 一枚岩的にサーバー内に全環境を構築する集中的なシステム構成

Slide 26

Slide 26 text

アトミックデザイン マイクロサービスをAPI経由で連携する 分散的なシステム構成

Slide 27

Slide 27 text

アトミックデザイン(JAMstack)にすることで どうして「早く、安く、簡単に」を実現できるのか?

Slide 28

Slide 28 text

マイクロサービスのイイトコ取り 作り手 読み手 早く 開発不要 高速なページ配信 安く OSSやSaaSの無料枠利用 ‑ 簡単に 簡易な記法でライティング ユーザビリティの高いサイト

Slide 29

Slide 29 text

レシピ紹介 Webマニュアル30分クッキングのレシピ

Slide 30

Slide 30 text

30分クッキング開始 1. VuePressプロジェクト作成 2. ローカルサーバー起動 3. 設定ファイルの作成 4. Markdownコンテンツ作成 5. GitHubでデータ管理 6. Firebaseへホスト 7. CircleCIを設定 8. デザイン/機能の拡張

Slide 31

Slide 31 text

本日の振り返り

Slide 32

Slide 32 text

30分でできた事 :「早く、安く、簡単に」Webマニュアルの構築が実現できた :30分でWebマニュアルの構築から配信まで実現できた :ハイパフォーマンスかつセキュアなページが作成できた :SSL設定でHTTPS公開できた :レスポンシブデザインを実現できた :コンテンツページだけでなくホーム画面を作成できた :自動ビルド/デプロイの仕組みの実装できた

Slide 33

Slide 33 text

30分でできなかった事 :全文検索の実装 ⇧ Algolia(全文検索機能を提供するSaaS)により実現可能 :デザインの拡張 ⇧ Tailwind等のCSSフレームワークを取り込む事で実現可能 :アクセス解析の実装 ⇧ 標準機能によりGoogle Analyticsの実装が可能 :PDF出力 ⇧ CSS組版により高品質なPDF出力が可能(なはず) :CMSによるデータ管理 ⇧ Headless CMSによる連携が可能(なはず)

Slide 34

Slide 34 text

ヒューマンサイエンスの所感 Webマニュアルのような静的コンテンツであれば、LAMPstackよ りもJAMstackで構成した方が、導入コスト/運用コスト両面でメリ ットが多い。 Markdown記法の学習コストは非常に低い。もしMarkdown記法に 抵抗がある場合は、WYSIWYGなどでMarkdownを編集することも できる。 いくら高機能でも巨額のコストがかかるモノリシックデザインのシ ステムは使っているうちに古くなるし、管理コストも増大する。 モダンで高機能なマイクロサービスが凄まじい速さで進化し続けて いるので、マイクロサービスの組み合わせで柔軟に構成可能なアト ミックデザインがこれからは望ましいのではないだろうか。