レギュラートーク 30分

PHPはApache+mod_phpで十分(?)

uzulla うずら

みなさんPHPでサービス提供していますか?何をつかって提供していますか?

Nginx+php-fpm?h2o+php-cgi?IIS+php-fpm?swoole?builtin server?HHVM?Roadrunner?PHP-pm?いやいや、Apache+mod_phpですよね?あるいは諸般の事情でapache+php-cgiかもしれない。

Apache+mod_phpはいろんな人が「いまどきApacheとかないわ〜」とか「もうそもそも考えてもいなかった」とか言っています。でもどう考えてもApache+mod_phpで8割のケースは十分ですよね??

(勿論、2割のケースにいらっしゃるかもしれません。勿論そうなら泣く泣く(??)Apacheを使わないのは正しい!!)

これらを比較して、mod_phpを見直してみましょう!

2
レギュラートーク 30分

1年で不具合の半分に!長く運用するWebサービスでやるべきこと。

saik1010 斉藤健太

弊社はクチコミ掲載数日本最大級を誇る結婚準備クチコミ情報サイトのウエディングパークをはじめ、ブライダル専門の5つのメディアを自社で開発・運営しています(主要技術:PHP/Laravel/MySQL/Goなど)。約1年前にQAチームを立ち上げ、不具合を前年度比で半減させることをミッションに日々活動を行っています。特に2004年から運営するウエディングパークでは、長く運用するWebサービスだからこその課題や悩みが多くありました。その中でQAチームとして取り組んだことから成功したこと・失敗したことなどをリアルにお話しさせて頂きます。

1
ルーキーズLT

エンジニアとしての成長を加速させた3つの取り組み

久山 勝生

エンジニアにとって、日常業務の中で様々な成長のきっかけがあると思いますが、業務外の活動においても、自ら楽しみながら学ぶことも重要かと思います。新卒入社後この 2 年間で自主的に取り組んできたことのうち、特に成長を実感できたアクションとして「社内ブログへの投稿」「定期開催されるビアバッシュへの参加」「個人開発」があります。この発表では、どのように考えてこれらを実行してきたか、どのような面で成長できたと感じているか、そしてこれからどうしていくのか、もうすぐ 3 年目を迎える新人エンジニアの想いをお話しようと思います。

3
ルーキーズLT

Laravel + MongoDB でつなげる、つながるオープンデータ

久山 勝生

NoSQL を勉強したいという動機から MongoDB に興味を持ちました。そのスキーマレス、ドキュメント指向という特徴から学生時代に興味を持っていた、オープンデータのストアに適しているのではという気づきにつながり、そして、世の中でまだつながっていないオープンデータをつなげて活用したいというアイデアへつながりました。技術とアイデアが、オープンデータとオープンデータが、つながるその過程と成果について発表します。

3
ルーキーズLT

PHP5.2.xから7.2.xにVer.upした際、つまづいたこと

tashipiyo 田代政徳

PHP Ver.upの際、システム移行時につまづいた内容を現場の環境を含めてお伝えしたいと思います。
時間があれば他、プラグインの以降も含めてお伝えできればと思います。

レギュラートーク 15分

専門学校でLaravelを教えてみた

_mikakane 後藤知宏

専門学校の講師として3年、Laravel を使ったアプリケーション開発の講師をやってきました。

エンジニア教育とはちょっと違う、専門学校でのIT教育みたいな話をします。

レギュラートーク 30分

Laravelの互換性に向き合うジレンマ

sakamoto03 坂本剛彦

人気沸騰中のLaravel。どんどん追加される新機能。そして、Laravel自体のバージョンアップ(5.3⇒5.4⇒5.5⇒5.6⇒5.7)。
Laravel内で変化を追従しながらも、人知れずレガシー化している自身のコードの書き方。
例えば、私の書式『5.3』、現行『5.7』。
そして、5.3と5.7のバージョン間の互換性のロスト。
この互換性の問題にどう立ち向かえば良いか。ソフトウェア設計の互換性を考慮した私の提案と問題提起を行います。

LT

PHPでURLルーティングをつくる

bmf_san bmf_san

