SlideShare a Scribd company logo
1 of 59
© 2023 NTT DATA Group Corporation
© 2023 NTT DATA Group Corporation
PostgreSQL on Kubernetes:
Realizing High Availability with PGO
Aug. 30th, 2023 at Postgres Ibiza 2023
Shinya Kato
NTT DATA Group Corporation
© 2023 NTT DATA Group Corporation 2
About me
• Shinya Kato @ShinyaKato_
• NTT DATA Group Corporation
• Jobs
• Research & development about PostgreSQL
• PostgreSQL support
• Sometimes development in PostgreSQL community
© 2023 NTT DATA Group Corporation 3
About this talk
• Presentation slide is available on SlideShare
• https://www.slideshare.net/nttdata-tech
• Presentation slide was prepared on Aug. 10th, 2023
• May not be up-to-date
© 2023 NTT DATA Group Corporation 4
Topics
PostgreSQL Operator
Basic features of PGO
Configuration about high availability
Backup/Restore
Disaster recovery
Encountered challenges
Summary
© 2023 NTT DATA Group Corporation 5
01
PostgreSQL Operator
© 2023 NTT DATA Group Corporation 6
Tasks of DBA
Setting up HA cluster
Monitoring metrics and logs
Managing backups
© 2023 NTT DATA Group Corporation 7
What is PostgreSQL Operator?
• Such a PostgreSQL environment can be easily realized
• Features vary depending on PostgreSQL Operators
Backup
Metrics Logging
PostgreSQL
HA
PostgreSQL PostgreSQL
HA
Setup/
Monitoring
User
© 2023 NTT DATA Group Corporation 8
Popular PostgreSQL Operators
PGO postgres-
operator
CloudNative
PG
StackGres
Main development
company
Crunchy Data Zalando EnterpriseDB OnGres
Latest version 5.4.1 1.10.0 1.20.2 1.5.0
License Apache 2.0 MIT Apache 2.0 AGPLv3
Stars 3,372 3,469 1,650 636 (GitHub)
90 (GitLab)
Implementation Go Go Go Java
© 2023 NTT DATA Group Corporation 9
02
Basic features of PGO
© 2023 NTT DATA Group Corporation 10
PGO
• Developed and provided as OSS by Crunchy Data
• Several PostgreSQL core developers belong
• One of the most popular PostgreSQL Operator
• 3,372 stars on GitHub
• Supports PostgreSQL 11~15
© 2023 NTT DATA Group Corporation 11
Architecture
• PGO consists of multiple software
Client
PgBouncer
PVC AWS GCP Azure
Connection pooling
Monitoring
postgres-
exporter
Patroni
pgBackRest
postgres-
exporter
Patroni
pgBackRest
postgres-
exporter
Patroni
pgBackRest
Backup
HA
© 2023 NTT DATA Group Corporation 12
Architecture
• PGO consists of multiple software
Client
PgBouncer
PVC AWS GCP Azure
Connection pooling
Monitoring
postgres-
exporter
Patroni
pgBackRest
postgres-
exporter
Patroni
pgBackRest
postgres-
exporter
Patroni
pgBackRest
Backup
HA
© 2023 NTT DATA Group Corporation 13
Version
• Version used in this talk
• Kubernetes 1.26
• PGO 5.4.0
© 2023 NTT DATA Group Corporation 14
Install PGO
• Use examples from Cruchy Data GitHub
• https://github.com/CrunchyData/postgres-operator-examples
$ git clone https://github.com/CrunchyData/postgres-operator-examples.git
$ cd postgres-operator-examples
$ git checkout 9a3b808
$ kubectl apply -k kustomize/install/namespace
$ kubectl apply --server-side -k kustomize/install/default
$ kubectl get pods -n postgres-operator
NAME READY STATUS RESTARTS AGE
pgo-7574d677f7-jbpl5 1/1 Running 0 15s
PGO 5.4.0 commit hash
© 2023 NTT DATA Group Corporation 15
Create PostgreSQL Cluster
• Use examples from Cruchy Data GitHub
$ kubectl apply --server-side -k kustomize/postgres
$ kubectl get postgrescluster -n postgres-operator
NAME AGE
hippo 71s
$ kubectl get pods -n postgres-operator -l postgres-
operator.crunchydata.com/instance-set=instance1
NAME READY STATUS RESTARTS AGE
hippo-instance1-pdcg-0 4/4 Running 0 75s
PostgreSQL cluster named “hippo” is created
© 2023 NTT DATA Group Corporation 16
Change the Number of Replicas
• Set the number of replicas in the manifest
spec:
image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-
15.3-2
postgresVersion: 15
instances:
- name: instance1
replicas: 3
dataVolumeClaimSpec:
© 2023 NTT DATA Group Corporation 17
Change the Number of Replicas
• Apply the manifest
$ kubectl apply --server-side -k kustomize/postgres
$ kubectl get pods -n postgres-operator -l postgres-
operator.crunchydata.com/instance-set=instance1
NAME READY STATUS RESTARTS AGE
hippo-instance1-pdcg-0 4/4 Running 0 80s
hippo-instance1-6rqk-0 4/4 Running 0 18s
hippo-instance1-l5sk-0 4/4 Running 0 18s
3 PostgreSQL Pods started
© 2023 NTT DATA Group Corporation 18
Failover
• Automatically restarts a Pod when it goes down
DEMO
© 2023 NTT DATA Group Corporation 19
Rolling Update
• Change to new image tag and apply
DEMO
© 2023 NTT DATA Group Corporation 20
03
Configuration about high
availability
© 2023 NTT DATA Group Corporation 21
Patroni
• Software for high availability PostgreSQL
DCS
DCS
DCS
Get status
GET /leader
Primary
Get status
Standby
Get status
Standby
© 2023 NTT DATA Group Corporation 22
Patroni
• Software for high availability PostgreSQL
DCS
DCS
DCS
Get status
GET /leader
Primary
Get status
Standby
Get status
Standby
TABLE pg_stat_replication
SELECT pg_current_wal_lsn()
SELECT pg_last_wal_replay_lsn()
SHOW synchronous_commit
SELECT pg_stat_get_wal_receiver()
SELECT pg_last_wal_receive_lsn()
SELECT pg_is_wal_replay_paused()
© 2023 NTT DATA Group Corporation 23
Patroni
• Software for high availability PostgreSQL
DCS
DCS
DCS
Get status
GET /leader
Primary
Get status
Standby
Get status
Standby
Stored
- Leader
- Members
- Config
© 2023 NTT DATA Group Corporation 24
Patroni Configuration
• PGO uses Patroni to realize high availability
• Patroni configurations are able to set in the manifest
• synchronous_mode
• loop_wait
• ttl
• master_start_timeout
• etc.
© 2023 NTT DATA Group Corporation 25
synchronous_mode
• In default, Patroni uses async replication.
• If synchronous_mode is on, one node is sync replication
2 node:
Primary and sync standby
3 node:
Primary, sync standby, and async standby
Primary Sync standby Primary
Sync standby
Async standby
Streaming
Replication
Streaming
Replication
© 2023 NTT DATA Group Corporation 26
loop_wait and ttl
• loop_wait:The interval between status and DCS checks
• ttl: The TTL to acquire the leader lock
DCS
DCS
DCS
Get status
GET /leader
Primary
Get status
Standby
Get status
Standby
Default is to check every 10 seconds.
By default, the leader lock
expires in 30 seconds.
© 2023 NTT DATA Group Corporation 27
loop_wait and ttl
• loop_wait:The interval between status and DCS checks
• ttl: The TTL to acquire the leader lock
DCS
DCS
DCS
Get status
GET /leader
Primary
Get status
Standby
Get status
Standby
crash
Leader is not updated
If the leader hasn’t been updated
after the TTL time has passed,
the leader lock has been expired
© 2023 NTT DATA Group Corporation 28
loop_wait and ttl
• loop_wait:The interval between status and DCS checks
• ttl: The TTL to acquire the leader lock
DCS
DCS
DCS
Get status
GET /leader
Primary
Get status
Standby
Get status
Standby
crash
New leader has been elected
© 2023 NTT DATA Group Corporation 29
master_start_timeout
• The time allowed for primary recovery before failover
DCS
DCS
DCS
Get status
GET /leader
Primary
Get status
Standby
Get status
Standby
Default is to wait 300 seconds for recovery.
In the worst case, failover takes
master_start_timeout + 2 * loop_wait seconds
© 2023 NTT DATA Group Corporation 30
Setting in the manifest
• My settings
spec:
patroni:
dynamicConfiguration:
synchronous_mode: true # Default is false
master_start_timeout: 0 # Default is 300
leaderLeaseDurationSeconds: 30 # Default value
syncPeriodSeconds: 10 # Default value
Note that in PGO, loop_wait and ttl are converted to
syncPeriodSeconds and leaderLeaseDurationSeconds, respectively.
© 2023 NTT DATA Group Corporation 31
Kubernetes Configuration
• Distribute PostgreSQL Pods to the appropriate worker nodes
using two functions
• Node Affinity
• Topology Spread Constraints
© 2023 NTT DATA Group Corporation 32
Node Affinity
• Assign PostgreSQL Pods to specific worker nodes
• High-performance SSD
• High-speed network
Worker for PostgreSQL Worker for application servers
Assign Pods
© 2023 NTT DATA Group Corporation 33
Node Affinity
• Labeling worker nodes
$ kubectl label nodes kind-worker diskType=ssd
$ kubectl label nodes kind-worker2 diskType=ssd
$ kubectl label nodes kind-worker3 diskType=ssd
$ kubectl label nodes kind-worker4 diskType=hdd
$ kubectl get nodes --show-labels
NAME STATUS LABELS
kind-control-plane Ready ...
kind-worker Ready diskType=ssd,...
kind-worker2 Ready diskType=ssd,...
kind-worker3 Ready diskType=ssd,...
kind-worker4 Ready diskType=hdd,...
diskType=ssd diskType=ssd diskType=ssd diskType=hdd
Worker 1 Worker 2 Worker 3 Worker 4
© 2023 NTT DATA Group Corporation 34
Node Affinity
• Configure in the manifest
spec:
instances:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: diskType
operator: In
values:
- ssd
Assign to a worker
with diskType=ssd
© 2023 NTT DATA Group Corporation 35
Node Affinity
• Apply the manifest
$ kubectl apply --server-side -k kustomize/postgres
$ kubectl get pods -n postgres-operator -l postgres-
operator.crunchydata.com/instance-set=instance1 -o wide
NAME READY STATUS NODE
hippo-instance1-j4rd-0 4/4 Running kind-worker
hippo-instance1-jqz5-0 4/4 Running kind-worker
hippo-instance1-pslx-0 4/4 Running kind-worker2
Not assigned to worker 4
© 2023 NTT DATA Group Corporation 36
Topology Spread Constraints
• Pods can be distributed by region/zone/node
• Ensure availability in region/zone/node failure
Not distributed
AvailabilityZone A
Distributed
AvailabilityZone A
AvailabilityZone B
Running in
AvailabilityZone B
© 2023 NTT DATA Group Corporation 37
Topology Spread Constraints
• Labeling nodes
$ kubectl label nodes kind-worker availabilityZone=A
$ kubectl label nodes kind-worker2 availabilityZone=B
$ kubectl label nodes kind-worker3 availabilityZone=C
$ kubectl get nodes --show-labels
NAME STATUS LABELS
kind-control-plane Ready ...
kind-worker Ready availabilityZone=A,...
kind-worker2 Ready availabilityZone=B,...
kind-worker3 Ready availabilityZone=C,...
availabilityZone=A
Worker 1 Worker 2
availabilityZone=B
Worker 3
availabilityZone=C
© 2023 NTT DATA Group Corporation 38
• Configure in the manifest
spec:
instances:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: availabilityZone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
postgres-operator.crunchydata.com/instance-set: instance
postgres-operator.crunchydata.com/cluster: hippo
Topology Spread Constraints
Distributed in availabilityZone
Not assigned if not satisfiable
Specify the label of pods to be assigned
© 2023 NTT DATA Group Corporation 39
Topology Spread Constraints
• Apply the manifest
$ kubectl apply --server-side -k kustomize/postgres
$ kubectl get pods -n postgres-operator -l postgres-
operator.crunchydata.com/instance-set=instance1 -o wide
NAME READY STATUS NODE
hippo-instance1-bzkw-0 4/4 Running kind-worker3
hippo-instance1-cmkl-0 4/4 Running kind-worker
hippo-instance1-m82d-0 4/4 Running kind-worker2
Distributed to worker 1, 2, and 3
© 2023 NTT DATA Group Corporation 40
04
Backup/Restore
© 2023 NTT DATA Group Corporation 41
pgBackRest
• Multi-functional backup tool for PostgreSQL
pgBackRest
Backup Server
pgBackRest
Backups
WAL
archives
Backups
WAL
archives
Backup
PostgreSQL #1
pgBackRest
PostgreSQL #2 PostgreSQL #1 PostgreSQL #2
© 2023 NTT DATA Group Corporation 42
pgBackRest Configuration
backups:
pgbackrest:
image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.45-2
repos:
- name: repo1
schedules:
full: "0 15 * * *"
s3:
bucket: pgo-auto-backups
endpoint: s3.ap-northeast-1.amazonaws.com
region: ap-northeast-1
- name: repo2
gcs:
bucket: pgo-manual-backups
configuration:
- secret:
name: pgo-s3-creds
- secret:
name: pgo-gcs-creds
global:
repo1-retention-full: "30"
manual:
repoName: repo2
Multiple repositories
Retention policy
Manual backups
Backup type/
Backup scheduling
Secret to store authentication for s3 and gcs
© 2023 NTT DATA Group Corporation 43
Multiple Repositories
• Stored on several (up to 4) different storages
pgBackRest
Amazon Simple Storage
Service (Amazon S3)
s ts
ob
pgBackRest
p
pgBackRest
Start up manually or
at scheduled times
①
②
© 2023 NTT DATA Group Corporation 44
Backup type/Backup scheduling
• 3 backup types
• full
• differential
• incremental
• Backup scheduling
• cron-formatted string
backups:
pgbackrest:
repos:
- name: repo1
schedules:
full: "0 1 * * 0"
differential:"0 1 * * 1-6"
Weekly full backup at 1am on Sundays.
Daily differential backups at 1am, except Sundays.
© 2023 NTT DATA Group Corporation 45
Retention policy
• There are two different types of backup retention you can set
backups:
pgbackrest:
global:
repo1-retention-full: "30"
repo1-retention-full-type: count # Default
backups:
pgbackrest:
global:
repo1-retention-full: "30"
repo1-retention-full-type: time
Retain 30 full backups
Retain full backups for 30 days
© 2023 NTT DATA Group Corporation 46
Manual backups
• Configure in the manifest
• Execute kubectl annotate command to trigger manual backup
backups:
pgbackrest:
manual:
repoName: repo2
options :
- --type=full
$ kubectl annotate -n postgres-operator postgrescluster hippo ¥
postgres-operator.crunchydata.com/pgbackrest-backup="$(date)"
© 2023 NTT DATA Group Corporation 47
Manual backups
DEMO
© 2023 NTT DATA Group Corporation 48
Restore
• Clone a PostgreSQL cluster
• Perform a point-in-time-recovery (PITR)
• Perform an in-place point-in-time-recovery (PITR)
• Restore individual databases
© 2023 NTT DATA Group Corporation 49
05
Disaster Recovery
© 2023 NTT DATA Group Corporation 50
Standby Cluster
• Consists only of standbys on another Kubernetes cluster
• Sync methods with Primary are repo-based and/or streaming
Primary
Standby Standby Standby
AWS, Azure, GCP
Kubernetes cluster #1 Kubernetes cluster #2
repo-based
streaming
spec:
standby:
enabled: true
© 2023 NTT DATA Group Corporation 51
Standby Cluster
• Consists only of standbys on another Kubernetes cluster
• Sync methods with Primary are repo-based and/or streaming
Primary
Standby Standby
Primary
Standby
AWS, Azure, GCP
Kubernetes cluster #1 Kubernetes cluster #2
repo-based
streaming
spec:
standby:
enabled: false
© 2023 NTT DATA Group Corporation 52
06
Encountered Challenges
© 2023 NTT DATA Group Corporation 53
Missing WAL Archive
• Missing WAL because PGO always set archive_mode=on
• cannot set archive_mode=always
01
Primary Standby
WAL archive
02 03 04
05 06 07
06
07
WALs waiting for transfer
Replication
06
07
© 2023 NTT DATA Group Corporation 54
Missing WAL Archive
• Missing WAL because PGO set archive_mode=on
• cannot set archive_mode=always
01
Primary New primary
WAL archive
02 03 04
05 06 07 08
Failover
06
07
Missing WAL
08
Resume transfer from WAL 08
© 2023 NTT DATA Group Corporation 55
Forced to Use pg_rewind
• Patroni has a parameter use_pg_rewind
• Control how to recover standby after failover
• PGO forces use_pg_rewind to on
• Sometimes pg_rewind fails and standby cannot be recovered
• Manual handling is required
© 2023 NTT DATA Group Corporation 56
07
Summary
© 2023 NTT DATA Group Corporation 57
Summary
• Introduced what PostgreSQL Operator is
• Explained how to realize high availability with PGO
• Introduced encountered challenges
© 2023 NTT DATA Group Corporation 58
References
• https://access.crunchydata.com/documentation/postgres-operator/latest
• https://access.crunchydata.com/documentation/postgres-operator/latest/architecture/high-availability
• https://access.crunchydata.com/documentation/postgres-operator/latest/architecture/backups
• https://access.crunchydata.com/documentation/postgres-operator/latest/architecture/disaster-recovery
• https://github.com/CrunchyData/postgres-operator
• https://github.com/CrunchyData/postgres-operator-examples
• https://patroni.readthedocs.io/en/latest/
• https://pgbackrest.org/
• https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/
• https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
All other company or product names mentioned here in are
trademarks or registered trademarks of their respective owners.

