Zend Sunucu deneyimler

5 Cevap php

Geçen gün ben Zend Server içine bakıyordu ve ben bu kullanmak neden ben merak ediyorum? Tamam, onlar tüm test ve kritik ve Enterprise hazır vb söylüyorlar Ama benim için o konuşurken sadece pazarlama departmanı bulunuyor.

Bu ürünü kullanırken Orada kimse var mı ve eğer öyleyse onunla deneyimlerini paylaşmak ve belki de size uygulama (lar) için bu ürünü tercih neden nedeni ayrıntılı olabilir.

Zend sunucu kullanarak herhangi bir gerçek faydalar buldunuz mu?

5 Cevap

(Ben orada alıyorum, ben Zend Server hakkında soran biliyorum) Zend Platform kullanıyorum ve aynı zamanda Zend Server ile almak hata raporlama aracı çok istekli olmuştur.

Whenever an error occurs or an exception is thrown Zend Server stores as much information about it as it can(like for instance what request parameters were being used, where the error occured, time, error message, stack trace, etc.). Also slow script execution is being reported to you.

". Sitesi çalışmıyor bunu düzeltmek Lütfen": ben gerçekten müşteri gibi bir şey söyleyerek üzerinde hata mesajları bu tür almak tercih ederim.

Zend Studio ile birlikte Zend Server kullanırken Zend Debugger zaten önceden yüklenmiş olarak geliyor (ama kendiniz de yüklü olabilir) oldukça düzgün.

Ayrıca bir php-java-köprü (java sınıfları PHP kullanılan olabilir) geliyor ama bu gerek yoktu.

Zaten web uygulamasında bir php tabanlı bir hata raporlama çözümü olan ya da bunun için ne java köprü için hiçbir faydası var eğer ben kendi üzerinde Zend Server kullanıyorsanız eğer gerçekten bir fark olmadığını söylemek istiyorum apache kurulum (sürece doğru yapılandırmak için nasıl bildiği gibi).

En azından benim görüşüm / deneyimdir.

Ben ücretsiz Zend Platform Developer Edition'ı kullanarak oldum. Ben Zend Platform / Server için ödemek zorunda eğer ben bunu kullanarak olacağını sanmıyorum. Ama bu gerçekten projeye bağlıdır.

Zend Server test edilmiş ve desteklenen yığını olan daha hakkında çok daha fazla olduğunu. Andre, Zend Server özelliklerinden biri o varlık izleme dokundu. İzleme belirli koşullar için PHP komut dosyası yürütülmesine saatler ve belli bir eşik geçirilir eğer zaman içinde daha sonraki bir noktada incelemek için, bu isteğin bağlamında kaydedilecektir. Ben uygulama sorunları yaşıyorsanız müşterileri ile yerinde çalışırken yapmam ilk şey Zend Server yükleyin ve üzerinde izleme açmak olduğunu. Bir kaç dakika içinde genellikle sorunun ne olduğunu en azından oldukça iyi bir teorim var.

Bir istek boyunca yapılan hemen hemen her bireyin fonksiyon / metod çağrısı zamanı aletleri yapar Kod İzleme özelliği tanıtımı ile çok daha yüksek götürüldü Zend Server 5 içinde. Bu tür hata ayıklama ve çalışma zamanı sırasında yapılan profilleme bir birleşimi gibidir. Birçok durumda aslında sorunu kopyalayan olmadan bir üretim ortamında bir sorun teşhis etmek mümkündür.

Siz de kullanabileceğiniz birkaç diğer özellikleri vardır. İş Kuyruğu oldukça yoğun kullanmak benim için büyük bir tanesidir. I Do you queue? Introduction to the Zend Server Job Queue olarak kullanmak için nasıl bir örnek var

İki farklı önbelleğe alma özellikleri, mevcut en hızlı opcode hızlandırıcılar biri olan PHP-Java köprü (Andre de değindiğim olan) ve Doktoru + da vardır.

Elbette, 'test, sertifikalı' bit bazı ortamlarda güzel. Bizim durumumuzda, denetim gereksinimleri, biz ya bir sertifikalı yazılım yığını kullanmak, ya da biz kendi başımıza gitmek ama biz bunun içine beslenir her küçük bileşene hızlı güncellemeleri yapıyoruz göstermek zorunda. Yani, aklı amaçlar için, biz tarihsel Linux dağıtımlarının standart teklifleri ile gittim. Bu sorun onlar yıl eğri arkasında olma eğilimi olmasıdır. Örneğin, çoğu dağılımları sadece son 5,1 (!) Ile sıkışmış sonra PHP 5.3 benimsemiştir. Eğer modern kodlama teknikleri kullanan çağdaş uygulamaları geliştirmek için çalışıyoruz, artı PHP performans ve güvenilirlik açısından bir ton kadar veriyoruz zaman bu sadece kabul edilebilir değil.

