SlideShare a Scribd company logo
1 of 63
PHPerだって
Microservices
したい
2016.11.03@phpcon
iret株式会社 cloudpack事業部
高橋 慎一
時の流れは
―早い―
2014年
ぼく
2014年ぼく
SPA?Vue.js?
RESTful?
AngularJS?
ReactJS?API?
2014年ぼく
SPA?Vue.js?
RESTful?
AngularJS?
ReactJS?API?
なにそれ?
2015年
ぼく
2015年ぼく
GCP?Lambda?
GAE?AWS?
Serverless?
MicroServices?
2015年ぼく
GCP?Lambda?
GAE?AWS?
Serverless?
MicroServices?
なにそれ?
2016年
ぼく
2016年ぼく
2年かけて
時代を
理解した
2016年ぼく
なるほど
WebAPIを叩いて
フロント側で
レンダーすれば
いいのか
2016年ぼく
サーバがHTMLを
返す時代は
―終わった―
そんなある日
ある日のやり取り
CTO < devicepackってのつくって
.
.
.
.
ある日のやり取り
CTO < devicepackってのつくって
なんすかそれ? > ぼく
.
.
.
ある日のやり取り
CTO < devicepackってのつくって
なんすかそれ? > ぼく
CTO < (サービス説明)
.
.
ある日のやり取り
CTO < devicepackってのつくって
なんすかそれ? > ぼく
CTO < (サービス説明)
コレ使えとかアレ使えとかあります? > ぼく
.
ある日のやり取り
CTO < devicepackってのつくって
なんすかそれ? > ぼく
CTO < (サービス説明)
コレ使えとかアレ使えとかあります? > ぼく
CTO < ない。好き勝手やっていいよ
好き勝手
やっていいよ
つーわけで
ってーのを
つくりました
やること
☁devicepackってーのをつくる
☁納期は2ヶ月後
☁開発担当:1人 / デザイナ:1人 / マークアップ:1人
☁実装については自由
☁PM:ぼく
2014年
ぼくの設計
アーキテクチャ ver.2014
認証・認可
API通信
ビジネスモデル
データストア
Webサーバ
リクエスト
2016年
ぼくの設計
アーキテクチャ ver.2016
API通信
認証認可
API通信
ビジネスモデル
データストア
APIサーバ
認証サーバ
Webサーバ
リクエスト
アーキテクチャ ver.2016
API通信
認証認可
API通信
ビジネスモデル
データストア
APIサーバ
認証サーバ
Webサーバ
今日はなすこと(前半)
API通信
認証認可
API通信
ビジネスモデル
データストア
APIサーバ
認証サーバ
Webサーバ
今日はなすこと(前半)
☁マイクロサービスのお話
– マイクロサービスってなに?
– なにがうれしいの?
– なにがかなしいの?
今日はなすこと(後半)
API通信
認証認可
API通信
ビジネスモデル
データストア
APIサーバ
認証サーバ
Webサーバ
今日はなすこと(後半)
☁技術選定のお話
– なぜLumenを選んだのか
– なぜVue.jsを選んだのか
各サービスの役割
ユーザ認証基盤データストア
エントリーポイント
サービス層
フロントエンドドメイン層
Microservices … ?
☁モノリシック(All in One)ではない
☁責務が単一な小さなサービス構成
☁単位はドメインでもサービスでもリソースでもい
い(と思ってる)
Microservices実現のためには?
☁サービス単位で構成をぶつぎりにする
☁I/Oの規約を決めておく
– 利用する側からはサービスの中身に関心がない
☁サービス毎で影響範囲を閉じておく
– 外部サービスに影響のある副作用を作らない
なにがうれしいか
☁サービスが疎結合
☁部分変更に強い
☁スケーラビリティが高い
なにがうれしいか
☁サービスが疎結合
☁部分変更に強い
☁スケーラビリティが高い
いともたやすく行われるえげつない仕様変更
ユーザ認証基盤データストア
エントリーポイント
サービス層
フロントエンドドメイン層
いともたやすく行われるえげつない仕様変更
ユーザ認証基盤データストア
エントリーポイント
サービス層
フロントエンドドメイン層
DynamoDBやだやだ><
RDSがいいもん><;
いともたやすく行われるえげつない仕様変更
ユーザ認証基盤データストア
エントリーポイント
サービス層
フロントエンドドメイン層
DynamoDBやだやだ><
RDSがいいもん><;
AWS < API変えたから
Ver.upよろwww
いともたやすく行われるえげつない仕様変更
ユーザ認証基盤データストア
エントリーポイント
サービス層
フロントエンドドメイン層
フロント層までの
I/Oに影響がないよう
変更を加えればよい
いともたやすく行われるえげつない仕様変更
ユーザ認証基盤データストア
エントリーポイント
サービス層
フロントエンドドメイン層
やってることは
認証・認可と
API通信のみ
いともたやすく行われるえげつない仕様変更
ユーザ認証基盤データストア
エントリーポイント
サービス層
フロントエンドドメイン層
この層の変更のみで
フロントから見た際の
動作を担保することが
可能に!
後半戦に行く前に
ちょっと水を飲みます
今日はなすこと(後半)
☁技術選定のお話
– なぜLumenを選んだのか
– なぜVue.jsを選んだのか
Lumen
Lumen
The stunningly fast
micro-framework
by Laravel.
なぜLumenを選んだか
☁LaravelほどFatなものは不必要
– APIサーバとしてルーティングさえできればなんでもよかった
☁Symfony/Silex飽きた
– 開発者なのに営業かけられたプロダクツで死ぬほどやった
☁流行ってる
– 情報量が多い / 流行っている理由があるはず
なぜLumenを選んだか
☁LaravelほどFatなものは不必要
– APIサーバとしてルーティングさえできればなんでもよかった
☁Symfony/Silex飽きた
– 開発者なのに営業かけられたプロダクツで死ぬほどやった
☁流行ってる
– 情報量が多い / 流行っている理由があるはず
必要十分こそが正義!
モチベ大事!
前ならえしてみる!
なぜLumenを選んだか
☁ARNとRoutingの相性がいい
☁Middlewareで認可
☁AWS SDK で Device Farm と通信
ルーティング
$app->group(['prefix' => 'project'], function () use ($app) {
$app->get('/', ProjectController::class . '@all');
$app->get('/{project}', ProjectController::class . '@get');
$app->put('/', ProjectController::class . '@create');
$app->post('/{project}', ProjectController::class . '@update');
$app->delete('/{project}', ProjectController::class . '@delete');
});
if (!$request->headers->has($this->token)) {
return response('Bad request.', 400, $headers);
}
try {
if ($this->auth()) {
$params = $next($request);
if ($params->getStatusCode() >= 400) {
throw new ¥Exception('It could not be processed.');
}
$response = response()->json($params, 200, $headers);
} else {
$response = response()->json(['Unauthorized.'], 401, $headers);
}
} catch (Exception $e) {
$response = response(‘[API ERROR]’ . $e->getCode(), $headers);
}
認可
コントローラ
public function get(Request $request, $project)
{
return $this->deviceFarmClient->getProject([
'arn' => $project,
])->toArray();
}
Vue.js
Vue.js
モダンなWebインター
フェース向けのリアク
ティブコンポーネント
なぜVue.jsを選んだか
☁スモールスタート
– 学習コストが低く、はじめやすい
☁エコシステムが発達
– Router(vue-router) / API通信(vue-resource)
– 公式サンプルも豊富
☁シンプル
– 周辺分野の知識が乏しくても戦える
なぜVue.jsを選んだか
まず「やる」ことで
感覚つかみやすい!
必要なときにちょっと
ずつ覚えていける!
やりたいことだけ
できる!
☁スモールスタート
– 学習コストが低く、はじめやすい
☁エコシステムが発達
– Router(vue-router) / API通信(vue-resource)
– 公式サンプルも豊富
☁シンプル
– 周辺分野の知識が乏しくても戦える
まとめ
Vue.js + Lumen
☁短期間(2ヶ月)で作るには最高の組み合わせ
– やりたいことを覚えていくだけで出来上がった感覚
☁モダンな感じに作ることができた
– 特にLumen内部のMiddlewareには助けられた
☁わかりやすい形でMicroservicesをスタートできた
– やりとり with 規約
モダンっぽい実装やってみて
☁Interfaceが決まってる <- 大事
–いつかくるver.upに耐えうる
☁I/O(JSON)だけ見てりゃいいからテスト楽ちん
–ぶっちゃけSeleniumとかのテストしたくない
☁わからないことだらけで毎日疑問と格闘
–セキュリティどうする?テストどうする?
Microservicesでつくった感想
☁Microservicesは前からあった(SOA的な)
–既存概念に新しい名前がついた
☁単一サービスだとまだ早かった?
–開発をすすめるにあたっては有用
☁結構便利な言葉
–おっ!モダンなワードやん!って思われる(経験則)
誰だったの?
☁高橋 慎一
– GitHub@shinichi-takahashi
– Twitter@takapyyy
☁ iret株式会社 cloudpack事業部
誰だったの?
一緒に
おもろいことを
したい人を
募集しています!
@東京 / @大阪 / @名古屋
ご清聴
ありがとう
ございました

