1 of 40

instalasi

NEO FEEDER v1.0.2

platform windows

Basit Adhi Prabowo

Universitas ‘Aisyiyah Yogyakarta

Maret 2022

https://bit.ly/neofeederwindows

2 of 40

Sukses Memasang Neo Feeder:

  • Migrasi : pernah install Feeder 4.1
  • Prefill : belum pernah install Feeder 4.1

DNS & HTTPS untuk Neo Feeder

3 of 40

Materi Pemantik Diskusi

– DISCLAIMER –

Saya bukan pengembang Neo-Feeder. Materi hanya secara teori dan asumsi.

4 of 40

PREAMBULE

5 of 40

6 of 40

INSTALASI NEO FEEDER

windows

docker

7 of 40

KONFLIK? (INSTALLER WINDOWS)

  • NEO_FEEDER_DB
  • PDDIKTIWebSrv
  • PDDIKTIDB

Service

  • Web port 8100
  • WS port 3003
  • Postgresql port 54333
  • Web port 8082
  • WS port 8082
  • Postgresql port 54321

Port

  • C:/Neo Feeder /
  • C:/Program Files/PDDIKTI

App

NEO-Feeder

Feeder

Tidak Konflik

8 of 40

PRE INSTALASI

9 of 40

PRE INSTALASI

  • tidak perlu un-install Feeder, cukup matikan servis setelah migrasi
  • backup folder Feeder

10 of 40

INSTALL, YUK!

11 of 40

POST INSTALASI

12 of 40

POST INSTALASI

  • Startup Folder�Salin shortcut ke Folder startup �[Kotak dialog Run: shell:common startup]
    • Alternatif 1
      • runner-win, lokasi: “c:\neo feeder"
    • Alternatif 2
      • nginx, lokasi "c:\neo feeder\nginx" (baca: engine x)
      • server-win, lokasi "c:\neo feeder\app"
  • Startup Service �[Kotak dialog Run: services.msc]Services > Properties > Startup type: automatic
    • service Neo_Feeder_DB
  • Allow Firewall
  • Best Performance of Background Services�[Kotak dialog Run: sysdm.cpl ,3]

Kotak Dialog Run:

13 of 40

POST INSTALASI: START-UP FOLDER

14 of 40

POST INSTALASI: START-UP SERVICE

15 of 40

POST INSTALASI: ALLOW FIREWALL

  • Windows Security Alert�Pada saat instalasi
    • Allow private, Allow public
  • Aplikasi
    • Allow nginx (port 8100)
    • Allow nodejs (port 3003)
  • Port (inbound)
    • Allow port 8100 untuk aplikasi (neo)�C:\Neo Feeder\nginx\conf\nginx.conf di bagian listen
    • Allow port 3003 untuk web service (neo)�C:\Neo Feeder\app\feeder.conf.json di bagian old_ws_port & new_ws_port
    • Allow port 54321 untuk db (feeder) → migrasi data via jaringan�C:\Program Files\PDDIKTI\pgsql\data\posgresql.conf di bagian port

Alternatif:

Perilaku default Firewall Windows

Inbound → whitelist

Outbound → blacklist

16 of 40

ALLOW FIREWALL

Aplikasi

Port

17 of 40

ALLOW APPS

Jika belum ada nginx dan Node.js, maka klik Allow another app...

18 of 40

ALLOW PORT

  • Pilih Allow Connection
  • Isi port dengan koma, misal: 8100, 3003, 8082

19 of 40

POST INSTALASI: BEST FOR BACKGROUND

20 of 40

PREFILL VS MIGRASI

21 of 40

PREFILL vs MIGRASI

Migrasi

Neo-Feeder

Feeder

Prefill

PDDIKTI Pusat

prefill sebelum

maupun setelah

28 Feb 2022

Berhasil �Sinkron

Gagal�Sinkron

x

Input�Baru

x

vs

Contoh kasus:

Sinkron terakhir Feeder 26 Feb 2022, total ada 90.000 data, kemudian ada 10.000 data siap sinkron, 9.500 data berhasil sinkron, dan 500 data gagal sinkron. Tanggal 27 Feb 2022 menambah 2.000 data

9.500

9.500

0

500

0

2.000

80.000

80.000

22 of 40

SIFAT INSERT DATA

  • INSERT INTO ... ON CONFLICT (index, …) DO UPDATE SET …
    • Terutama pada proses push prefill, migrasi dan sinkronisasi
    • Apabila data belum ada maka dimasukkan, apabila data sudah ada maka diperbarui
    • Menjamin tidak ada duplikasi data
    • Urutan proses mempengaruhi data
    • Lebih lambat karena ada pengecekan duplikasi

ID

Nama

1

John

Push Prefill

Migrasi

2

Fulan

1

John Doe

2

Fulan

3

Mawar

3

Mawar

2

Fulan Fulan

1

John John Doe

2

Fulan

1

John

