Golang Geliştirici Merkezi

Golang Hosting

PaaS, şu anda Java, PHP, Python, Ruby, Node.js, .NET ve bundan sonra Go ortamları ile her boyuttan ve çeşitli doğadaki projelerin çalıştırılabileceği gerçekten çok dilli bir bulut platformudur.

Golang Cloud Hosting

Go Ortamı Hosting

Go uygulamanızı barındırmak için,Topoloji Sihirbazıkullanarak uygun bir ortam oluşturmanız gerekmektedir.

Gomotoru sekmesine geçin, Golang'i uygulama sunucusu olarak ekleyin ve projeniz için gereken diğer yazılım yığınlarını (örneğin, yük dengeleyiciler, veritabanları veya paylaşımlı depolama) ekleyin. Gerekirse, ortam düğümlerinizin sayısını, RAM ve CPU için bulut limitlerini ayarlayın, genel IP'ler ekleyin vb.

Not:Bu şablon, modern birsystemdbaşlatma daemon'ı kullanır.

Golang Topology Wizard

Not:Platformdaki tüm örnekler tamamen izole edilmiş konteynerlerdir ve mevcut ana makineler (fiziksel sunucular veya sanal makineler) üzerinde otomatik anti-affinity kuralları kullanılarak dengeli bir şekilde dağıtılır. Bu, uygulamanızın kesinti riskini ortadan kaldırır ve yüksek kullanılabilirlik sağlar.

Golang Sürümleme

Şu anda (bu yazının yazıldığı sırada), aşağıdaki Node.js sürümleri desteklenmektedir:

  • 1.17.12
  • 1.18.10
  • 1.19.12
  • 1.20.14
  • 1.21.13
  • 1.21.13
  • 1.23.2

Platformda mevcut olan sürümlerin güncel listesi, özel olarak (haftalık olarak) güncellenen Yazılım Yığını Sürümleri belgesinde sağlanmaktadır.

Tercih ettiğiniz sürümü ortam oluşturulurken seçebilir ve daha sonra konteyneri yeniden dağıtarak değiştirebilirsiniz. Bu sayede, düğümdeki tüm özel veriler korunur; örneğin, yeni yığın şablonu sürümü yayınlandığında yazılım sürümünüzü kolayca güncelleyebilirsiniz.

Go Konteynerlerinin Yeniden Dağıtımı

Go Uygulama Dağıtımı

Ortam oluşturulduktan sonra, Go projenizi Git deposundan dağıtabilirsiniz (uygulama arşivinden dağıtım, bir sonraki platform sürümünde uygulanacaktır).

Dağıtım sürecini, aşağıdaki konteyner değişkenlerini sağlayarak veya ayarlayarak özelleştirmek mümkündür:

  • GO_RUN- çalıştırılabilir ikili dosyanın adını ayarlar (belirtilmezse, dağıtım betiği Git proje adına dayanarak birini bulmaya çalışacaktır)
  • GOPATH- dağıtım klasörünü tanımlar (/home/jelastic/webapp, varsayılan olarak)
  • GO_BUILD_OPTIONS- derleme işlemi için ek seçenekler sağlar (-a, varsayılan olarak, zaten güncel olan paketlerin yeniden derlenmesini zorlar)
  • GO_RUN_OPTIONS- çalışma işlemi için ek seçenekler sağlar
Go Uygulama Dağıtımı

Dağıtım sırasında, platform otomatik olarak aşağıdaki adımları gerçekleştirir:

  • sağlanan Git URL'sini analiz eder ve Go projesine giden bağlantıyı alır
  • go getkomutuyla tüm bağımlılıkları içeren paketi indirir
    • hata durumunda, yaygın Git projesi gibi indirir ve Go bağımlılıklarını tekrar almaya çalışır
  • proje,go buildkomutuyla derlenir (eklenen seçeneklerGO_BUILD_OPTIONSdeğişkeninde belirtilmiştir)
  • ikili dosya,GO_RUNdeğişkeniyle tanımlanmış olango runkomutuyla çalıştırılır (ek seçeneklerGO_RUN_OPTIONSiçinde belirtilmiştir)

Başarılı dağıtımın ardından, Go projesiGOPATHdeğişkeniyle ayarlanan dizine yerleştirilir. Buradaki çalışma alanı hiyerarşisi, resmi belgelerdeki gereksinimlere dayanmaktadır.

Alan Adları Yönetimi