More Related Content

What's hot

SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?Takuya Ueda
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送Google Cloud Platform - Japan
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
Machine learning CI/CD with OSS
Machine learning CI/CD with OSSMachine learning CI/CD with OSS
Machine learning CI/CD with OSSyusuke shibui
 
リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方Recruit Lifestyle Co., Ltd.
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜aha_oretama
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要Google Cloud Platform - Japan
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発日本マイクロソフト株式会社
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTT DATA Technology & Innovation
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 

What's hot (20)

SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
Machine learning CI/CD with OSS
Machine learning CI/CD with OSSMachine learning CI/CD with OSS
Machine learning CI/CD with OSS
 
リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方リクルートライフスタイル流!分析基盤との賢い付き合い方
リクルートライフスタイル流!分析基盤との賢い付き合い方
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 

Viewers also liked

PHP×コミニュケーションロボット
PHP×コミニュケーションロボットPHP×コミニュケーションロボット
PHP×コミニュケーションロボットNishida Kansuke
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016Hiroshi Tokumaru
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京Masayuki Abe
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320Shinichi Takahashi
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションHideo Kashioka
 
DDD patterns that were not in the book
DDD patterns that were not in the bookDDD patterns that were not in the book
DDD patterns that were not in the bookCyrille Martraire
 
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?人工知能と機械学習の違いって?
人工知能と機械学習の違いって?Shuyo Nakatani
 
