Skip to content

Instantly share code, notes, and snippets.

@Layzie
Created December 15, 2012 02:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Layzie/4290610 to your computer and use it in GitHub Desktop.
Save Layzie/4290610 to your computer and use it in GitHub Desktop.
DevLove Conference 2012メモ

DevLove Conference 2012

周りを巻き込みながら歩んできた関西人スクラムマスターの自分戦略

中村 洋さん

1番言いたい事

やりたい事があったら、やってしまう

  • 良いと思ったら、すぐやってしまう
  • FBを得られる環境を自分で作る

自分戦略の源泉

チームの成長

  • 最終的には自分がいなくて良いという状況

エンジニアをつなぐ

  • 世界を変えるかもしれない人をつなぐ

スパイラルな成長

  • 同じ所を回るのはいや
  • 次に会った時にお土産を渡したい
  • 誰かの役に立ちたい

ハンドルを握る

やりたいことを表明

全然上司とかに伝わってない事もあるかもしれん。

爪を研いで準備

やりたい事があるなら、それなりに自分で勉強!

他の人がやりたがらない雪かき

  • 信頼が厚くなるから、ボールが回ってきたときに取りやすい
  • 好きにできる

仲間を見つけて巻き込む

腐ってしまうし、FBがもらえるよ

Episode

3つ程。

Comunity

色々な経験をした人達が集まる場。

結論

情熱を保ち続けるのは難しい!仲間見つける。 良いと思ったら、すぐにやっていく!

Chefを利用した運用省力化とDevOpsの取り組みについて

並河祐貴さん

アメーバピグ

  • アバター仮想空間サービス
    • きせかえ、おでかけ、ゲーム
    • カジノなど
  • ユーザー数
    • 1700万人

アメーバピグのアーキテクチャ

セッション貼りっぱなしで。

  • Java or Node.js
  • MySQL or MongoDB
  • memcached

これまでの(主にシステムの)変遷

  • 自作サーバー導入
  • Fusion-io導入
  • Chef導入

などなど

ピグでのシステム運用スタイル

  • チーム・体制
    • 機能開発
    • 非機能部分

システムを運用する上で

アプリ/インフラ双方の協力が必要

アメーバピグの規模感

大体1000台!

1000台規模のサーバ郡

Chefで管理してるよ

ピグのサーバ増設・運用管理

  • サービス規模は右肩上がり
  • 急に増設を求められたり

Chefの概要

  • サーバーの構築作業やシステム管理のツール
  • Ruby製/OSS
  • 利用実績
    • 37signals
    • Engine Yardほか

サーバ構築・システム管理自動化の必要性

  • 手作業では、そもそも時間がかかる
    • 数十台、数百台レベルになると同じ役割でも環境差異が出てくる
  • 人為的なミスを抑えたい
    • 作業漏れ、オペミス
    • 作業者によって、スキルにバラつき

シェルスクリプトで良くね?

  • サーバの状態が記述できるFW
  • Chefでは内部DSLを採用
  • サーバの差異を吸収できる

Chefのシステムアーキテクチャ

  • Ruby
  • mongo
  • merbなどなど

Chefの登場人物

  • Node
    • 管理対象のサーバ
  • Role
    • 管理対象のグルーピング
  • Cookbook
    • システムのあるべき形を定義する設定

Chefのリポジトリ

  • attributes
    • 設定したいパラメータ(サーバ固有のものなど)
  • recipes
    • 設定内容
  • templates

Chefで使用できるresoure

Chefの公式サイトに載ってます

Chefのちょっとイケてないところ

  • サーバーのセットアップが面倒くさい
    • Ubuntuだと割と楽。クライアントは簡単
  • 名前がSEO的に致命的
    • リアルに調べ物をする時に困ります…
    • ruby付けると良い
  • dry-runができなかった
    • 10.14から利用可能に

Chefの運用

