SlideShare a Scribd company logo
Scala開発チームの
挑戦
-技術編-
DevLove甲子園2014 関西大会 2014/08/23
国平清貴(Kuchitama)
#devkan技
#devkan技
•タイトルは釣りです
•あんまりScalaの話は出てきません
•Scalaをいきなりプロダクトに導入し
ちゃった会社だけど他の技術導入はど
んな感じなんっていうのを話します
•成功談・失敗談あるのでなんかの参考
になればこれ幸い
#devkan技
自己紹介
• Kuchitama(国平清貴)
• FuRyu株式会社(新卒入
社4年目)
• SIerとか知らない27歳
• 技術ブログ編集長(自
称)
• 携帯乙女ゲーム開発
• Scala、Ruby、Clojure
• Javaはもう忘れた
#devkan技
フリュー
• 総合エンタメ企業
• ソーシャルゲーム
• 社員旅行が新聞沙汰に
なる会社
北海道新聞 2013/07/06
#devkan技
乙女ゲーム
and more …
#devkan技
Scala
• Scala
• Play2.0
• nginx
• AWS
• GitHub
#devkan技
今日の話
•失敗事例
•成功事例
•まとめ
#devkan技
Case.1
Chef
#devkan技
ある日の出来事
#devkan技
EC2スケールアウト
スケールアウト
#devkan技
EC2スケールアウト
スケールアウト
#devkan技
EC2スケールアウト
スケールアウト
AMI作って
#devkan技
EC2スケールアウト
スケールアウト
AMI作って
作成
#devkan技
EC2スケールアウト
スケールアウト
AMI作って
作成 手動で
#devkan技
手順1
元になるAMIを選択
#devkan技
手順1
元になるAMIを選択
多いわ!
#devkan技
手順2
作成したEC2インスタンスに接続
#devkan技
手順2
作成したEC2インスタンスに接続
どれやねん!
#devkan技
]# ntpd stop
]# hostname hoge
]# vi /etc/hosts
]# network restart
]# ...
]# ...
]# ...
手順3から
#devkan技
]# ntpd stop
]# hostname hoge
]# vi /etc/hosts
]# network restart
]# ...
]# ...
]# ...
手順3から
・・・
#devkan技
]# ntpd stop
]# hostname hoge
]# vi /etc/hosts
]# network restart
]# ...
]# ...
]# ...
手順1∼3
#devkan技
]# ntpd stop
]# hostname hoge
]# vi /etc/hosts
]# network restart
]# ...
]# ...
]# ...
手順1∼3
これをx10
#devkan技
結果
#devkan技
そこで
Chef
#devkan技
#devkan技
やりたいこと
•AMIからEC2を起動
•EC2でChefレシピを実行
•EC2をAMIとして保存
•実行も自動化したい
•タイミングはrecipeとかを更新したと
きがいい
→ Git push時
#devkan技
作った
Push
POST
#devkan技
実際のチームの現状
#devkan技
実際のチームの現状
Chef未導入
#devkan技
チームの現状
•手順書化
•初期のサーバ構築自体は機会が少ない
•ルーチンはスクリプトで
•毎日本番環境をAMI化
•サーバ増設時はAMIからインスタンス起動
•コマンド一つで任意台数作成可能
•別のチームはAnsible
#devkan技
チームの現状
•手順書化
•初期のサーバ構築自体は機会が少ない
•ルーチンはスクリプトで
•毎日本番環境をAMI化
•サーバ増設時はAMIからインスタンス起動
•コマンド一つで任意台数作成可能
•別のチームはAnsible
Ansible
#devkan技
Chef導入失敗
•導入コスト
•チームとして取り組まなかった
•個人でノウハウ溜めてから導入しよう
とした
#devkan技
Case.2
Play2.0 + Java
#devkan技
Play2+Java
•乙女ゲーム運用ツール
•サービスはPlay1系
•サービスインまでに必要
#devkan技
Play2+Java
• マスタデータの登録
• テスト系RDBから本番系RDBへのレコードのコピー
• Play1系では複数DBの操作に非対応だった
テストDB 本番DB
運用ツール
#devkan技
進捗
•Play1系とPlay2系の違いに苦戦
•フレームワークに対する知識不足
•ドキュメント不足
#devkan技
進捗
•Play1系とPlay2系の違いに苦戦
•フレームワークに対する知識不足
•ドキュメント不足
あきらめた
S2Strats + S2Dao (古い構成)に変更(́Д`)
#devkan技
Play2導入失敗
•納期最優先
•学習コスト
•メンバーのノウハウ不足
•特にJDBC周り
•ドキュメント不足
•コードリーディング力不足
#devkan技
Play2導入失敗
•納期最優先
•学習コスト
•メンバーのノウハウ不足
•特にJDBC周り
•ドキュメント不足
•コードリーディング力不足
#devkan技
Play2導入失敗
•納期最優先
•学習コスト
•メンバーのノウハウ不足
•特にJDBC周り
•ドキュメント不足
•コードリーディング力不足
基礎力大事
#devkan技
失敗に学ぶ
#devkan技
•Chef導入
•チームで取り組む
•Play2 + Java
•基礎力大事
•諦めたらそこで(ry
#devkan技
Case.3
EMLauncher導入
#devkan技
テストアプリの
インストールに
課題
#devkan技
インストール手順
iOS
1.ファイルサーバから任
意環境のipaの最新バー
ジョンを取得
2.iTunesに追加
3.ローカルPCへiOS端末
を接続
4.iTunesからアプリをイ
ンストール
Android
1.apkのDLページにアク
セス
2.任意環境のapkの最新バー
ジョンをDL
3.DLしたapkを実行
4.パッケージインストー
ラでインストール
#devkan技
インストール手順
Android
1.apkのDLページにアク
セス
2.任意環境のapkの最新
バージョンをDL
3.DLしたapkを実行
4.パッケージインストー
ラでインストール
iOS
1.ファイルサーバから任
意環境のipaの最新バー
ジョンを取得
2.iTunesに追加
3.ローカルPCへiOS端末
を接続
4.iTunesからアプリをイ
ンストール
#devkan技
インストール手順
Android
1.apkのDLページにアク
セス
2.任意環境のapkの最新
バージョンをDL
3.DLしたapkを実行
4.パッケージインストー
ラでインストール
iOS
1.ファイルサーバから任
意環境のipaの最新バー
ジョンを取得
2.iTunesに追加
3.ローカルPCへiOS端末
を接続
4.iTunesからアプリをイ
ンストール
めんどくせ
#devkan技
http://www.klab.com/jp/press/140304.html
#devkan技
http://www.klab.com/jp/press/140304.html
お!?
#devkan技
使ってる人の評判
#devkan技
おお!
使ってる人の評判
#devkan技
使ってる人の評判
よっしゃ導入だ
#devkan技
インストールした
#devkan技
インストールした
が、動かない
#devkan技
インストールした
#devkan技
インストールしたエラー読む
#devkan技
#devkan技
コード読む
#devkan技
#devkan技
PHPわからん
#devkan技
ググって
#devkan技
ググって
ググって
#devkan技
ググって
ググって
ググった
#devkan技
ググって
ググって
ググった
はっ!
#devkan技
ググって
ググって
ググった
PHPのバージョンが
低い
#devkan技
うごいたーーー
#devkan技
作った
https://github.com/Kuchitama/EmlauncherRegister
#devkan技
作った
EMLauncherRegister
https://github.com/Kuchitama/EmlauncherRegister
#devkan技
作り中
#devkan技
作り中
EMLauncher4s
#devkan技
•EMLauncher便利
•便利ツール導入しよう
•でも一回投げ出しかけた
•粘り強く調べた
•エラー/ソースを読み込んだ(基礎/基本)
•チームで時間を作れた
•結果、他チームにも波及
#devkan技
•EMLauncher便利
•便利ツール導入しよう
•でも一回投げ出しかけた
•粘り強く調べた
•エラー/ソースを読み込んだ(基礎/基本)
•チームで時間を作れた
•結果、他チームにも波及
#devkan技
•EMLauncher便利
•便利ツール導入しよう
•でも一回投げ出しかけた
•粘り強く調べた
•エラー/ソースを読み込んだ(基礎/基本)
•チームで時間を作れた
•結果、他チームにも波及
諦めない!
#devkan技
•事前情報でチームにとってメリットが
あると確信できた
•開発チームで導入を支援してもらえた
#devkan技
•事前情報でチームにとってメリットが
あると確信できた
•開発チームで導入を支援してもらえた
情報大事!
#devkan技
成功に学ぶ
#devkan技
•アンテナを高くはる
•自分たちにメリットがある技術を選
り分ける
•確信があれば、協力を得られる/粘り
強く取り組める
#devkan技
まとめ
#devkan技
•Chef導入
•チームで取り組む
•Play2 + Java
•基礎力大事
•諦めたらそこで(ry
•EMLauncher
•情報収集大事
#devkan技
もう一言
#devkan技
もう一言
新技術に取り組み、
そしてブログを書こう
あなたのアウトプットは
誰かのインプット
#devkan技
ここから宣伝
#devkan技
勉強会
•9/20 関西Scalaビギナーズ
•2014/冬 関西ソーシャルゲーム勉強会
#devkan技
エンジニア募集
•サーバサイドエンジニア
•Scalaで仕事したい人
•Scalaを学ぶ意欲がある人
•フロントエンドエンジニア
•HTML5 + CSS3 + JavaScript

More Related Content

PDF
アジャイルによくきく?モデリング
PDF
アジャイルを「ふりかえる」
PDF
おやつ神社
PDF
ModelingCafe
PDF
「価値探索」がつないだ
クライアントと開発者の絆
 〜Craful開発チームの60日〜
PDF
スタートアップこそ巨人の肩に乗りまくれ! 〜Craful開発とMackerel〜
PDF
mod_perlプログラマーがYAPCで語るレガシー開発論
PPTX
WikiWikiアジャイル
アジャイルによくきく?モデリング
アジャイルを「ふりかえる」
おやつ神社
ModelingCafe
「価値探索」がつないだ
クライアントと開発者の絆
 〜Craful開発チームの60日〜
スタートアップこそ巨人の肩に乗りまくれ! 〜Craful開発とMackerel〜
mod_perlプログラマーがYAPCで語るレガシー開発論
WikiWikiアジャイル

What's hot (7)

PPTX
アジャイルパラレル開発
PDF
アジャイルで忘れてしまったもの… そして、再び拾い集めたもの
PDF
MultiParadimeDesign
PDF
Scala workshop 20131019
PDF
Qpstudy201404 インフラ設計の勘所
PDF
Agile skill map introduction conbined
PDF
開発現場を駆動せよ。Devlove関西driveがもたらすもの
アジャイルパラレル開発
アジャイルで忘れてしまったもの… そして、再び拾い集めたもの
MultiParadimeDesign
Scala workshop 20131019
Qpstudy201404 インフラ設計の勘所
Agile skill map introduction conbined
開発現場を駆動せよ。Devlove関西driveがもたらすもの
Ad

Similar to Scala開発チームの挑戦-技術編-@DevLove2014 (20)

PDF
実戦Scala
PDF
Overview of Scala ~ Hacker Tackle
PDF
DevLove四国_LT_yohhatu
PDF
20120702勉強会 webアプリ作ってみた
KEY
Beginners scala 20121113
PDF
LODEO開発ストーリー
PDF
20150207 何故scalaを選んだのか
PDF
Skinny Framework で始めた Scala
PDF
How to develop a huge Single Page Application
PDF
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
PDF
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
PDF
Scalaプロジェクトへの未経験者の円滑なジョインへ
PPTX
プロダクトにおけるScala
PDF
禍つヴァールハイトを支える負荷試験
PDF
DWANGO by ドワンゴ
PDF
May the team be with you(episode2)
PDF
Scalaと過ごした5ヶ月間
PDF
Application insights で行ってみよう
PDF
ソースコードレビューのススメ
PDF
Scalaで萌える関数型プログラミング[エッセンシャル版]
実戦Scala
Overview of Scala ~ Hacker Tackle
DevLove四国_LT_yohhatu
20120702勉強会 webアプリ作ってみた
Beginners scala 20121113
LODEO開発ストーリー
20150207 何故scalaを選んだのか
Skinny Framework で始めた Scala
How to develop a huge Single Page Application
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
Scalaプロジェクトへの未経験者の円滑なジョインへ
プロダクトにおけるScala
禍つヴァールハイトを支える負荷試験
DWANGO by ドワンゴ
May the team be with you(episode2)
Scalaと過ごした5ヶ月間
Application insights で行ってみよう
ソースコードレビューのススメ
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ad

More from Kiyotaka Kunihira (20)

PDF
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
PPTX
着任したエンジニアをスムーズにテイクオフさせる道具だて
PDF
React native実践談
PDF
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ks
PDF
ここが変だよRuby/RoR #rubykansai
PDF
時をかける開発 #devtool_night
PDF
DevLove関西 - ShareWisの文化を支えるエンジニアリング
PDF
スタートアップとScala
PDF
オリジナル社内ツールの末路
PDF
GitBucketPlugin@2014忘年度会
PDF
アジャイルな新婚旅行
PDF
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
PDF
とりあえず使えるSBT
PDF
気が狂わないサーバ増設x10
PDF
GitBucketで社内OSSしませんか?
PDF
仕事のゲーム化でやる気モードに変える
PDF
プログラマが 引っ越しで気をつける 3つのこと
PDF
Ec2 automation framework
PDF
Chefとかプロビジョニングまわり
PDF
忘年会駆動2012
Mackerel Day#2 チェック監視が救う!!エンジニア0カンパニー
着任したエンジニアをスムーズにテイクオフさせる道具だて
React native実践談
ガチのスタートアップがScalaを採用した結果(公開版) #scala_ks
ここが変だよRuby/RoR #rubykansai
時をかける開発 #devtool_night
DevLove関西 - ShareWisの文化を支えるエンジニアリング
スタートアップとScala
オリジナル社内ツールの末路
GitBucketPlugin@2014忘年度会
アジャイルな新婚旅行
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
とりあえず使えるSBT
気が狂わないサーバ増設x10
GitBucketで社内OSSしませんか?
仕事のゲーム化でやる気モードに変える
プログラマが 引っ越しで気をつける 3つのこと
Ec2 automation framework
Chefとかプロビジョニングまわり
忘年会駆動2012

Scala開発チームの挑戦-技術編-@DevLove2014