事例から見るTwilio活用法
事例から見るTwilio活用法事例から見るTwilio活用法
事例から見るTwilio活用法Shinichi Takahashi
 
Let’s make elastic cms together!
Let’s make elastic cms together!Let’s make elastic cms together!
Let’s make elastic cms together!Shinichi Takahashi
 
AWS新サービス活用事例
AWS新サービス活用事例AWS新サービス活用事例
AWS新サービス活用事例Shinichi Takahashi
 
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」Kazuki Yamashita
 
ぼくがAthenaで死ぬまで
ぼくがAthenaで死ぬまでぼくがAthenaで死ぬまで
ぼくがAthenaで死ぬまでShinichi Takahashi
 
Tips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitionsTips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitionsDarius Barušauskas
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationAndrew Rota
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことSatoshi KOBAYASHI
 
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Masahiro Hidaka
 
FISTF World Cup portfolio
FISTF World Cup portfolioFISTF World Cup portfolio
FISTF World Cup portfolioAlan Collins
 
Mountain Valley Pipeline, Analysis of Environmental Issues
Mountain Valley Pipeline, Analysis of Environmental IssuesMountain Valley Pipeline, Analysis of Environmental Issues
Mountain Valley Pipeline, Analysis of Environmental IssuesJacqueline Tkac
 

