SlideShare a Scribd company logo
1 of 56
… and where do you plan to be in the future?
Where are you now in your
Cloud Native journey with
Kubernetes?
How do you “feel” about using
Kubernetes for both stateless
applications and database
workloads with PostgreSQL?
Cloud Native
PostgreSQL
Gabriele Bartolini
Webinar
3 March 2021
Version 1.1.0
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
4
Introducing Gabriele Bartolini
• Based in Prato (Tuscany, Italy)
• PostgreSQL user since ~2000
• Community member since 2006
• Co-founder of PostgreSQL Europe
• 2ndQuadrant, from 2008 to 2020
• Co-founder
• Head of Global Support
• Cloud Native Initiative Lead
• Founding member of Barman
• Now with EDB
Kubernetes Patterns, Ibryam and Huß, O’Reilly
(about Cloud Native)
“Principles, Patterns, Tools to automate
containerized microservices at scale”
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
6
Agenda page
• General information
• Architectures
• Operator capabilities
• Configuration
• Storage for Postgres workloads in Kubernetes
• Conclusions
General
information
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
8
The largest dedicated PostgreSQL company
• More customers: Than any dedicated PostgreSQL company
• More experts: Leading PostgreSQL contributors
• More innovation: Positioned to lead in enterprise PostgreSQL
and hybrid cloud
EDB acquires 2ndQuadrant in Sept 2020
+
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
9
EDB and Kubernetes
• Kubernetes Certified Service Provider (KCSP)
• First PostgreSQL Company to reach this status
• Silver Member of CNCF & Linux Foundation
• Red Hat Certified Kubernetes Operators
• Cloud Native PostgreSQL (aka PostgreSQL Operator)
• Cloud Native BDR (aka BDR Operator)
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
10
Cloud Native Postgres and BDR
EDB products in Cloud Native
• Operators for Kubernetes
• Written in Go language, like Kubernetes
• Designed for Kubernetes
• Fully integrated with Kubernetes API server
• No requirements for tools designed for traditional contexts
• Repmgr, Patroni, Stolon, Failover Manager
• Immutable application containers for:
• PostgreSQL 10+ or EDB Postgres Advanced 10+
• BDR (3.6 on EDB Postgres Extended in Q1/2021)
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
11
What’s a Kubernetes operator?
• A Kubernetes operator automates actions of a human being, in a programmatic way
• A PostgreSQL cluster is a complex application
• Deployment and configuration
• Failure detection and Failover
• Updates and switchovers
• Backup and Recovery
• Relies on Kubernetes’ native components and capabilities:
• Self-healing, high availability, scalability, resource control, access, …
• Declarative and fully automated
Extends Kubernetes controller and defines how a complex application works
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
12
Imperative vs Declarative
Imperative Declarative
• Create a PostgreSQL 13 instance
• Configure for replication
• Clone a second one
• Set it as a replica
• Clone a third one
• Set it as a replica
There’s a PostgreSQL 13 cluster with 2
replicas
(At any time)
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
13
States in Kubernetes
• Definition of the desired state of an object and the overall infrastructure as configuration
• Reconciliation loops:
• Current state of the infrastructure matches the desired one
• If not, the operator reacts to restore the desired state
• Foundation of self-healing
The role of the Kubernetes controller
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
14
Desired state Actual state
RW RW
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
15
Cloud Native PostgreSQL is aka CNP
Cloud Native PostgreSQL in a nutshell
• Operator for Kubernetes
• Written in Go Language, like
Kubernetes
• Implements Primary/Standby
architecture
• Works with both:
• PostgreSQL 10+
• EDB Postgres Advanced 10+
• Container images are hosted on Quay.io
• Generally Available (BIS EAR)
• EDB Limited Use License
• Documentation
• docs.enterprisedb.io
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
16
Container images
All Container images are based on RedHat UBI 8
• Operator Container image
• EDB Limited Use License
• Operand Container images (Postgres Application)
• PostgreSQL:
• The Postgres License (PostgreSQL)
• GNU GPL 3 (Barman Cloud)
• EDB Postgres Advanced Server:
• EDB Limited Use License
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
17
Target Cloud environments
• Private Cloud (self-managed):
• Kubernetes 1.16+
• OpenShift 4.5+
• Public Cloud (provider-managed):
• Microsoft Azure (AKS) - 2021/Q1
• Amazon Web Services (EKS) - 2021/Q2
• Google Cloud (GKS) - 2021/Q2
• Hybrid Cloud and Multicloud
Run Postgres wherever Kubernetes runs
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
18
Designed for Kubernetes
• Fully integrated with Kubernetes API server
• No external tool required
• Repmgr, Patroni, Stolon
• Immutable Application Containers
• Running PostgreSQL only
• Very light
• Declarative configuration
• Relies on “kubectl” - official Kubernetes client command line tool
• YAML manifest
• Infrastructure as Code (IaC)
Architectures
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
20
System architectures
Main classification is based on where the application reside
Use case 1: Application and Database in K8s Use case 2: Application outside K8s
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
21
Application and Database in K8s
• Stateless application as a deployment
• Rolling upgrades
• ReplicaSet for scaling and HA
• Custom application images (Go,
Django, Java, Python, C, C++, …)
• Stateful database using our operator
• Embeds primary/standby logic
• Service for RW and Read operations
• Rolling upgrades, scaling, HA, …
• “Cluster” CRD
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
22
PostgreSQL cluster architecture
• One PostgreSQL primary
• Zero or more hot standby servers
• PostgreSQL native streaming replication
• Async (default) and Sync (quorum-based)
• Required for HA
• Transparent support for pg_rewind
• Provides apps with two K8s Services:
• -rw suffix (read-write workloads)
• -r suffix (read-only workloads)
• -ro suffix (read-only workloads - in 1.1.0)
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
23
Read-write workloads (“-rw” service)
Kubernetes service for the PostgreSQL Primary
App App App
PostgreSQL
Primary
PostgreSQL
Standby
PostgreSQL
Standby
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
24
Read workloads (“-r” service)
Kubernetes service for the PostgreSQL Read-Only operations
App App App
PostgreSQL
Primary
PostgreSQL
Standby
PostgreSQL
Standby
Round Robin
Operator
Capabilities
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
26
The “Operator Capability Levels” Framework
Defined by Operator SDK (RedHat) - source sdk.operatorframework.io/docs/
CNP users can currently expect "Level III - Full Lifecycle"
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
27
Cluster management
• Self-healing capabilities
• Probes for liveness and readiness
• Failover of the primary
• Automated creation of a replica
• Planned switchover of the primary
• Promotion of a selected replica
• Rolling updates
• Scale up/down capabilities
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
28
Storage management
• Support for Persistent Volume Claims (PVC)
• Automatic generation of PVC
• Support for PVC templates
• Reuse of storage for Pods in the same cluster
• Storage classes
• Freedom of choice
• Local storage
• Network storage
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
29
Rolling updates
• Update of a deployment with zero downtime
• Incremental update of Pod instances with new ones
• Standby servers are updated first
• Then the primary, following a switchover
• supervised / unsupervised
• When they are triggered:
• Update of the operator
• Minor update of PostgreSQL
• Configuration changes when restart is required
• Reason why we did not use replicasets or statefulsets
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
30
Security
• 4C security model
• Cloud, Cluster, Container, Code
• Pod Security Policies and Security Contexts
• No privileged (root) mode required for containers
• No privileged (root) mode for volume access
• TLS encrypted connections
• Creation of PostgreSQL secrets
• Static code analysis
• Linters and Coverity Scan
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
31
About TLS (ex-SSL) support
• Native and fully automated
• Certification authority for the Operator
• Certification authority for each Postgres cluster
• TLS connections enabled by default
• Client authentication based on TLS certificates
• “kubectl cnp” plugin to issue client certificates
• Out of the box for standby streaming replication
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
32
Continuous physical backup
• Scheduled and on-demand
• Initial support for object stores (S3 compatible)
• Public clouds
• Private clouds (e.g. MinIO)
• Rely on Barman Cloud technology
• barman-cloud-wal-archive
• barman-cloud-backup
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
33
Recovery
• Create a new cluster from a backup
• Restore the base backup
• Full or PITR
• Pull and replay backup WAL files
• Rely on Barman Cloud technology
• barman-cloud-restore
• barman-cloud-wal-restore
Configuration
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
35
Custom Resource Definition (CRD)
• “Cluster” resource
• Extends the Kubernetes controller
• Responsible for the deployment
• “instances” parameter
• number of PostgreSQL instances in the cluster
• hot standby replicas = instances - 1
• Supports Async and Sync replication for RPO=0
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
36
Convention over configuration
apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: myapp-db
spec:
instances: 3
imageName: quay.io/enterprisedb/postgresql:13.2
storage:
size: 10Gi
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
37
Declarative deployment
# Install the operator in the cluster
kubectl apply -f <OPERATOR_MANIFEST_URL>
# Deploy the cluster (declarative)
kubectl apply -f myapp-cluster.yaml
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
38
PostgreSQL configuration
Refer to “PostgreSQL configuration” for details
apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: cluster-example
spec:
instances: 3
postgresql:
parameters:
work_mem: "8MB"
# …
# ...
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
39
Synchronous replication
apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: cluster-example
spec:
instances: 3
minSyncReplicas: 1
maxSyncReplicas: 2
storage:
size: 1Gi
Refer to “Streaming replication overview” for details
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
40
Plugin for kubectl
kubectl cnp status cluster-example
Cluster in healthy state
Name: cluster-example
Namespace: default
PostgreSQL Image: quay.io/enterprisedb/postgresql:13
Primary instance: cluster-example-1
Instances: 3
Ready instances: 3
Instances status
Pod name Current LSN Received LSN Replay LSN System ID Primary Replicating Replay paused Pending restart
-------- ----------- ------------ ---------- --------- ------- ----------- ------------- ---------------
cluster-example-1 0/6000060 6927251808674721812 ✓ ✗ ✗ ✗
cluster-example-2 0/6000060 0/6000060 6927251808674721812 ✗ ✓ ✗ ✗
cluster-example-3 0/6000060 0/6000060 6927251808674721812 ✗ ✓ ✗ ✗
Refer to “Streaming replication overview” for details
Storage for Postgres
workloads in
Kubernetes
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
42
Required capabilities
Expected capabilities:
• Availability
• Scalability
• Performance
• Consistency
• Durability
Storage is critical in database contexts
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
43
Storage architectures in Kubernetes (simplified)
Network storage Local storage
• Access via network
• The K8s pattern
• Storage location options:
• Outside K8s (e.g. NFS)
• Inside K8s (e.g. Portworx)
• Data replication options:
• File level (K8s way)
• Application level (Postgres way)
• Cons: throughput and latency
• Direct access to the OS storage
• Local to the K8s node of the Pod
• What database people want
• The K8s anti-pattern
• Shared nothing architecture
• K8s is changing:
• “local” persistent volumes (1.14+)
• OpenEBS Local PV, topoLVM, …
• Cons: scalability
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
44
Storage outside K8s with Postgres replication
Not recommended for
Cloud Native Postgres
Common setup
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
45
Local storage with Postgres replication
Recommended for
Cloud Native Postgres
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
46
Shared-nothing architecture
What database people want
• Rely on dedicated storage of the K8s node
• On-board disks, dedicated DAS or NAS
• High-Performing Network is the only share
• Better resilience of a PostgreSQL cluster
• Postgres instances spread over multiple K8s nodes
• Also in different availability zones of the same region
• Pod uses local storage from the K8s nodes it runs on
• Consider latency with applications
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
47
Local storage benchmarks
Our team pioneered local storage use case in K8s
• Public benchmarks, released in May 2020
• Goal: publish an updated version as EDB
• Bare metal
• bonnie++ from OS on directly attached storage
• Kubernetes
• Local storage: OpenEBS Local PV using hostpath
• Network storage: OpenEBS cStor via iSCSI
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
48
Local storage benchmarks scenario
• Kubernetes 1.18 cluster:
• Dedicated rackspace
• 3 Kubernetes master nodes
• 4 Kubernetes worker nodes:
• 16 cores - 128GB of RAM
• OS volume: 2x 240 GB SSD, HW RAID 1 (BBU cache)
• App data volume: 2x 3.84 TB SSD, HW RAID 1 (BBU cache)
• High performing dedicated private network
• Dual 10Gb/s NICs in bonding
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
49
Storage Benchmarks Results
Workload Disks (manufacturer spec) Bare metal OpenEBS Local
(Persistent)
OpenEBS cStor (Pool)
Sequential
reads
Up to 550MB/s 1000MB/s 964MB/s
(-3.6%)
54MB/s
(-96.4%)
Sequential
writes
Up to 530MB/s 500MB/s 496MB/s
(-0.8%)
54MB/s
(-89.2%)
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
50
PostgreSQL benchmarks
• Cloud Native PostgreSQL
• Using pgbench
• OLTP like benchmarks results:
• 4.2k tps on bare metal
• 3.8k tps on K8s with OpenEBS Local PV (-10%)
• See the diagram on the right
• 500 tps on K8s with OpenEBS cStor
• Comparable to typical scenarios
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
51
A new frontier
• Performance on local storage close to bare metal
• Minimal impact of containers
• We used OpenEBS LocalPV
• Kubernetes is investing in local storage scenarios
• Get the best of the two worlds:
• Cloud Native and Kubernetes benefits
• Workloads business continuity
• High performance
• When needed by some PostgreSQL database workloads (VLDB)
Conclusions
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
53
There’s more coming …
• Observability
• Monitoring with a native
Prometheus exporter (Q1/2021)
• Logging (Fluentbit/Fluentd)
• Pooling
• pgBouncer support
• Replica cluster
• PostgreSQL online upgrades
• Major versions via logical
replication
• Backup
• Barman operator
• Snapshots
• Kubernetes Federation
• Multi-cluster Kubernetes
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
54
Evaluate it now!
Operator with PostgreSQL Operator with EDB Postgres Advanced
• No trial license key required
• No reconciliation attempt after 30d
• From the creation of each Postgres
cluster
• A trial license key is required
• Expiry date = 60d from license request
• No reconciliation attempt after expiry date
Start at docs.enterprisedb.io
© Copyright EnterpriseDB Corporation, 2021. All rights reserved.
55
Why Cloud Native PostgreSQL?
• PostgreSQL/Kubernetes
• Applications co-exist in the same system
• PostgreSQL databases are applications (workloads)
• Business Continuity
• PostgreSQL cluster is always up
• Auto pilot mode
• Complexity for HA is entirely hidden
• Services are the only interface for Applications
• Focus on applications and velocity
• Retain full control of your data
Q & A

