YAPC::Asia 2014 スペシャルレポート

YAPC:: Asia 2014 1日目レポート[更新終了]

この記事を読むのに必要な時間:およそ 14 分

青猫さん「DeNAが歩んだデプロイ自動化への道」

最初は1コンポーネントから始まったMobageは発展に伴い,認証やSNSなど多くの機能を含み肥大化していってしまい,結果として変更を加えづらいシステムになってしまったそうです。この状況を解決するために,DeNAがどのようなシステムを目指し,対策を施してきたのか,そしてそれによってユーザに「安全」かつ「高速」にサービスを提供することを可能にしてきたかを@aonekoさんが発表しました。

「品質」「スピード」,「コスト」はトレードオフの関係にあります。しかし,これらのトレードオフを解決する方法の1つが自動化であると言及しました。また,「すべては出荷のプロセスに現れる」,つまり出荷(リリース)のプロセスに困難を感じるかどうかがシステムの安全性の指標となっており,リリース作業の自動化を考えることが,システムの自浄作用を促すことだと言います。

自動化する際に重要なことが「環境を問わないデプロイプロセス」にすることだそうです。開発環境・ステージング環境・本番環境のそれぞれに対して異なるプロセスで行ってしまうのであれば,そのプロセスはそれぞれ独立なものとなってしまい,実際の失敗の許されない,本番環境へのデプロイプロセスの信頼性を向上させるものではなくなってしまうからです。

環境を問わないプロセスを日々繰り返し,反復することで,デプロイプロセスの信頼性を高め,本番環境へのデプロイですら「信頼度の高いプロセスのうちの1回に過ぎない」と言えるところを目指すこと。それが最初の目的である「安全かつ高速にユーザにサービスを出荷する」ことを実現につながると述べていました。

課題はまだまだ残っているとはいうものの,DeNAがMobageとして多くのサービスを生み出している背景が垣間見られるセッションでした。

画像

画像

Hideaki Ohnoさん「自然言語処理を支える技術 ~要素技術とPerlの活用~」

Hideaki Ohnoさんは自然言語処理における要素技術と,そのPerlの活用について発表しました。このセッションは,Perl中級者以上で自然言語処理に興味があるが経験がない方を対象にしています。

はじめに,自然言語処理が自動要約などに使用されている等の事例を紹介しました。そして,自然言語処理は大きく分けて,人手でルールを定義して処理をするルールベースと機械学習によりルールを導き出して統計学モデルがあるとし,それぞれの長所と短所を述べました。

続いて,自然言語処理の要素技術として形態素解析とその仕組み,そしてそ処理を行う形態素解析器の実装であるMeCab, JUMAN, KyTea, KAKASIの特徴などを紹介しました。また,そこで使用されるデータ構造のTrieやLOUDSの特徴,係り受け解析器の仕組みであるshift-reduce,全域木,実装であるChaboChaなどを紹介しました。

最後,自然言語処理におけるPerlの良い点として,柔軟なテキスト処理やスクレイピングによるリソース確保がしやすいこと等を挙げていました。

画像

画像

Lyo Katoさん「O2O/IoT/Wearable時代におけるWeb以外のネットワーク技術入門」

Lyo Katoさんの発表では,Web以外のネットワーク技術について紹介しました。

まず,MQTTの紹介と関連技術との比較について話しました。MQTTは,PubSubプロトコルで,省エネ,QoSやWillなどのサポート,ワイルドカードを使ったSubscriptionが特徴だそうです。また,MQTT-SNについても取り上げていました。MQTTはなぜかHTTPと比較されることが多いのですが,それが混乱を招いていると指摘し,M2MをHTTPで実装しようとしていた時代から,MQTTが生まれるまでの歴史を説明しました。その中で,CoAP/CoRE,Bonjourについても触れていました。関連技術との比較では,CoAPとの比較,AMQP,XMPP,Redis/STOMPとの比較をしていました。比較のまとめとしては,プロトコルのできた理由を調べると良い,やりたいことに応じて選択するべきと述べていました。

次にPerlのイベントということで,PerlでMQTTを利用する例を示しました。AnyEvent::MQTTというクライアントライブラリと,SangoというMQTT as a Serviceを紹介していました。

その後,BlueTooth LEとiBeaconを取り上げました。LEはLow Energyの略で,Bluetooth 4.0から含まれてるそうです。Bluetoothのネットワークトポロジ,ネットワークへの参加の仕方,iOS,Androidの対応状況,iBeaconを使った事例,ウェアラブルデバイスとの連携事例を詳しく説明していました。

最後に,BTLEは応用の余地がまだたくさんあり,MQTTはメリット・デメリットをきちんと把握した上でなら使ってもいいかもしれないと述べていました。

画像

画像

Hideyo Imazuさん「TWiki - Perlで書かれたプログラマブルでglueでスケーラブルなCMS」

Hideyo Imazuさんは,モルガンスタンレーでのTwikiの使用例について発表しました。

Twikiは1998年生まれでPerlで記述されています。特徴としては1つのインストールで複数のWikiサイトが作成でき,強力なマクロを持ち,そしてUTF8使用する限りにおいて日本語は問題ないことだと言います。モルガンスタンレーでの使用の経緯としては,2004年にニューヨークのインフラエンジニアがインストールしたのが最初で,2014年現在は会社内部において,1万サイト総計100万ページがあり,4万5,000人が月に一度は閲覧し6,000人が月に一度は更新しているそうです。

