Aplikacje i systemy w UniCloud
Łączymy aplikacje Node.js z autoklastrowaną bazą PostgreSQL
PostgreSQL jest obiektowo-relacyjnym systemem baz danych
o otwartym kodzie źródłowym [1]. Node.js [2] jest środowiskiem uruchomieniowym aplikacji typu „server-side”, który przyczynił się do stworzenia paradygmatu
„JavaScript everywhere”
Połączymy klaster baz danych PostgreSQL z aplikacją Node.js, wykorzystując wbudowane mechanizmy platformy chmurowej UniCloud [3].
Instalacja nowego środowiska w chmurze
W panelu UniCloud [4] utwórz nowe środowisko Node.js dodając bazę danych PostgreSQL. Skonfiguruj wymagane limity skalowania środowiska.
Rysunek 1: Tworzenie środowiska w chmurze
Oprócz pionowego skalowania zasobów, możesz włączyć skalowanie poziome, pozwalając chmurze dobierać odpowiednie do potrzeb ilości węzłów.
Rysunek 2: Tworzenie bazy danych
W przypadku bazy danych opcjonalnie możesz bez wysiłku uzyskać klaster węzłów typu master-slave.
Rysunek 3: Architektura klastra PostgreSQL
Po utworzeniu środowiska otrzymasz wiadomość e-mail z poświadczeniami dostępu do bazy danych (host, login i hasło).
Konfiguracja środowisk
Najłatwiejszy dostęp do serwera Node.js uzyskasz korzystając z wbudowanego klienta Web SSH
Rysunek 4: Rozpoczęcie konfiguracji
Po nawiązaniu połączenia musisz doinstalować node-postgres, paczkę modułów do łącznia z bazą danych PostgreSQL. Wykonaj w tym celu polecenie:
npm install pg |
Rysunek 5: Instalacja modułów
Dla weryfikacji połączenia, przygotuj prosty skrypt Node.js (możesz wykonać np. polecenie Vim script.js, wklejając poniższy kod:
const { Pool } = require(’pg’)const pool = new Pool({ user: '{user}’, host: '{host}’, database: '{database}’, password: '{password}’, port: {port},})pool.query(’SELECT NOW()’, (err, res) => { console.log(err, res) pool.end() }) |
Skrypt weryfikacyjny
W skrypcie podaj następujące dane umożliwiające połączenie:
- {user}i {password} – dane logowania do bazy danych otrzymane pocztą
- {host}– link do węzła bazy danych PostgreSQL
- {database}– nazwa bazy danych (domyślnie PostgreSQL)
- {port} – numer portu, na którym nasłuchuje serwer bazy danych. Domyślnie dla PostreSQL jest to 5432
Rysunek 6: Przygotowanie skryptu w edytorze Vim
Uwaga : Zamiast poświadczeń w treści skryptu, node-postgres może używać zmiennych środowiskowych do łączenia się z serwerem PostgreSQL. Są to: PGUSER = {użytkownik} PGHOST = {host} PGPASSWORD = {hasło} PGDATABASE = {baza danych} PGPORT = {port} |
Testy
Za pomocą tego skryptu można sprawdzić połączenie serwera aplikacji z bazą danych. Uruchom go odpowiednim poleceniem:
node script.js |
Rysunek 7: Weryfikacja aplikacji
Jeśli połączenie nawiązane jest pomyślnie, wyświetlany jest czas węzła serwera PostgreSQL, co oznacza, że baza danych dostępna jest dla aplikacji Node.js.
Info:
[1] PostgreSQL:
https://www.postgresql.org/
[2] Node.js:
http://nodejs.org/
[3] Jelastic, Blog:
https://jelastic.com/blog/postgresql-connect-nodejs-application/
[4] Panel UniCloud:
https://app.unicloud.pl
Autor:
Piotr Niemcewicz pracuje jako inżynier w Centrum Danych Asseco Data Systems S.A., gdzie zajmuje się projektowaniem i wsparciem podczas wdrażania systemów.