Yazılım, veri ve veritabanı: işin gerçekten kritik olan kısmı
Bizi arayan ekiplerin çoğu hemen hemen aynı yerden başlıyor: sistem çalışıyor, ama bir yerde bir şey rahatsız ediyor. Bazen gece yarısı düşen bir veritabanı, bazen üç yıldır kimsenin geri yüklemeyi denemediği bir yedek, bazen de "şunu iki haftada çıkarırız" derken altı aya yayılan bir proje. Biz tam bu noktalarda devreye giriyoruz.
Yazılım geliştirme
Sıfırdan ürün de kuruyoruz, ama dürüst olalım: işlerin büyük kısmı zaten çalışan bir sistemin üzerine biniyor. Bu yüzden ilk yaptığımız şey kodu silip baştan yazmak değil, neyin neden böyle yazıldığını anlamak oluyor. Çoğu "kötü kod" aslında bir zamanlar mantıklı olan ve sonradan unutulan bir kararın kalıntısıdır.
Web ve mobil tarafında okunabilir, test edilebilir kod yazıyoruz; servisler arası iletişimi sade tutuyoruz ve dokümante etmediğimiz hiçbir şeyi "bitti" saymıyoruz. Amaç sizden sonra gelen geliştiricinin de altı ay sonra rahat nefes alması.
Veri yedekleme
Yedeklemeyle ilgili can sıkıcı gerçek şu: insanlar genellikle bir veriyi kaybettikten sonra konuyu ciddiye alıyor. Biz o telefonu bir kez fazlasıyla aldık. Kurduğumuz düzen basit ama disiplinli — verinin birden fazla kopyası, en az birinin farklı bir konumda durması ve hepsinin şifreli tutulması.
Bu yüzden felaket kurtarma planını kâğıt üstünde bırakmıyor, belirli aralıklarla gerçekten test ediyoruz. Bir sunucu çöktüğünde sorulması gereken soru "yedeğimiz var mı" değil, "ne kadar sürede ayağa kalkarız" olmalı.
En kritik kısım yedeği almak değil, geri dönebildiğinizden emin olmaktır. Düzenli geri yükleme provası yapmazsanız, bunu öğrenmek istemeyeceğiniz bir anda öğrenirsiniz.
Teknik danışmanlık
Her ekibin tam zamanlı kıdemli bir mimara ihtiyacı yok; ama doğru anda doğru bir ikinci görüşe ihtiyacı oluyor. Büyük bir göç (migration) öncesi, performans bir anda dibe vurduğunda ya da "bu mimari bizi iki yıl sonra ne kadar zorlar" sorusu masaya geldiğinde aranıyoruz.
Slayt üretmek yerine elimizi koda ve metriklere sokuyoruz. Bazen çözüm yeni bir sistem değil, var olanın doğru kullanılmasıdır — ve bunu söylemekten çekinmiyoruz.
SQL ve NoSQL veritabanı
"SQL mı NoSQL mı" sorusunun tek bir doğru cevabı yok; doğru cevap iş yükünüze bağlı. Tutarlılığın ve ilişkilerin kritik olduğu yerde PostgreSQL gibi ilişkisel bir veritabanı, esnek şemanın ve yüksek yazma hacminin öne çıktığı yerde MongoDB gibi bir NoSQL çözümü mantıklı olur. Pratikte sağlıklı sistemlerin çoğu ikisini birlikte kullanır.
Asıl iş ise reklamı az yapılan kısımda: doğru indeksleme, sorgu planlarını okumak, çoğaltma (replication) ve yük altında ayakta kalan bir mimari. Prodüksiyonu gece üçte ayakta tutan şey genellikle bu "sıkıcı" detaylardır.