Platform ile, varsayılan ortam alan adı yerine kullanılacak bir dış (özel) alan adını Go uygulamanıza kolayca bağlayabilirsiniz. Kullanılan giriş noktasına bağlı olarak iki seçenek bulunmaktadır:

  • CNAME yönlendirmesiEğer Paylaşılan Yük Dengeleyici kullanılıyorsa;devvetestortamları için tavsiye edilir
  • DNS A KaydıEğer Genel IP kullanılıyorsa; yüksek trafik yükünü kaldırabilir veproductionortamları için uygundur

Ayrıca, alan adlarını kolayca değiştirebilir ve trafiği bir ortamdan diğerine yönlendirebilirsiniz (örneğin, yeni bir uygulama sürümüne kesinti olmadan geçiş yapmak için).

Golang Alan Adı Yönetimi

İpucu:Genel IP üzerinden erişim için, trafiği başka bir ortama yönlendirmek içinSwapExtIpsAPI yöntemini (CLI üzerinden de mevcut) kullanabilirsiniz.

Otomatik Dikey Ölçeklendirme

Otomatik dikey ölçeklendirme, platformun, manuel müdahale gerektirmeden, mevcut taleplerine göre bir sunucuya dinamik olarak kaynak (RAM ve CPU) sağlama yeteneğiyle sağlanır. Bu özellik, kullanılmayan kaynaklar için fazla ödeme yapmamanızı garanti eder ve yükle ilgili ayarlamalar veya mimari değişikliklerle uğraşma gerekliliğini ortadan kaldırarak zaman kazandırır.

Ölçeklendirme süreci platform tarafından otomatik olarak yönetilir, siz sadece Go sunucunuz için alt ve üst cloudlet sınırlarını (her biri 128 MiB RAM ve 400 MHz CPU'ya eşittir) belirlemeniz gerekir. Bunu, topoloji sihirbazı üzerinden yapabilirsiniz:

Otomatik Dikey Ölçeklendirme

Uygulamanız, bu sınırlar içinde çalışacak şekilde, yük azaldığında kaynak tüketimini azaltır veya yük arttığında kaynakları artırır. Böylece sadece gerçekten kullanılan kaynaklar için ödeme yaparsınız. Daha fazla bilgi için, otomatik dikey ölçeklendirme belgelerine başvurabilirsiniz.

Manuel Yatay Ölçeklendirme

Ekstra Golang sunucuları, ortam oluşturulurken veya ayarlanırken topoloji sihirbazı aracılığıyla kolayca eklenebilir. Yatay Ölçeklendirme bölümünde bulunan “+” butonuna tıklayın ve gereken sayıda örnek ekleyin.

Manuel Yatay Ölçeklendirme

Aynı türdeki sunucuların bir ortam katmanında sahip olabileceği maksimum sayı, belirli bir barındırma sağlayıcısının ayarlarına bağlıdır (genellikle bu limit 16 düğüm için geçerlidir ve destek ekibine uygun bir talep göndererek bu sınır artırılabilir).

Ayrıca, Golang sunucusu ölçeklendirildiğinde, yük dengeleme düğümünün ortam topolojisine otomatik olarak eklendiğini göreceksiniz (bu, isteklerin doğru şekilde dağıtılması için gereklidir). Manuel yatay ölçeklendirme hakkında daha fazla ayrıntı için belgeleri inceleyebilirsiniz.

Otomatik Yatay Ölçeklendirme

Otomatik yatay ölçeklendirme, uygulama yüküne bağlı olarak düğüm sayısını artırmak veya azaltmak için ayarlanabilir tetikleyiciler aracılığıyla uygulanır. Otomatik ölçeklendirmeyi yapılandırmak için ortamAyarlar > İzleme >Otomatik Yatay Ölçeklendirmebölümünü açın veEklebutonuna tıklayın.

Burada, ölçeklendirme koşullarını ayarlayarak belirli yığınlar ve kaynaklar (CPU, RAM, Ağ, Disk) için tetikleyicileri yapılandırabilirsiniz.

Otomatik Yatay Ölçeklendirme

Ayrıca, platformun Go barındırma hizmeti tarafından sağlanan diğer özellikler ve işlevsellikler şunlardır:

  • Özel veya Yerleşik SSL
  • Genel IPv4 ve IPv6
  • Geniş bir yönetilen veritabanı seçeneği
  • Kapsayıcı güvenlik duvarları, uç noktalar ve ortam izolasyonu
  • Kullanıcı dostu UI ve doğrudan SSH erişimi ile yönetim
  • Açık API ve Bulut Betikleme ile otomasyon
  • Kullandıkça öde fiyatlandırma modeli
  • Ekip çalışması için işbirliği işlevselliği
  • Çoklu bulut dağıtımı

Go bulut barındırma, geliştirici, test ve üretim ortamlarınızı çalıştırmaya hazırdır.