Özellikleri de oldukça güzel olduğunu söyledikten sonra. @ Keven zaten iş kuyruğunu bahsetti. O biz çok kolay uyumsuz çalışacak görevler her türlü boşaltma ve ana talebi süreci uçan tutabilir, bizim için harika. Olayların belirli türleri ne zaman bir örnek olarak, bizim uygulamalardan biri bizim bug tracker görevleri oluşturur. Bu web servisi tarafından yapılır ve hata izci horrendously yavaş olduğu gibi, bu birkaç saniye sürebilir. Aksine bizim uygulama bekleme kullanıcıları yapmak yerine, ancak, biz sadece bir iş sıraya ve arka planda çalışmasına izin. Aynı şekilde, bizim standart e-posta sınıfı kullanıcı bekleyin yapım işi kuyruğunu yerine kullanır iken bir SMTP sunucusuna bizim kod konuşur. Ve bütün bu bile, vb, vb, büyük raporlar üreten veritabanı bütünlüğü kontrolleri çalışan, önbelleklerini yeniden inşası gibi şeyler için yararlılığını dokunmadan değil

Sayfa önbellek sadece bir tam sayfa önbelleğe ve onunla yapılabilir durumlar için mükemmeldir. Biz PHP'nin kendi önbelleğe kontrollere daha iyi kontrole sahip çünkü biz, bizim WSDLs ile kullanabilirsiniz. Aynı şekilde, indirme sunucu görüntüleri gibi, belirli içerik türlerini önbelleğe alma için harika. Ve biz büyük ölçüde yavaş ağ üzerinde başka bir yerde oturan yavaş bir veritabanı sunucusuna bir sorgu yaparak kaçınarak istekleri her türlü hızlandırmak için yerel memcached sunucusu gibi veri önbelleğini kullanır.

@ André bahseder gibi ve tabii ki, orada, raporlama özellikleri bazı çok güzel hata ayıklama, izleme, ve olay vardır.

Kritik iş uygulamaları ile çok önemlidir dağıtımları ve kurtulma yapmak için bazı güzel özellikleri de vardır. Ben bir gün bu denemek niyetinde, ama şimdi, ben hala ZS kullanmadan önce araya araçlarını kullanıyorum.

Şimdi, birlikte diğer çeşitli araçlar cobbling tarafından bu özellikleri (özellikle, tüm önbelleğe alma bit) en alabilirsiniz. Ama sonra bir şey güncellendiğinde uygun entegrasyon test yapıyor dahil, araştırma ve öğrenme tüm bu şeyler, hepsini yüklü ve birlikte çalışma olsun, ve sonra hepsini korumak zorundayız. Bu bir lot iş ve zaman var - zaman ben şahsen çok kod yazmaya harcamak istiyorum.

Tüm söyledikten sonra, olumsuzlukları vardır. Biri için, işler bazen ... yarı-pişmiş ve / veya kötü tasarlanmış hissediyorum. Varlığından olmayan bir öğeyi almak için deneyin, örneğin, veri önbelleği API döndürür false boolean. Ve, bir öğesi de getiriliyor olmadan varsa kontrol için hiçbir işlevi yoktur. Bu ne demek sanırım: güvenle alamaz çünkü güvenli bir Boole değeri saklamak olamaz. Bu kötü belgelenmiş APC uyumluluk katmanı içerir, ancak APC varlığı işlevini kullanmak için çalışırken bir tanımsız-fonksiyon hatası üretir.

Başka bir örnek olarak, bizim geliştirme istasyonları için Mac kullanmak, ancak PHP sunucu yazılımı üzerinde binlerce damla orada tüm bu profesyonel geliştiriciler tarafından çalıştırmak eğilimindedir eski donanımla uyumluluk üzerinde bir ölçüde yanlış endişe dışında, Zend gemi seçti (sadece kalkınma için) Mac sürümü 32-bit olarak only. Bu yüzden her yerde 64-bit çalışan 32-bit bir uygulama geliştirmek zorunda konum. Bu oldukça az hata neden ve oldukça geliştirme, test, evreleme, QA ve üretim ortamlarında özdeş bir yazılım yığını olan ZS, temel amaçlarından birini öldürür bizim uygulama, otomatik testler başarısız oldu. Ben bu değişen bunları konuşmaya çalıştım, ama onlar hızla beni görmezden başladı.

