Diagram Alur GCP
Diagram ini menggambarkan alur utama skema tiga project kelompok. Setiap project menampung empat asisten. Resource dasar dipakai bersama, sedangkan resource deployment memakai slug unik asisten.
Alur pada diagram sudah diperluas sampai tiga container dan unggah layer ke GeoServer. Bagian GeoServer dan unggah layer belum pernah diuji, jadi anggap diagram ini sebagai rencana yang perlu dibuktikan.
flowchart TB
START([Mulai])
MASTER[Koordinator Arkabumi]
BILLING[Billing Account aktif]
PROJECTS[Buat tiga project kelompok]
CAPACITY[Setiap project menampung lima asisten]
TOTAL[Total kapasitas lima belas asisten]
START --> MASTER
MASTER --> BILLING
BILLING --> PROJECTS
PROJECTS --> CAPACITY
CAPACITY --> TOTAL
TOTAL --> IAM[Undang lima email per project dan berikan sepuluh role]
IAM --> SHARED[Koordinator menyiapkan resource bersama]
SHARED --> BASE[Aktifkan API Artifact Registry firewall dan budget]
BASE --> LOGIN[/Asisten login dan memilih project kelompok/]
LOGIN --> CODE{Slug asisten sudah unik?}
CODE -- Tidak --> CONFIRM[Konfirmasi slug kepada koordinator]
CONFIRM --> LOGIN
CODE -- Ya --> FORK[/Fork repository private ke akun GitHub sendiri/]
FORK --> CONFIG[Perbarui compose dan nginx menjadi tiga container]
CONFIG --> VARIABLES[Gunakan slug pada seluruh nama resource]
VARIABLES --> SA[Buat Service Account unik]
SA --> VM[Buat VM unik]
VM --> CONNECTION[Buat GitHub connection unik]
CONNECTION --> AUTH[/Otorisasi akun GitHub asisten/]
AUTH --> REPOSITORY[Hubungkan repository hasil fork]
REPOSITORY --> TRIGGER[Buat trigger dan nama image unik]
TRIGGER --> PUSH[/Push kode ke GitHub dari laptop/]
PUSH --> BUILD[Cloud Build membuat container image]
BUILD --> REGISTRY[Push image ke katalog-images bersama]
REGISTRY --> DEPLOY[Deploy image ke VM asisten]
DEPLOY --> TEST{Tiga container berjalan?}
TEST -- Tidak --> FIX[Periksa log IAM SSH image dan environment]
FIX --> RETRY([Perbaiki lalu jalankan trigger kembali])
TEST -- Ya --> GEOSERVER{Path geoserver web dapat dibuka?}
GEOSERVER -- Tidak --> NGINX[Periksa blok location geoserver pada nginx.conf]
NGINX --> GEOSERVER
GEOSERVER -- Ya --> UPLOAD[/Unggah layer melalui antarmuka GeoServer/]
UPLOAD --> WFS{Endpoint WFS mengembalikan features?}
WFS -- Tidak --> PERMISSION[Periksa izin ROLE_ANONYMOUS dan nama layer]
PERMISSION --> WFS
WFS -- Ya --> MEASURE[/Catat free -h docker stats dan status OOMKilled/]
MEASURE --> DOMAIN{Menggunakan domain?}
DOMAIN -- Ya --> DNS[Hubungkan DNS dan domain ke static IP]
DOMAIN -- Tidak --> SUCCESS
DNS --> SUCCESS[Deployment berhasil]
SUCCESS --> SESSION{Sesi selesai?}
SESSION -- Belum --> CONTINUE([Lanjutkan latihan])
SESSION -- Ya --> STOP[Stop VM asisten]
STOP --> FINISH([Selesai])
Lihat source Mermaid
flowchart TB
START([Mulai])
MASTER[Koordinator Arkabumi]
BILLING[Billing Account aktif]
PROJECTS[Buat tiga project kelompok]
CAPACITY[Setiap project menampung lima asisten]
TOTAL[Total kapasitas lima belas asisten]
START --> MASTER
MASTER --> BILLING
BILLING --> PROJECTS
PROJECTS --> CAPACITY
CAPACITY --> TOTAL
TOTAL --> IAM[Undang lima email per project dan berikan sepuluh role]
IAM --> SHARED[Koordinator menyiapkan resource bersama]
SHARED --> BASE[Aktifkan API Artifact Registry firewall dan budget]
BASE --> LOGIN[/Asisten login dan memilih project kelompok/]
LOGIN --> CODE{Slug asisten sudah unik?}
CODE -- Tidak --> CONFIRM[Konfirmasi slug kepada koordinator]
CONFIRM --> LOGIN
CODE -- Ya --> FORK[/Fork repository private ke akun GitHub sendiri/]
FORK --> CONFIG[Perbarui compose dan nginx menjadi tiga container]
CONFIG --> VARIABLES[Gunakan slug pada seluruh nama resource]
VARIABLES --> SA[Buat Service Account unik]
SA --> VM[Buat VM unik]
VM --> CONNECTION[Buat GitHub connection unik]
CONNECTION --> AUTH[/Otorisasi akun GitHub asisten/]
AUTH --> REPOSITORY[Hubungkan repository hasil fork]
REPOSITORY --> TRIGGER[Buat trigger dan nama image unik]
TRIGGER --> PUSH[/Push kode ke GitHub dari laptop/]
PUSH --> BUILD[Cloud Build membuat container image]
BUILD --> REGISTRY[Push image ke katalog-images bersama]
REGISTRY --> DEPLOY[Deploy image ke VM asisten]
DEPLOY --> TEST{Tiga container berjalan?}
TEST -- Tidak --> FIX[Periksa log IAM SSH image dan environment]
FIX --> RETRY([Perbaiki lalu jalankan trigger kembali])
TEST -- Ya --> GEOSERVER{Path geoserver web dapat dibuka?}
GEOSERVER -- Tidak --> NGINX[Periksa blok location geoserver pada nginx.conf]
NGINX --> GEOSERVER
GEOSERVER -- Ya --> UPLOAD[/Unggah layer melalui antarmuka GeoServer/]
UPLOAD --> WFS{Endpoint WFS mengembalikan features?}
WFS -- Tidak --> PERMISSION[Periksa izin ROLE_ANONYMOUS dan nama layer]
PERMISSION --> WFS
WFS -- Ya --> MEASURE[/Catat free -h docker stats dan status OOMKilled/]
MEASURE --> DOMAIN{Menggunakan domain?}
DOMAIN -- Ya --> DNS[Hubungkan DNS dan domain ke static IP]
DOMAIN -- Tidak --> SUCCESS
DNS --> SUCCESS[Deployment berhasil]
SUCCESS --> SESSION{Sesi selesai?}
SESSION -- Belum --> CONTINUE([Lanjutkan latihan])
SESSION -- Ya --> STOP[Stop VM asisten]
STOP --> FINISH([Selesai])