You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

 

There are detailed instructions on how to deploy a PG database in Azure on a Linux server:

https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-postgresql-install/

Following all these instructions might take a few hours, due to human processing time as well as due to virtual machine spin-up time.

The next step is to automate the human processing time into a script.

Thee most popular scripting tool for this at the moment is Ansible. As of oct 2016 Ansible has taken over Puppet as the most popular tool

https://www.google.com/trends/explore?date=2008-01-01%202016-11-06&q=%2Fm%2F0k0vzjb,%2Fm%2F05zxlz3,%2Fm%2F0hn8c6s,%2Fm%2F0h68cj_,%2Fm%2F03d3cjz&hl=en-US

In addition to being the most pupular, Ansible has some advantages over other the previous generation of tools soch as Puppet, notably the ease to start using it. You can find many blogs that compare Ansible to other system configuration tools, like

http://www.slideshare.net/jbminn/docker-ansiblemakechefpuppetunnecessaryminnihan-34984161

we hope this convinces you to use Ansible. Here is a high-level overview of Ansible:

https://sysadmincasts.com/episodes/43-19-minutes-with-ansible-part-1-4

After you automated the human processing time, the virtual machine spin-up time can be reduced by means of deploying containers. There are two ways to do this. First, there are classic tools to deploy full virtual machines, such as virtualbox of vmware. Vagrent is wrapper around these tools to automate them. However, very popular nowadays is Docker to launch mini-containers fast. The differences between Docker and Vargent are explained here

http://devo.ps/blog/vagrant-docker-and-ansible-wtf/

We prefer to combine Docker with Ansible: use Ansible scripting to make a Docker container.

https://oliverveits.wordpress.com/2015/11/09/it-automation-a-hello-world-example-using-ansible-on-docker/

 

Vagrant might still come in very handy to launch the Ansible Management Node.

https://sysadmincasts.com/episodes/45-learning-ansible-with-vagrant-part-2-4

Some are sceptical of making a container/boxes of a database, but there are strong argument in favour of it

http://stackoverflow.com/questions/25047986/does-it-make-sense-to-dockerize-containerize-databases

Note that fully functional Postgres Docker containers

https://hub.docker.com/_/postgres/

https://azure.microsoft.com/en-us/marketplace/partners/docker/postgres-arm/ with https://azure.microsoft.com/en-us/documentation/templates/postgresql-standalone-server-ubuntu/

as well as Vagrent boxes (http://www.pgdevbox.com/#) are already available for download. However, these do not contain the geospatial PostGis extension with is essential for OpenEarth applications. Hence it makes sense to script a Docker container ourselves.

A huge advantage of Ansible is also that it comes with tools to also automate database taks, notably to set proper authorization. And perhaps to insert a data model.

http://blog.2ndquadrant.com/ansible-loves-postgresql/

http://docs.ansible.com/ansible/postgresql_db_module.html

Please note that you need to deploy tols liek Barman for back-up and recovery of your database.

http://www.pgbarman.org/

For DataBase admininstration (DBA) purposes, we recommend to deploy the python webtool PGAdmin 4 on the same Linux server.

https://www.pgadmin.org/download/pip4.php

Noe that some day all of the above might become unnecesary, when Azure will offer PostgreSQL via Database-as-a-Service offerings:

https://feedback.azure.com/forums/217321-sql-database/suggestions/8300487-mysql-and-postgresql-as-daas-from-ms-like-an-azure

Of course you can also use this fully functional Linux Data Science Virtual Machine which includes Postgres.

https://azure.microsoft.com/en-us/marketplace/partners/microsoft-ads/linux-data-science-vm/

or a Postgres cluster

https://azure.microsoft.com/en-us/marketplace/partners/bitnami/postgres-clusterdefault/

 

 

  • No labels