kentana20 技忘録

技術ネタを中心に、セミナー、勉強会、書籍、会社での出来事を綴っていきます。不定期更新。

NUCONに参加してきました

2/4(火) に浅草橋のヒューリックホールで開催された「NUCON」に参加してきました。
NUCONはBacklog、Cacooなどのサービスを提供されているヌーラボさんが主催するカンファレンスです。

イベントの詳細はこちら。

NUCON - つなぐ、つながる、ヌーラボのカンファレンス 2月4日東京にて開催!


ヒューリックホールには始めて行ったのですが、とってもキレイでホールも天井が高くて素敵な会場でした。

f:id:kentana20:20140208011209p:plain

タイムテーブルはこちら。

http://nucon.nulab.co.jp/timetable/

基調講演の後はTechnical Track、General Track、Git Trackの3会場に分かれてのセッションで、どれに参加するか迷ってしまうほど充実のプログラムで、コピーロボットを使って両方出たくなるような、気になるセッションの連続でした。迷った挙げ句、以下のセッションに参加しました。

  • 基調講演 by 橋本 正徳さん(CEO)
  • 開発者が語るヌーラボのコラボレーションサービス API最前線 by 染田 貴志さん、後藤 幸さん、中原 正二さん
  • Cacooを支える技術 〜世界の100万ユーザを支えるドローツールの今と未来〜 by 平山 真さん
  • 職人任せにしないインフラ構築/運用 ~ DevOps時代を生きぬくために ~ by 中村 知成さん
  • 毎日使いたくなるサービスをつくるためのヌーラボ流レシピ by 染田 貴志さん

基調講演

nulabは現在22名のメンバーで構成。拠点は日本だと福岡・京都・東京で、海外だとシンガポールインドネシア、台湾にある。プロダクトはプロジェクト管理ツールのBacklog、オンラインドローツールのCacoo、そしてカンファレンス中に正式リリースとなったチャットツールのtypetalkの3つ。基調講演の中でのトピックとして、以下の発表がありました。

  • Backlog公式アプリ(3月公開予定)
  • typetalkの正式リリース
  • 各サービスを1アカウントで利用可能なnulabアカウント(SSO機能)

typetalkはプロダクトオーナーの方(スミマセン、名前をメモし忘れました。。)が業務時間外にコツコツ作ったプロダクトだそうで、社内のLTをきっかけにし正式にプロダクトへ成長させたそうです。業務時間外で会社のプロダクトを作って、育てるというマインドが本当に素晴らしく、正式プロダクト化を承認した会社もスゴいと思いました。

また、nulabアカウントというnulabプロダクト用のSSO機能も良いですね〜。今まではサービス毎に別々にアカウントを作る必要があったところをサービス横断のアカウントを作成することでSSOを実現しています。少し試してみましたが、非常に便利だと思いました。nulabの中の方が「launch box」と呼んでいた各サービスのアイコン付近にある切り替えスイッチも良い機能ですね。

開発者が語るヌーラボのコラボレーションサービス API最前線

スライドはこちら

開発者がかたるヌーラボのコラボレーションサービス API 最前線 // Speaker Deck

Backlogについて by 染田貴史さん

Backlogはnulabの中で一番古いサービスで、APIについては課題管理部分のみ提供していて、APIを使ったイベントであるMA(Mashup Award)6からAPIを提供しているそうです。APIを使ったプロダクトの例として「Backlog Manager」(iOSアプリ)、「Jenkins Backlog Plugin」(Jenkinsプラグイン)などの紹介がありました。サポートライブラリもClojure, Scala, Java, Perl, PHP, Python, .NET, Node.jsがあり、Backlog APIを使う際の手助けになりそうです。(Rubyがないのは残念、、)

Backlog APIはこちら
API|開発者向け|Backlog [バックログ]

今後のロードマップとして、

  • サードパーティのライブラリ「backlog4j」(java向けライブラリ)をオフィシャルライブラリとして公開
  • APIとして提供できていない機能のAPI