More Related Content

What's hot

PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化kazuhcurry
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionAlexander Kukushkin
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Payloads in Solr - Erik Hatcher, Lucidworks
Payloads in Solr - Erik Hatcher, LucidworksPayloads in Solr - Erik Hatcher, Lucidworks
Payloads in Solr - Erik Hatcher, LucidworksLucidworks
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)NTT DATA Technology & Innovation
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Payloads in Solr - Erik Hatcher, Lucidworks
Payloads in Solr - Erik Hatcher, LucidworksPayloads in Solr - Erik Hatcher, Lucidworks
Payloads in Solr - Erik Hatcher, Lucidworks
 
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Similar to PostgreSQL on Kubernetes: Realizing High Availability with PGO

What's coming in Airflow 2.0? - NYC Apache Airflow Meetup
What's coming in Airflow 2.0? - NYC Apache Airflow MeetupWhat's coming in Airflow 2.0? - NYC Apache Airflow Meetup
What's coming in Airflow 2.0? - NYC Apache Airflow MeetupKaxil Naik
 
Time series denver an introduction to prometheus
Time series denver   an introduction to prometheusTime series denver   an introduction to prometheus
Time series denver an introduction to prometheusBob Cotton
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSVMware Tanzu
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSCarlos Andrés García
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringSveta Smirnova
 
