20171219 / phpway / BASE,Inc.

37
PHP Way – 開催趣旨 & BASE編 PHPから別言語に変えることを考えた振り返り BASE株式会社 取締役CTO 藤川 真一

Transcript of 20171219 / phpway / BASE,Inc.

PHP Way – 開催趣旨

& BASE編

PHPから別言語に変えることを考えた振り返り

BASE株式会社 取締役CTO

藤川 真一

開発言語をPHPから他の言語に変更するWebサービス企業がある中で、あえてPHPを使い続けることを決めており、今後のサービスの成長、チームの発展をPHPでコミットしていく企業によるプレゼンテーションをおこないます。

Webの開発言語やフレームワークの話、適材適所の技術活用についての考え方、 今後の発展とサービスの成長に向けてのコミット等について参加各社がプレゼンテーションを行います。

PHPを活用するエンジニアにとっての明るいキャリアパスについて考えていきましょう。

2017/12/21

2PHP Way開催趣旨

2017/12/21

3Agenda

コネヒト株式会社 CTO 島田達朗氏※発表内容「コネヒトが考える技術選択の仕方について」

株式会社サイバーエージェント SGE CTO 白井英氏※発表内容「PHPでのゲームのサーバサイド開発の変遷〜PHPとの付き合い方〜」

BASE株式会社取締役CTO 藤川真一※発表内容「PHPから別言語に変えることを考えた振り返り」

3社によるトークセッション

どこか自信が持てない(?) PHPの選択に、

胸張って間違ってないんだと思えることがゴール

2017/12/21

4本イベントのゴール

それではよろしくお願いいたします

2017/12/21

5

PHP Way – BASE編

PHPから別言語に変えることを考えた振り返り

BASE株式会社 取締役CTO

藤川 真一

2017/12/21

7藤川の紹介

BASE株式会社取締役CTO 2014年正式ジョインしてから4年目

ネットでは、えふしん、で活動してます

最近まで社会人大学院生やってました

慶應義塾大学大学院メディアデザイン研究科を単位取得退学

モバツイ (PHP5)、ShopCard.me ( Objective C + Rails)

8BASE株式会社

サービスインして5周年を迎えた会社です

2017/12/21

9サービス

