Deploybot ile Canlı Yayına Dağıtma ve Hazırlama

Yayınlanan: 2022-06-30

Bir süredir web geliştirme işindeyseniz, bir siteyi güncellemeye çalışırken muhtemelen dosya aktarımını berbat etmişsinizdir. En iyi senaryoda, bir dizine bir dizi kolayca tanımlanabilir dosya eklersiniz ve hatayı düzeltmek için bunları kaldırırsınız. Evet, size zaman kazandırır ve can sıkıcıdır, ancak zararı yoktur.

En kötü senaryoda, bir grup tema dosyasını yanlış aktarırsınız. O zaman hangilerinin üzerine yazıldığını, hangilerinin hiç ait olmadığını ve temanızın düzgün çalışma durumunu nasıl kurtaracağınızı bulmanız gerekir.

Bugün, dağıtım sürecinizi otomatikleştirmek için Git ve Deploybot kullanarak bu sorunu çözmeyi ele alacağız.

Otomatik Dağıtım nedir?

Bu şemada gösterildiği gibi, temel bir otomatik dağıtım dört parçadan oluşur.

Çoğu geliştirici, yalnızca kodu ve sunucusuyla başlar. Sitenin çalışan kopyalarında değişiklikler yaparlar ve ardından bu değişiklikleri FTP aracılığıyla doğrudan sunucuya gönderirler. Coda veya Dreamweaver gibi araçlar, bunu kodlama ortamınızın içinden yapabilmeniz için doğrudan FTP entegrasyonuna sahiptir.

Birçok geliştiricinin atacağı bir sonraki adım, canlı sunucuyu doğrudan değiştirmemeleri için bir hazırlama sitesi eklemektir. Bunu VVV veya MAMP gibi bir şeyle yapabilirsiniz. Bu aynı zamanda yerel çalışma sitenizde yaptığınız değişiklikleri yönetmek için Git gibi bir sürüm kontrol sistemi kullandığınız anlamına da gelir.

Bir hazırlama sitesi eklediğinizde, karmaşıklığı da eklersiniz. Kod değişikliklerinizi yerel çalışma sitenizden müşterinizin değişiklikleri görebileceği bir hazırlama sitesine nasıl alırsınız? Evet, daha önce de söylediğim gibi, değişiklik yaparken dosyaları taşımak için FileZilla, Transmit veya Forklift gibi temel bir FTP istemcisi kullanabilirsiniz, ancak bu hataya açıktır ve dağıtım sürecinizi otomatikleştirmenin size çok zaman kazandıracağı yer burasıdır.

Değiştirdiğiniz dosyaları alıp hazırlama sunucunuza göndermek yerine, Git deponuzdaki değişiklikleri otomatik olarak algılamak için başka bir sistem kullanır ve yalnızca bu değişiklikleri müşterinizin işi kontrol etmek için kullanabileceği hazırlama sitesine gönderirsiniz.

Bu, hala canlı sitenizi manuel bir dağıtım olarak bırakır, bu çok daha korkutucu çünkü çalışır durumda bir çalışma sitesini kapatırsanız gerçek para kaybı anlamına gelebilir. Bunun yerine, dağıtım sisteminizi hazırlamaya otomatik olarak dağıtacak şekilde kuracağınızı ve ardından, gitmeye hazır olduğunuzda sisteminizin tek bir tıklamayla canlı ortama dağıtım yapacağını varsayalım.

Yani şimdi buna benzeyen bir sisteminiz var.

Birlikte çalıştığım her müşteri için bu dağıtım sürecini nasıl kurduğumu size gösterebilmem için konuya girelim. Bunlar yeni bir projeye başlar başlamaz attığım adımlar. Bir istemci projesinde başka bir iş yapmaya başlamadan önce dağıtım sürecimin kurulduğundan ve çalıştığından her zaman emin olurum.

Git Deponuzu Nasıl Yapılandırırsınız

İlk tercihiniz, otomatik dağıtımınızı hangi dizinde kuracaksınız? Müşterim, WordPress kurulumu için bu tam kaynak kontrolünü özellikle talep etmedikçe, otomatik dağıtım sistemimi kurmak için wp-içerik dizinini kullanırım. Bu, bir git deposunu başlatan bu komutu vererek terminalde başlar.

git init

Artık her zaman dağıtmak istemeyeceğiniz dosyaları görmezden gelmenin zamanı geldi. Bunlar, yedekleme dosyaları, resimler ve birçok kod düzenleyicinin bir dizine eklediği özel proje dosyalarından herhangi biri gibi dosyalardır. Her zamanki .gitignore dosyamı aşağıda görebilirsiniz.

config/app_config.yml

config/database.yml