MongoDB Backups and PITR
MongoDB Backups and PITRMongoDB Backups and PITR
MongoDB Backups and PITRIgor Donchovski
 
How to use postgresql.conf to configure and tune the PostgreSQL server
How to use postgresql.conf to configure and tune the PostgreSQL serverHow to use postgresql.conf to configure and tune the PostgreSQL server
How to use postgresql.conf to configure and tune the PostgreSQL serverEDB
 
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...NETWAYS
 
Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Cloudera, Inc.
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesJonathan Katz
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltStack
 
Bdc from bare metal to k8s
Bdc   from bare metal to k8sBdc   from bare metal to k8s
Bdc from bare metal to k8sChris Adkin
 
Elasticsearch on Kubernetes
Elasticsearch on KubernetesElasticsearch on Kubernetes
Elasticsearch on KubernetesJoerg Henning
 
Part 4 Maximizing the utilization of GPU resources on-premise and in the cloud
Part 4  Maximizing the utilization of GPU resources on-premise and in the cloudPart 4  Maximizing the utilization of GPU resources on-premise and in the cloud
Part 4 Maximizing the utilization of GPU resources on-premise and in the cloudUniva, an Altair Company
 
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...Puppet
 
The ultimate Kubernetes Deployment Checklist - Infra to Microservices
The ultimate Kubernetes Deployment Checklist - Infra to MicroservicesThe ultimate Kubernetes Deployment Checklist - Infra to Microservices
The ultimate Kubernetes Deployment Checklist - Infra to MicroservicesPrakarsh -
 
Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...
 Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra... Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...
Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...HostedbyConfluent
 