主な用途はITシステムの運用マニュアルや利用マニュアルで,他にはチーム内の進捗報告などに使用しているとのこと。会社内での普及要因は,運用による可用性の高さをまず挙げ,同じ地域内にデーターセンターを2つ持ち,さらにデーターセンターが2つ失われてもデータが消失しないように地域間でもデータを保存していると説明しました。これにより,2012年10月のハリケーン・サンディの時にニューヨークのデータセンターが水没したそうですが,想定通りに動き続けたそうです。

Twikiのデータ等の扱いがDBを使わずに単純にしてあることも可用性を上げているそうです。そして,この可用性の高さ故に障害対応マニュアル等がTwikiの中に設置しているとのことです。マクロも強力でサイト内の表の合計値を取得したり,APIを叩いて表示,DBへクエリを投げて結果表示などができることも支持を得られる理由の一つと述べていました。

最後に,このようにマクロで色々できてたくさんのサイトを収容でき,落ちず長期運用されるコンテンツ管理システムがあると,仕事が幸せになるのではないかと述べ,セッションを締めていました。

画像

画像

cho45さん「ウェッブエンジニアのローレベルプログラミング」

「なんかドライバなかったから書いた」という言葉によって様々なレベルで解放されていく, @cho45さんによる電子工作の世界に飛び立つための誘いとなる発表でした。

「生まれた時からLLがあった」という@cho45さんが上の言葉を元にアセンブリを学び,作成するものに選んだのはWebエンジニアらしくブログシステムでした。環境変数の取得や,ファイルの走査などを実現するために普段使っているコマンド(getenv,ls)を,アセンブリで実行するためには様々な処理が必要であることを知り,その結果,高級言語の解放が実現できたことを説明しました。

その後,RasberryPiを購入し,GPIO(general purpose input / output)の端子をプログラムから操作することで,温度計や気圧計,ジャイロなどI2C(Inter Integrated Circuit)対応機器を操作する方法を学習しました。これにより,I/Oからの解放が実現できたと言います。

次の段階として,Rasberry Piの対抗として購入したArduinoを操作する上で,OSなしで直接CPUに命令セットを記述する「bare metal」と呼ばれる手法を獲得しました。いままでWebエンジニアとして「CPUを使い切るようなコードを書いていた」のが「いかにCPUを使わないように書くか」という新鮮さを味わっていると言います。また,USBデバイスなども操作できるようになり,「震えるマウスポインター」などを作成したことを紹介しました。周辺機器も自由に操作できるようになり,完全に解放できたと述べました。

しかし,まともな周辺機器を作るためには電子工学の知識が必要です。OSとか人の作ったルールが電子の動きを含めた物理世界のルールになっただけだと指摘し,完全解放への道はまだ遠いと,話を締めていました。

画像

画像

著者プロフィール

臼井洋文(うすいひろふみ)

京都府京都市出身のプログラマ。仕事ではPerlでサーバサイドを書きつつ,Objective-CでiOSアプリの開発をしている。週末はボルダリングに勤しむ日々。

Twitter:@usuihiro
Web:http://d.hatena.ne.jp/usuihiro1978/


日下部雄也(くさかべゆうや)

仕事はニフティクラウドのネットワーク関連の機能の企画・開発・運用で,運用自動化のためのプログラムを書いていることが多い。言語は,Perl,Python,Ruby,C,Goなど。最近,Vyatta CoreからフォークされたVyOSという仮想ルーターのユーザー会を設立し,第1回目のミーティングを主催した。

Twitter:@higebu
Web:http://www.higebu.com


滝沢玲美(たきざわれみ)

千葉県在住。仕事はITとは全く無縁な事務職だが,プログラミングに以前から興味があり。今回,Perl入学式にてプログラミングを初めて学ぶ。

藤沢理聡(ふじさわまさあき)

神奈川県在住。仕事でソフトウェア開発をしつつ,余暇にも友人たちとソフトウェア開発をする日々。長くPerlを愛用している他,ここ数年はPerl 6にも挑戦している。

Twitter:@risou
Web:http://www.risouf.net/


本間雅洋(ほんままさひろ)

北海道苫小牧市出身のプログラマー。好みの言語はPerlやPython, Haskell, Scala, OCamlなど。在学中は数学を専攻しており,今でも余暇を利用して数学を嗜む。現在はFreakOutに在籍し,自社システムの開発に力を入れている。 共訳書に「実用Git」(オライリー・ジャパン),共著書に「FFmpegで作る動画共有サイト」(毎日コミュニケーションズ)がある。

Twitter:@hiratara
Web:http://hiratara.github.io/


森藤大地(もりふじだいち)

ISP勤務。卒研でPerlのプログラムを組んで以来, Perlを利用している。 CROSSというエンジニアイベントを主催していたりする。 d3の翻訳やひとりアドカレなど,解析・可視化業務を行っている。

Twitter:@muddydixon
Web:http://muddydixon.hatenablog.com


山中裕之(やまなかひろゆき)

ドラゴンズファン。某会社のプログラマとして活動中。好きな言語はPerl, Ruby, C, C++, Haskelなど。武術が好きで休日はいそしんでいる。

Twitter:@hiroyukim
Web: http://hiroyukim.hatenablog.com

コメント

コメントの記入