Furyu
[フリュー公式]

Tech Blog

フリュー株式会社の技術ブログです

2015年04月17日

sakata

Java Day Tokyo 2015に参加しました(話してきました)!

Hello World! コンテンツ・メディア第1事業部の、jyukutyoこと阪田です(部署名が変わりました)。

4/8に開催された、日本のJava関連では最大のイベントである、Java Day Tokyo 2015(JDT)に参加してきました。私はひょんなことから基調講演にてショートスピーカーをすることとなったのですが、ここではその体験とちょっと舞台裏をご紹介します。

Javaのハッピーバースデーを歌う

今年2015年はJava 20周年の記念すべき年です。JDTではサプライズでケーキが準備されました。そこで急遽私を含むショートスピーカーも、オラクル社の方々と一緒に壇上に出て、ハッピーバースデーを歌うことになりました。

Java 20周年のハッピーバースデーを、壇上で歌えるなんてこんな幸せなことはないですね!

大イベントの緊張感

大きなイベントということもあり、裏側はとても緊迫感がありました。多くの方が、さまざまなセッティングをされていました。また、セキュリティも厳しく、私の場合は自由に移動はできず、ほぼ控室で待機していました。

タイムスケジュールもしっかりしています。実は壇上からは、今表示しているスライドの内容と、自分の残り時間が見えるようになっています。時間がはっきりわかるからか、今回は押すどころか予定より早く進行していました。

自分の番

11110027_10206179247141072_2581887781486813560_n

すごく楽しかったです!千人規模になると、やっている間は楽しさしかないですね!やる前はかなり緊張し、心拍が上がっていましたけれど…

内容としては、Javaエンジニアの方へのメッセージとして「JUGへ参加しよう!近くにないならJUGを作ろうとブログやSNSで呼びかけてみよう!」ということを伝えました(JUGはJava User Groupのこと)。 日本全国さまざまなところにJUGができ、公認され、私が主催する関西Javaエンジニアの会と一緒にイベントができればいいなと考えています。

基調講演の詳細、録画の閲覧

基調講演の詳細については、日本オラクル社のJavaエヴァンジェリストである寺田さんがブログにまとめてくださっています。

Java Day Tokyo 2015 の御礼: http://yoshio3.com/2015/04/14/thankyou-java-day-tokyo-2015/

また、基調講演だけでなく、各セッションの資料およびいくつかのセッションは録画したものを閲覧できます!すばらしいですね!当日参加できかったJavaエンジニアの方はぜひここからJavaの最新動向を入手していただければと思います。私は個人的に「HotSpotコトハジメ」というセッションがとくに勉強になりました。すぐに活用できる内容で、スピーカーの方の造詣も深く、楽しかったです。

Java Day Tokyo 2015の資料および動画(オラクル社サイト): http://www.oracle.com/technetwork/jp/ondemand/online2015-javaday-2511676-ja.html


2013年11月21日

sakata

アジャイルラジオにゲスト出演しました

ソーシャルネットワーク事業部の阪田(@jyukutyo)です。
 
ポッドキャストのラジオ番組である「アジャイルラジオ」の11月19日公開分と11月5日公開分の2回分に、私@jyukutyoがゲスト出演しています!ぜひ聞いてみてください!
 
第52回「コミュニティが丸ごとやってきた!関西Javaエンジニアの会編」西 東: アジャイルラジオ

http://www.agileradio.info/article/379468532.html
 
第54回「コミュニティが丸ごとやってきた!関西Javaエンジニアの会編 Part.2」西 東: アジャイルラジオ

http://www.agileradio.info/article/380667096.html  

アジャイルラジオとは?

IT系エンジニア応援番組!とあり、内容はアジャイルだけにとどまりません。ITエンジニアみんなが楽しめるような話題ばかりです。現時点(2013年11月)ですでに1年以上続いており、熱狂的なファンが多数いらっしゃいます(車の中で聞く、会社の昼休みに流れるなど)。

ゲスト出演のきっかけ

Twitterで「アジャイルラジオに出たい」とつぶやいたところ、アジャイルラジオ公式アカウントがそれを拾ってくれました。正確には私個人でではなく、私が運営メンバーをやっている「関西Javaエンジニアの会(関ジャバ)」で出演したいというつぶやきでした。
 