などのお話がありました。

Cacooについて by 中原 正二さん

Cacoo APIでは図の取得ができ、画像として取得することも、図の内容を取得することもできるそうです。「図の内容を取得する」っていうのが少しピンと来なかったのですが、以下のような事ができるということです。

  1. CacooでAWSの構成図を作る
  2. Cacoo APIで構成図の内容を取得
  3. 取得した構成図の内容を元にAWSAPIを呼び出し
  4. 構成図通りにAWSインスタンスが起動

さらっとお話をされていましたが、自分にとっては結構な衝撃でした。図(人間向けのドキュメント)がコード(API向けのドキュメント)を兼ねているということですよね。すべてを網羅できるわけでは無いと思いますが、個人利用とかだったらこの構成図を設計書として利用できるんじゃないかと思いました。

また、Cacoo SDK Editionという、アプリケーションの中にCacooのドロー機能を組み込むパッケージも公開されており、自社サービスの中でCacooを動かすこともできるそうです(これは知らなかった)。

Cacoo APIとCacoo SDK Editionはこちら
https://cacoo.com/lang/ja/api
https://sdk.cacoo.com/lang/ja/

今後のロードマップとしては「CMSプラグインの拡充」「PDFエクスポートAPI」などのお話がありました。Cacooはそこまでヘビーに使っていないのですが、ドキュメント作成時に積極的に試していこうと思いました。

typetalkについて by 後藤 幸さん

一番新しいサービスで、full REST APIをOAtuth2を使って提供しているそうです。アプリケーションでも1画面で非同期通信をAPIを使ってガリガリ行う仕様になっているようで、AngularJSを採用したというお話がありました。社内でもこのAPIを使ってJenkinsのジョブ実行結果を投稿したり、ユーザ数を教えてくれたり、製品(機能)のリリース日を教えてくれたりと色々な面で活用しているそうです。

typetalk APIはこちら
http://developers.typetalk.in/api.html

最後に、nulabプロダクトのAPI系サポートページ「Nulab Developers(仮)」のお話がありました。API利用者同士のコミュニケーションだったり、ハッカソンイベントの開催だったり、色々考えられているそうです。APIページが一本化されるのは利用する側もAPIを開発する側もメリットがありそうですよね。

Cacooを支える技術 〜世界の100万ユーザを支えるドローツールの今と未来〜

スライドアップされたら更新予定。

オンラインドローツール、Cacooの裏側のお話でした。アーキテクチャは以下を採用しているそうです。

まず驚いたのはFlexベースであるということ。しかも、スキンを変えているだけでFlexコンポーネントをそのまま利用しているそうです。

振る舞いについてはデザインパターン(CommandパターンとかStateパターンとか)を多く採用しているようで、共同編集時の振る舞いなどについてお話をされていました。さらっとお話をされていましたが、実際に作り込むとなったら結構大変そうな仕様だな、と思いながら聞いていました。

また、「Flexじゃなかったら」という仮定で現在のトレンドであるHTML5/CSS3/Socket.ioで実装するとしたらという比較もあり、色々考えさせられる楽しいセッションでした。

職人任せにしないインフラ構築/運用 ~ DevOps時代を生きぬくために ~ by 中村 知成さん


職人任せにしないインフラ構築/運用 ~ DevOps時代を生きぬくために ~ // Speaker Deck

ものすごく個人的なお話ですが、以前に社内のプロジェクトで「Google DocsからBacklogへ課題追加する」という要求があり、「Backlog template issue gas」というGoogleAppsScriptを使っていたので、@ikikkoさんのことは以前から知っていて御礼が言いたかったのですが、機会を逸してしまい、結局言えませんでした。。

@ikikkoさんはJenkins界隈でも活発に活動をされており、よく勉強会などでお名前を見ることが多い方でもあります。そんな@ikikkoさんのWebエンジニアとしてのDevOps関連のお話でした。

