Hyvä artık Magento 2.4.9’da ve Mage-OS’ta doğrudan (native) çalışıyor. İkisini de test ettik. Mağazanız için ne anlama geliyor →
Kısaca
Bir Hyvä mağazası her zaman canlı modda; derlenmiş kod, dağıtılmış statik içerik ve canlı ortam için yapılmış bir Tailwind derlemesiyle çalışmalıdır.
Tekrarlanabilir bir dağıtım script'i, zamanlanmış indeksleyiciler, önbellek temizleme ve her yayından sonra kısa bir kontrol, kararlılık için tek başına herhangi bir optimizasyondan daha fazlasını yapar.
Hyvä ön yüzü hafifletir, ancak Magento'yu iyi yönetmenin temellerini değiştirmez. Yanlış modda çalışan ya da elle dağıtılan bir mağaza, tema ne olursa olsun yavaş ve kırılgan olur.


Bu yazıda, mod ayarından yayın sonrası kontrollere kadar Hyvä mağazalarını nasıl yönettiğimizi ve yayına aldığımızı adım adım anlatıyoruz.
Her zaman canlı mod
Magento'nun üç modu vardır: default, developer ve production. Canlı mağazalar production modunda çalışmalıdır.
bin/magento deploy:mode:set productionCanlı modda Magento, statik dosyaları ve derlenmiş kodu istek anında üretmek yerine önceden hazırlanmış halleriyle sunar. Hatalar ziyaretçilere gösterilmez, günlüğe kaydedilir.
Developer modu yalnızca yerel geliştirme içindir. Hala default veya developer modunda çalışan canlı mağazalarla sık sık karşılaşıyoruz; bu, yapılabilecek en ucuz hız iyileştirmelerinden biridir.
Canlı mod, şu karşılaştırmanın arkasındaki kurulumun da bir parçasıdır: Hyvä ve Luma karşılaştırmamızda. Adil bir karşılaştırma için iki temanın da gerçek bir mağazadaki gibi çalışması gerekir.
Tailwind derlemesi dağıtımın bir parçasıdır
Hyvä stilleri Tailwind CSS ile derlenir. Derleme şablonlarınızı tarar ve yalnızca gerçekten kullandığınız sınıfları içeren bir stil dosyası oluşturur.
Bu nedenle şablonlar veya tema yapılandırması her değiştiğinde, statik içerik dağıtılmadan önce CSS yeniden derlenmelidir:
cd app/design/frontend/Vendor/hyva-child/web/tailwind
npm ci
npm run buildMağazalarımızda Tailwind tasarım değişkenleri (design tokens), dağıtım sırasında yapılandırma ve tema dosyalarından yeniden oluşturulur. Stores > Configuration altında ayarlanan üst bölüm ve marka renkleri de stil dosyasına bu sayede, kimse koda dokunmadan yansır.
Tasarım değişkenleri ve derleme sürecinin ayrıntıları şu yazıda: Hyvä'da Tailwind: tasarım token'ları ve derleme süreci.
Tekrarlanabilir bir dağıtım sırası
Her dağıtım aynı adımları aynı sırayla çalıştırmalıdır. Kimsenin hatırlamak zorunda kalmaması için bunları script'e döküyoruz.
- Yeni sürümü çekin ve bağımlılıkları Composer ile kurun.
- Her Hyvä teması için Tailwind CSS'i derleyin.
- Sürüm veritabanı değişiklikleri içeriyorsa bakım modunu açın.
- Şu komutları çalıştırın:
bin/magento setup:upgrade. - Şu komutları çalıştırın:
bin/magento setup:di:compile. - Kullanılan her yerel ayar için statik içeriği dağıtın.
- OPcache'in yeni kodu alması için Magento önbelleğini temizleyin ve PHP-FPM'i yeniden yükleyin.
- Bakım modunu kapatın.
- CDN önbelleğini temizleyin ve önemli sayfaları ısıtın.
bin/magento setup:upgrade --keep-generated
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f en_GB de_DE
bin/magento cache:flushDerlemeyi canlı klasörün dışında yapıp en sonda geçiş yapmak kesinti süresini kısa tutar. Sürümleri ayrı klasörlerde tutup sembolik bağlantıyla (symlink) geçiş yapmak, hızlı geri dönüş de sağlar.
İndeksleyiciler, cron ve arka plan işleri
Canlı mağazalarda indeksleyiciler kaydetme anında değil, zamanlanmış olarak çalışmalıdır. Bir ürünü kaydetmek, tüm katalog yeniden indekslenirken yönetici kullanıcıyı bekletmemelidir.
bin/magento indexer:set-mode scheduleZamanlanmış indeksleme Magento cron'una bağlıdır; bu yüzden cron güvenilir şekilde çalışmalıdır. Takılan bir cron, ön yüzde görünmeyen fiyatlar, stoklar veya yeni ürünler olarak kendini gösterir.
Diğer işler de cron'a aittir. Hyvä demo mağazamızda cron her gece ürün görsellerinin WebP kopyalarını oluşturuyor ve test siparişlerini temizliyor.
Altındaki sunucu
Canlı mod en iyi, Magento için kurulmuş bir sunucuda çalışır. Hyvä mağazaları için kullandığımız altyapı şöyle:
| Katman | Kullandığımız |
|---|---|
| Uygulama | PHP 8.4 üzerinde Magento 2.4.9 |
| Önbellek ve oturumlar | Redis veya Valkey |
| Arama | OpenSearch |
| Web sunucusu | Her mağaza için ayrı PHP-FPM havuzlarıyla nginx |
| Uç (edge) | Önde Cloudflare |
Ayrı PHP-FPM havuzları, yoğun bir mağazanın aynı sunucudaki başka bir mağazanın kaynaklarını tüketmesini önler. Hosting seçimi hakkında daha fazlası için: en iyi Magento 2 hosting.
Güncellemeler ve güvenlik yamaları
Magento düzenli olarak güvenlik yamaları ve yeni sürümler yayınlar; Hyvä'nın da kendi güncellemeleri vardır. İkisi de diğer tüm değişiklikler gibi aynı dağıtım sürecinden geçmelidir.
- Önce test ortamındaki (staging) kopyayı güncelleyin. Canlı mağazaya dokunmadan önce tüm dağıtımı orada çalıştırın ve ödeme sayfasını test edin.
- Eklentileri Magento ile birlikte güncelleyin. Yeni sürüme hazır olmayan bir modül ön yüzü veya yönetim panelini bozabilir.
- Alt temayı küçük tutun. Ana temadan ne kadar az şablonu ezerseniz, her Hyvä güncellemesi o kadar az iş çıkarır.
- Her şeyi sürüm kontrolünde tutun. Composer dosyaları, alt tema ve dağıtım script'i depoda yer almalıdır.
Büyük bir upgrade'den önce bir eklenti analizi önce hangi modüllerle ilgilenmeniz gerektiğini gösterir.
Her yayından sonra kontroller
Script bittiğinde dağıtım bitmiş olmaz. Canlı adres üzerinde kısa bir kontrol listesi çalıştırıyoruz:
- Ana sayfa, bir kategori ve bir ürün sayfası her mağaza görünümünde açılıyor.
- Sepete ekleme çalışıyor ve mini sepet güncelleniyor.
- Ödeme sayfası her ödeme yöntemiyle ödeme adımına ulaşıyor.
- Tarayıcı konsolunda ve Magento günlüklerinde hata yok.
- Önbellek ısındıktan sonra CDN arkasındaki gerçek adreste bir Lighthouse ölçümü.
Hyvä Checkout'un kendi içerik güvenlik politikası (CSP) kuralları vardır. Yeni bir ödeme script'i veya izleme etiketi orada engellenebilir; bu yüzden ödeme sayfasına dokunan her yayından sonra gerçek bir test şarttır.
Karşılaştığımız tuzaklar
- Düzen değişikliğinden sonra eskimiş önbellek. Bir değişiklik görünmüyorsa, koddaki hatayı aramadan önce tüm önbellek katmanlarını kontrol edin.
- Statik dağıtımda eksik bir yerel ayar. Bu durumda bir dil stiller ve script'ler olmadan yüklenir.
- Tailwind derlemesini unutmak. Bir şablondaki yeni sınıflar, CSS yeniden derlenene kadar hiçbir etki göstermez.
- Kaynak sunucuyu test etmek. CDN arkasındaki herkese açık adresi normal bir tarayıcı kullanıcı aracısıyla test ediyoruz, çünkü nginx yapılandırmamız bot kullanıcı aracılarını engelliyor.
SSS
Hyvä, Luma'dan farklı bir dağıtım süreci gerektirir mi?
Büyük ölçüde aynıdır. Asıl ek adım Tailwind CSS derlemesidir; şablonlar veya stiller her değiştiğinde statik içerik dağıtılmadan önce çalışması gerekir.
Şablonları doğrudan canlı sunucuda düzenleyebilir miyim?
Bunu önermiyoruz. Canlı modda şablon ve stil değişiklikleri derleme ve dağıtım gerektirir; elle yapılan değişiklikler de bir sonraki yayında kaybolur.
Mağazamın canlı modda olup olmadığını nasıl anlarım?
Şu komutları çalıştırın: bin/magento deploy:mode:show komutunu sunucuda çalıştırın. Çıktıda production yazmıyorsa, düzeltilecek ilk şey budur.
Hyvä mağazalarını, script'li dağıtımlar, güncellemeler ve güvenlikle birlikte optimize edilmiş sunucularda şu hizmetimizin parçası olarak çalıştırıyoruz: Hyvä hizmeti. Mevcut bir mağazada hız çalışması için şuna göz atın: Magento 2 hız optimizasyonu.