PHPでURLルーティングをつくってみた話をします。
普段フレームワークを活用していると、ルーティングの実装はフレームワークが用意したパッケージや外部ライブラリ依存であることが多く、自作するモチベーションやメリットはあまり浮かばないかもしれません。
今回、実用性のあるものを作り上げるのは難しかったですが、敢えて車輪の再発明に挑戦することで
様々なライブラリの実装パターンや実行速度のパフォーマンスの懸念点を知る機会になったり、
アルゴリズムの実装力(エンジニアの基礎体力)を鍛える良い練習にもなりました。
5分の時間内でURLルーティングを自作するメリットと楽しさについて凝縮したお話をできればと思います。

1
LT

PHP停止の気付き 〜サービス監視ツール〜

seike460 清家史郎

みなさん試行錯誤してPHPサービスを止めないように努力されていると思いますが、
現実世界上でSLA100%を完全保証することは不可能です

であれば当然止まった時に「気付く」ツールを使います
私がPHPと触れ合う中で試した各種ツールについてお話します

  • ツール提供情報
  • 導入難易度
  • お金
1
レギュラートーク 30分

PHPを救うことについて語るときに僕の語ること

seike460 清家史郎

みなさん試行錯誤してPHPサービスを止めないように努力されていると思いますが、
現実世界上でSLA100%を完全保証することは不可能です
サービスを止めない努力の先の、止まった時に如何にしてPHPを最速で復帰させるのか、僕の考えをお話します

  • サービスとOSSによる外形監視、症状監視
  • 症状に応じた初期調査による思考と原因究明
  • 原因に対する思考と復旧方法

みんながお世話になってるPHP、そのPHPを助ける方法を思考しましょう

1
レギュラートーク 30分

New Designs : Streaming Architecture

ex_takezawa ytake

マイクロサービスアーキテクチャを実現するために利用される分散型メッセージングミドルウェア。
PHPアプリケーションで導入している方も多いのではないでしょうか?
メッセージングミドルウェアの中でも大規模アプリケーションで導入事例も多いApache Kafkaには、
単純なメッセージングのほかにもストリーム処理を支えるKafka Streamsやデータハブとして機能するKafka Connectなどがあります。
本セッションではKafka Streamsに焦点を当てて、
ストリーム処理のアーキテクチャ設計についてPHPアプリケーションを支えるデータ処理の入り口へ案内します。

2
レギュラートーク 15分

Zaim における PHP アプリケーションの運用

naoki85_201612 naoki85

Zaim はオンライン家計簿のアプリですが、運用上 PHP の役割が大きいです。
今回の発表では、Zaim における PHP アプリケーションの運用において、使用しているツールや直近の困ったことなどを共有させていただきたいと思います。

2
レギュラートーク 30分

これからPostageSQLを使う人のための詳解 PostgreSQL - 最新機能とMySQLの違い

soudai1025 曽根 壮大

みなさんはどのRDBMSをお使いですか?
PHPといえばMySQLという時代から変わりつつあり、PostgreSQLを採用されるケースも目立ってきました。
では実際にPostgreSQLを使うと何が嬉しいのでしょうか。
MySQLと比べたPostgreSQLの基本的な違いやメリットとデメリット、そして最新機能についてお伝えします。

  • PostgreSQLは触ったことがない
  • MySQLとの違いがわからない
  • 現場でPostgreSQLがあるけど怖くて触れない
  • 次の案件ではPostgreSQLを採用したい

そんな人達のための明日から使いたくなるPostgreSQLの話をします。

2
レギュラートーク 30分

サービスを止めるな! ~ 9年目の大変革、リファクタリングと成長の物語~

soudai1025 曽根 壮大

オミカレは2011年からスタートした9年目のPHP製Webサービスです。
9年前はモダンなプロダクトでしたが今では多くの技術的負債を抱えています。
このままでは駄目だ!と決意して一大リファクタリングプロジェクトを行っています。

そこで実際にどのようにサービスの開発、稼働を止めずにリファクタリングをしているか。
次のような知見を余すことなくお伝えします。

  • ALBのパスベースルーティングを使ったフレームワークとPHPのバージョンアップ
  • DMSを使ったRDBリファクタリング
  • 改善しなら前進していくためのコツ