Başka büyük bir iş kuyruğu sadece HTTP istekleri ile işlerini işleyebilir olmasıdır. API (çok daha mantıklı bir komut satırı çağrısı gibi) diğer yöntemleri sağlamak için kurulmuş, ancak HTTP işleri hepsi olur. Bu, tasarım, uzun süren olma eğilimindedir ve böylece web bağlam dışına alınmalıdır görevleri ile web sunucusu bağlantılarını bağlamak için zorlar. Ve bu bir tarayıcıya URL ziyaret ederek işleri tetikleyecek edememek dünyayı tutmak için çemberler üzerinden atlamak için sizi zorlar. Bu sadece aptalca bir karar.

Diğer örnekler Zend Monitor, shebang hattı, önbellek sağlık ve performans raporlama tam (mutlak) eksikliği tetiklediği zaman Mac tatili PHP ikili için php-cli sargıya API yoluyla gönderilen özel olayların kötü işleme vardır araçları (bu ZS 6 değişiyor dedi ama), ve utanç verici eksik belgeler. I could go ....

Şimdi, belli ki, sürüş boyunca gelip bu olumsuzlukları ve boşa zaman ve kaynaklar bizim için faydaları galip değil, ama biz harcadığımız para miktarı için, ben kesinlikle daha bekliyoruz.

Code Tracing is the best tool provided by Zend Sever

  1. Root Cause Analysis is a Time-Sink for Developers
    Fixing a problem is easy when you know what causes it. However, finding the root cause of problems is often challenging during testing, and incredibly difficult when the application is running in production. Trying to reproduce the exact same environment, application state and load in the development lab is both time-consuming and error-prone, and it takes developers away from their most important task – writing code. Zend Server 5 takes root cause analysis to a whole new level by featuring code tracing.
    A Flight Recorder for Your PHP Application What is code tracing?
    Think of a black box flight recorder. When something goes wrong with an airplane, you would probably not want to “reproduce” the problem. This is why the flight recorder captures the full data that flight analysts may need in order to understand why the problem occurred.

  2. Zend Server Code Tracing is like a flight recorder for PHP.
    Rather than spending time on trying to set up the environment and reproducing all the steps that led up to the failure, Zend Server captures the full execution of your application in real-time – in production or in the test lab – so you can quickly find root cause.

  3. Zend Server Code Tracing Cuts Root Cause Analysis Time
    Zend Server code tracing is activated automatically, when a problem is detected, or manually by the user, e.g. during an optimization project. Data recorded by Zend Server code tracing includes:

    • Fonksiyon ağacı çağırır
    • Argümanlar
    • Dönüş değerleri
    • Süre
    • Bellek kullanımı
    • Kod satırı
    • Dosya adı

Kadar bir DVD gibi - - uygulamanın yürütme geçmişini ve hızlı bir şekilde kök nedenini saptamak için bir tek sorunlu isteği izinden Zend Sunucusu web konsolunda görüntülenen iz görmenizi sağlar.

Ben COBOL kullanarak 20, 30 yıl gibi çalışan oldu eski yazılım ile büyük IBM sunucuları üzerinde (IBMi Seri) çalıştırın PHP uygulamaları üzerinde çalışmak. Yani temelde Zend Sunucu bunu IBMi çalışır veya olduğu gibi en azından sağlam bildiğimiz tek PHP platformdur. Bu sistemler kritik vardır. Temelde en sigorta şirketleri, bankalar, hisse senetleri, hatta okul bölgeleri bu tip sistemlerde çalışır. Zend Server gibi bir şey çalıştırmak beri modern bir şekilde bu eski sistemleri ortaya çıkarır ve Servis Odaklı Mimari için izin veren bir REST API kurmak gibi şeyler yapabilirdi. Ben üçüncü şahıslara veri iter PHP CLI ve Zend İş Kuyruğu kullanan bir Event Driven Sistemi ve yanı sıra çalışan buydu. Bu durumda biz satıcının sonuna kadar bizim sonunda verilerini senkronize.

IBMi Zend Server statik kaynaklar için bir nginx ön uç (CSS, resimler, vb) kurmak ve bu oldukça güçlü bir kurulum yani dinamik PHP için FastCGI süreçleri kullanır. Kesinlikle modernizasyonu için eski sistem açılır.