23 of 40

MIGRASI ANTAR IP (1): WIN/LIN 2 WIN/LIN

FEEDER

192.168.1.1

NEO-FEEDER

192.168.1.2

port 54321 inbound dibuka

  • Pastikan port 54321 inbound tidak terblok firewall
  • Matikan service PDDIKTIDB
  • Rename pg_hba.conf dan postgresql.conf menjadi pg_hba_.conf dan postgresql_.conf
  • Salin 2 file dari LLDIKTI (pg_hba.conf ADDRESS IPV4 0.0.0.0/0 IPV6 ::0/0 dan postgresql.conf listen_addresses = '*') ke C:\Program Files\PDDIKTI\database untuk Windows atau ke /etc/postgresql/9.5/main untuk Linux
  • Jalankan kembali service PDDIKTIDB (pastikan PDDIKTIWebSrv on)
  • Lakukan Migrasi

Pada Komputer Feeder

24 of 40

MIGRASI ANTAR IP(2): WIN/LIN 2 WIN/LIN

  • Rename pg_hba.conf dan postgresql.conf menjadi pg_hba__.conf dan postgresql__.conf
  • Kembalikan nama pg_hba_.conf dan postgresql_.conf menjadi pg_hba.conf dan postgresql.conf
  • Matikan service PDDIKTIDB dan PDDIKTIWebSrv (Feeder jangan di-uninstall)

Pada Komputer Feeder, setelah selesai migrasi

25 of 40

MIGRASI MANUAL BEDA PC: WIN 2 WIN

  1. Pada komputer Neo:
    • Install Feeder v 4.1
    • Matikan servis PDDIKTIDB dan PDDIKTIWebSrv
    • Rename C:\Program Files\PDDIKTI menjadi C:\Program Files\PDDIKTI_
  2. Pada komputer Feeder:
    • Matikan servis PDDIKTIDB dan PDDIKTIWebSrv (Feeder jangan di-uninstall)
    • Salin backup PDDIKTI ke komputer baru (Neo Feeder) pada folder C:\Program Files\PDDIKTI
  3. Pada komputer Neo:
    • Hidupkan servis PDDIKTIDB dan PDDIKTIWebSrv
    • Lakukan migrasi
    • Matikan servis PDDIKTIDB dan PDDIKTIWebSrv atau un-install Feeder di komputer Neo

Lakukan secara berurutan

26 of 40

UNISA YOGYAKARTA

NEO FEEDER v1.0.2(64 bit).exe

Win10 64 bit, RAM 4Gb, HDD

Ukuran Prefill 96,4 MB

Migrasi ±1 Jam

27 of 40

TINGKAT LANJUT

28 of 40