config/*.sphinx.conf

config/s3_credentials.yml

*~

*.önbellek

*.kayıt

*.pid

tmp/**/*

.DS_Store

db/cstore/**

db/sfenks/**

belge/api

belge/uygulama

belge/eklentiler

doc/*.dot

kapsama/*

db/*.sqlite3

*.tmproj

*.sw?

*.esproj

_notlar*

dwsync.xml

podcast.xml

*.kpf

*yükler/*

*.swp

*.fikir

*.yüce-proje

*.sublime-çalışma alanı

*/node_modules/*

etiketler

*.bak

önbellek/*

yönetwp/*

mu-eklentiler/*

dp.php

havanın yükselmesi/*

Diller/*

db.php

plugins/wp-rocket/cache.json

Gerektiğinde buna eklemekten veya çıkarmaktan çekinmeyin. Üzerinde çalıştığım hemen hemen her proje, hazırlama ve canlı sitelerin üzerine yazmak istemediğim kendi özel dosyalarına sahip olacağı yerel çalışma siteme özgü bazı dosyaları yok saymak için bir tür özel girişe ihtiyaç duyuyor.

Buradan, dağıtım sisteminizi çalıştırmak için ihtiyaç duyacağınız şubeleri kurmanın zamanı geldi. İki ana dal kullanıyorum. Birincisi, canlı prodüksiyon siteme karşılık gelen ana dal. İkincisi, evreleme olarak etiketlediğim ve müvekkilimin yaptığımız değişiklikleri kontrol etmenin bir yolu olarak kullanmasını istediğim evreleme sitesine karşılık gelen bir dal.

Git deponuzu başlattığınızda, ana dalınızı zaten almış olursunuz, bu nedenle bir hazırlama dalı eklemek ve kontrol etmek için bu komutu kullanın.

git checkout -b hazırlama

Bu komut yeni bir dal oluşturur ve denetler. Git'te yeniyseniz, mevcut komutlar hakkında daha fazla bilgiyi Git belgelerinde bulabilirsiniz.

Şimdi projenizi kaynak kontrol sisteminize aktarmanız gerekecek. Github ve Bitbucket, her ikisi de kullanacağımız Deploybot adlı otomatik dağıtım sistemiyle çalışan iki popüler seçimdir. Her iki siteyle de yeni bir havuz oluşturduğunuzda, yerel havuzunuzu Github veya Bitbucket'teki çevrimiçi sürümünüze eklemek için size daha fazla talimat vereceklerdir.

  • Bitbucket deposu kurulum belgeleri
  • Github deposu kurulum belgeleri

Deploybot'u kurma

Bir geliştirici olarak daha karmaşık bir işe ilk başladığımda, arkadaşım Duane, manuel FTP dağıtımını berbat ettiğim konusunda çevrimiçi şikayette bulunduğumda bana Deploybot'u önermeye devam etti. Sonunda bana söyleneni yapmadan önce bir takım tavsiyeler aldı, ancak artık yıllardır mutlu bir Deploybot müşterisiyim.

Sitelerinizi dağıtmanın başka yolları olsa da, bunların çoğu, kod düzenleyiciniz aracılığıyla Git Web kancaları veya bazı otomatik dağıtım yapılandırma dosyalarıyla arabirim oluşturmayı içerir. Bu diğer araçlarda çok fazla güç var, ancak otomatik dağıtıma yeni başlıyorsanız, Deploybot gibi doğrudan bir şeyle başlamak başlangıç ​​noktasıdır.

Başlamak için bir Deploybot hesabına kaydolun ve Github veya Bitbucket'i hesabınıza bağlayın. Bugün mevcut Bitbucket hesabımı kullanacağım. Deploybot hesabınıza yeni bir depo ekleyerek başlayın.

Otomatik dağıtım için kurmak istediğiniz depoyu bulduktan sonra, sayfanın altındaki bağlan etiketli düğmeyi tıklayın. Bu, Deploybot deponuzu başlatmayı bitirirken sizi depo sayfanıza geri gönderir. Genellikle bu bir veya iki dakika içinde yapılır, bu nedenle kahvenizi doldurun ve dağıtım sürecinizi ayarlamayı tamamlamak için geri gelin.

Deponuz kurulduktan sonra, ana sayfasına gitmek için üzerine tıklayın. Henüz bir sFTP bilgisi ayarlanmadığından, üzerinde size bir sunucu kurmanızı söyleyen büyük bir kutu olacaktır. Bir ortam ve sunucu oluşturmak için düğmeye tıklayın.

Hazırlama ortamımıza dağıtımla başlayalım. Bu yüzden sunucunuzu evreleme olarak etiketleyin. Otomatik dağıtımı seçin ve dalı hazırlamaya ayarladığınızdan emin olun.

İşiniz bittiğinde, sunucu yapılandırmanıza geçmek için sayfanın altındaki Kaydet düğmesini tıklayın.

Bir sonraki sayfada onu tekrar Hazırlama sunucusu olarak etiketleyin ve sitenizden sFTP bilgilerinizi girin. Bunları nerede bulacağınızdan emin değilseniz, bu faydalı kılavuzu okuyun.

Girilen sFTP bilgileriniz ile en alta inip kaydedebilirsiniz. Deploybot, sağladığınız bilgilerin çalıştığından emin olmak için bağlantınızı test eder. Şimdi, her şeyin çalıştığından emin olmak için sitenin ilk dağıtımını yapma zamanı. Dağıtımın düzgün çalıştığını doğrulamanın kolay bir yolu olarak genellikle dağıtıma bir test.txt dosyası eklerim.

Ortam geçmişinize dağıtımınızı başlatmak ve dağıtmak için tıklayın.

Şimdi, bu dağıtımın yanında Deploybot'un içinde göreceğiniz not olarak, üzerinde son git taahhüt mesajınızı içeren bir sayfa göreceksiniz. Büyük değişiklikler için bunu değiştireceğim, ancak sadece CSS'yi veya küçük bir şeyi değiştiriyorsam, taahhüt mesajı kalabilir. Bu evreleme olduğundan, evreleme şubemize yapılan her bir taahhüt otomatik olarak dağıtılacaktır, bu da taahhüt mesajlarınızın görüneceği anlamına gelir. Hazırlama sitemize manuel olarak yapmamız gereken yalnızca ilk taahhüttür.

Şimdi dosyalarınızın hazırlama sitesinde yayınlandığını doğrulayın ve canlı dağıtımı ayarlayabiliriz.

Canlı dağıtımınız için, otomatik dağıtımı seçmediğinizden ve dağıtımınızın kaynağı olarak ana dalı seçtiğinizden emin olun. Canlı sitemize değişiklikleri göndermeye hazır olduğumuzda bunun manuel bir dağıtım olmasını istiyoruz.

Bunu yapmak için ana dalınızı kontrol etmeniz ve ardından hazırlık dalınızdaki değişikliklerinizi ana dal ile birleştirmeniz gerekir.

Bunu bu komutlarla yapabilirsiniz.

git ödeme ustası

git birleştirme hazırlama

git push orijin ustası

Artık Deploybot hesabınıza gittiğinizde, hazırlık ortamımıza ilk dağıtımımızda yaptığımız gibi değişikliklerinizi manuel olarak dağıtabileceksiniz. Canlı ortamınız için, dağıtım mesajını canlı sitenize gönderilen değişikliklere uyacak şekilde değiştirdiğinizden emin olun. Ayrıca sitenizin bir yedeğini oluşturmalısınız. Bunu, sitenizdeki yedekleme navigasyonuna erişerek ve ardından manuel bir yedekleme oluşturarak yapabilirsiniz.

İşte bu, hem hazırlama hem de canlı ortamlar için otomatik dağıtım sistemi kurulumunuz var.

Diğer Dağıtım Hususları

Bu sistem çoğu geliştirici için ileriye doğru atılmış büyük bir adım olsa da, sorunsuz değildir. En büyüğü, bir sürü değişikliğiniz varsa, FTP'nin değişen dosyaları aktarmayı bitirmesini beklemenizdir. Bu, birisinin sitenizi ziyaret ettiği ve sitenizin çalıştırması gereken tüm dosyaların mevcut olmadığı anlamına gelebilir.

Birçok müşteri için bu bir sorun olmayacak, ancak siteniz içinse, bir Atomik dağıtım sistemi kurmaya bakmanız gerekecek. Bu tür dağıtım sistemi tüm dosyaları taşır, doğru çalıştıklarını doğrular ve ardından sunucunuzdaki dosya ayarlarını değiştirir, böylece yeni dizin artık sitenizi çalıştırır.

Yeni bir klasöre bağlanma işlemi, yalnızca bir bilgisayarın fark edebileceği kadar kısa sürer. Bu ayrıca, daha sonra bir sorun bulursanız, çalışan sürüme geri dönmek için sistem bağlantınızı sitenin eski sürümüne geri döndürebileceğiniz anlamına gelir. Bu da yine çok kısa bir süre alır ve arıza süresini azaltır.

Ne yapmayı seçerseniz seçin, bugün istemci dosyalarınızı dağıtmak için bir FTP istemcisi kullanmayı bırakın. Deploybot'un küçük aylık maliyeti, dosyalarınızı dağıtırken her hata yapmadığınızda geri alınır.