Similar to PostgreSQL on Kubernetes: Realizing High Availability with PGO (20)

What's coming in Airflow 2.0? - NYC Apache Airflow Meetup
What's coming in Airflow 2.0? - NYC Apache Airflow MeetupWhat's coming in Airflow 2.0? - NYC Apache Airflow Meetup
What's coming in Airflow 2.0? - NYC Apache Airflow Meetup
 
Time series denver an introduction to prometheus
Time series denver   an introduction to prometheusTime series denver   an introduction to prometheus
Time series denver an introduction to prometheus
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
 
MongoDB Backups and PITR
MongoDB Backups and PITRMongoDB Backups and PITR
MongoDB Backups and PITR
 
How to use postgresql.conf to configure and tune the PostgreSQL server
How to use postgresql.conf to configure and tune the PostgreSQL serverHow to use postgresql.conf to configure and tune the PostgreSQL server
How to use postgresql.conf to configure and tune the PostgreSQL server
 
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
 
kubernetes practice
kubernetes practicekubernetes practice
kubernetes practice
 
Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive


 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
 
Apache cassandra v4.0
Apache cassandra v4.0Apache cassandra v4.0
Apache cassandra v4.0
 
Backups
BackupsBackups
Backups
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
 
Bdc from bare metal to k8s
Bdc   from bare metal to k8sBdc   from bare metal to k8s
Bdc from bare metal to k8s
 
