Web System Architecture 研究会 (WSA研)

Web System Architecture 研究会 (WSA研)のブログです

第1回WSA研究会 開催概要

いわゆるWebでも、情報ネットワークでもなく、Webを中心とした様々な技術要素および要素のつながりを含む系全体のアーキテクチャを議論をします。

websystemarchitecture.hatenablog.jp

日時と場所

  • 日時: 2017年12月23日12:00~19:30
  • 場所: はてな京都オフィス8F

発表形式

  • 発表時間15分,質疑応答15分を予定しております.
  • 発表形式はスライド,もしくはホワイトボードを用意いたしますのでホワイトボードを利用した発表でもかまいません.
    • ブログをプロジェクターに移しつつ,ホワイトボードで適宜図を書きながら発表など.
  • 事前に予稿としてブログ記事の共有をお願いします。発表者は,2017年12月20日23:59(JST)までに個人ブログ,Gistなどに詳細を記載し共有をお願い致します. はてなブログの下書き共有や、GistおよびQiita、Google Docsのプライベート投稿URLで構いません。

タイムテーブル

time name title note
11:30 - 開場 masayoshi, y_uuki, tomomii
12:00 masayoshi 開催スピーチ, 会場説明, 今日のスケジュール -
12:15 masayoshi Webサービスにおけるインフラアーキテクチャの体系化とインフラアーキテクチャの選択自動化の研究課題についての考察 -
12:45 y_uuki TimeFuzeアーキテクチャ構想 - 処理とデータとタイマーを一体化した定期データパイプライン -
13:15 matsumotory 実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャ -
13:45 monochromegane 分散アプリケーションにおける複数端末利用を考慮したプライベートデータの管理 -
14:15 takumakume Linuxのトレースツールの体系化 -
14:45 Lyre_Reis 旅行者支援のためのユーザコンテクスト収集とレコメンドシステム -
15:15 休憩+バッファ - ドーナツかシュークリームたべたい
15:45 tomomii 道をつくる - 個と組織のあり方について「道」の概念を使って考える 縁側トーク
16:15 61503891 マイクロサービスアーキテクチャのための餅的実行基盤構想 -
16:45 suma90h Jubatusよもやま話〜OSSミドルウェア開発~ -
17:15 syu_cream 再利用性の高い Test Drive Intrastructure 実行環境に関する取り組み -
17:45 itkq サービスのパフォーマンス数値と依存関係を用いたサービス同士の協調スケール構想 -
18:15 hirolovesbeer 高速なログ検索エンジンHayabusaについて -
18:45 chikuwa_IT HTTPサーバとベアメタルハイパーバイザの協調による高速なレスポンス実現の構想 -
19:15 y_uuki or matsumotory - 閉会
19:20 all 片付け、撤収 -
19:30 懇親会 -

Web System Architecture研究会の発足と挨拶

id:masayoshiです. この度,Web System Architecture研究会(WSA研)を発足いたしました.

発足の経緯はid:matsumoto_rさんとid:y_uukiさんと「ペパボ・はてな技術大会〜インフラ技術基盤〜@福岡」という勉強会で会話した際に,私が「この分野で一つの研究分野,学問としてもっと盛り上がるといいのになぁ」という(ような)発言をしたのがきっかけだったと思います.
私自身はアウトプットも苦手でコミュニティ運営などしたこともないのですが,言い出しっぺの法則で研究会主査となりました.
とりあえず,今年中に第一回をやるかということになったので,とりあえず形式を決めgistで出してやり方を模索しながらやっていこうと思っていたら,さっくり10人以上集まってしまったのでびっくりしているところです.

第一回は発表者は5~6人程度を考えていたので,ひとまず今回の発表は現在のメンバーでfixしてしまおうかと思っていますが,twitterを見ている感じ,気にしている方もいらっしゃたので,研究会の目的と経緯を記載しておこうと思います.

WSA研究会の目的はWSA研究会の目的を参照してください.
発表形式及びその理由は発表形式と原稿形式を参照してください.

まだコンテンツが色々不足していますが,決定次第当ブログに反映していこうと思っています. 年2~3回程度で開催できるといいなと思っているので,気になっている方は当ブログとtwitter#wsa研 ハッシュタグをウォッチしていただければと思います.

