Düzenle

Aracılığıyla paylaş


Çekirdek başlangıç yığını mimarisi

Azure App Service
Azure Blob Storage
Azure Content Delivery Network
Azure Database for PostgreSQL
Azure Virtual Network

Daha büyük şirketlerde öğrendiğiniz birçok ders, bir startup'ın ilk yığını için doğrudan geçerli değildir. Bir ürünün ilk araştırma aşamasında dağıtımı hız, maliyet ve isteğe bağlılık için iyileştirmeniz gerekir. İsteğe bağlılık, belirli bir mimaride yol tariflerini ne kadar hızlı değiştirebileceğinizi belirtir.

Ürün geliştirmenin genişletme veya ayıklama aşamalarındaki bir işletme, hizmet odaklı veya mikro hizmet mimarisi kullanabilir. Bu tür dağıtım mimarisi, henüz ürün/pazara uygun veya ticari çekiş bulmamış bir başlangıç için nadiren uygundur.

Çekirdek başlangıç yığını için basit bir monolitik tasarım en iyisidir. Bu tasarım, altyapıyı yönetmek için harcanan süreyi sınırlarken, başlangıç daha fazla müşteri kazandıkça ölçeklendirilebilme olanağı sağlar.

Olası kullanım örnekleri

Bu makalede basit bir çekirdek başlangıç yığını örneği verilmiştir ve bileşenleri ele alınmaktadır.

Mimari

Contoso adlı bir startup, Ruby on Rails arka ucu ve TypeScript'te yazılmış react ön ucu ile bir uygulama prototipi oluşturmİştir. Contoso ekibi dizüstü bilgisayarlarında tanıtımlar çalıştırıyor. Şimdi ilk müşteri satış toplantıları için uygulamalarını dağıtmak istiyorlar.

Uygulama iddialı olsa da, henüz karmaşık, mikro hizmet temelli bir mimariye ihtiyaç duymaz. Contoso, önerilen başlangıç yığını bileşenlerini içeren basit bir monolitik tasarımı tercih etti.

Diagram that shows the core startup stack architecture Contoso used to deploy their application.

Bu mimarinin bir Visio dosyasını indirin.

Veri akışı

Bu çekirdek başlangıç yığını mimarisinde:

  • Azure Uygulaması Hizmeti sunucuları, yük dengeleyicileri veya diğer altyapıyı yapılandırmadan ölçeklenebilir uygulamalar dağıtmak için basit bir uygulama sunucusu sağlar.
  • PostgreSQL için Azure Veritabanı, önde gelen açık kaynak ilişkisel veritabanı yönetim sistemine (RDBMS) yönelik bir Azure veritabanı hizmetidir. Veritabanı sunucularını yönetmek yerine uygulamanızı geliştirmeye odaklanabilirsiniz.
  • Azure Sanal Ağ ağ trafiğini segmentlere ayırır ve iç hizmetleri İnternet tehditlerine karşı korur. Uygulama sunucularınız, İnternet'e maruz kalmadan veritabanıyla iletişim kurmak için sanal ağ tümleştirmesi kullanır.
  • GitHub Actions , kaynak kod yönetiminize sürekli tümleştirme ve sürekli dağıtım (CI/CD) oluşturur. GitHub Actions, farklı diller için kapsamlı destek ve Azure hizmetleriyle güçlü tümleştirmeye sahiptir.
  • Azure Blob Depolama statik varlıkları depolar ve yükü uygulama sunucularından uzağa taşır.
  • Azure Content Delivery Network (CDN), genel ağ üzerinden kullanıcılara içerik teslimi hızlandırır.
  • Azure İzleyici , uygulamanızın altyapısında olup bitenleri izler ve analiz eder.

Çekirdek başlangıç yığını bileşenleri

Karmaşık bir yığın, sürekli dikkat gerektiren hatalar oluşturabilir. Gelişmiş bir mimari, ürününüzü oluşturmanın dışında kalabilir. Hatalar karmaşıklıktan kaynaklanmamıştır, ancak karmaşık bir yığın hataları göndermeyi kolaylaştırır. Karmaşık mimarilerin tümü enerji israfı değildir, ancak henüz ürün/pazara uygun bulmadıysanız kaynaklarınızı boşa harcarlar. İlk başlangıç yığınınız basit olmalı ve ürün geliştirmeye odaklanabilmeniz için yolunuzdan çıkmalısınız.