実は、私はパーソナリティのお1人の方と以前一緒に仕事をさせてもらったことがあり、またADの方は関ジャバによく参加していただいています。そういうつながりもあり、出演できたようです。

収録の感想

ラジオの収録と聞くと、すごい機材の中で録音するようなイメージを持たれるかもしれません。ですが、意外にも収録場所はとある会社の会議室、録音機材はiPhone(!)です。
 
今の時代は、こんな簡単に録音できて、インターネットという公開場所がある。スゴイ時代ですね。アジャイルラジオに関しては、経験のあるADの方が編集してくれているのでよい仕上がりとなっています。
 
とくに緊張もなく、あっという間に終わった印象です。全然打ち合わせとかないんです!いきなり本番収録です!

実は

弊社のエンジニアでは、ソフトウェア開発部の粕谷さん(@daiksy)さんも、アジャイルラジオにゲスト出演されています。こちらも合わせてお聞きください!
 
第36回「ソーシャルゲームとアジャイルの関係1」土屋 山根 三浦 ゲスト:だいくしーさん : アジャイルラジオ

http://www.agileradio.info/article/369450981.html
 
第38回「ソーシャルゲームとアジャイルの関係2」土屋 山根 三浦 ゲスト:だいくしーさん : アジャイルラジオ

http://www.agileradio.info/article/370695210.html


2013年06月26日

kunihira

関JavaでJavaでなくChefの話をしてきました

皆さま約一ヶ月ぶりです。
国平です。

先日、関西Javaエンジニアの会でChefの話をしてきました。参加してくださった方々にちょっとでもChefに興味を持っていただけたら大成功なのですが、いかんせん限られた時間での発表なので具体的な使い方やサンプルまでは踏み込めませんでした。なので、その分をこのブログで補足したいと思います。

発表内容

私の関Javaでの発表資料はこれです。

Chefとかプロビジョニングまわり from Kiyotaka Kunihira

いろいろと書いていますが、要するに

  • プロビジョニングフレームワークの導入で色々はかどる
  • Chefは便利なツール
  • knife-soloでリモート操作が便利になる
  • Berkshelfでcookbookの依存関係も解決出来る

という内容です。

私の前回の記事のChef周りの内容に加えてknife-soloとBerkshelfの紹介を足しています。 今回の記事では特にknife-soloとBerkshelfの利用についてまとめます。

knife-solo

knife-soloはknifeのサブコマンド群です。
この、knife-soloはChef-Serverで行うようなリモートサーバに対するChefの実行をChef-soloで実現してくれるツールです。

前回のブログ記事で、Chefは各サーバに対しインストールが必要で面倒だと書きましたが、このknife-soloを利用することでChefのリモートインストールが可能になり、Chefの利用が一気にはかどります。

インストール

knife-soloはgemでも提供されており、普通にgem installもできるのですが、デフォルトのバージョンが0.2.0となっています。 https://rubygems.org/gems/knife-solo

しかし、バージョン0.3.0で追加されたオプションもあり、なるべく0.3.0の利用をお勧めします。特に、knife-soloは開発が活発なので、なるべくならgemでなくソースからのインストールをお勧めします。

gemでインストールする

gemからインストールする場合は、バージョン指定せずにインストールすると前述の通り0.2.0がインストールされます。 なるべく最新のバージョンをインストールするために、以下のようにバージョンを指定して取得するといいと思います。

最新バージョンについてはここで確認してください。

]# gem install -v 0.3.0.pre4

ソースからインストールする

knife-soloのソースはGitHubで公開されています。 https://github.com/matschaffer/knife-solo

ソースからのインストールには次の3つがインストールされている必要があります。

  • rake
  • bundler
  • git

インストールの実行手順を下記にまとめました。 注意して頂きたいのは、knife-soloのGitリポジトリはsubmoduleに別れているので、サブモジュールの更新を実行する必要がある点です。

上記手順で、knife-soloのインストールが完了します。

コマンド

knife-soloには以下の5つのコマンドがあります。

  • init
  • prepare
  • cook
  • bootstrap
  • clean

今回は、関Javaで紹介したcook、prepareに加えてinitについて紹介しますが、残りのコマンドについてもhelpで確認出来ます。

knife-solo自体のヘルプを確認したい場合はknife solo -hで、各コマンドについて確認したい場合は、knife solo -h {command}で確認出来ます。