初期のnulabはインフラメンバー(2名)がすべてのサービスをインフラ面で支えていて、自前のShell Scriptが色々あったり、構成管理もしていなかったりで開発サイドは手が出せる状態ではなかったそうです。そのため、機能リリース時などの定常運用時もかならずインフラメンバーが必要で、インフラメンバーの負荷が高くなっていた(DevOpsできてなかった)。通常運用時は開発サイドでインフラ作業を引き取って運用できるようにした、というお話。

ポイントとしては、

  • 開発サイドもインフラのことをよく知る努力をする(そうすれば、エンジニアとしての幅が広がる)
  • インフラ構築・運用は極力自動化(手作業をなるべく減らす)
  • 静的な仕様書ではなく、動く仕様書(コード)で管理する
  • いつでも作って壊せる、を繰り返せる状態を保つ

といったところでしょうか。DevOpsですね〜。一休でもここを目指していきたいです。テクニカルなお話として、nulabでは構成管理周りはPythonを多く利用しているそうで、構成管理はAnsible、デプロイはFabricなどを利用されているそうです。社内にはRubystよりPythonistaのほうが多くいるので、そうなったんだとか。Pythonほとんど触ったことないからわかりませんが、統計周りを中心に最近徐々に増えている印象がありますね。

チームをドラクエに例えているのが面白く、「インフラエンジニアは僧侶」がツボった素敵な発表でした。

毎日使いたくなるサービスをつくるためのヌーラボ流レシピ


毎日使いたくなるサービスをつくるためのヌーラボ流レシピ // Speaker Deck

関西DevLoveが出版された「開発者に伝えたい10のこと」という電子書籍で第6章を担当されている染田さんのセッションでした。

  • 開発者に伝えたい10のこと

http://tatsu-zine.com/books/genba10things

「毎日使いたくなる」を生み出すために

  • フィードバックループを回す
  • 「ユーザ」「自分たち」「トレンド」の視点から考える
  • ビジュアルから考える
  • とにかく、試して試して試しまくる

を行っている、というお話でした。個人的に刺さった話は「Everyone on Support」のお話ですね。プロダクトに関わる全員がお客様のサポートに関わる、という意味で37signalsで採用している考えだそうです(小さなチーム、大きな仕事 に書いてあったかな、わすれた。。)。本当に大事なことで、一休では顧客サポートのチーム内で完結してしまっている問い合わせが多く、Everyone on Supportができていないな、と反省させられました。「UIは全員の責任」という考えも一休にはあまりなく、メンバーによってはデザインはほとんどいれない状態でデザインチームに渡してしまったりしていることがあるので、nulabさんのエンジニアのように「結構デザイン頑張る開発チーム」にならなければいけないと思いました。まとめで話されていた「ツッコミビリティ」についても「人ではなく、コードにツッコむ」というスタイルでやっていきたいと感じました。

また、ここでも以前にご紹介した?クックパッドさんやはてなさんと同様に「本番DBを見て開発をする(プレリリースする?)」というお話があり、早く一休でもやらなければいけないと思いました。プレリリース環境に形を変えてもやりたいことはできるかな、と思っているので実現を重視してアプローチを変えて行きたいと思います。こちらについては実現できたらまたご報告します。

まとめ

nulabさんは社員数は少ないですが、本当にうまくプロダクトを育てていて、見習うところがたくさん見つかりました。nulab night(懇親会)でCEOの橋本さんとお話をすることができたのですが、「空気感が合う人」を採用しているとのことで、技術だけではなくて人物面(目指している方向)も非常に重要視されている印象を受けました。また、スタッフとして動かれていた社員の皆さんも本当に楽しそうで「良いチーム」なんだなと強く感じましたし、これからもこの素晴らしいプロダクトを「毎日使いたくなる」サービスとして育てていく、そんな印象を持ちました。

一休でもnulabさんに習って「Everyon on Support に基いてフィードバックループを素早く回すチーム」に一刻も早くするために、現在進めているプロジェクトを成功させると心に誓ったnuconでした。