みなさんはレガシィだからと言って諦めてませんか?
一緒にこの先、10年戦えるプロダクトを作るためのリファクタリングにチャレンジしていきましょう。

4
レギュラートーク 30分

エンジニアだけで完全内製化のQAチームを立ち上げた話

saik1010 斉藤健太

弊社はクチコミ掲載数日本最大級を誇る結婚準備クチコミ情報サイトのウエディングパークをはじめ、ブライダル専門の5つのメディアを自社で開発・運営しています(主要技術:PHP/Laravel/MySQL/Goなど)。サービスの成長に伴い開発体制が50名規模と拡大する中で、開発スピードの向上とプロダクト品質の担保するため、約1年前にエンジニアが中心となってQAチームを立ち上げました。今回は、「チーム立ち上げ〜現在」まで、エンジニアならではの視点で課題解決に取り組んできたこと(自動テスト、組織作り、啓蒙活動、障害分析)をお話しします。

2
レギュラートーク 15分

Webエンジニアのためのアセンブリ言語入門

DQNEO DQNEO

アセンブリがわかればコンピュータがわかる。

コンピュータが動く仕組みを知りたいと思ったことはありますか?
コンピュータが直接理解できるのはマシン語だけですが、それを少しわかりやすくしたのがアセンブリ言語です。

アセンブリは高級言語とぜんぜん違います。
変数、IF文、ループがありません。そんな言語で何ができるのか?
何でもできる!

アセンブリ言語はまた、多くのコンパイラの出力データとしても使われています。
実際に私はこの知識をつかってC言語コンパイラとGo言語コンパイラをある程度書けるようになりました。

一介のWebエンジニアにすぎなかった私がアセンブリを学んで読み書きできるようになった体験をもとに、わかりやすく解説します。

本トークを聞いたあと、あなたは「アセンブラ難しいと思ってたけど、意外とやればできるのでは」という感覚を得られるでしょう。

5
レギュラートーク 30分

実コードと一緒に学ぼう、Laravel × レイヤードアーキテクチャ

okashoi 岡田正平

「『レイヤードアーキテクチャ』の名前は聞いたことあるけど敷居が高そう……」といった方に向けて、実コードと一緒に各レイヤーの役割/考え方や、Laravel での実装における tips 等をお話しします!
※(Laravel に限らず)web フレームワークを使ったことがあり、オブジェクト指向プログラミングの基本概念(class, interface 等)を理解している方を想定しています。

1
レギュラートーク 15分

ユニットテスト用のMySQLをdockernizeして得られたもの

yoku0825 yoku0825
  • あなたの環境ではテスト用/開発用のMySQLは人数分用意されていますか?
    • 某弊社では共有です/でした
  • ある時、 思い付きで ユニットテスト用のMySQLをdockerコンテナに詰め込んで、テストのたびに生成/破棄するような仕組みを一部のプロダクトで導入できました
    • その時の(DBAとしての)工夫を紹介します
2
レギュラートーク 30分

大量レコードの処理にORMで詰まった時にMySQLで考えること

yoku0825 yoku0825
  • ORMで100万行フェッチしてオブジェクト作って配列にしてループでぐるぐる回していたらレスポンスが死にました
  • という時にMySQLの気持ちになってどんな対策でアプリケーション側の処理を軽くするか考えた経験を話します
  • 生SQL使おうぜって話になります
    • ダーティーハックを含みます
    • やりすぎるとSQLおじさんになるので注意
5
レギュラートーク 30分

夢見るMySQLの冗長構成

yoku0825 yoku0825
  • MySQL 5.7で導入されたGroup Replication (InnoDB Cluster) って実はマルチマスター構成が取れるんです。夢見たいですね。
  • MySQL (NDB) Cluster, Percona XtraDB Cluster, MariaDB Galera Cluster, MySQL Fabric(mikasafabric for MySQL), MHA for MySQLとは何が違うのか? どうやって動くのか? その夢は本当に叶うのか?
  • マルチマスターが期待した通りに動くケース、注意が必要なケースを整理していきます
1