Chefを活用したサーバ増設

  • PXE + kickstart + Chef
    1. 事前にcef-server側でNodeの設定が必要
    2. サーバーの電源ON、PXEブート開始
    3. Label No.とNode名を入力してOSインストール
    4. 同時にchef-clientのインストールと設定
    5. kickstartの%postスクリプトでchef開始

Chefを活用したサーバ増設

クラウドでも応用可能

Cookbookの使い方

  • ネットワーク設定
  • H/Wに必要な設定
  • 各サーバ共通で必要な設定
  • 各Roleで必要な設定

Chefを使う上でやっていること

  • 各NodeのChef適用はchef-clientを実行
  • NodeのAttributeの登録
  • アンインストール・削除等の処理も忘れずに
  • Enviromentの活用
  • CouchDBのバックアップ

Chefを運用する上での課題

  • Recipeが正しいことを保証するには?
    • 仮想マシン等を活用してテスト
      • 人手による確認が必要
    • why-run
      • 人手による確認が必要
    • Recipeのユニットテスト
      • 場合によっては十分
    • Recipeのチェックスクリプト
      • 現在模索中

Cookbookでのコミュニケーション

  • セットアップ手順のメンテナンス
  • サーバの状態をバージョン管理できる

これからChefを勉強する人へ

  • chef-soloが便利
  • Chefのインタラクティブシェル
    • shef
  • Opscode Platform(Hosted Chef)

まとめ

  • Chefを活用することで、多くのサーバの増設・管理にかかる負担を軽減
  • クラウド等の基盤サービスと連携して、インフラ構築・運用の完全オートメーションできる 仕組みを作りたい

エンジニアの未来

まつもとゆきひろさん

むっちゃ話上手いなあ…聞かせる感じ。

テクノロジートレンド

  • ムーアの法則
    • LSIの集積度は2年で2倍
    • コンピュータの性能の方が18ヶ月だったらしい…
  • 性能向上
    • 昔のスパコンが今のiPhone4くらい!
  • 容量増大
  • 価格低下
  • 大衆普及
  • 要求増大
  • ソフトウェア要求の増大
  • 安く・早く・うまいソフトウェア開発
  • ソフトウェア生産性

テクノロジー予測

  • ソフトウェア生産性の増大の要求
  • ムーアの法則の活用
    1. 金で性能を買う
      • 簡潔な表現
      • 抽象度の高い言語
        • レイヤーが重なれば重なる程性能が悪くなる
      • 言語はインターフェース
    2. 台数
      • 世界には5台で十分?
        • 人間の計算量に比べれば当時のコンピュータに関しては当ってる
      • メモリは640KBで十
        • ビル・ゲイツ談w
    3. マルチコアの対応
      • ソフトの対応
      • マルチコア対応アプリ
      • マルチコア対応フレームワーク
      • マルチコア対応言語
      • 抽象度の高いマルチコア
      • www
      • 参照透過性と遅延評価

業界予測

  • SIの衰退
    • 生産性を高める技術は、締切や契約があると新しい技術はリスクになり得る
  • サービスの勃興
  • ソフト開発への顧客の理解
    • 経営者自身がITに対して無知でいられない
  • CSの地位向上

エンジニアの未来

  • 日本(人)の強み?
    • 個人個人じゃね?
  • 日本(人)の弱み
    • 日本語!
    • 祝福と呪い
      • 学士号なんかの卒論で英語を使わない国は、ほとんどない
      • 日本語しか喋らない…
    • 言語の壁
      • 英語を使うコミュニティばっかりの中で、日本語はぼっち
    • 逆に考えるんだ、JoJo
      • 逆境乗り越えれば、チャンス!
    • 英語公用化?
      • やり抜くこと大事
  • イノベーション
    • イノベーションは成功の別名
    • イノベーションは社会変化の別名
    • 実現力
    • 他の人が良いと思ったものは誰かが先にやるから成功する
    • 周りがダメだと言うものは成功する可能性が大きい
    • スクリプト言語にオブジェクト指向はなかった
    • 妄想力・発想力・実行力
    • モチベーション大事
      • 自由は大事
      • 自信大事
      • 信念大事
      • 名声大事
      • 自分との対話
      • 社会常識と闘う
      • 心の壁を破る
      • 心配しすぎない

