Varnish Notları

Varnish web uygulamalarını hızlandırmaya yarayan faydalı bir araç. Web sunucusunun önünde yer alır ve içeriği cache’ler. Böylece aynı içeriği ulaşmak isteyen kullanıcılar için, uygulama, aynı output’u üretmek için tekrar tekrar uğraşmaz. Belirlenen cache süresi içinde sayfayı ziyaret eden kullanıcılar web sunucusuna uğramadan, istedikleri içeriği Varnish’den hızlıca alırlar. Cache süresi bitiminde ise kullanıcılardan bir tanesi tarafından oluşturulan içerik tekrar cache’lenir, bu sırada diğer ziyaretçiler içeriğin oluşmasını bekler, bu sayede race condition durumu engellenir.

Varnish ayarları VCL (Varnish Configuration Language) ile yapılır. Aşağıda bir isteğin hangi VCL methotlarına, hangi sırayla, hangi koşulda uğradığını gösteren bir akış şeması mevcut:
Continue reading Varnish Notları

Amazon EC2 üzerine LAMP Ortamı Kurulumu

Popüler cloud servisi Amazon EC2 üzerine, PHP uygulamalarını çalıştırabilmek için gerekli araçları kuralım.

Öncelikle AWS Management Console‘dan EC2 sayfasına girip Launch Instance butonuna basarak ihtiyaca göre bir adet instance açıyoruz. Classic Wizard‘ı kullanıp CHOOSE AN AMI aşamasında Ubuntu Server 14.04 LTS‘i seçip (64 bit) devam ediyoruz. Create Key Pair aşamasında yeni bir keypair oluşturup kaydetmeyi unutmayın. Bu keypair SSH ile sunucumuza bağlanmak için lazım olacak.

Kurulum bittikten sonra EC2 Dashboard’da, NETWORK & SECURITY menüsü altında Elastic IPs sayfasına giriyoruz. Buradan Allocate New Address butonuna basıp yeni bir IP alıyoruz. Daha sonra bu IP’nin üzerine tıklayıp Associate Address butonuna basarak biraz önce oluşturduğumuz instance ile ilişkilendiriyoruz. Böylece instance’ımıza bir adet IP bağlamış olduk. Yine NETWORK & SECURITY menüsü altından Security Group sayfasına girip HTTP portunu (80) açmamız gerekiyor. Kullandığınız security group’un üzerine tıklayıp Inbound tab’ından HTTP rule’unu eklemeniz ve kaydetmeniz yeterli.

Şimdi keypair ile EC2 sunucumuza ubuntu kullanıcısı ile bağlanalım (önce keypair dosya modunu güvenlik nedeniyle 600 yapıyoruz):
Continue reading Amazon EC2 üzerine LAMP Ortamı Kurulumu

Jenkins ile Git Kullanarak Deployment

Şöyle bir deployment akışımız olduğunu varsayalım:

  • Local ortamda projeyi ‘develop‘ branch’ında geliştiriyoruz.
  • Production’a bir release çıkmak istendiğinde develop branch’ını ‘master‘ branch’ı ile merge edip Github’a push’luyoruz.
  • Github’a güncelleme geldiğinde Jenkins tetikleniyor.
  • Jenkins build task’ini çalıştırıyor.
  • Eğer build başarılıysa Jenkins, görevi pruduction kodunu güncellemek olan başka bir işi çalıştırıyor.

Continue reading Jenkins ile Git Kullanarak Deployment