WEBSERVICE?

  • Tinggal mengganti port 8082 menjadi 3003 (jsnode) atau 8100 (proxy nginx)
    • WS 1/WSDL → akhir tahun 2022 akan dimatikan�dari localhost:8082/ws/live.php?wsdl�menjadi localhost:3003/ws/live.php?wsdl atau localhost:8100/ws/live.php?wsdl
    • WS 2/Restful [ https://documenter.getpostman.com/view/2020546/UVeCP7jQ ]�dari localhost:8082/ws/live2.php�menjadi localhost:3003/ws/live2.php atau localhost:8100/ws/live2.php
  • Penyesuaian: getToken untuk setiap transaksi

29 of 40

DOMAIN & DNS

(7) 49.x.x.x

(6) nf.example.com, kang?

DNS Static

(Router PT)

DNS Server

(2) 202.x.x.x bro

(1) Mana sih nf.example.org?

(4) 192.x.x.x bro

(5) kalo nf.example.com?

(3) Mana sih nf.example.org?

(8) 49.x.x.x bro

(1) klien A mencari alamat di DNS internet

(3) klien B mencari alamat di DNS LAN

(8) DNS LAN mengembalikan IP

(4) DNS LAN mengembalikan IP dari static� nf.example.org internet 202.x.x.x

nf.example.org LAN 192.x.x.x

(2) DNS internet mengembalikan IP

(5) klien B mencari alamat di DNS LAN

(6) DNS LAN tidak menemukan alamat di static� DNS LAN tidak menemukan juga di cache� DNS LAN kontak DNS internet

(7) DNS internet mengembalikan IP

DNS LAN menyimpan alamat & IP ke cache

klien A

klien B

Misalnya nf.example.org adalah alamat Neo Feeder

Perguruan Tinggi

server

(9) Mana sih nf.example.org? localhost

(9) server mencari alamat di DNS dirinya sendiri

30 of 40

SETTING DNS DI MANA SAJA?

DNS Internet

DNS Static Router PT

DNS Lokal Komputer

NF dapat diakses dari LAN

NF dapat diakses dari internet, NF hanya menggunakan IP Publik

NF dapat diakses dari internet, NF menggunakan IP Lokal dan IP Publik

NF hanya localhost

31 of 40

DNS

DNS Static (LAN)

Pada komputer Neo Feeder:

  • Buka notepad sebagai admin
  • Klik file > open
  • Isikan pada filename: %WinDir%\System32\drivers\etc\hosts
  • Tambahkan baris�127.0.0.1 nf.example.org

di mana nf.example.org diganti dengan subdomain Neo Feeder di Perguruan Tinggi

DNS Lokal Komputer

32 of 40

HTTPS

  • Apabila akan dibuka secara publik
  • Menggunakan sertifikat SSL institusi, SSL disalin ke server Neo-Feeder
  • Mengaktifkan HTTP/2 (harus https)

0 ms

10 ms

20 ms

12 ms

Jangan menggunakan HTTP

karena tidak dienkrip dan

ada orang seperti ini

HTTP

User: 051xxx

HTTPS

CgHSkuKP0E6tE7zDhQEz0Q==

HTTP itu kayak nulis PIN ATM di dompet yang di dompet itu ada kartu ATMnya

33 of 40

SETTING HTTPS WEB (PORT 8100)

server {

listen 8100 ssl http2;

server_name localhost;

ssl_certificate C:\ssl\chain-ssl.crt;

ssl_certificate_key C:\ssl\ssl.key;

C:\NEO FEEDER\nginx\conf\nginx.conf

Buka web dengan https://nf.example.org meskipun di komputer server Neo Feeder,

di mana nf.example.org diganti dengan subdomain Neo Feeder di Perguruan Tinggi.

34 of 40

SETTING HTTPS WEBSERVICE (PORT 3003)

  • Normalnya, Web Neo Feeder tidak mengakses Webservice Neo Feeder dari klien via port 3003
  • Untuk koneksi ke Webservice Neo Feeder via port 3003 dari Public seharusnya menggunakan HTTPS, tetapi sampai v1.0.2 belum didukung. Dapat menggunakan port 8100 (proxy nginx).

35 of 40

MITIGASI (1)

  • Gunakan tools untuk monitoring, antara lain:
    • Task Manager: penggunaan resource, mana yang boros resource,
    • Process Explorer: proses apa yang dilakukan oleh aplikasi�https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
    • pgAdmin: melihat apa yang terjadi pada database,
  • Lihat log, antara lain:
    • Windows log
    • Log aplikasi
      • Path: C:\NEO FEEDER\nginx\logs
    • Log database
      • Path: C:\NEO FEEDER\pgsql\data\log\
      • Slow query (dalam ms): log_min_duration_statement = 5000 di postgresql.conf

36 of 40

MITIGASI (2)

Status�304: cache

2xx: success

4xx: error

: timeout

37 of 40

MEMBATASI PROSES

Jika komputer sering hang atau sharing resource

Lihat di Processes yang menggunakan CPU besar

38 of 40

KEMUNGKINAN LAMBAT

  • Perangkat Lunak Server (nginx, jsnode, postgresql, docker)
    • Salah pemilihan teknologi di perangkat lunak server atau bugs di perangkat lunak server (di luar kendali PT)
    • Konfigurasi perangkat lunak server tidak optimum sesuai kondisi server (perlu panduan dari pengembang Neo-Feeder), set synchronous_commit=off
    • Struktur tabel perlu dioptimasi (misalnya: penggunaan index) (di luar kendali PT)
  • Neo Feeder
    • Kesalahan di logika pemrograman (di luar kendali PT)
    • Query perlu dioptimasi (di luar kendali PT)
    • Strategi koneksi perlu dioptimasi, misal: getToken (di luar kendali PT), http/2, dll
  • Jaringan (untuk sinkronisasi)
    • Masalah di jalur ISP
    • Setting di firewall/queue router perlu dioptimasi

39 of 40

KAPAN UPGRADE SERVER?

  • Cek teman
    • Apakah teman operator di PT lain mengalami hal yang sama?
  • Cek database
    • Aktifkan log slow query, restart service database
    • Buka halaman yang lambat
    • Lihat slow query:
      • jika tertangkap, maka laporkan ke pengembang Neo-Feeder melalui LLDIKTI, bisa jadi ada struktur database atau query yang perlu di-tune-up
      • jika tidak ada slow query, maka kemungkinan masalah bukan di database
  • Cek Proses
    • Buka Task Manager
    • Buka halaman yang lambat
    • Lihat proses mana yang menggunakan CPU atau RAM atau Disk yang besar, antara nginx, jsnode dan pgsql
    • Coba utak-atik pengaturan nginx, jsnode dan/atau pgsql sesuai dengan kapasitas komputer berdasarkan hasil dari Task Manager
    • Coba aktifkan/non-aktifkan best performance for background services
  • Upgrade Server (Last Solution, NOT the First)
    • Upgrade server jika langkah di atas gagal semua

40 of 40

That’s it . . .

Let’s Share . . .

https://bit.ly/neofeederwindows