以下は個人的な発足理由と思いです.

個人的な発足理由と思い

Webサービスを作る上でのアーキテクチャの設計,運用手法など,みんなで議論すれば科学となるのではないかという思ったので,皆さんの知見を元に色々議論したい. しかし,気軽な場所がなさそうなのでカジュアルに作ったのがWSA研である.

そもそも,私がこういった研究会を作りたいと思ったのは大学院生の頃である. まだ学部生だった頃,Webサービスを提供する際のWebサーバやDBサーバなどの構築,運用技術を勉強したいので体系的に学べるものがあるのか調べたことがある. ソフトウェア工学があるんだからWebサービスのインフラ分野?(未だに何ていうのか知らない)に関する学問か何かがあって体系化されているのだろうと思って調べたが,あまりしっくりするのがなかった.

先輩や知り合いに何か学ぶものがあるか?と聞くと大体悩んだあと「実際に触ったりするとか,知っている人に聞く」みたいな話が返ってくる.

その後は,オープンソースカンファレンス(OSC)で詳しい人の話聞いたり, OSCにいったらエンジニアアルバイトに誘われてサーバ監視のアルバイトを始めたり, サーバやスイッチを購入し自宅で触ったりで連鎖的に学べる環境が整っていった.

研究では主に電子情報通信学会,情報処理学会の学会に出したりすることが多かったわけですが,意外とアルバイトでやっていたWebサービスのインフラ技術に関する研究は多くはないなという印象だった. ないわけではないがメインの研究分野の一つであるという感じではなかった.(情報処理学会のIOT研究会などは比較的近そう) 国際会議などはあるんですが,(私が知っていた範囲では)日本で気軽に参加できそうなのはあんまりなさそうであった.

学生の頃,本はいくつか読んだがその中の一つにウェブオペレーション*1がある. ウェブオペレーションのまえがきに

ウェブオペレーションは技芸であり、科学ではない。正規の学校教育・資格・標準は(少なくとも今はまだ)ない。我々のやっていることは、学習にも習得にも時間がかかり、その後も自分自身のスタイルを模索しなければならない代物である。「正しい方法」はどこにも存在しない。そこにあるのは、(とりあえず今は)うまくいくという事実と、次はもっと良くするという覚悟だけだ。

とある. これを読み「やはり今はまだないのか...」と思ったのを覚えている.この本が出版されたのが2011年の頃で,私が読んだときは2014か2015年ぐらいだったと思う. ただ,これを読んだときに"技芸であり,科学ではない"というところは少し疑問に思っていて,いつか体系化され大学の講義や,学科ができていくのではないか,1つの研究分野として活発に議論されるようになるのではないかと感じていた.

その後,エンジニアとして働き始めたわけだが,あらたなサービスを設計するとき,オペレーションをするとき,障害対応をするとき,過去の社内の事例や,社外の事例を参考にして設計することも多く,同じ考え方,設計や過去の技術の再発明だったりするものも多くあるように感じた. また,社外のエンジニアと話すと,皆同じような問題を抱え,同じように過去の事例などを勉強会,ブログなどを検索し,同じ結論に行き着くみたいな話は多かった.

やはり,社内や各サービスの事例として終わらせるだけでなく,広く議論することで体系化し,科学とすることは可能ではないのかという思いはエンジニアとして働き始めてからより強くなった.

勉強会でid:matsumoto_rさんと話す機会があり,思いは同じで他にもそう感じているエンジニア,研究者は多いがあまり交流は持てていない気がする,ではもう研究会を作ってしまえばいいのではないかという話になった. いきなり学会として大きく動くのは難しくても,有志で集まって勉強会のように気軽に体系化する議論を始めてもいいのではないかということで,ひとまず軽く募集してみるということから始めることとなった.