WebのBASE ( https://thebase.in )

PAY.JP (https://pay.jp)

BASEアプリ

PAY IDアプリ

10サーバサイド技術視点での大きな特徴

モールアプリ向けのバックエンド(集約)

(将来、**スーパーセールをやるならこっちが受け皿)

40万店舗を超える独自ショップ(分散)

フリーミアムで無限にショップが増えることを前提とした

アーキテクチャ(今年は、独自ドメインSSLなどを頑張った)

フィンテック分野での期待を背負うことが社の戦略

UX、セキュリティ、スケーラビリティの3つの実現が超絶重要

決済代行サービスに、密結合した無料のCMSがついているのがBASE

P H Pバージョン : P H P 5 . x / 7 . x P H Pフレームワーク : C a k e P H P 2 . x

P H P実行環境 : N g i n x , A p a c h e 2 + m o d _ p h p

インフラ : AW S

C I / C D : C i r c l e C I , D e p l o y G a t e

データ : R D S ( M y S Q L , Po s t g r e S Q L ) , H a d o o p , B i g Q u e r y, Re d S h i f t , A t h e n a , E T L , F l u e n t d ,

Re d i s

解析 : P y t h o n ( N u m P y / S c i P y / Pa n d a s / s c i k i t - l e a r n / G e n s i m / X G B o o s t ) , R , M e C a b ,

C a b o c h a , C + + , C U D A , Te n s o r F l o w , Te n s o r B o a r d

デプロイ : S l a c k , Ro R , C h e f

画像 : A k a m a i , I m a g e F l u x , S 3

検索 : A m a z o n C l o u d S e a r c h

モバイルプッシュ : AW S L a m b d a , S 3 , F C M

モニタリング : M a c k e r e l , R a y g u n , N e w r e r i c , F i r e b a s e , Re d a s h

ライブ : Wo w z a S t r e a m i n g C l o u d , F i r e b a s e

11技術スタック

2017/12/21

12アプリによる次世代ECへの取り組み

PHP5.x + Cake 2.x以外は普通にイマドキ

2017/12/21

13最新アーキテクチャ的に言うと

CTO3年目 そろそろ将来を考える

「PHPをどうするか問題」

技術顧問にも次世代の相談と検討

2017/12/21

142016年時点に戻ります

2017/12/21

152016年 当時のイシュー

・Cake2.xが終わったらどうする?

・PHP5.3、もうサポート終わってるし!

・Webは全然テストがないよ!

テストを作り込むのに向いた人材不足

・パフォーマンス問題

当時の環境で、Cake2.3 + PHP5.3で、

何もないコントローラ起動するだけで50msec級で遅っ

(PHP単体では7msec以下で十分速いので、

積み上げたフレームワークがまあまあヘビー)

フリーミアムなECサービスは、

究極的にはトランザクション(PV)あたり

コストの戦いになるのでは?

2017/12/21

16サービス性からみた未来への仮説

一つの価値観で言語選択を語るものではない

2017/12/21

17Early Stage言語、Later Stage言語

Early Stage Later Stage

スケーラビリティよりも生産性

明日をも知れぬフェーズ

失敗したら課題も増えない

ワンオペ機能開発

組織開発、コンフリクト問題

型がなくて痛い目にあう

社会的責任の重さ、スケーラビリティ

ドメイン駆動開発、マイクロサービス

でもスピード落とせない

2017/12/21

18開発技術の選択性

UX実現の生産性

機能性、生産性(主にスケーラビリティ実現性)

ここが欲しい

Better!

BASEとしてはキツイ

BASEにとってのLater Stageは、

・いつ

・どこで

・誰を敵として

・何をしているべきなのか?

19技術ビジョン

これに対して間に合わないのでは遅いけど、早くてもコストがかかって大変なのでベストなタイミングを予測する

代替案として他の言語、FWを考えてみました!

2017/12/21

20そこで、まず、

当然、一番気になる。

2017/12/21

21Ruby on Rails

羨ましいポイント 懸念したポイント

社内に経験者いる、採用可能性高い

流行っている

優れた人材が多い

少なくとも目立ってる人は多い

いろいろエレガント

採用可能性に対して、自社が打ち出せる強みとの兼ね合い

流行りには廃りがセット、だが

バージョンアップ追従と、EC繁忙期との兼ね合いが辛い(この概念こそが技術的負債に!?)

Later Stageの選択肢だったっけ?!

22Python

会社的に考えると変えるならこれ

2017/12/21

羨ましいポイント 懸念したポイント

PAY.JPで使ってるので経験豊富

言語やライブラリが優れてる

Webニーズが少ない

人材の厚みは考える

Later Stageの環境だったっけ?!

もしかしたらUXとか人材タイプ違うかも

2017/12/21

23Java

Later Stageにふさわしいのはこれ、、、だが

羨ましいポイント 懸念したポイント

実績とパフォーマンス

大規模サイトは無問題

今からJava?スイッチングコスト高

アプリケーション vs UX

柔軟性は少し犠牲になるかな?!

Later Stageにふさわしい

なんだかんだスタンダード

J2EEはあるが、本当にWebに向いているのか!?

2017/12/21

24Scala

根強い人気

羨ましいポイント 懸念したポイント

スタートアップからの上場組のNEXT Java以上のスイッチングコスト?!

評価できてないのでわからないw

Later Stageにふさわしい ビルドなどの生産性どうなん!?

2017/12/21

25Go

Better Cという新しい選択肢

羨ましいポイント 懸念したポイント

Viewがないところ適材適所で使うと効果絶大

Webの言語じゃないですよね?

PHPに向いてないところをフォローできる2017年に流行ってる言語

2017/12/21

26PHP7

羨ましいポイント 懸念したポイント

PHP7にするだけでパフォーマンスUP ハイスキルPHP開発者の高齢化現象

みなさまの情報発信が減って、タコツボ化、オワコン化に見える

PHPコミュニティもいい

PHPも比較してみました

型を取り入れるなど順調な進化

裾野が広い

要職についたり、独立したりして採用可能性が低くなる

単純に人材確保性が下がることだけが恐怖

2017/12/21

27マッピングしてみると

Web UXのための生産性

機能性、生産性(主にスケーラビリティ実現性)

※個人の感想です

わざわざリスクとコストを支払って乗り換える!?

2017/12/21

28トレードオフが大きすぎて答えが出ない

近年、PHPからRailsに移行して成功した企業、

失敗した企業

2017/12/21

29PHPから乗り換えた他社分析

うまく行った(?)企業の特徴

・M&A話が近く存在する企業?

・元Rails使いがCTOとして就任した企業

(採用人脈という観点)

・上場後の将来を鑑みるタイミング

(一区切りはついてる)

30タイミング重要?

もしや、一旦、かがんでもいいタイミングというのがある?

今はまだ、PHPで無問題

2017/12/21

31で、たどりついた結論

32PHPで問題ない技術的な視点

ビジネスで成功するために力不足の実行環境ではない

メルカリ、Facebook 、Slack etc….

相対的なWeb開発言語の役割の変化と先鋭化

AI化、クラウド連携が前提、一つの言語で閉じる時代ではない。チームとしては、多言語展開

Go + PHP7 という新しいソリューション Webとそれ以外を分ける

Goが出てきて、どこかPHPっぽくね?と思った人?適材適所の組み合わせとしては、結構理想的なのかも

丁度、Cake PHP4が出てくる!

確かに乗り換えるなら新しいものにしたくなる気持わかる

2017/12/21

33懸念された人材採用面

ECビジネスにおけるPHPの選択は採用には不利ではない

EC cubeプラグイン開発やスクラッチでのCake PHPは、割と王道

新卒でSIに入ったJava経験者からのWebサービスへの転職はスムーズ

問題は、新卒でRails企業で育ってしまった、スタートアップ経験者25〜28歳ぐらいの優秀なサムライ人材にどうやって振り向いてもらうか!

2017/12/21

34がんばりどころ!

PHP7 / CakePHP4 の世界に向けて頑張る決意!

PHPであることを気にしない優秀な人材に振り向いてもらうように。自社のプレゼンスを発揮するために、とにかく足元をしっかりと固める

AI時代に向けて、適材適所開発の価値観をしっかり作っていく

情報発信をしっかり行い、良いWEB UXを作るための選択肢として定着させる

35Githubのトラストスコア別開発言語

※2016年9月時点

トラストスコア 5 トラストスコア 4 トラストスコア 3

トラストスコア 2 トラストスコア 1

2017/12/21

36来年のWeb技術基盤イシュー

BASE全サービスのPHP7へのシフトを完了させる(with 自動テスト)

Cake2からCake4へのシフト

カートと決済のマイクロサービス化(別リポジトリ化 / API化)

Amazon Aurora

スーパーセールに耐えうるリアルタイム在庫処理

CTO / VPoE / VPoP のチーム化

2017/12/21

37そして将来

オープンソースでの貢献を増やし、PHP言語市場を活性化させる

5年以内に、PHP / Cake PHPのフルタイムコミッタを雇えるように!

Facebook / Google など超絶成功した企業は言語、OSを作る

トレンドを自分達で作る。攻撃は最大の防御

今後、BASE社がしっかりPHPの世界、Webビジネスの世界でよりプレゼンスを取っていけるように、WEB UX から技術基盤までさまざまな仲間を募集しています!!