Viewers also liked (20)

PHP×コミニュケーションロボット
PHP×コミニュケーションロボットPHP×コミニュケーションロボット
PHP×コミニュケーションロボット
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
 
DDD patterns that were not in the book
DDD patterns that were not in the bookDDD patterns that were not in the book
DDD patterns that were not in the book
 
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?人工知能と機械学習の違いって?
人工知能と機械学習の違いって?
 
事例から見るTwilio活用法
事例から見るTwilio活用法事例から見るTwilio活用法
事例から見るTwilio活用法
 
Let’s make elastic cms together!
Let’s make elastic cms together!Let’s make elastic cms together!
Let’s make elastic cms together!
 
AWS新サービス活用事例
AWS新サービス活用事例AWS新サービス活用事例
AWS新サービス活用事例
 
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
UIデザインとUXの超基礎「UI Design & UX for ENGINEER」
 
ぼくがAthenaで死ぬまで
ぼくがAthenaで死ぬまでぼくがAthenaで死ぬまで
ぼくがAthenaで死ぬまで
 
Tips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitionsTips and tricks to win kaggle data science competitions
Tips and tricks to win kaggle data science competitions
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP Application
 
アルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったことアルゴリズム取引のシステムを開発・運用してみて分かったこと
アルゴリズム取引のシステムを開発・運用してみて分かったこと
 
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略Androidアプリのストレージ戦略
Androidアプリのストレージ戦略
 
FISTF World Cup portfolio
FISTF World Cup portfolioFISTF World Cup portfolio
FISTF World Cup portfolio
 
Mountain Valley Pipeline, Analysis of Environmental Issues
Mountain Valley Pipeline, Analysis of Environmental IssuesMountain Valley Pipeline, Analysis of Environmental Issues
Mountain Valley Pipeline, Analysis of Environmental Issues
 

Similar to PHPerだってMicroservicesしたい!

Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知zaru sakuraba
 
楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa楽ちんユーザー認証付Spa
楽ちんユーザー認証付SpaTakahiro Tsuchiya
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編Masayuki KaToH
 
マイクロサービスのためのフレームワークGoaのご紹介
マイクロサービスのためのフレームワークGoaのご紹介マイクロサービスのためのフレームワークGoaのご紹介
マイクロサービスのためのフレームワークGoaのご紹介Kazuaki Shibue
 
The Fastest Possible Way to Develop an Interactive App
The Fastest Possible Way to Develop an Interactive AppThe Fastest Possible Way to Develop an Interactive App
The Fastest Possible Way to Develop an Interactive AppLINE Corporation
 
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみアメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみKazunari Hara
 
AWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンドAWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンド暁 三宅
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive ExtensionsYoshifumi Kawai
 
ブラウザのPerformance APIの話
ブラウザのPerformance APIの話ブラウザのPerformance APIの話
ブラウザのPerformance APIの話Hiroshi Kawada
 
Livlisのcakephp事例
Livlisのcakephp事例Livlisのcakephp事例
Livlisのcakephp事例Masahiro Saito
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチKazuya Sugimoto
 
【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについてkazuki matsumura
 
オレ流クラウドデザイン
オレ流クラウドデザインオレ流クラウドデザイン
オレ流クラウドデザインAtsushi Kojima
 
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有するkazuki matsumura
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API GatewayTakuro Sasaki
 
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015Naoki Yamada
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情Naoki Yamada
 
AWSとReactで始めるShopifyアプリ開発
AWSとReactで始めるShopifyアプリ開発AWSとReactで始めるShopifyアプリ開発
AWSとReactで始めるShopifyアプリ開発Takaaki Kurasawa
 

Similar to PHPerだってMicroservicesしたい! (20)

Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
 
マイクロサービスのためのフレームワークGoaのご紹介
マイクロサービスのためのフレームワークGoaのご紹介マイクロサービスのためのフレームワークGoaのご紹介
マイクロサービスのためのフレームワークGoaのご紹介
 
