Acil müdahale gerektiren bir sorununuz mu var?Acil müdahale mi?Acil yardım alın →
Blog

MageBooster ekibinden upgrade, güvenlik, hız ve taşıma üzerine pratik Magento 2 rehberleri.

Hyvä mağazalarında canlı mod ve dağıtım

Hyvä ön yüzü hafifletir, ancak bir mağazanın ne kadar hızlı ve kararlı olacağını yine canlı mod ve tekrarlanabilir bir dağıtım belirler. Hyvä mağazalarını nasıl yönettiğimizi ve yayına aldığımızı anlatıyoruz.
Hyvä mağazalarında canlı mod ve dağıtım
Yeni

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.

Magento canlı modda, statik içeriği dağıtılmış olarak çalışan bir Hyvä ürün sayfası.
Magento canlı modda, statik içeriği dağıtılmış olarak çalışan bir Hyvä ürün sayfası.

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 production

Canlı 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 build

Mağ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.

  1. Yeni sürümü çekin ve bağımlılıkları Composer ile kurun.
  2. Her Hyvä teması için Tailwind CSS'i derleyin.
  3. Sürüm veritabanı değişiklikleri içeriyorsa bakım modunu açın.
  4. Şu komutları çalıştırın: bin/magento setup:upgrade.
  5. Şu komutları çalıştırın: bin/magento setup:di:compile.
  6. Kullanılan her yerel ayar için statik içeriği dağıtın.
  7. OPcache'in yeni kodu alması için Magento önbelleğini temizleyin ve PHP-FPM'i yeniden yükleyin.
  8. Bakım modunu kapatın.
  9. 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:flush

Derlemeyi 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 schedule

Zamanlanmış 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:

KatmanKullandığımız
UygulamaPHP 8.4 üzerinde Magento 2.4.9
Önbellek ve oturumlarRedis veya Valkey
AramaOpenSearch
Web sunucusuHer 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.

Bu sayfa otomatik çeviri sistemiyle çevrildi. Bir hata mı gördünüz? Bize bildirin, hemen düzeltelim.

Ücretsiz Site Analizi

Mağaza bilgilerinizi gönderin. Hız, güvenlik ve eklentileri inceleyip 3 iş günü içinde hemen uygulayabileceğiniz üç iyileştirme önerisiyle size dönelim.

Konuşalım

Teklif alın

Mağazanızdan bahsedin, bir iş günü içinde size dönelim. Sohbet etmeyi mi tercih edersiniz? WhatsApp'tan yazın

MageBooster UnoPim demosu talep edin UnoPim’i sizinkine benzer ürünlerle canlı görün. Yeni bir PIM ya da Akeneo’dan geçiş: plan, zaman çizelgesi ve teklifle dönüyoruz.
✓ Resmi UnoPim partneri✓ Ekibiniz için yapay zeka asistanı✓ Magento’ya bağlı
MageBooster Hyvä projenizi başlatın Sıfırdan ya da mevcut mağazanızdan. Proje planı, zaman çizelgesi ve teklifle dönüyoruz.
✓ Tasarım ve kurgu bizden✓ Hyvä’ya optimize sunucu✓ Bonus modüller dahil
Partnerimiz olun