More Related Content

What's hot

PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep InternalEXEM
 
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...DoKC
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...OpenStack Korea Community
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisorChing-Hsuan Yen
 
MariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB plc
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonIgor Anishchenko
 
Capacity Planning Your Kafka Cluster | Jason Bell, Digitalis
Capacity Planning Your Kafka Cluster | Jason Bell, DigitalisCapacity Planning Your Kafka Cluster | Jason Bell, Digitalis
Capacity Planning Your Kafka Cluster | Jason Bell, DigitalisHostedbyConfluent
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionAlexander Kukushkin
 
Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)Julian Hyde
 
Patroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyPatroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyAlexander Kukushkin
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
Ceph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Community
 
Zookeeper Architecture
Zookeeper ArchitectureZookeeper Architecture
Zookeeper ArchitecturePrasad Wali
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Henning Jacobs
 
No data loss pipeline with apache kafka
No data loss pipeline with apache kafkaNo data loss pipeline with apache kafka
No data loss pipeline with apache kafkaJiangjie Qin
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
VictoriaLogs: Open Source Log Management System - Preview
VictoriaLogs: Open Source Log Management System - PreviewVictoriaLogs: Open Source Log Management System - Preview
VictoriaLogs: Open Source Log Management System - PreviewVictoriaMetrics
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 