Aşağıdaki basit diyagramda önerilen çekirdek başlangıç yığını gösterilmektedir. Bu bileşenler, ürününüzü yerden kaldırıp müşterilerinizin eline almak için yeterlidir. Başlangıçların yüzde 80'i için, ürününüzde yerleşik olarak bulunan temel hipotezleri test etmek için ihtiyacınız olan tek şey bu yığındır. Makine öğrenmesi, nesnelerin interneti (IoT) veya yüksek oranda düzenlenmiş ortamlarda çalışan startup'lar daha fazla bileşen gerektirebilir.

A block diagram that shows a core startup stack.

CDN

Başlangıçta çok az müşteri olduğu için CDN erken görünebilir. Ancak, zaten üretimde olan bir ürüne CDN eklemek beklenmeyen yan etkilere neden olabilir. CdN'yi önden uygulamak en iyisidir. CDN, statik içeriği müşterilerinize daha yakın bir şekilde önbelleğe alır ve API'lerinizde ve mimarinizde yineleme yapabileceğiniz bir cephe sağlar.

Uygulama Sunucusu

Kodunuzun bir yerde çalıştırılması gerekir. İdeal olarak, bu platform dağıtımları kolaylaştırırken mümkün olan en düşük işletimsel girişi gerektirmelidir. Uygulama sunucusunun yatay olarak ölçeklendirilmesi gerekir, ancak siz araştırma aşamasındayken el ile ölçeklendirme müdahalesi iyi olur.

Bu yığının çoğu gibi uygulama sunucusu da temelde kendisini çalıştırmalıdır. Geleneksel olarak, uygulama sunucusu bir sanal makine veya çıplak sunucuda çalışan bir web sunucusu örneğiydi. Artık işlem yükünü kaldırmak için hizmet olarak platform (PaaS) seçeneklerine ve kapsayıcılarına bakabilirsiniz.

Statik içerik

Uygulama sunucunuzdan statik içerik sunma, kaynakları boşa harcar. CI/CD işlem hattını yapılandırdıktan sonra, her sürümle statik varlıklar oluşturma ve dağıtma işi önemsizdir. Çoğu üretim web çerçevesi CI/CD ile statik varlıklar dağıtır, bu nedenle bu en iyi uygulamayla uyumlu bir başlangıç yapmak faydalı olabilir.

Veritabanı

Uygulamanız çalıştırıldıktan sonra verilerinizi bir veritabanında depolamanız gerekir. Çoğu durumda ilişkisel veritabanı en iyi çözümdür. İlişkisel veritabanında birden çok erişim yöntemi ve zaman test edilmiş bir çözümün hızı vardır. İlişkisel veritabanları Azure SQL Veritabanı, PostgreSQL için Azure Veritabanı ve MariaDB için Azure Veritabanı içerir. Bazı kullanım örneklerinde mongoDB veya Azure Cosmos DB gibi bir belge veritabanı veya NoSQL veritabanı gerekir.

Günlük toplama

Uygulamanızda bir sorun olursa sorunu tanılamak için mümkün olduğunca az zaman harcamak istiyorsunuz. Günlükleri toplayarak ve en baştan uygulama izlemeyi kullanarak ekibinizin sorunlara odaklanmalarına yardımcı olursunuz. İzleme verilerini almak için uygulama sunucusundaki bir dosyaya erişmeniz ve günlükleri denetlemeniz gerekmez.

CI/CD

Tekrarlanabilir ve hızlı dağıtımların olmaması, bir ürünü yinelerken hızlanması gereken en kötü engellerden biridir. İyi yapılandırılmış bir CI/CD işlem hattı, uygulama sunucunuzdaki kod dağıtım işlemini kolaylaştırır. Hızlı ve kolay dağıtımlar, iş gücünüzün sonuçlarını hızlı bir şekilde gördüğünüz anlamına gelir. Sık tümleştirme, birleştirme çakışmalarına yol açan farklı kod tabanlarını önler.

Bu senaryoyu dağıtın

Kavramlar ve teknikler, Dockerfile kullanarak oluşturduğunuz projelerin çoğunda aynıdır.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

Sonraki adımlar