Bir tərtibatçı, 666K səhifəlik JFK sənədlərini axtarışa açmaq üçün qurduğu "PhoenixVault" layihəsinin əməliyyat xərclərini (OPEX) demək olar ki, tamamilə sıfıra endirdi. Ruby on Rails ilə yazılmış ilkin versiya ayda $7K civarında xərc çəkirdi. Bunun $3K-sı OVH serverlərinə, $2K-sı MongoDB Atlas'a, $1K-sı ElasticSearch'ə və qalanı digər xidmətlərə gedirdi.
Tərtibatçı Andre Merlesku bu qədər asılılığı olan bir sistemin davamlı olmadığını görüb hər şeyi Go dilində yenidən yazmağa qərar verib. Nəticə? Aylıq xərc $33'ə düşüb — yəni 99.5% qənaət. “Mən bu problemi özüm yaratmışdım — rails new phoenixvault əmrini işə salarkən heç bir asılılıq zəncirinə sahib deyildim. Ona görə də həll yolu kimi bütün asılılıqları kəsib tətbiqi Go dilinə köçürdüm” deyə izah edir.
Yeni sistemdə artıq ElasticSearch, MongoDB Atlas və ya xüsusi DevOps xətti yoxdur. Bunun əvəzinə bütün funksionallıq bir Go binary-si daxilində toplanıb: CORS və CSP təhlükəsizliyi, SSL sertifikatının avtomatik generasiyası, 6 fərqli axtarış alqoritmi (Jaro-Winkler, Wagner-Fischer, Hamming və s.), IP-ban siyahıları, rate limiting və çoxsaylı semafor mexanizmləri. Bütün bunlar tək bir config.yml faylı ilə idarə olunur.
Layihənin ən maraqlı tərəfi odur ki, məlumatların saxlanması üçün ayrıca verilənlər bazası motoru da lazım deyil. Beş fərqli "verilənlər bazası" əslində JSON faylları olan qovluqlardır. Hətta sessiyalar AES-GCM şifrələməsi ilə diskdə saxlanılır. Tətbiq OVH-in SYS-3 bare metal serverində işləyir və təxminən 369 eyni vaxtda istifadəçiyə sub-saniyəlik axtarış nəticələri təqdim edir.
Merlesku vurğulayır ki, bu həll yalnız JFK sənədləri üçün deyil — istənilən OSINT (açıq mənbə kəşfiyyatı) kolleksiyası üçün istifadə oluna bilər. “Mən Amerikaya xidmət etmək istədim və bunu açıq mənbə, pulsuz və heç bir asılılıq olmadan etdim” deyir. Layihənin GitHub ünvanı github.com/ProjectApario.
Bu hekayə göstərir ki, düzgün texnoloji seçim və diqqətli arxitektura planlaması ilə həm performansı artırmaq, həm də xərcləri dramatik şəkildə azaltmaq mümkündür. Xüsusilə startaplar və kiçik komandalar üçün bu yanaşma — “əvvəlcə asılılıqları kəs, sonra optimallaşdır” — çox dəyərli bir dərs ola bilər.
Mənbə: Dev.to (https://dev.to/andreimerlescu/how-i-reduced-my-opex-by-995-using-go-3ff7)

