はじめまして。VMware の伊藤です。Tanzu 製品のプラットフォームアーキテクトとして働いており、開発と運用双方の経験があります。この記事ではオンプレミスでもパブリッククラウド上でも利用できるマネージドデータベースである Tanzu SQL の Postgres Kubernetes 版の概要と利用方法を紹介します。 この記事の内容は以下の記事の内容を読んでいることを前提に書いています。また、利用しているバージョンは 1.2.0 となります。 Tanzu SQL for K8s Postgres の概要とインストール作業 Tanzu SQL for K8s はマネージドな運用手法を提供することで、データベースの管理負荷を減らします。ただし、単なる既存データベースの置換えとしての利用だけでなく、モダンなアプリケーションの開発にも適した使い方ができます。 以下にレガシーなアプリからモダンなアプリへ、データベースの利用法がどのように変化しているかを示す図を記載します。 従来ながら開発では、アプリケーションサーバーの機能がたくさん詰め込まれていることが多く、複雑なビジネスロジックが広範囲に渡るデータベース操作のコードを介して、データベースを利用します。機能が多いということは、それだけデータベースに書き込まれる情報も多岐にわたるということです。 マイクロサービスに代表されるモダンな開発手法では、このロジックの実装を役割ごとに「サービス(ミニアプリ)」として分離して連携させるという手法を使います。こうすることで個別機能の変更にたいする負担が減少するというメリットがあります。ただし、ロジックの分離に比べてデータの分離は難易度が高いです。そのため、図の中央のようにコードは分離したものの、データは集約されるという形態となることが多いです。 マイクロサービスをつきつめると、サービスごとのデータの依存性も減らしたほうがサービスの独立性が増すため、右の構成に持っていけるのであれば、そうすることが望ましいです。 この図のデータベースの運用を考えると、左と中央のデータベースは役割を多数持つため複雑です。一方、右のデータベースは数こそ多いものの1つ1つのデータベースの役割はシンプルとなります。右の構成をマネージドデータベースで実現すると、基礎的な操作しか求められず、その操作もマネージドな使い方でカバーできるため、運用が非常にシンプルとなります。 Tanzu SQL というよりマネージドデータベース論に話が脱線してしまったので、話を元に戻しましょう。Tanzu SQL はマネージドなデータベースの利用を以下の図のような形式で実現しています。 K8s のオペレーターや、Postgres の知識自体がないと難しい構成に見えるかもしれませんが、Tanzu SQL の利用者としてやることは2つだけです。 K8s 的にデータベースを管理運用する 作成したデータベースを K8s 内で利用したり、K8s の外部に公開する オペレーターレベルであれば K8s の知識なしに機械的に利用可能ですが、状態チェックなどをするには K8s の知識があることが望ましいです。たとえばこの記事の作成時に「極小のクラスターで展開したため、リソース不足で Pod の展開が Pending 状態になっていた。問題解決のためにスケールアップ操作(ノード数の増加)でリソース追加した」ということが発生しましたが、そういった状況の確認は … 続き
The post Tanzu SQL for K8s Postgres を使ったマネージドなデータベースの利用方法 appeared first on VMware Japan Blog.