Skip to content
Feng Ruohang edited this page Dec 1, 2022 · 25 revisions

Battery-Included PostgreSQL, Free RDS of your own.

| Installation | Configuration | Parameter | Playbook |

| Administration | Provisioning | Architecture | Releases | Community

Latest Version: v2.0.0-a1 | Stable Version: v1.5.1 | Demo

Documentation: Docs | 中文文档 | Github Pages | Wiki

pigsty


What is Pigsty?

  • Open Source RDS: Open-Source alternative to public cloud RDS.

    Full-Featured Open-Source Alternative to RDS PostgreSQL

    RDS

    If you can have a better RDS service with the price of EC2, Why use RDS at all?

  • Postgres Distribution: PostgreSQL, PostGIS, TimescaleDB, Citus, Redis/GP, United in One!

    PostgreSQL Kernel, Extensions, Peripherals, and Companion

    DISTRO

    PostGIS, TimescaleDB, Citus, and hundreds of extensions!

  • Infra Best Practice: Grafana, Prometheus, Loki, AlertManager, Docker, Battery-Included!

    Open Source Infrastructure Best Practice, Ship runtime with databases!

    ARCH

    If you can have a better RDS service with the price of EC2, Why use RDS at all?

  • Developer Toolbox: Manage production-ready HA database clusters in one command!

    GUI & CLI, Handling 70% of database administration work in minutes!

    INTERFACE

    Define clusters in a declarative manner and materialize them with idempotent playbooks

Check Architecture & Demo for details.


Why Pigsty?

  • High-Availability: Auto-Pilot Postgres with idempotent instances & services, self-healing from failures!

    High-Availability PostgreSQL Powered by Patroni & HAProxy

    HA

    Self-healing on hardware failures: Failover impact on primary < 30s, Switchover impact < 1s

  • Ultimate Observability: Unparalleled monitoring system based on modern open-source best-practice!!

    Observability powered by Grafana, Prometheus & Loki

    DASHBOARD

    3K+ metrics on 30+ dashboards, Check http://demo.pigsty.cc for a live demo!

  • Database as Code: Declarative config with idempotent playbooks. WYSIWYG and GitOps made easy!

    Define & Create a HA PostgreSQL Cluster in 10 lines of Code

    IAC

    Create a 3-node HA PostgreSQL with 10 lines of config and one command!

  • IaaS Provisioning: Bare metal or VM, Cloud or On-Perm, One-Click provisioning with Vagrant/Terraform

    Pigsty 4-nodes sandbox on Local Vagrant VM or AWS EC2

    SANDBOX

    Full-featured 4 nodes demo sandbox can be created using pre-configured vagrant & terraform templates.

  • Versatile Scenario: Monitor existing RDS, Run docker template apps, Toolset for data apps & vis/analysis.

    Docker Applications, Data Toolkits, Visualization Data Apps

    APP

    If your software requires a PostgreSQL, Pigsty may be the easiest way to get one.

  • Production Ready: Ready for large-scale production environment and proven in real-world scenarios.

    Overview Dashboards for a Huge Production Deployment

    OVERVIEW

    A real-world Pigsty production deployment with 240 nodes, 13kC / 100T, 500K TPS , 3+ years.

  • Cost Saving: Save 50% - 95% compare to Public Cloud RDS. Create as many clusters as you want for free!

    Price Reference for EC2 / RDS Unit ($ per core · per month)
    Resource Node Price
    AWS EC2 C5D.METAL 96C 200G 11 ~ 14
    Aliyun ECS 2xMem Series Exclusive 28 ~ 38
    IDC Self-Hosting: Dell R730 64C 384G x PCI-E SSD 3.2TB 2.6
    IDC Self-Hosting: Dell R730 40C 64G (China Mobile) 3.6
    UCloud VPC 8C / 16G Exclusive 3.3
    ⬆️ EC2 / RDS⬇️ RDS Price
    Aliyun RDS PG 2x Mem 36 ~ 56
    AWS RDS PostgreSQL db.T2 (4x) / EBS 60
    AWS RDS PostgreSQL db.M5 (4x) / EBS 84
    AWS RDS PostgreSQL db.R6G (8x) / EBS 108
    AWS RDS PostgreSQL db.M5 24xlarge (96C 384G) 182
    Oracle Licenses 1300

    AWS Price Calculator: You can run RDS service with a dramatic cost reduction with EC2 or IDC.

Check FEATURES for detail.


Getting Started

Get a fresh Linux x86_64 EL7/8/9 node with nopass sudo & ssh access:

bash -c "$(curl -fsSL http://download.pigsty.cc/get)" && cd ~/pigsty   
./bootstrap  && ./configure && ./install.yml # install latest pigsty

Build & Test on centos7.9, rocky8.6, rocky9.0. Compatible with RHEL, Oracle, Alma, etc...

Now you have a battery-included Postgres on port 5432 and infra web services available on port 80.

Check Installation & Configure for detail.


More Clusters

After installation, the node can be used as a control center & infra provider to manage, deploy & monitor more nodes & database clusters. To deploy a HA Postgres Cluster with streaming replication, define a new cluster on all.children.pg-test of pigsty.yml:

pg-test:
  hosts:
    10.10.10.11: {pg_seq: 1, pg_role: primary}
    10.10.10.12: {pg_seq: 2, pg_role: replica}
    10.10.10.13: {pg_seq: 3, pg_role: replica}
  vars:  { pg_cluster: pg-test }

Then create it with built-in playbooks:

./nodes.yml -l pg-test   # init nodes of pg-test 
./pgsql.yml -l pg-test   # init pg cluster pg-test

You can deploy different kinds of instance roles such as primary, replica, offline, delayed, sync standby, and different kinds of clusters such as standby clusters, Citus clusters, and even Redis clusters & YMatrix clusters. Check playbook & admin for details.


About

Pigsty (/ˈpɪɡˌstaɪ/) is the abbreviation of "PostgreSQL In Graphic STYle."

Official Site: https://pigsty.cc/en/ https://pigsty.cc/zh/

WeChat Group: Search pigsty-cc to join the WeChat group.

Telegram: https://t.me/joinchat/gV9zfZraNPM3YjFh

Discord: https://discord.gg/wDzt5VyWEz

Author: Vonng (rh@vonng.com)

License: Apache 2.0 License

Copyright 2018-2022 rh@vonng.com

Clone this wiki locally