init

initコマンドを使う事で、新しくknife-soloに最適化されたChefRepository(Kitchen)を作成する事が出来ます。

knife solo init {DIRECTORY}

prepare

prepareコマンドは、リモートマシンに対してChef-soloのインストールを行います。 また、同時に指定したリモートマシンに対してデフォルトで実行される設定を書き込むjsonファイルがnodesフォルダに作成されます。

knife solo prepare {user}@{host}

cook

cookコマンドは、リモートマシンに対してChef-soloの実行を行います。 prepareコマンドでjsonが作成されているハズですので、そのjsonのrun_listに書かれているcookbookが順に実行されます。

knife solo cook {user}@{host}

sample

knife-soloを利用するサンプルとして、gitをリモートサーバにソースからインストールしてみます。

今回は、opsocodeが公開しているcookbookをgitから取得して実行します。 なお、今回は既にローカルマシンにはgitがインストール済みの前提で進めます。 もし、まだローカルマシンにgitをインストールしていない場合は、gitをインストールする、もしくはgit cloneを行っている箇所を、zipのダウンロードに読み替えてください.

まずはリポジトリを作成しましょう。

リポジトリの作成が出来たら、リモートサーバにChefをインストールします。

次に必要なcookbooksをダウンロードします。

git cookbookが直接依存するcookbookはhttp://community.opscode.com/cookbooks/gitのCookbooksの項にまとまっていますが、最終的にgit cookbookは次の6つのcookbookに依存します。 これは、git cookbookが依存するcookbookが更に依存するcookbookを持つためです。

  • runit
  • build-essential
  • dmg
  • yum
  • chef_handler
  • windows

これらのcookbookもダウンロードします。

必要なcookbooksがそろったら、実行するrun_listを設定します。

このjsonの設定で、knife-soloを実行するとリモートサーバの/usr/local/gitにgitがソースからビルドされます。 実行するには、knife solo cookコマンドを実行します。

これで、gitのインストールが実行出来るはずです。

Berkself

先ほどのknife-soloのサンプルでは、cookbookの依存関係を手動で解決しました。 しかし、gitだけで6つものcookbookに依存しているのに、さらに他のcookbookを実行するとなると、依存関係の解決は気の遠くなる作業になります。 そんな、cookbookの依存関係を自動的に解決してくれるツールがBerkselfです。

本家サイトでは、Chefを活用するためのbundler的なツールだと説明されていますが、関Javaな人にはMavenをイメージしてもらうのがわかりやすいと思います。 前述のknife-soloを利用したサンプルとしてgitをリモートサーバにインストールしましたが、その際にgitのcookbook以外にもbuild-essentialなどのcookbookをgitから取得しました。 これは、gitのcookbookがそれらのcookbookに依存しているためです。 Chefではrecipe中にinclude_recipe "..."と記述する事で、Chefのpath中にあるcookbooksに依存した処理を記述する事が出来ます。 これにより、誰かが公開しているcookbooksを別のcookbooksから利用しやすくなっているのですが、同時に必要なcookbookの数が増えてしまい、人力での管理が難しくなってしまいます。 こういった問題については、rubyであればbundler、JavaならMaven、Scalaならsbtを利用している方々はよくわかるんじゃないかと思います。

インストール

インストールは簡単でgem経由でインストールするだけです。

]# gem install berkshelf

Berksfile

Berkshelfの設定については、基本的にはリポジトリ直下にあるBerksfileを編集します。 そんなに難しい英語を使っているわけでも無いので公式サイトを一読して頂ければだいたいどんな事が出来るのかわかると思います。

コマンド  

Berksfileの編集が完了していれば、berks installコマンドで依存関係を解決する事が出来ます。

]# berks install

ただし、これだけ実行するとberkshelfの初期設定に従って、~/.berkshelf以下に依存するcookbookがインストールされます。 シンプルにChef-soloを利用するだけであれば、ローカルマシンのChefのパスは通っているのでこれで問題ないのですが、Chef-soloを利用してリモートサーバに対してインストールを実行しようとするとこれでは問題があります。

基本的にChef-soloはリポジトリ内のファイルをrsyncでリモートサーバに対して同期するだけなので、基本的にリポジトリ外の依存ファイルを同期する事が出来ません。 そのため、リポジトリ内にcookbookをダウンロードしてくる必要があります。

