Tumgik
#エクステンショ��テーブル
oom-killer · 7 years
Text
2017/03/13-20
*DeNAの「WELQ」の恐るべき運営実態・記事作成マニュアル・ブラッシュアッププロジェクトなどがわかる300ページ突破のすごい調査報告書がダウンロード可能に http://gigazine.net/news/20170313-dena-welq/ >Googleの検索結果で上位に出るようになった結果、どのような対策を施したかも >203ページ目に書かれており、これらGoogle対策を「ブラッシュアッププロジェ >クト」と呼んでいたそうです。
*3000もの技術者面接で分かったこと http://gigazine.net/news/20170313-lesson-from-3000-technical-interview/ >分析の結果、面接担当者が重要視していたのはオンライン学習講座の >「Udacity、コーセラの受講経験」「一流企業で働いた経験」「一流大学卒」 >の3つに偏っており、特にオンラインの技術系講座で有名なUdacity、コーセ >ラを受けたことがあるかどうかが注目されているようです。
*AWS×PHPでの 高信頼かつハイパフォーマンスなシステム https://developers.cyberagent.co.jp/blog/archives/5125/ >ボイきらは2016年11月15日にリリースした女性向けリズムゲームです。 >事前登録は24万人を突破し、リリース後はAppleStoreの無料ランキングで >1位を獲得しました。サービスの運用で特徴的なのはリリースが約2ヶ月で >以下の5種類の新イベントを計11回も開催していることです。
>一方でシステムの停止時間はメンテナンス時間の6時間とシステム障害の >10分で合計6時間10分で、サービスの稼働率は約99.5%です。
>クライアントのアセットやマスターデータ、Webviewなどの静的なコンテ >ンツは全てCDNから配信を行っています。これによって負荷の分散やレス >ポンス時間の向上を図っています。
>Redisはシングルスレッドで動作するため、CPUのコア数が増えてもパフォ >ーマンスの向上が見込めません。リクエストが増加した時などに設定ファ >イルの修正のみで簡単にスケールアウト出来るような実装をしています。
>ボイきらではシャーディングを行っていません。シャーディングはDBの書き >込みの負荷分散には有効な手段ですがデメリットもあります。たとえば >ユーザIDを使用しない検索を行いたい場合に最大で分割数回のクエリを >発行する必要が発生します。一般的にシャーディングするテーブルとしない >テーブルでDBを分けることで上記のケースが発生しにくくすることが可能 >ですが、XAトランザクションの実装などが必要になります。Auroraの >スケールアップで書き込みの性能も線形的に増加する特性を考慮し、 >シャーディングを行う必要がないと判断しました。その代わりに読み込みは >すべてReaderを使用することで、Writerの負荷分散を行っています。
>フルスタックなフレームワークを使用すると相当数なファイルの読み込みと >コンパイルが発生するのでこれもパフォーマンスの低下の大きな要因になります。 > >ボイきらではAPCuとOPcacheを使用することで上記の課題に対処しています。
>APCuとはPHP内に共有メモリをもつためのモジュールです。
>RedisではなくAPCuを使用した経緯としては、負荷試験で両者を比較した >結果APCuのほうが20%ほどスループットが高かった点、各APIサーバに >Redisを立てるとその分の監視などの運用コストが増える点などを考慮 >したためです。
>RDSはミラーリング方式のためMultiAZを行うとパフォーマンスが劣化 >します。一方でAuroraはQuorum方式で全ての書き込みが完了する前に >レスポンスを返却するためMultiAZ配置してもパフォーマンスの劣化が >少ないです。 > >またRDSは別MultiAZで作成したインスタンスをリードレプリカとして >使用することが出来ません。一方でAuroraはMultiAZで作成したインス >タンスをリードレプリカとして使用することが可能です。 > >またレプリ遅延に関してもRDSは負荷に応じて数秒単位まで増加するの >に対して、Auroraは概ね20ミリ秒です(ボイきらでは)。 > >さらにAuroraにはReaderのエンドポイントが存在するため、フェイル >オーバー時のエンドポイントの更新などの仕組みをアプリエンジニアが >実装する必要がありません。
>以上の特徴からAuroraでMultiAZ構成で使用する場合は、待機系をリード >レプリカとして使用することが推奨されます。しかし遅延を考慮した実装 >がされていないと、以下の状況の時にデータ不整合が発生する可能性が >あります。
>PHPはC言語で記述したライブラリを拡張ライブラリ(以降エクステンショ >ン)として指定することが可能です。C言語で実装されたエクステンショ >ンはPHPよりも高速に動作するため、多くのMySQLやRedisのライブラリは >C言語で書かれています。
>Zephirの登場によって、PHPライクな構文で記述したソースをC言語に変換 >してエクステンションを作成することが可能になり、エクステンションの >作成が容易になりました。
>上記の結果からPHP7を使用できる環境ではZephirを使用しても高速化は >あまり期待出来ないことが分かります。
*コミュニティテンプレート Vuls の利用とTips http://blog.idcf.jp/entry/idcf-vuls2 >Vulsは、OSSの脆弱性検知ツールです。Githubで公開されています。
>Vulsは開発速度が速く、日によっては毎日PullRequestやMargeがされて >います。これは、脆弱性検知精度向上や 新たな対応OSの追加などのため >です。( 先日、RaspberryPi用のRasbianがサポートOSに加わりました! )
0 notes