Lewati ke konten

Diagram Alur GCP

BersamaBelum diuji

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.

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])