Happy Hacking!!

公募セッション C

  • 正しいというので、思考停止しない!チームワークや楽しさ大事。
  • 実装→テスト→リファクタリングの黄金の回転
  • コミュニティ大事!
  • モヒカンのマサカリ大事

Code Anything なんでもコードで書こう

川島義隆さん

趣旨

みんなコード書こうぜ

GitHub Activity Tunes

あるユーザがどれだけGitHub上でコードを書いてるかに応じ、ラデツキー行進曲で手拍子w

コードは書ける人が書けばいい!

どういうコードを書くか

身近な誰かを喜ばせたいので仕事としてコードを書く!

社内システムHack

  • サイボウズの在籍を自動に
  • 会議室検索
  • ID/Passをシングルサインオン

Suicaで交通費精算

Plaggerで、Felicaを読み取って精算システムに!

Cert Publisher

クライアント証明書でWeb上での証明書作る。ビデオでのプレゼンとか斬新w

SEO対策

コンシューマ向けのWebサイトのApacheのconfが Rewrite地獄 。 Railsでできても、変えられん。

SAStruts Advanced Routes

まとめ

課題の多い職場ほど、コード書けば幸せになるネタが多い!

黄色いゾウ使いのパレード

都元ダイスケさん

Mahoutインアクションの共訳された

Mahoutとは

  • Javaで実装
  • スケーラブル
  • 機械学習ライブラリ

代表的な機械学習

  • レコメンド
  • クラスタリング
  • クラシファイイング
  • その他

今日はレコメンド中心

アプリと機械学習

  • CRUD
  • FILTER
  • AGGREGATE
  • INTLIGENCE

スケーラブル

  • 機械学習の精度は、データ量依存
  • データ量に応じ、計算量が指数的に増加
  • 大規模な計算リソースが必要
  • Hadoop
  • AWS Elastic MapReduce

分散レコメンド

inputmahoutoutput
S3EMRS3
1,101,5.0--1123{ 1179:5.0,3160:4.6 }

1のユーザーが101の商品に5.0というスコアを付けたという情報を集めてレコメンド

GroupLens Researchが無料で映画の評価のデータを公開してる。

MovieLens 10M

これでも小規模

EMRのデモ

非分散リコメンド

レコメンドの理屈

  • 1~5のユーザ
  • 101~107のアイテム
  • アイテムのスコア

相関係数

  • 相関係数
  • 加重係数

Summary

  • 機械学習は、ちょっとインテリな機能
  • 分散・非分散アルゴリズム
  • 非分散ならオンライン
  • 分散ならAWSのEMR

どこでも生きていけるエンジニアを目指した後に見えるもの

増井雄一郎さん

  • PukiwikiでOSSでのチームビルディングを学んだ

    • 伽藍とバザール
  • 経営者か技術者か

    • 経営者は後でもできる
    • 技術者として今!
  • 売れる技術を習得というより、深さ・追いかけている事を知ってもらう

    • アウトプット重要
  • 被らない

    • 人より半歩新しい物を
    • 早すぎると仕事にならない
    • 手を動かしノウハウ溜める
    • アウトプット
  • 本当にオリジナルな技術は使えない

    • Only oneでは食えない
    • 技術は同じで別の所で違いを出す
  • 流行りの技術

    • 乗るより作る
    • Rails
    • Node
    • mruby
  • 自分の売り先は、エンジニアじゃない

    • 経営者や営業など決定権を持つ人
    • 思った以上にそういう人と会わないので、意識して会うようにしている
  • ギャップが大きい環境の方が、売れる!

    • Web系だったら例えば組み込み系の会社だとか
  • 手離れを意識する

    • メンテ仕事をしない
    • 積極的にやってる事をアウトプット

良いセッション!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment