AppHost neyi garanti eder?
1
Sıra koda yazılıdır
Postgres ayağa kalkar,
docker/initdb betikleri poyra_app rolünü açar,
API şemayı uygular (Database:AutoMigrate), Panel ve Checkout ancak API
sağlıklı olduktan sonra başlar. “Önce şunu, sonra bunu başlat” ezberi biter.2
İki rollü veritabanı geliştirmede de gerçektir
Uygulamalar
poyra_app rolüyle bağlanır — NOSUPERUSER, NOBYPASSRLS.
Sahip rol poyra yalnız migration koşar. Böylece
iki katmanlı işyeri izolasyonu yerel makinede de
üretimdeki koşullarla sınanır; RLS’i “geliştirmede kapalıydı” diye atlayan
bir hata canlıya kaçamaz.3
Adresler koddan üretilir
Üç host birbirinin mutlak adresini bilir (
Poyra__PublicBaseUrl,
Poyra__PanelBaseUrl, Poyra__CheckoutBaseUrl). Bu değerler Aspire’ın uç
noktalarından gelir; appsettings içine elle yazılmış localhost portu kalmaz.4
Günlük, iz ve sağlık tek ekranda
Pano beş kaynağın durumunu birlikte gösterir. API, Panel ve Checkout’un
üçü de OpenTelemetry izlerini ve ölçümlerini panoya gönderir: bir
ödemenin hangi adımda takıldığını, hangi SQL’in yavaş olduğunu ayrı bir araç
kurmadan görürsünüz.Telemetri uygulamaların kendi kurulumundadır, Aspire’a bağımlı değildir —
dışa aktarıcı yalnız
OTEL_EXPORTER_OTLP_ENDPOINT tanımlıysa devreye girer.
Bu yüzden üretimde de kendi koleksiyoncunuza (Jaeger, Grafana Tempo,
OpenTelemetry Collector) aynı şekilde akar; koleksiyoncu kurmayan kurulum
ise hiçbir şey kaybetmez.src/Poyra.AppHost/Program.cs.
İlk ödeme
Kurulum ayaktayken Hızlı başlangıç adımlarınıAPI=http://localhost:5080 ile uygulayabilirsiniz. İşyeri açmak için geliştirme
platform anahtarı hazırdır:
apiKey yalnız bir kez gösterilir.
Aspire’sız kurulum
Eski yol da çalışmaya devam eder: geliştirme kompozisyonu veritabanını açar, üç host ayrı terminallerde koşar.Aspire bir geliştirme aracıdır; üretim kurulumu
Docker ile kurulum sayfasındaki
docker-compose.prod.yml
iledir. Üretimde migration ayrı bir servis olarak koşar, uygulamalar şemayı
kendileri kurmaz.