What's hot (20)

PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
 
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
[OpenInfra Days Korea 2018] Day 2 - CEPH 운영자를 위한 Object Storage Performance T...
 
Secure container: Kata container and gVisor
Secure container: Kata container and gVisorSecure container: Kata container and gVisor
Secure container: Kata container and gVisor
 
MariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & OptimizationMariaDB Server Performance Tuning & Optimization
MariaDB Server Performance Tuning & Optimization
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased ComparisonThrift vs Protocol Buffers vs Avro - Biased Comparison
Thrift vs Protocol Buffers vs Avro - Biased Comparison
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Capacity Planning Your Kafka Cluster | Jason Bell, Digitalis
Capacity Planning Your Kafka Cluster | Jason Bell, DigitalisCapacity Planning Your Kafka Cluster | Jason Bell, Digitalis
Capacity Planning Your Kafka Cluster | Jason Bell, Digitalis
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
 
Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)Apache Calcite (a tutorial given at BOSS '21)
Apache Calcite (a tutorial given at BOSS '21)
 
Patroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easyPatroni - HA PostgreSQL made easy
Patroni - HA PostgreSQL made easy
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Ceph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking ToolCeph Tech Talk -- Ceph Benchmarking Tool
Ceph Tech Talk -- Ceph Benchmarking Tool
 
Zookeeper Architecture
Zookeeper ArchitectureZookeeper Architecture
Zookeeper Architecture
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
No data loss pipeline with apache kafka
No data loss pipeline with apache kafkaNo data loss pipeline with apache kafka
No data loss pipeline with apache kafka
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
VictoriaLogs: Open Source Log Management System - Preview
VictoriaLogs: Open Source Log Management System - PreviewVictoriaLogs: Open Source Log Management System - Preview
VictoriaLogs: Open Source Log Management System - Preview
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 

Similar to Cloud Native PostgreSQL

Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJCloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJEDB
 
Which PostgreSQL is right for your multi cloud strategy? P2
Which PostgreSQL is right for your multi cloud strategy? P2Which PostgreSQL is right for your multi cloud strategy? P2
Which PostgreSQL is right for your multi cloud strategy? P2Ashnikbiz
 
DevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataDevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataMarketingArrowECS_CZ
 
Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Jonathan Katz
 
An Introduction to Using PostgreSQL with Docker & Kubernetes
An Introduction to Using PostgreSQL with Docker & KubernetesAn Introduction to Using PostgreSQL with Docker & Kubernetes
An Introduction to Using PostgreSQL with Docker & KubernetesJonathan Katz
 
Hybrid cloud openstack meetup
Hybrid cloud openstack meetupHybrid cloud openstack meetup
Hybrid cloud openstack meetupdfilppi
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsKublr
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Krishna-Kumar
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna KumarCodeOps Technologies LLP
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...DataWorks Summit
 
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Vietnam Open Infrastructure User Group
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes InternalsShimi Bandiel
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesJuarez Junior
 
Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...DataWorks Summit
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesJuarez Junior
 
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...Indrajit Poddar
 
Automating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with AnsibleAutomating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with AnsibleEDB
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13EDB
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 

Similar to Cloud Native PostgreSQL (20)

Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJCloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJ
 
Which PostgreSQL is right for your multi cloud strategy? P2
Which PostgreSQL is right for your multi cloud strategy? P2Which PostgreSQL is right for your multi cloud strategy? P2
Which PostgreSQL is right for your multi cloud strategy? P2
 
DevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on ExadataDevOps Supercharged with Docker on Exadata
DevOps Supercharged with Docker on Exadata
 
Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018
 
An Introduction to Using PostgreSQL with Docker & Kubernetes
An Introduction to Using PostgreSQL with Docker & KubernetesAn Introduction to Using PostgreSQL with Docker & Kubernetes
An Introduction to Using PostgreSQL with Docker & Kubernetes
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Hybrid cloud openstack meetup
Hybrid cloud openstack meetupHybrid cloud openstack meetup
Hybrid cloud openstack meetup
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container Operations
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
 
Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...Why Kubernetes as a container orchestrator is a right choice for running spar...
Why Kubernetes as a container orchestrator is a right choice for running spar...
 
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes Internals
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
 
Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...Running secured Spark job in Kubernetes compute cluster and integrating with ...
Running secured Spark job in Kubernetes compute cluster and integrating with ...
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for Databases
 
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
Enabling Cognitive Workloads on the Cloud: GPUs with Mesos, Docker and Marath...
 
Automating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with AnsibleAutomating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with Ansible
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 

More from EDB

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSEDB
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenDie 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenEDB
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube EDB
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EDB
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLEDB
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLEDB
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLNoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLEDB
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?EDB
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLData Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLEDB
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresEDB
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINEDB
 
IOT with PostgreSQL
IOT with PostgreSQLIOT with PostgreSQL
IOT with PostgreSQLEDB
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLEDB
 
Psql is awesome!
Psql is awesome!Psql is awesome!
Psql is awesome!EDB
 
EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesEDB
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoEDB
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13EDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLEDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLEDB
 

More from EDB (20)

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenDie 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQL
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLNoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQL
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLData Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQL
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
 
IOT with PostgreSQL
IOT with PostgreSQLIOT with PostgreSQL
IOT with PostgreSQL
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
Psql is awesome!
Psql is awesome!Psql is awesome!
Psql is awesome!
 
EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJ
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos donnéesComment sauvegarder correctement vos données
Comment sauvegarder correctement vos données
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - Italiano
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Cloud Native PostgreSQL

  • 1. … and where do you plan to be in the future? Where are you now in your Cloud Native journey with Kubernetes?
  • 2. How do you “feel” about using Kubernetes for both stateless applications and database workloads with PostgreSQL?
  • 4. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 4 Introducing Gabriele Bartolini • Based in Prato (Tuscany, Italy) • PostgreSQL user since ~2000 • Community member since 2006 • Co-founder of PostgreSQL Europe • 2ndQuadrant, from 2008 to 2020 • Co-founder • Head of Global Support • Cloud Native Initiative Lead • Founding member of Barman • Now with EDB
  • 5. Kubernetes Patterns, Ibryam and Huß, O’Reilly (about Cloud Native) “Principles, Patterns, Tools to automate containerized microservices at scale”
  • 6. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 6 Agenda page • General information • Architectures • Operator capabilities • Configuration • Storage for Postgres workloads in Kubernetes • Conclusions
  • 8. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 8 The largest dedicated PostgreSQL company • More customers: Than any dedicated PostgreSQL company • More experts: Leading PostgreSQL contributors • More innovation: Positioned to lead in enterprise PostgreSQL and hybrid cloud EDB acquires 2ndQuadrant in Sept 2020 +
  • 9. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 9 EDB and Kubernetes • Kubernetes Certified Service Provider (KCSP) • First PostgreSQL Company to reach this status • Silver Member of CNCF & Linux Foundation • Red Hat Certified Kubernetes Operators • Cloud Native PostgreSQL (aka PostgreSQL Operator) • Cloud Native BDR (aka BDR Operator)
  • 10. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 10 Cloud Native Postgres and BDR EDB products in Cloud Native • Operators for Kubernetes • Written in Go language, like Kubernetes • Designed for Kubernetes • Fully integrated with Kubernetes API server • No requirements for tools designed for traditional contexts • Repmgr, Patroni, Stolon, Failover Manager • Immutable application containers for: • PostgreSQL 10+ or EDB Postgres Advanced 10+ • BDR (3.6 on EDB Postgres Extended in Q1/2021)
  • 11. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 11 What’s a Kubernetes operator? • A Kubernetes operator automates actions of a human being, in a programmatic way • A PostgreSQL cluster is a complex application • Deployment and configuration • Failure detection and Failover • Updates and switchovers • Backup and Recovery • Relies on Kubernetes’ native components and capabilities: • Self-healing, high availability, scalability, resource control, access, … • Declarative and fully automated Extends Kubernetes controller and defines how a complex application works
  • 12. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 12 Imperative vs Declarative Imperative Declarative • Create a PostgreSQL 13 instance • Configure for replication • Clone a second one • Set it as a replica • Clone a third one • Set it as a replica There’s a PostgreSQL 13 cluster with 2 replicas (At any time)
  • 13. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 13 States in Kubernetes • Definition of the desired state of an object and the overall infrastructure as configuration • Reconciliation loops: • Current state of the infrastructure matches the desired one • If not, the operator reacts to restore the desired state • Foundation of self-healing The role of the Kubernetes controller
  • 14. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 14 Desired state Actual state RW RW
  • 15. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 15 Cloud Native PostgreSQL is aka CNP Cloud Native PostgreSQL in a nutshell • Operator for Kubernetes • Written in Go Language, like Kubernetes • Implements Primary/Standby architecture • Works with both: • PostgreSQL 10+ • EDB Postgres Advanced 10+ • Container images are hosted on Quay.io • Generally Available (BIS EAR) • EDB Limited Use License • Documentation • docs.enterprisedb.io
  • 16. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 16 Container images All Container images are based on RedHat UBI 8 • Operator Container image • EDB Limited Use License • Operand Container images (Postgres Application) • PostgreSQL: • The Postgres License (PostgreSQL) • GNU GPL 3 (Barman Cloud) • EDB Postgres Advanced Server: • EDB Limited Use License
  • 17. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 17 Target Cloud environments • Private Cloud (self-managed): • Kubernetes 1.16+ • OpenShift 4.5+ • Public Cloud (provider-managed): • Microsoft Azure (AKS) - 2021/Q1 • Amazon Web Services (EKS) - 2021/Q2 • Google Cloud (GKS) - 2021/Q2 • Hybrid Cloud and Multicloud Run Postgres wherever Kubernetes runs
  • 18. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 18 Designed for Kubernetes • Fully integrated with Kubernetes API server • No external tool required • Repmgr, Patroni, Stolon • Immutable Application Containers • Running PostgreSQL only • Very light • Declarative configuration • Relies on “kubectl” - official Kubernetes client command line tool • YAML manifest • Infrastructure as Code (IaC)
  • 20. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 20 System architectures Main classification is based on where the application reside Use case 1: Application and Database in K8s Use case 2: Application outside K8s
  • 21. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 21 Application and Database in K8s • Stateless application as a deployment • Rolling upgrades • ReplicaSet for scaling and HA • Custom application images (Go, Django, Java, Python, C, C++, …) • Stateful database using our operator • Embeds primary/standby logic • Service for RW and Read operations • Rolling upgrades, scaling, HA, … • “Cluster” CRD
  • 22. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 22 PostgreSQL cluster architecture • One PostgreSQL primary • Zero or more hot standby servers • PostgreSQL native streaming replication • Async (default) and Sync (quorum-based) • Required for HA • Transparent support for pg_rewind • Provides apps with two K8s Services: • -rw suffix (read-write workloads) • -r suffix (read-only workloads) • -ro suffix (read-only workloads - in 1.1.0)
  • 23. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 23 Read-write workloads (“-rw” service) Kubernetes service for the PostgreSQL Primary App App App PostgreSQL Primary PostgreSQL Standby PostgreSQL Standby
  • 24. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 24 Read workloads (“-r” service) Kubernetes service for the PostgreSQL Read-Only operations App App App PostgreSQL Primary PostgreSQL Standby PostgreSQL Standby Round Robin
  • 26. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 26 The “Operator Capability Levels” Framework Defined by Operator SDK (RedHat) - source sdk.operatorframework.io/docs/ CNP users can currently expect "Level III - Full Lifecycle"
  • 27. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 27 Cluster management • Self-healing capabilities • Probes for liveness and readiness • Failover of the primary • Automated creation of a replica • Planned switchover of the primary • Promotion of a selected replica • Rolling updates • Scale up/down capabilities
  • 28. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 28 Storage management • Support for Persistent Volume Claims (PVC) • Automatic generation of PVC • Support for PVC templates • Reuse of storage for Pods in the same cluster • Storage classes • Freedom of choice • Local storage • Network storage
  • 29. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 29 Rolling updates • Update of a deployment with zero downtime • Incremental update of Pod instances with new ones • Standby servers are updated first • Then the primary, following a switchover • supervised / unsupervised • When they are triggered: • Update of the operator • Minor update of PostgreSQL • Configuration changes when restart is required • Reason why we did not use replicasets or statefulsets
  • 30. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 30 Security • 4C security model • Cloud, Cluster, Container, Code • Pod Security Policies and Security Contexts • No privileged (root) mode required for containers • No privileged (root) mode for volume access • TLS encrypted connections • Creation of PostgreSQL secrets • Static code analysis • Linters and Coverity Scan
  • 31. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 31 About TLS (ex-SSL) support • Native and fully automated • Certification authority for the Operator • Certification authority for each Postgres cluster • TLS connections enabled by default • Client authentication based on TLS certificates • “kubectl cnp” plugin to issue client certificates • Out of the box for standby streaming replication
  • 32. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 32 Continuous physical backup • Scheduled and on-demand • Initial support for object stores (S3 compatible) • Public clouds • Private clouds (e.g. MinIO) • Rely on Barman Cloud technology • barman-cloud-wal-archive • barman-cloud-backup
  • 33. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 33 Recovery • Create a new cluster from a backup • Restore the base backup • Full or PITR • Pull and replay backup WAL files • Rely on Barman Cloud technology • barman-cloud-restore • barman-cloud-wal-restore
  • 35. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 35 Custom Resource Definition (CRD) • “Cluster” resource • Extends the Kubernetes controller • Responsible for the deployment • “instances” parameter • number of PostgreSQL instances in the cluster • hot standby replicas = instances - 1 • Supports Async and Sync replication for RPO=0
  • 36. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 36 Convention over configuration apiVersion: postgresql.k8s.enterprisedb.io/v1 kind: Cluster metadata: name: myapp-db spec: instances: 3 imageName: quay.io/enterprisedb/postgresql:13.2 storage: size: 10Gi
  • 37. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 37 Declarative deployment # Install the operator in the cluster kubectl apply -f <OPERATOR_MANIFEST_URL> # Deploy the cluster (declarative) kubectl apply -f myapp-cluster.yaml
  • 38. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 38 PostgreSQL configuration Refer to “PostgreSQL configuration” for details apiVersion: postgresql.k8s.enterprisedb.io/v1 kind: Cluster metadata: name: cluster-example spec: instances: 3 postgresql: parameters: work_mem: "8MB" # … # ...
  • 39. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 39 Synchronous replication apiVersion: postgresql.k8s.enterprisedb.io/v1 kind: Cluster metadata: name: cluster-example spec: instances: 3 minSyncReplicas: 1 maxSyncReplicas: 2 storage: size: 1Gi Refer to “Streaming replication overview” for details
  • 40. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 40 Plugin for kubectl kubectl cnp status cluster-example Cluster in healthy state Name: cluster-example Namespace: default PostgreSQL Image: quay.io/enterprisedb/postgresql:13 Primary instance: cluster-example-1 Instances: 3 Ready instances: 3 Instances status Pod name Current LSN Received LSN Replay LSN System ID Primary Replicating Replay paused Pending restart -------- ----------- ------------ ---------- --------- ------- ----------- ------------- --------------- cluster-example-1 0/6000060 6927251808674721812 ✓ ✗ ✗ ✗ cluster-example-2 0/6000060 0/6000060 6927251808674721812 ✗ ✓ ✗ ✗ cluster-example-3 0/6000060 0/6000060 6927251808674721812 ✗ ✓ ✗ ✗ Refer to “Streaming replication overview” for details
  • 42. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 42 Required capabilities Expected capabilities: • Availability • Scalability • Performance • Consistency • Durability Storage is critical in database contexts
  • 43. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 43 Storage architectures in Kubernetes (simplified) Network storage Local storage • Access via network • The K8s pattern • Storage location options: • Outside K8s (e.g. NFS) • Inside K8s (e.g. Portworx) • Data replication options: • File level (K8s way) • Application level (Postgres way) • Cons: throughput and latency • Direct access to the OS storage • Local to the K8s node of the Pod • What database people want • The K8s anti-pattern • Shared nothing architecture • K8s is changing: • “local” persistent volumes (1.14+) • OpenEBS Local PV, topoLVM, … • Cons: scalability
  • 44. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 44 Storage outside K8s with Postgres replication Not recommended for Cloud Native Postgres Common setup
  • 45. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 45 Local storage with Postgres replication Recommended for Cloud Native Postgres
  • 46. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 46 Shared-nothing architecture What database people want • Rely on dedicated storage of the K8s node • On-board disks, dedicated DAS or NAS • High-Performing Network is the only share • Better resilience of a PostgreSQL cluster • Postgres instances spread over multiple K8s nodes • Also in different availability zones of the same region • Pod uses local storage from the K8s nodes it runs on • Consider latency with applications
  • 47. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 47 Local storage benchmarks Our team pioneered local storage use case in K8s • Public benchmarks, released in May 2020 • Goal: publish an updated version as EDB • Bare metal • bonnie++ from OS on directly attached storage • Kubernetes • Local storage: OpenEBS Local PV using hostpath • Network storage: OpenEBS cStor via iSCSI
  • 48. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 48 Local storage benchmarks scenario • Kubernetes 1.18 cluster: • Dedicated rackspace • 3 Kubernetes master nodes • 4 Kubernetes worker nodes: • 16 cores - 128GB of RAM • OS volume: 2x 240 GB SSD, HW RAID 1 (BBU cache) • App data volume: 2x 3.84 TB SSD, HW RAID 1 (BBU cache) • High performing dedicated private network • Dual 10Gb/s NICs in bonding
  • 49. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 49 Storage Benchmarks Results Workload Disks (manufacturer spec) Bare metal OpenEBS Local (Persistent) OpenEBS cStor (Pool) Sequential reads Up to 550MB/s 1000MB/s 964MB/s (-3.6%) 54MB/s (-96.4%) Sequential writes Up to 530MB/s 500MB/s 496MB/s (-0.8%) 54MB/s (-89.2%)
  • 50. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 50 PostgreSQL benchmarks • Cloud Native PostgreSQL • Using pgbench • OLTP like benchmarks results: • 4.2k tps on bare metal • 3.8k tps on K8s with OpenEBS Local PV (-10%) • See the diagram on the right • 500 tps on K8s with OpenEBS cStor • Comparable to typical scenarios
  • 51. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 51 A new frontier • Performance on local storage close to bare metal • Minimal impact of containers • We used OpenEBS LocalPV • Kubernetes is investing in local storage scenarios • Get the best of the two worlds: • Cloud Native and Kubernetes benefits • Workloads business continuity • High performance • When needed by some PostgreSQL database workloads (VLDB)
  • 53. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 53 There’s more coming … • Observability • Monitoring with a native Prometheus exporter (Q1/2021) • Logging (Fluentbit/Fluentd) • Pooling • pgBouncer support • Replica cluster • PostgreSQL online upgrades • Major versions via logical replication • Backup • Barman operator • Snapshots • Kubernetes Federation • Multi-cluster Kubernetes
  • 54. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 54 Evaluate it now! Operator with PostgreSQL Operator with EDB Postgres Advanced • No trial license key required • No reconciliation attempt after 30d • From the creation of each Postgres cluster • A trial license key is required • Expiry date = 60d from license request • No reconciliation attempt after expiry date Start at docs.enterprisedb.io
  • 55. © Copyright EnterpriseDB Corporation, 2021. All rights reserved. 55 Why Cloud Native PostgreSQL? • PostgreSQL/Kubernetes • Applications co-exist in the same system • PostgreSQL databases are applications (workloads) • Business Continuity • PostgreSQL cluster is always up • Auto pilot mode • Complexity for HA is entirely hidden • Services are the only interface for Applications • Focus on applications and velocity • Retain full control of your data
  • 56. Q & A