The Fastest Possible Way to Develop an Interactive App
The Fastest Possible Way to Develop an Interactive AppThe Fastest Possible Way to Develop an Interactive App
The Fastest Possible Way to Develop an Interactive App
 
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみアメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
 
AWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンドAWSで開発するサーバレスAPIバックエンド
AWSで開発するサーバレスAPIバックエンド
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive Extensions
 
ブラウザのPerformance APIの話
ブラウザのPerformance APIの話ブラウザのPerformance APIの話
ブラウザのPerformance APIの話
 
Livlisのcakephp事例
Livlisのcakephp事例Livlisのcakephp事例
Livlisのcakephp事例
 
React way at_eight
React way at_eightReact way at_eight
React way at_eight
 
What is Serverless?
What is Serverless?What is Serverless?
What is Serverless?
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
 
【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて
 
オレ流クラウドデザイン
オレ流クラウドデザインオレ流クラウドデザイン
オレ流クラウドデザイン
 
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する普段Reactを触ってる僕が Angularを触ってみた感想を共有する
普段Reactを触ってる僕が Angularを触ってみた感想を共有する
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
AWSとReactで始めるShopifyアプリ開発
AWSとReactで始めるShopifyアプリ開発AWSとReactで始めるShopifyアプリ開発
AWSとReactで始めるShopifyアプリ開発
 

More from Shinichi Takahashi

BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略
BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略
BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略Shinichi Takahashi
 
ここがつらいよ サーバーレス
ここがつらいよ サーバーレスここがつらいよ サーバーレス
ここがつらいよ サーバーレスShinichi Takahashi
 
20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status codeShinichi Takahashi
 
「関心事」と「責務」 の お話
「関心事」と「責務」 の お話「関心事」と「責務」 の お話
「関心事」と「責務」 の お話Shinichi Takahashi
 
PHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さPHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さShinichi Takahashi
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれからShinichi Takahashi
 
Symfonyコンポーネントで生まれ変わるEC-CUBE
Symfonyコンポーネントで生まれ変わるEC-CUBESymfonyコンポーネントで生まれ変わるEC-CUBE
Symfonyコンポーネントで生まれ変わるEC-CUBEShinichi Takahashi
 
難しいよね、コードレビュー
難しいよね、コードレビュー難しいよね、コードレビュー
難しいよね、コードレビューShinichi Takahashi
 

More from Shinichi Takahashi (13)

BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略
BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略
BIT VALLEY 2019 - クラウド時代のエンジニア生存戦略
 
(Un)ManagedBlockchain
(Un)ManagedBlockchain(Un)ManagedBlockchain
(Un)ManagedBlockchain
 
ここがつらいよ サーバーレス
ここがつらいよ サーバーレスここがつらいよ サーバーレス
ここがつらいよ サーバーレス
 
20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code
 
「関心事」と「責務」 の お話
「関心事」と「責務」 の お話「関心事」と「責務」 の お話
「関心事」と「責務」 の お話
 
PHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さPHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さ
 
♡PHPが恋しい話♡
♡PHPが恋しい話♡♡PHPが恋しい話♡
♡PHPが恋しい話♡
 
IoTの原点
IoTの原点IoTの原点
IoTの原点
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれから
 
EC-CUBE3プラグイン仕様
EC-CUBE3プラグイン仕様EC-CUBE3プラグイン仕様
EC-CUBE3プラグイン仕様
 
Symfonyコンポーネントで生まれ変わるEC-CUBE
Symfonyコンポーネントで生まれ変わるEC-CUBESymfonyコンポーネントで生まれ変わるEC-CUBE
Symfonyコンポーネントで生まれ変わるEC-CUBE
 
難しいよね、コードレビュー
難しいよね、コードレビュー難しいよね、コードレビュー
難しいよね、コードレビュー
 
日常に見るUI/UX
日常に見るUI/UX日常に見るUI/UX
日常に見るUI/UX
 

Recently uploaded

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Recently uploaded (9)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

PHPerだってMicroservicesしたい!