DMMグループの一番深くておもしろいトコロ。
テクノロジー

Oracle OpenWorld 2019 Report

DMMグループの一番深くておもしろいトコロ。

はじめに

こんにちは。インフラ部の後藤です。

私が所属するサーバインフラグループは、プログラム開発者と協力しながら各種ミドルウェアの運用を行うことで、サービスの安定・改善に日々努めています。

運用しているミドルウェアのうち、バックエンドに利用するRDBMSは主にMySQLを運用しております。
MySQLのInnoDBの安定したトランザクション機能とスレーブ複数台による冗長化構成は少ない人数でのRDMS運用を可能にしてくれました。

そんな日々のなか、少し前のことになりますが、他のECサイトの構成や、運用ノウハウ、さらに、最新のMySQL技術をキャッチアップして業務にフィードバックすることを目的として、2019/09/16-2019/09/19開催のOracle OpenWorld 2019に単身参加してきました。

画像

このイベントはOracle主催のカンファレンスで主にOracle Cloud, Oracle Database, Java, MySQLなどOracle社の多くのサービスに関するセッションと事例紹介を聞くことができました。
また、日々のDB運用に関する疑問や、今後のMySQL追加機能の要望を直接開発者に伝えることができる点でも、またとない機会でした。

基調講演を含め、MySQLに関連したセッションを4日間で多数拝聴してきましたが、なかでも印象に残ったセッションをご紹介いたします。

セッションの雰囲気

基調公演以外のセッションは40名ほどの部屋で行われていることもあり登壇者との距離が近く、質問がしやすい印象を受けました。

セッション中でも参加者からの質問は受け付けられ、議論が始まることもあります。
特にMySQL新機能に関するカスタマーからの要望はその場でしか聞けない貴重な情報です。
セッションで聞き漏らしても、期間中は開発者と直接対話できるイベントが別で行われるのでそれもこのカンファレンスへの参加をおすすめする大きな理由です。

State of the Dolphin

2018年4月にGAとなったMySQL 8.0ですが、現在の利用率は26%となりました。

InnoDB ClusterはMySQL Routerでのコネクションブローカー、MySQL Shellによる操作API、Group Replicationによる高い可用性から構成されています。
今まで利用者が独自に運用していたことが公式のツールでサポートされるようになりました。
これでDB利用者はDB運用の負荷が軽減され、今まで運用に割いていた時間をクエリチューニングや売上向上のデータ解析業務に使えるようになります。

特にMySQL Shellは開発エンジニアがコードベースでDBを操作するツールとして使えます。
InnoDB Cluster構成をなすことができるAPIセットも用意されており手動による煩雑な手順を踏むことなく、レプリケーション設定を従来より短時間で行うことができます。
実際に私も試しましたが、従来の1/3の時間でレプリケーション設定が終わりました。

また、noSQLとSQLの機能を併せ持つDocument StoreはRDBMSの堅牢性とnoSQLの柔軟性を兼ね備えており、noSQL環境から移行することで運用コストをMySQLに統一することができれば、DB運用負荷の軽減が期待できそうです。

 

Gen2 Cloud: Autonomous Infrastructure(基調講演)

 

他のクラウドベンダと比較してオラクルクラウドはユーザのエラーとデータロストを防止する責任があるという説明が印象に残りました。
利便性を考えつつも、セキュリティを第一に考えてクラウドを設計したそうです。
Oracle Cloud Gen2に関しては、時間貸しのやり方ではなく、使ったリソースのみ課金対象とする点をメリットとして挙げていました。
Azure、VMwareとの連携だけでなくリージョンの増設計画も発表され、勢いを感じます。 画像

www.youtube.com

MySQL Analytics Service

銀行、クレジットカード決済系会社と日本国内のECサイトでの事例が発表されました。
処理に数時間を必要としていたクエリが、その内容自体に大きな変更をすることなく 数秒まで改善される(!)という説明で開場からは驚きの声が上がっていました。
このベンチマークの結果は、正常にベンチマーク試験ができているのか不安になるレベルです。

MySQL Analytics ServicesはオンプレではなくOracle Cloud Infrastructure側にスレーブ環境の構築が必要ですが現在の環境に大きく影響を及ぼすことなくクエリによるデータ解析時間が短縮されることは魅力的でした。

MySQL 8.0 at Facebook

FacebookでMySQL8.0へのバージョンアップを進めた話です。

8.0へのアップデートはこのバージョンから備わったカラム追加の高速化や各ファンクションの利用が目的ということでした。

バージョンアップ方法としては5.6からデータを8.0にインポート、各種テスト、サービス登録まで自動オペレーションということでしたが、ここでは参加者からも頻繁に質問がされていました。

www.youtube.com

Group Replication: How I Stopped Worrying About Consistency and Focused on Building Apps

Group Replication追加時に既存nodeから自動でデータをクローンするClone Pluginが発表されました。
今までは個別に構築したスレーブサーバをGroup Replicationに都度投入していましたが
このPluginの利用によって環境構築の手間を削減することができるようになりました。
最新のMySQLバージョンを利用することで、構築・運用コストの軽減が期待できます。

また、InnoDB ClusterにデータのCommitを確定させるタイミングをユーザが設定できるようになりました。

データの永続性を担保するため、今まではアプリケーション側でトランザクションの種類を宣言していましたが、 アプリケーション側ではトランザクションを意識することなく、DB側の設定だけで各スレーブのCommitタイミングのコントロールができます。

最後に

すべて英語でのセッション参加でしたが事前に開発者の発信するブログ記事を読んでから参加したことで新機能についての理解をより深めることができました。

また、現地で知り合った他社のエンジニアとの交流は刺激的で、新しいバージョンのDBをサービスへ導入する時の   アプローチ方法などは非常に参考になりました。

今回のセッションで特に印象に残ったのは PerconaのCTOが登壇した「17 things developers should know about database」での「Shared Responsibility for Ultimate Success」という言葉です。
ミッションの成功にはDevとOpsの責任の共有が必要でメトリクスを元に互いが協力して効果の高い施策を取りましょうということです。

私たちもサービス障害を未然に防げるよう、問題をいち早くキャッチアップして改善対応を行い、DevとOpsが協力して安定したサービスをユーザに提供することを日々の運用で心がけていきたいと思います。

海外カンファレンス参加制度もあるDMMでは、Dev、Opsのエンジニアを募集中です。
ご興味のある方はお気軽にご連絡ください。

https://dmm-corp.com/recruit/

  • インフラ
  • イベント

シェア

関連する記事

関連する求人