Yayına almadan önce: bir web uygulaması için 12 maddelik sunucu kontrol listesi

Venus Yazılım2 dk okuma

Bir web uygulamasını canlıya almadan önce sunucu, alan adı, yedek, güvenlik ve izleme tarafında kontrol ettiğimiz 12 madde ve her birinin nedeni.

Bir uygulamanın en riskli günü yayın günüdür. Kod hazırdır, test edilmiştir; ama sunucu, alan adı ve e-posta tarafındaki küçük bir eksik ilk müşteriyi kapıda bekletir. Yazdığımız uygulamaları kendi işlettiğimiz sunuculara alırken her seferinde aynı listeden geçiyoruz.

Kısa cevap: alan adı ve SSL, e-posta doğrulaması, ortam değişkenleri, veritabanı yetkileri, yedek ve geri yükleme, güvenlik duvarı, güncellemeler, hata kayıtları, izleme, önbellek, robots ve site haritası, son olarak geri dönüş planı. Aşağıda her birinin neden listede olduğunu anlatıyoruz.

Alan adı ve erişim

1. Alan adı, SSL ve yönlendirmeler. Alan adının yenileme tarihi ve kimin hesabında olduğu yazılıdır. www ve çıplak alan adından biri ana adres seçilir, diğeri 301 ile ona yönlenir. HTTP her zaman HTTPS’e gider; sertifikanın otomatik yenilendiği doğrulanır.

2. E-posta kimlik doğrulaması. Uygulama şifre sıfırlama, sipariş onayı ya da form bildirimi gönderecekse SPF, DKIM ve DMARC kayıtları yayından önce hazırdır. Aksi halde ilk kullanıcının şifre sıfırlama e-postası spam klasörüne düşer.

Uygulama ve veri

3. Ortam değişkenleri. Hata ayıklama modu kapalıdır, gizli anahtarlar yalnızca sunucudaki ortam dosyasındadır ve repoya girmemiştir. Geliştirme ortamının anahtarları canlıda kullanılmaz.

4. Veritabanı yetkileri. Uygulama veritabanına süper kullanıcıyla değil, yalnızca kendi veritabanında yetkili bir kullanıcıyla bağlanır. Veritabanı portu dışarıya açık değildir ya da yalnızca TLS ile ve belirli adreslerden erişilir.

5. Yedek ve geri yükleme denemesi. Zamanlanmış yedek sunucunun dışındaki bir konuma gider. Yayından önce en az bir kez geri yükleme denenir; denenmemiş yedek, yedek sayılmaz.

Sunucu

6. Güvenlik duvarı. Yalnızca gereken portlar açıktır: genellikle 80, 443 ve SSH. SSH’a parola ile değil, anahtarla girilir.

7. Güncellemeler. Sistem paketleri günceldir ve otomatik güvenlik güncellemeleri açıktır. PHP, Node ya da veritabanı sürümü desteği süren bir sürümdür.

8. Hata kayıtları. Uygulama ve web sunucusu kayıtlarının nereye yazıldığı bilinir ve kayıt döndürme (log rotation) açıktır. Disk, unutulmuş bir hata kaydıyla dolmaz.

9. İzleme. Sitenin yanıt verip vermediği dışarıdan düzenli olarak kontrol edilir; disk, bellek ve servis durumu için eşikler belirlenir. Bir sorunu müşteriden önce bizim fark etmemiz gerekir.

Yayın

10. Önbellek ve sıkıştırma. Statik dosyalar uzun süreli önbellekle, metin yanıtları sıkıştırılarak sunulur. Görseller doğru boyutta ve modern biçimdedir.

11. Robots, site haritası ve paylaşım görselleri. Hazırlık ortamı arama motorlarına kapalıdır, canlı ortam açıktır. Site haritası hazırdır, sayfa başlıkları ve paylaşım görselleri kontrol edilmiştir. Yayından sonra site haritası arama motorlarına gönderilir.

12. Geri dönüş planı. Yayın sırasında bir şey ters giderse önceki sürüme nasıl dönüleceği yayından önce yazılıdır. Veritabanı değişiklikleri de bu plana dahildir.

Özet

Bu listenin hiçbir maddesi zor değildir; zor olan, yayın gününün telaşında hepsini hatırlamaktır. Uygulamayı yazan ve sunucuyu işleten aynı ekip olduğunda bu liste iki ekip arasında paslaşılmaz, tek elden kapanır. Ayrıntılar için VPS ve sunucu yönetimi sayfamıza bakabilirsiniz.

Diğer notlar

  1. 2 dk okuma

    SPF, DKIM ve DMARC: kurumsal e-postanız neden spam klasörüne düşüyor?

    Kurumsal e-postaların spam klasörüne düşmesinin en sık nedeni eksik kimlik doğrulama kayıtlarıdır. SPF, DKIM ve DMARC'ın ne yaptığını ve nasıl kurulduğunu anlatıyoruz.

  2. 2 dk okuma

    pgapi ile bir uygulamaya backend: proje, tablo, RLS ve supabase-js

    Supabase uyumlu backend platformumuz pgapi üzerinde yeni bir proje açmak, tabloyu RLS ile korumak ve supabase-js ile bağlanmak adım adım.

Kabinde yer ayıralım.

Projenizi birkaç adımda anlatın; kapsamı, takvimi ve altyapı önerisini içeren yazılı bir teklif hazırlayalım.

Teklif isteya da doğrudan yazın: e-posta adresi