勉強会では質疑応答の時間が少なくて,事例の発表をしただけで終わってしまうことが多く,よくある勉強会の形式で実行するとあまり議論が活発にならないのではないかと思ったので形式を少し変更することにした. 私が学生の頃,発表して一番持ち帰ることが多かった発表はとある研究会で発表したときで,そこの形式は20分発表20分質疑応答という形式であった.
その形式を参考に発表時間と質疑応答の時間を同じにする形式を採用し10~15分の発表と質疑応答とした. しかし,発表時間と質疑応答時間を同じにすると質問がそれほど活発に出ない(出しにくい)のではないかという気がした. 背景知識など十分であれば質疑応答も活発になるが,そもそもこの分野の背景知識とはなんぞや?みたいなところからして研究会で議論したいところでもある.
そこで,事前に発表内容を参加者に共有し,その上で発表時間に口頭で説明してもらう,その後に質疑応答をしてもらう形式にした. 提出してもらう形式はブログでも,予稿形式にしてもらっても構わないし,発表スタイルも特に問わない(スライドを利用する,ブログをみてもらいながら説明する,ホワイトボードで図を加筆しながら説明するなど).
これは,エンジニアならブログなどが慣れているだろうし,研究者は予稿のほうが慣れているかもしれない,議論を優先しているため議論がしやすい形ならどういった形式でも構わない.
つまり,研究室などで行われているゼミ形式が近いのではないかと個人的には思っているのだが(研究室によってゼミ式は異なるためイメージが一致しないかもしれない),名前としては研究会とした.
(現在Webエンジニアなどで広く行われている)勉強会とは形式が少し異なるし,まぁ少し研究っぽさを出しても良いかなと思ったというのもある. 位置づけとしては勉強会よりは研究に近いが,研究というよりはカジュアルだと考えていただければと思う. そのため,学会に出したいエンジニアや,学生の方はぜひ議論の場として活用し,自身の研究のストーリを整理したり,研究の足がかりとして本研究会を使ってさらなる研究成果を学会などに投稿してほしい. また,研究としなくても今後の自社サービスの糧としても利用などもできると考えているので,あまり堅苦しく考えすぎず気楽に参加してほしいという思いもある.

第一回は参加者全員発表としたのは,この形式がうまくいくかわからず,少人数で発表者間で調整しながらやりたかったからである. 私自身研究会(勉強会)を主催するのは初めてで形式も異なるため,色々試行錯誤になってしまうと思っている. そのため,次回からは発表形式は変更する可能性がある. 今後少し試したいと個人的に考えているものの一つが,発表前にブログなどを用意してもらったものを公開し,実際に参加できない方も含めて質問などを事前に集めておくという方式だ.
勉強会で紙やtwitterに質問を書いてもらったりすると意外と集まるという話を聞いて,たしかにtwitterとかでも記事の感想であれはどうやっているんだろうかという感想が書かれ,特に答えも得られなく流れている質問もよく見かける. 勉強会前にそういった質問を集められれば,より深い議論をできるのではないかと考えている.(まぁ座長がいい質問を考えておければ同じという話もある)
対象分野も決定して募集したいところだが,私自身どこまでが対象分野なのかわかっていない. 出していいのかわからないという方もいらっしゃると思うが,例えばネットワークも当然関係するところではあるだろうと思っているので,少しでも関係あるかなと思ったら今後参加を考えてみてほしい.
また,関係はしているかもしれないがメインではない分野の方の発表も,メインではないが1回に付き1-2発表程度取り入れたいと考えている. 他分野の話で違う視点方がいた方が,より有意義な議論ができると考えているからである. 例えば,第一回はHCI系の研究をされている方もお呼びして議論に参加していただきたいと思っている.(ここでいうHCIはhyper converged infrastructureのことではなくHuman-computer interactionの方である)

すでに第一回には学部生から企業のエンジニア,アカデミックの研究員,社会人ドクターなど10名以上の方から参加表明があった. 思った以上に人数が集まっているので驚いている.(勉強会は発表者を集めるのに苦労しているイメージがあったので)

目的などをブログでしっかりと表明する前に第一回の募集を閉じてしまうことは,私の準備不足で申し訳ないと思っている. 4-6ヶ月に一回定期的に開催したいと考えているので,今回少しでも気になった方は次回にぜひ参加を考えてほしい.

今後,この分野(がどういう名前なのか知らないけど)体系化され,当たり前のように大学の学科の一つとして情報系の一分野として確立している世界の実現にWSA研が少しでも貢献できたら良いな〜と思っている.

*1:John Allspaw,Jesse Robbins (2011)「ウェブオペレーション――サイト運用管理の実践テクニック」角 征典 訳,オライリージャパン