İçeriğe geç

Geliştirici Makineleri

Uygulama geliştirme ve test etme için izole ortamlar. Proyecta Cloud tarafından desteklenen tam Linux ortamları.

Proyecta, her proje için özel bir geliştirici makinesi (runtime) oluşturur. Bu, uygulamanın geliştirme sürecinde çalıştığı tam bir Linux ortamına sahip izole bir container’dır.

Geliştirici makineleri nasıl çalışır?

Section titled “Geliştirici makineleri nasıl çalışır?”

Bir proje açtığında Proyecta şunları yapar:

  1. Bulutta izole bir container (pod) oluşturur
  2. Kodunu GitHub’dan klonlar
  3. Bağımlılıkları yükler ve ortamı hazırlar
  4. Uygulamanın development server’ını başlatır
  5. Builder’da canlı bir önizleme gösterir

Sağlama sürecinin ilerleyişini araç çubuğunun altındaki Runtime Status Bar’dan takip edebilirsin.

Durum çubuğu, başlatma sırasında şu adımları gösterir:

AdımAçıklama
Creating podİzole container ayağa kaldırılıyor
Health checkContainer’ın çalıştığı doğrulanıyor
Git initDepon klonlanıyor
Environment setupBağımlılıklar yükleniyor (npm, pip vb.)
Starting servicesUygulama ve altyapı başlatılıyor
ReadyGeliştirici makinesi tamamen hazır

Geliştirici makinemde sorun var. Nasıl düzeltirim?

Section titled “Geliştirici makinemde sorun var. Nasıl düzeltirim?”

Önizleme yüklenmiyorsa veya makine takılı görünüyorsa:

  1. Hata mesajları için Runtime Status Bar’ı kontrol et
  2. Logları incelemek için Terminal’i kullanmayı dene
  3. Hiçbiri işe yaramazsa, sorunu debug etmek için yapay zekadan yardım iste

Geliştirici makinene veritabanları ve servisler için sidecar container’lar eklenebilir:

  • PostgreSQL — İlişkisel veritabanı (port 5432)
  • PostGIS — Jeo-uzamsal eklentili PostgreSQL (port 5432)
  • Redis — Bellek içi önbellek (port 6379)
  • MongoDB — Döküman veritabanı (port 27017)
  • MySQL — İlişkisel veritabanı (port 3306)
  • MailHog — Web arayüzlü e-posta test sunucusu (SMTP port 1025, UI port 8025)

Çalışan servisleri ve durumlarını Services panelinden görüntüleyebilirsin.

Geliştirici makineleri şu yaşam döngüsü durumlarından geçer:

DurumAçıklama
PendingOluşturulmayı bekliyor
InitializingOrtam hazırlanıyor
RunningAktif ve sağlıklı
SuspendedKaynakları korumak için duraklatıldı (hızlıca devam eder)
ArchivedSoğuk depolamada saklanıyor (geri yüklenmesi daha uzun sürer)
RestoringArşivden geri yükleniyor
FailedSağlama veya işlem başarısız oldu — makine yeniden sağlanabilir
TerminatedKalıcı olarak durduruldu

Makineler 60 dakika hareketsizlik sonunda otomatik olarak askıya alınır, 24 saatlik askı süresinin ardından arşivlenir.

Geliştirici makinesi çökerse yayımlanan uygulamama ne olur?

Uygulamanın backend’i (Convex serverless fonksiyonları ve veritabanı), Convex’in kendi bulut altyapısında çalışır ve geliştirici makinenin durumundan bağımsız olarak erişilebilir kalır. Ancak uygulamanın frontend dosyaları geliştirici makineden sunulur; makine askıya alınır ya da arşivlenirse ziyaretçiler, makine yeniden başlayana kadar 503 hatası görür. Herkese açık kalmasını istediğin uygulamalar için bunu göz önünde bulundur; makineyi yeniden başlatmak siteyi geri getirir.

Daha hızlı bir geliştirici makinesi alabilir miyim?

Tüm geliştirici makineleri şu anda aynı kaynak tahsisiyle çalışmaktadır. Büyük bir proje için daha fazla kapasiteye ihtiyaç duyarsan destek ekibiyle iletişime geç.

Geliştirici makinesine doğrudan erişebilir miyim?

Evet. Geliştirme ortamına tam kabuk erişimi için yerleşik Terminal’i kullanabilirsin.