指定したpathにcookbookをダウンロードするには–pathオプションを利用します。

サンプル

knife-soloのサンプルとしてgitのcookbookを利用したサンプルを挙げましたが、次は、同じgitをBerkshelfを利用して実行してみます。 knife-sloの時は依存関係のあるcookbookを自力で全て取得していましたが、今回はBerkshelfの力を存分に発揮してもらいます。

まずは、リポジトリを作成します。今回は、berkrepoというリポジトリを作成します。

リポジトリが出来たらBerksfileを編集します。knife-soloのinitコマンドを利用して、リポジトリを作成すればデフォルトでBerksfileは作成されるので、以下のように編集します。

Berksfile

nodes/{host}.json

まとめ

knife-soloとBerkshelfについて、関Javaでの発表を補足しつつ紹介してみました。 ほんとうに、この組み合わせは鼻血が出るほど素敵なので、ご興味のある方は是非お試しください。


2011年09月29日

関西Javaエンジニアの会 ’11 9月度 に参加してきました

モバイル事業部でエンジニアをしています、稲富です。

今回、2011/9/14に大阪で行われた関西Javaエンジニアの会(通称 関ジャバ)にスピーカーとして参加してきました。
その時の様子をお話したいと思います。

関ジャバとは

関ジャバとはJavaの話題を中心に毎月大阪で行われているJavaエンジニアのコミュニティです。

2ヶ月毎ぐらいに興味深いテーマについてアツ~いセッションが開催されています。
内容もWebフレームワーク、開発プロセスなど多岐に渡っています。

発表1: Redmineの実業務における活用事例紹介

発表者:中村 洋さん

RedmineとはRuby on Railsで作られたプロジェクト管理ツールで、バグ管理システム(BTS:Bug Tracking System)としても活用できるツールです。

実際にいくつものプロジェクトでRedmineを使ってこられた方の成果や課題を生々しい実体験を元にお話されていました。チーム毎の特徴にあわせた工夫が見所でした。

発表2: 勉強会にいこう。東京の。

発表者:野崎 啓史さん

夜行バス+ネットカフェで1週間滞在という常人ではとてもまねできない荒業が大変インパクトのある発表でした。
でも、工夫次第でこんなに安価で東京の往復・滞在ができるのだという人間の無限の可能性!?を感じました。

結論「行けば何とかなるよ!」とのこと。

発表3: ぺあぷろ!

発表者:稲富 研人/谷口 光

今回フリューからは私と同僚の谷口の2名がスピーカーとして発表しました。

前半はペアプログラミングについて導入から8年になる自社での導入の歴史と近況についてとその効果について私が話をさせていただきました。

後半はペアプログラミング導入政治編として政治的問題を交えながら同僚の谷口が話しました。

導入・政治編への質問が多く寄せられたのでペアプロ自体の効果などは情報で知っているが職場にどうやって導入するのか悩まれている方が多いのだと感じました。

発表4: Javaニュース(懇親会中)

発表者:谷本 心 さん

最近のJavaにまつわるニュースについてお話されていました。
ここまで今回の関ジャバは若干(かなり)Javaの成分は薄めでしたが、このセッションが過去参加した関ジャバの中でも1番じゃないかというぐらいに開発プロセスの話題を中心に盛り上がりました。

これだけ開発プロセスで盛り上がるというのは普段、「なぜこんなやり方なんだろうか」とか「もっとよりよく開発をしたい」という思いを強く感じているからでしょうね。

フリューの中でも開発プロセスについて今の状態がとてもベストとは思わないし、これからもより良く変えていく必要があります。

実はいつの間にか自分自身が老害になってしまうそんな恐怖心と戦っているのかもしれません。

社外のエンジニアと話すことで自社の様子が俯瞰して見えたり、自分自身を見つめ直したりといった刺激をもらえるのが社外勉強会の魅力でもあります。

さいごに

東京では毎週や毎日のように勉強会が開催されていますが、大阪でも毎週に近いくらいに盛んに開催されています。

みなさんもこういった刺激を受けることができる社外勉強会にぜひ参加してみませんか!

フリューモバイル事業部では毎週社内勉強会を開催しています。開催回数もなんと270回を超えています。機会があればぜひまたこの話についてもお話したいと思います。