Blogaomu

WEBアプリケーション開発とその周辺のメモをゆるふわに書いていきます。

PHPカンファレンス2013 に参加してきた

2013-09-14 に行われた PHPカンファレンス2013 に参加してきました。そこでのメモや感想を書いておきます。

ミッションクリティカル&ハイパフォーマンスシステムにおける技術統合と運用の勘所

by @bash0C7 さん
PHPConference2013Presentation #phpcon2013 // Speaker Deck

  • (AWS)コンソールからだと、作業の再現性が皆無
  • Stack Deployment パターン
  • CloudFormation jsonで構成を定義できる
  • テンプレートからネットワーク部分を構築(変更が少ない部分をテンプレ化するとよい)
  • 次に、CLIで変更の激しい部分を設置する
  • 本番同等の検証環境を持っている
  • レスポンスを先に返して、application が吐いたログを後で fluentd 使ってDBに格納する
  • scalaに置き換えるなど
  • GrowthForcast 簡単にグラフ化できて便利らしい
  • Xymon という監視ツール

さあPHPという言語処理系のソースコードを読んでみよう

by @anatoo さん
さあPHPという言語処理系のソースコードを読んでみよう

  • PHPソースコードリーディングについて
  • 現在はPHPソースコードGitHub上においてあるhttps://github.com/php/php-src
  • ./configure --enable-debug
  • デバッグオプションを付けてビルドする
  • Zend, ext, sapi, tests ディレクトリを見ておけばよい、README.* は読んでおけ
  • PHPの挙動を変えてみる
    1. コード編集
    2. ビルド
    3. 試す
  • デバッガを使う GDB, CGDB(ちょっとだけグラフィカル)
  • brew install cgdb
  • GNU global を使う

RubyからPHPへ -エンジニアのための思考移行ガイド-

by @kuromatu さん
RubyからPHPへ -エンジニアのための思考移行ガイド- // Speaker Deck

  • 社会人になってから本格的にプログラミングを始めたそうです。
  • Rails使って開発してたときはビジネスロジックをUIに突っ込みがちだった
  • PHPで書くようになって、逆に設計をしっかり考えたり、テストコードを書くきっかけになった

Vagrantで作るPHP開発環境 [実践編]

by @shin1x1 さん

  • VagrantPHP開発環境を使う
  • Vagrantfileはプロジェクトごとに作っておいて、それをgitで管理(ソースコードと一緒に管理する)
  • .vagrant は .gitignore へ入れておく
  • 仮想マシンIPアドレスを付与できる
  • プロビジョニングが肝になる
  • プロビジョニングはシェルで書ける。(chefなども使えるが、初心者はシェルで作るのが良い)
  • ホストマシンとのsyncができる
  • バージョンが異なる環境を複数必要なときに便利

PHPアプリケーションのバージョンアップ

by @kentaro さん
How to Continuously Upgrade Web Services Written in PHP // Speaker Deck

  • 既存サービスの改善のお話。
  • PHP5.3 系のサポート終了(2014)
  • PHP自体のバージョンアップは、周辺のエコシステムにも影響している
  • バージョンアップは何度も継続的にやっていく体制をつくる必要がある = 難しい
  • 構成管理をしっかりしておく
    • 設定ファイル、ミドルウェア、パッケージ、ソースコード、をそれぞれ管理しておいて、
    • それらを組み合わせてサーバーを構成する
  • できるところから進めていく、本番環境に適用する
  • Puppet, chef なんでもいい
  • 簡単な設定ファイルから始める
  • 本番でスモールスタートできたら、開発環境で育てていく
  • 入門Puppet 読みましょう
  • mod_php + Apache から PHP-FPM
  • xbuild 便利

感想など

今回聞いた talks は開発環境の構築であったり PHP を使ったシステムの運用方法といったところが多かったです。現在、私が主に携わっているプロジェクトは Ruby を使っていて、PHP を触ることは少ないのですが(PHP を使ったプロジェクトも存在しているので全く触らないわけではない)、この2つのトピックに関しては汎用的と言いますか、特に PHP に限った話ではなさそう、ということで意識的に選んだ感じもあります。

いわゆる「秘伝のタレ」を使わずに誰でも同じ環境を構築できるようにする、というのはかなり重要だなと思っていて、チームの規模が少ないうちは属人性が高くなるのはしょうがないのですが、規模が大きくなってきますと弊害も出てくるわけです。システムがどのように構成されているか、というのが明確になっていてチーム内の誰でも分かる状態にあるのはいいことだと思います。今回聞いた話でも、そういうブラックボックス的な部分をできるだけ減らしていくというトレンドを感じました。できる部分から本番環境にぶち込んでいくというのも良いアドバイスをもらったなあと思いました。

PHP 言語の進化もまだまだ続いているようで、私の中では5.3系ぐらいで時間が止まっているのですが、良い部分も増えてきている雰囲気でした。また触ったりソースコードリーディングもしていきたいですね。

あとは WordCampTokyo 2013 も同時開催していたので、WordPress系の知り合いにも久しぶりに会えて楽しかったです。前職の同僚や、Twitter 上でしか絡んだことのない方にもお会いできました。懇親会でも、あんまりここでは書けない話も聞けたりして面白かったです。そんでもって PerlMotion があるというのには驚きました!