1 of 9

Scaling Spatial Temporal Data Analysis with Postgres, PostGIS, TimescaleDB, and H3 Indexing: A Hands-On Workshop

2 of 9

What are containers?

Containers are a lightweight and portable solution for packaging and running software applications along with their dependencies. They provide a consistent and isolated environment that allows applications to run reliably across different computing environments, such as development machines, testing environments, and production servers.

Isolation - Portability - Efficiency - Reproducibility - Scalability - Versioning and Rollback - DevOps and Continuous Deployment - Microservices Architecture - Ecosystem and Tooling

3 of 9

What is Kubernetes?

Kubernetes, commonly referred to as K8s, is an open-source container orchestration platform developed by Google. It provides a robust framework for automating the deployment, scaling, and management of containerized applications. Kubernetes is designed to simplify the complexities associated with managing large-scale containerized environments and enables efficient utilization of resources while ensuring high availability and fault tolerance.

Containerization - Cluster - Pod - Deployment - Service - Namespace - Replication Controller/ReplicaSet - Ingress - Volumes - Container Networking

4 of 9

What’s High Availability setup?

High availability (HA) refers to a setup or architecture designed to ensure that an application or system remains operational and accessible for an extended period, minimizing downtime and disruptions. The goal of a high availability setup is to provide continuous availability and reliability, even in the face of failures or planned maintenance activities.

Redundancy - Fault tolerance - Load balancing - Monitoring and health checks - Data replication and backups - Automatic scaling - Geographical distribution - Planned maintenance and zero-downtime upgrades

5 of 9

What does postgres HA look like?

  • Minimum 2 instances
  • Load Balancing
  • Backup & Restore capabilities

6 of 9

What are we using?

7 of 9

What we’ll cover?

  • Setting kubectl cli
  • Setting up minikube (local k8s cluster)
  • Setting up postgres-operator on local
  • Go over the setup and few commands
  • More…

Let’s get to the code!

Github: https://github.com/jashanbhullar/foss4g-2023-spaital-temporal-database

8 of 9

The High availability spatial temporal stack

  • Spatial - PostGIS
  • Temporal - TimescaleDB
  • Enhancement - Uber h3
  • High Availability - postgres-operator by crunchyData

All enabled by open source tech stack!

9 of 9

Thank You!

You can reach me at:

Mail : json.singh.dev@gmail.com

Twitter: twitter.com/jsonsingh

LinkedIn: linkedin.com/in/jsonsingh