Elasticsearch on Kubernetes
Elasticsearch on KubernetesElasticsearch on Kubernetes
Elasticsearch on Kubernetes
 
Part 4 Maximizing the utilization of GPU resources on-premise and in the cloud
Part 4  Maximizing the utilization of GPU resources on-premise and in the cloudPart 4  Maximizing the utilization of GPU resources on-premise and in the cloud
Part 4 Maximizing the utilization of GPU resources on-premise and in the cloud
 
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
PuppetConf 2016: An Introduction to Measuring and Tuning PE Performance – Cha...
 
The ultimate Kubernetes Deployment Checklist - Infra to Microservices
The ultimate Kubernetes Deployment Checklist - Infra to MicroservicesThe ultimate Kubernetes Deployment Checklist - Infra to Microservices
The ultimate Kubernetes Deployment Checklist - Infra to Microservices
 
Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...
 Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra... Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...
Disaster Recovery Options Running Apache Kafka in Kubernetes with Rema Subra...
 

More from NTT DATA Technology & Innovation

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)NTT DATA Technology & Innovation
 
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
どうする計画駆動型スクラム(スクラムフェス大阪2023 発表資料)
 
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
YugabyteDBの拡張機能(YugabyteDB Meetup #2 発表資料)
 

Recently uploaded

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

PostgreSQL on Kubernetes: Realizing High Availability with PGO

  • 1. © 2023 NTT DATA Group Corporation © 2023 NTT DATA Group Corporation PostgreSQL on Kubernetes: Realizing High Availability with PGO Aug. 30th, 2023 at Postgres Ibiza 2023 Shinya Kato NTT DATA Group Corporation
  • 2. © 2023 NTT DATA Group Corporation 2 About me • Shinya Kato @ShinyaKato_ • NTT DATA Group Corporation • Jobs • Research & development about PostgreSQL • PostgreSQL support • Sometimes development in PostgreSQL community
  • 3. © 2023 NTT DATA Group Corporation 3 About this talk • Presentation slide is available on SlideShare • https://www.slideshare.net/nttdata-tech • Presentation slide was prepared on Aug. 10th, 2023 • May not be up-to-date
  • 4. © 2023 NTT DATA Group Corporation 4 Topics PostgreSQL Operator Basic features of PGO Configuration about high availability Backup/Restore Disaster recovery Encountered challenges Summary
  • 5. © 2023 NTT DATA Group Corporation 5 01 PostgreSQL Operator
  • 6. © 2023 NTT DATA Group Corporation 6 Tasks of DBA Setting up HA cluster Monitoring metrics and logs Managing backups
  • 7. © 2023 NTT DATA Group Corporation 7 What is PostgreSQL Operator? • Such a PostgreSQL environment can be easily realized • Features vary depending on PostgreSQL Operators Backup Metrics Logging PostgreSQL HA PostgreSQL PostgreSQL HA Setup/ Monitoring User
  • 8. © 2023 NTT DATA Group Corporation 8 Popular PostgreSQL Operators PGO postgres- operator CloudNative PG StackGres Main development company Crunchy Data Zalando EnterpriseDB OnGres Latest version 5.4.1 1.10.0 1.20.2 1.5.0 License Apache 2.0 MIT Apache 2.0 AGPLv3 Stars 3,372 3,469 1,650 636 (GitHub) 90 (GitLab) Implementation Go Go Go Java
  • 9. © 2023 NTT DATA Group Corporation 9 02 Basic features of PGO
  • 10. © 2023 NTT DATA Group Corporation 10 PGO • Developed and provided as OSS by Crunchy Data • Several PostgreSQL core developers belong • One of the most popular PostgreSQL Operator • 3,372 stars on GitHub • Supports PostgreSQL 11~15
  • 11. © 2023 NTT DATA Group Corporation 11 Architecture • PGO consists of multiple software Client PgBouncer PVC AWS GCP Azure Connection pooling Monitoring postgres- exporter Patroni pgBackRest postgres- exporter Patroni pgBackRest postgres- exporter Patroni pgBackRest Backup HA
  • 12. © 2023 NTT DATA Group Corporation 12 Architecture • PGO consists of multiple software Client PgBouncer PVC AWS GCP Azure Connection pooling Monitoring postgres- exporter Patroni pgBackRest postgres- exporter Patroni pgBackRest postgres- exporter Patroni pgBackRest Backup HA
  • 13. © 2023 NTT DATA Group Corporation 13 Version • Version used in this talk • Kubernetes 1.26 • PGO 5.4.0
  • 14. © 2023 NTT DATA Group Corporation 14 Install PGO • Use examples from Cruchy Data GitHub • https://github.com/CrunchyData/postgres-operator-examples $ git clone https://github.com/CrunchyData/postgres-operator-examples.git $ cd postgres-operator-examples $ git checkout 9a3b808 $ kubectl apply -k kustomize/install/namespace $ kubectl apply --server-side -k kustomize/install/default $ kubectl get pods -n postgres-operator NAME READY STATUS RESTARTS AGE pgo-7574d677f7-jbpl5 1/1 Running 0 15s PGO 5.4.0 commit hash
  • 15. © 2023 NTT DATA Group Corporation 15 Create PostgreSQL Cluster • Use examples from Cruchy Data GitHub $ kubectl apply --server-side -k kustomize/postgres $ kubectl get postgrescluster -n postgres-operator NAME AGE hippo 71s $ kubectl get pods -n postgres-operator -l postgres- operator.crunchydata.com/instance-set=instance1 NAME READY STATUS RESTARTS AGE hippo-instance1-pdcg-0 4/4 Running 0 75s PostgreSQL cluster named “hippo” is created
  • 16. © 2023 NTT DATA Group Corporation 16 Change the Number of Replicas • Set the number of replicas in the manifest spec: image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8- 15.3-2 postgresVersion: 15 instances: - name: instance1 replicas: 3 dataVolumeClaimSpec:
  • 17. © 2023 NTT DATA Group Corporation 17 Change the Number of Replicas • Apply the manifest $ kubectl apply --server-side -k kustomize/postgres $ kubectl get pods -n postgres-operator -l postgres- operator.crunchydata.com/instance-set=instance1 NAME READY STATUS RESTARTS AGE hippo-instance1-pdcg-0 4/4 Running 0 80s hippo-instance1-6rqk-0 4/4 Running 0 18s hippo-instance1-l5sk-0 4/4 Running 0 18s 3 PostgreSQL Pods started
  • 18. © 2023 NTT DATA Group Corporation 18 Failover • Automatically restarts a Pod when it goes down DEMO
  • 19. © 2023 NTT DATA Group Corporation 19 Rolling Update • Change to new image tag and apply DEMO
  • 20. © 2023 NTT DATA Group Corporation 20 03 Configuration about high availability
  • 21. © 2023 NTT DATA Group Corporation 21 Patroni • Software for high availability PostgreSQL DCS DCS DCS Get status GET /leader Primary Get status Standby Get status Standby
  • 22. © 2023 NTT DATA Group Corporation 22 Patroni • Software for high availability PostgreSQL DCS DCS DCS Get status GET /leader Primary Get status Standby Get status Standby TABLE pg_stat_replication SELECT pg_current_wal_lsn() SELECT pg_last_wal_replay_lsn() SHOW synchronous_commit SELECT pg_stat_get_wal_receiver() SELECT pg_last_wal_receive_lsn() SELECT pg_is_wal_replay_paused()
  • 23. © 2023 NTT DATA Group Corporation 23 Patroni • Software for high availability PostgreSQL DCS DCS DCS Get status GET /leader Primary Get status Standby Get status Standby Stored - Leader - Members - Config
  • 24. © 2023 NTT DATA Group Corporation 24 Patroni Configuration • PGO uses Patroni to realize high availability • Patroni configurations are able to set in the manifest • synchronous_mode • loop_wait • ttl • master_start_timeout • etc.
  • 25. © 2023 NTT DATA Group Corporation 25 synchronous_mode • In default, Patroni uses async replication. • If synchronous_mode is on, one node is sync replication 2 node: Primary and sync standby 3 node: Primary, sync standby, and async standby Primary Sync standby Primary Sync standby Async standby Streaming Replication Streaming Replication
  • 26. © 2023 NTT DATA Group Corporation 26 loop_wait and ttl • loop_wait:The interval between status and DCS checks • ttl: The TTL to acquire the leader lock DCS DCS DCS Get status GET /leader Primary Get status Standby Get status Standby Default is to check every 10 seconds. By default, the leader lock expires in 30 seconds.
  • 27. © 2023 NTT DATA Group Corporation 27 loop_wait and ttl • loop_wait:The interval between status and DCS checks • ttl: The TTL to acquire the leader lock DCS DCS DCS Get status GET /leader Primary Get status Standby Get status Standby crash Leader is not updated If the leader hasn’t been updated after the TTL time has passed, the leader lock has been expired
  • 28. © 2023 NTT DATA Group Corporation 28 loop_wait and ttl • loop_wait:The interval between status and DCS checks • ttl: The TTL to acquire the leader lock DCS DCS DCS Get status GET /leader Primary Get status Standby Get status Standby crash New leader has been elected
  • 29. © 2023 NTT DATA Group Corporation 29 master_start_timeout • The time allowed for primary recovery before failover DCS DCS DCS Get status GET /leader Primary Get status Standby Get status Standby Default is to wait 300 seconds for recovery. In the worst case, failover takes master_start_timeout + 2 * loop_wait seconds
  • 30. © 2023 NTT DATA Group Corporation 30 Setting in the manifest • My settings spec: patroni: dynamicConfiguration: synchronous_mode: true # Default is false master_start_timeout: 0 # Default is 300 leaderLeaseDurationSeconds: 30 # Default value syncPeriodSeconds: 10 # Default value Note that in PGO, loop_wait and ttl are converted to syncPeriodSeconds and leaderLeaseDurationSeconds, respectively.
  • 31. © 2023 NTT DATA Group Corporation 31 Kubernetes Configuration • Distribute PostgreSQL Pods to the appropriate worker nodes using two functions • Node Affinity • Topology Spread Constraints
  • 32. © 2023 NTT DATA Group Corporation 32 Node Affinity • Assign PostgreSQL Pods to specific worker nodes • High-performance SSD • High-speed network Worker for PostgreSQL Worker for application servers Assign Pods
  • 33. © 2023 NTT DATA Group Corporation 33 Node Affinity • Labeling worker nodes $ kubectl label nodes kind-worker diskType=ssd $ kubectl label nodes kind-worker2 diskType=ssd $ kubectl label nodes kind-worker3 diskType=ssd $ kubectl label nodes kind-worker4 diskType=hdd $ kubectl get nodes --show-labels NAME STATUS LABELS kind-control-plane Ready ... kind-worker Ready diskType=ssd,... kind-worker2 Ready diskType=ssd,... kind-worker3 Ready diskType=ssd,... kind-worker4 Ready diskType=hdd,... diskType=ssd diskType=ssd diskType=ssd diskType=hdd Worker 1 Worker 2 Worker 3 Worker 4
  • 34. © 2023 NTT DATA Group Corporation 34 Node Affinity • Configure in the manifest spec: instances: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: diskType operator: In values: - ssd Assign to a worker with diskType=ssd
  • 35. © 2023 NTT DATA Group Corporation 35 Node Affinity • Apply the manifest $ kubectl apply --server-side -k kustomize/postgres $ kubectl get pods -n postgres-operator -l postgres- operator.crunchydata.com/instance-set=instance1 -o wide NAME READY STATUS NODE hippo-instance1-j4rd-0 4/4 Running kind-worker hippo-instance1-jqz5-0 4/4 Running kind-worker hippo-instance1-pslx-0 4/4 Running kind-worker2 Not assigned to worker 4
  • 36. © 2023 NTT DATA Group Corporation 36 Topology Spread Constraints • Pods can be distributed by region/zone/node • Ensure availability in region/zone/node failure Not distributed AvailabilityZone A Distributed AvailabilityZone A AvailabilityZone B Running in AvailabilityZone B
  • 37. © 2023 NTT DATA Group Corporation 37 Topology Spread Constraints • Labeling nodes $ kubectl label nodes kind-worker availabilityZone=A $ kubectl label nodes kind-worker2 availabilityZone=B $ kubectl label nodes kind-worker3 availabilityZone=C $ kubectl get nodes --show-labels NAME STATUS LABELS kind-control-plane Ready ... kind-worker Ready availabilityZone=A,... kind-worker2 Ready availabilityZone=B,... kind-worker3 Ready availabilityZone=C,... availabilityZone=A Worker 1 Worker 2 availabilityZone=B Worker 3 availabilityZone=C
  • 38. © 2023 NTT DATA Group Corporation 38 • Configure in the manifest spec: instances: topologySpreadConstraints: - maxSkew: 1 topologyKey: availabilityZone whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: postgres-operator.crunchydata.com/instance-set: instance postgres-operator.crunchydata.com/cluster: hippo Topology Spread Constraints Distributed in availabilityZone Not assigned if not satisfiable Specify the label of pods to be assigned
  • 39. © 2023 NTT DATA Group Corporation 39 Topology Spread Constraints • Apply the manifest $ kubectl apply --server-side -k kustomize/postgres $ kubectl get pods -n postgres-operator -l postgres- operator.crunchydata.com/instance-set=instance1 -o wide NAME READY STATUS NODE hippo-instance1-bzkw-0 4/4 Running kind-worker3 hippo-instance1-cmkl-0 4/4 Running kind-worker hippo-instance1-m82d-0 4/4 Running kind-worker2 Distributed to worker 1, 2, and 3
  • 40. © 2023 NTT DATA Group Corporation 40 04 Backup/Restore
  • 41. © 2023 NTT DATA Group Corporation 41 pgBackRest • Multi-functional backup tool for PostgreSQL pgBackRest Backup Server pgBackRest Backups WAL archives Backups WAL archives Backup PostgreSQL #1 pgBackRest PostgreSQL #2 PostgreSQL #1 PostgreSQL #2
  • 42. © 2023 NTT DATA Group Corporation 42 pgBackRest Configuration backups: pgbackrest: image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.45-2 repos: - name: repo1 schedules: full: "0 15 * * *" s3: bucket: pgo-auto-backups endpoint: s3.ap-northeast-1.amazonaws.com region: ap-northeast-1 - name: repo2 gcs: bucket: pgo-manual-backups configuration: - secret: name: pgo-s3-creds - secret: name: pgo-gcs-creds global: repo1-retention-full: "30" manual: repoName: repo2 Multiple repositories Retention policy Manual backups Backup type/ Backup scheduling Secret to store authentication for s3 and gcs
  • 43. © 2023 NTT DATA Group Corporation 43 Multiple Repositories • Stored on several (up to 4) different storages pgBackRest Amazon Simple Storage Service (Amazon S3) s ts ob pgBackRest p pgBackRest Start up manually or at scheduled times ① ②
  • 44. © 2023 NTT DATA Group Corporation 44 Backup type/Backup scheduling • 3 backup types • full • differential • incremental • Backup scheduling • cron-formatted string backups: pgbackrest: repos: - name: repo1 schedules: full: "0 1 * * 0" differential:"0 1 * * 1-6" Weekly full backup at 1am on Sundays. Daily differential backups at 1am, except Sundays.
  • 45. © 2023 NTT DATA Group Corporation 45 Retention policy • There are two different types of backup retention you can set backups: pgbackrest: global: repo1-retention-full: "30" repo1-retention-full-type: count # Default backups: pgbackrest: global: repo1-retention-full: "30" repo1-retention-full-type: time Retain 30 full backups Retain full backups for 30 days
  • 46. © 2023 NTT DATA Group Corporation 46 Manual backups • Configure in the manifest • Execute kubectl annotate command to trigger manual backup backups: pgbackrest: manual: repoName: repo2 options : - --type=full $ kubectl annotate -n postgres-operator postgrescluster hippo ¥ postgres-operator.crunchydata.com/pgbackrest-backup="$(date)"
  • 47. © 2023 NTT DATA Group Corporation 47 Manual backups DEMO
  • 48. © 2023 NTT DATA Group Corporation 48 Restore • Clone a PostgreSQL cluster • Perform a point-in-time-recovery (PITR) • Perform an in-place point-in-time-recovery (PITR) • Restore individual databases
  • 49. © 2023 NTT DATA Group Corporation 49 05 Disaster Recovery
  • 50. © 2023 NTT DATA Group Corporation 50 Standby Cluster • Consists only of standbys on another Kubernetes cluster • Sync methods with Primary are repo-based and/or streaming Primary Standby Standby Standby AWS, Azure, GCP Kubernetes cluster #1 Kubernetes cluster #2 repo-based streaming spec: standby: enabled: true
  • 51. © 2023 NTT DATA Group Corporation 51 Standby Cluster • Consists only of standbys on another Kubernetes cluster • Sync methods with Primary are repo-based and/or streaming Primary Standby Standby Primary Standby AWS, Azure, GCP Kubernetes cluster #1 Kubernetes cluster #2 repo-based streaming spec: standby: enabled: false
  • 52. © 2023 NTT DATA Group Corporation 52 06 Encountered Challenges
  • 53. © 2023 NTT DATA Group Corporation 53 Missing WAL Archive • Missing WAL because PGO always set archive_mode=on • cannot set archive_mode=always 01 Primary Standby WAL archive 02 03 04 05 06 07 06 07 WALs waiting for transfer Replication 06 07
  • 54. © 2023 NTT DATA Group Corporation 54 Missing WAL Archive • Missing WAL because PGO set archive_mode=on • cannot set archive_mode=always 01 Primary New primary WAL archive 02 03 04 05 06 07 08 Failover 06 07 Missing WAL 08 Resume transfer from WAL 08
  • 55. © 2023 NTT DATA Group Corporation 55 Forced to Use pg_rewind • Patroni has a parameter use_pg_rewind • Control how to recover standby after failover • PGO forces use_pg_rewind to on • Sometimes pg_rewind fails and standby cannot be recovered • Manual handling is required
  • 56. © 2023 NTT DATA Group Corporation 56 07 Summary
  • 57. © 2023 NTT DATA Group Corporation 57 Summary • Introduced what PostgreSQL Operator is • Explained how to realize high availability with PGO • Introduced encountered challenges
  • 58. © 2023 NTT DATA Group Corporation 58 References • https://access.crunchydata.com/documentation/postgres-operator/latest • https://access.crunchydata.com/documentation/postgres-operator/latest/architecture/high-availability • https://access.crunchydata.com/documentation/postgres-operator/latest/architecture/backups • https://access.crunchydata.com/documentation/postgres-operator/latest/architecture/disaster-recovery • https://github.com/CrunchyData/postgres-operator • https://github.com/CrunchyData/postgres-operator-examples • https://patroni.readthedocs.io/en/latest/ • https://pgbackrest.org/ • https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/ • https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
  • 59. All other company or product names mentioned here in are trademarks or registered trademarks of their respective owners.