Sunucusuz uygulamalar: Mimari, desenler ve Azure’ı uygulama

Sunucusuz Uygulamalar e-kitap cover'larını gösteren ekran görüntüsü.

EDITION v3.0 - Azure İşlevleri v3'e güncelleştirildi

DOWNLOAD şu bağlantılarda kullanılabilir: https://aka.ms/serverlessbookpdf

YAYIMLAYAN

Microsoft Geliştirici Division, .NET ve Visual Studio ekipleri

Bir Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Telif © Hakkı 2018-2020 Microsoft Corporation

All rights reserved. Bu kitabın içeriğinin hiçbir bölümü, yayımcının yazılı izni olmadan herhangi bir şekilde veya herhangi bir yolla yeniden üretilene veya iletılamaz.

Bu kitap "olduğu gibi" sağlanmıştır ve yazarın görüşlerini ve görüşlerini ifade ediyor. URL ve diğer İnternet web sitesi başvuruları da dahil olmak üzere bu kitapta ifadeilen görünümler, görüşler ve bilgiler, bildirim olmadan değişebilir.

Burada tarif edilen bazı örnekler yalnızca açıklama için sağlanmıştır ve kurgusaldır. Gerçek bir ilişki veya bağlantı amaçlanmamıştır veya böyle bir bağlantı olduğu sonucuna varılmamalıdır.

Microsoft ve "Ticari Markalar" web sayfasında listelenen ticari markalar, Microsoft şirket https://www.microsoft.com grubunun ticari markalarıdır.

Mac ve macOS, Apple Inc.'in ticari markalarıdır.

Diğer tüm işaretler ve logolar ilgili sahiplerine aittir.

Yazar:

Bono Likness, Üst Düzey .NET Veri Programı Yöneticisi, Microsoft Corp.

Katkıda bulunan:

Phillip Phillip, Üst Düzey Bulut Savunması, Microsoft Corp.

Editörler:

BillRich, Üst Düzey İçerik Geliştiricisi, Microsoft Corp.

Tİra Wenzel, Üst Düzey İçerik Geliştiricisi, Microsoft Corp.

Katılımcılar ve gözden geçirenler:

Steve Smith, Owner, Ardalis Services.

Giriş

Sunucusuz, bulut platformlarının saf bulut yerel kodu yönünde evrimidir. Sunucusuz, geliştiricileri bir yandan iş mantığına yaklaştırırken diğer yandan altyapı endişelerinden uzaklaştırdı. "Sunucu yok" yerine "daha az sunucu" ifadesinin yer alan bir desendir. Sunucusuz kod olay odaklıdır. Kod, geleneksel bir HTTP web isteğinden zamanlayıcıya veya karşıya dosya yükleme sonucundan herhangi bir şey tarafından tetiklenir. Sunucusuz altyapı, esnek talepleri karşılamak için anında ölçeklendirmeye olanak sağlar ve gerçekten "kendi kullanımınız için ödeme yapmak" üzere mikro faturalama sunar. Sunucusuz, uygulama inşa etmek için yeni bir düşünce ve yaklaşım gerektirir ve her sorun için doğru çözüm değildir. Geliştirici olarak şu karara varmalı:

  • Sunucusuzların artıları ve dezavantajları nedir?
  • Kendi uygulamalarınız için neden sunucusuz olduğunu düşünebilirsiniz?
  • Sunucusuz kodunuzu nasıl derler, test, dağıtma ve bakımını nasıl sağlarsınız?
  • Mevcut uygulamalarda kodu sunucusuz bir yere geçirmek mantıklıdır ve bu dönüşümü gerçekleştirmenin en iyi yolu nedir?

Bu kılavuz hakkında

Bu kılavuz, sunucusuz kullanan uygulamaların bulutta yerel olarak geliştirilmesine odaklanır. Kitap, sunucusuz uygulama geliştirmenin avantajlarını vurgular ve olası dezavantajlarını ortaya çıkarır ve sunucusuz mimariler hakkında bir anket sağlar. Sunucusuz modelin nasıl kullanıla bir çok örneği, çeşitli sunucusuz tasarım desenleri ile birlikte gösterilemez.

Bu kılavuzda, Azure sunucusuz platformunun bileşenleri açıklanacak ve özel olarak azure sunucusuz Azure İşlevleri. Tetikleyiciler ve bağlamaların yanı sıra dayanıklı işlevleri kullanarak durum kullanan sunucusuz uygulamalar uygulama hakkında bilgi edinebilirsiniz. Son olarak iş örnekleri ve örnek olay incelemeleri, sunucusuz yaklaşımın projeleriniz için doğru yaklaşım olup olmadığını belirlemek için bağlam ve başvuru çerçevesi sağlar.

Bulut platformlarının gelişimi

Sunucusuz, bulut platformlarının çeşitli yinelemelerinin doruzsuz olmasıdır. Evrim veri merkezinde fiziksel metalle başladı ve Hizmet Olarak Altyapı (IaaS) ve Hizmet Olarak Platform (PaaS) aracılığıyla ilerledi.

Şirket içi evrimden sunucusuza

Buluttan önce, geliştirme ve işlemler arasında ayrık bir sınır vardı. Uygulama dağıtma, şöyle sayısız soruyu yanıtlamayı ifade ediyor:

  • Hangi donanım yüklenmeli?
  • Makineye fiziksel erişimin güvenliği nasıl sağlandı?
  • Veri merkezinde Kesintisiz Güç Kaynağı (UPS) gerekiyor mu?
  • Depolama yedeklemeleri nereye gönderilir?
  • Yedekli güç olması gerekir mi?

Liste devam ediyor ve ek yük çok büyüktü. Birçok durumda, IT departmanları inanılmaz bir israfla başa olmak zorundadi. Bu israf, olağanüstü durum kurtarma için yedekleme makineleri olarak sunucuların aşırı tahsisi ve ölçeğin ölçeğini etkinleştirmeye hazır bekleyen sunuculardan kaynaklandı. Neyse ki Sanallaştırma teknolojisinin (Hyper-Vgibi) Sanal Makineler (VM) ile tanıt olması Hizmet Olarak Altyapı 'yı (IaaS) temel aldı. Sanallaştırılmış altyapı, işlemlerin omurga olarak standart bir sunucu kümesi ayarlamasına izin verdi ve bu da benzersiz sunucuları "isteğe bağlı" sağlama özelliğine sahip esnek bir ortam sağlar. Daha da önemlisi sanallaştırma, sanal makineleri "hizmet olarak" sağlamak için bulutun kullanımına hazır hale geldi. Şirketler, yedekli güç veya fiziksel makineler konusunda endişelenmeye kolayca son verebilir. Bunun yerine sanal ortama odaklandı.

İşlemler hala çeşitli görevlerden sorumlu olduğundan IaaS hala ağır yük gerektirir. Bu görevler arasında şunlar yer alır:

  • Sunuculara düzeltme eki uygulama ve sunuculara düzeltme eki uygulama ve sunuculara düzeltme eki uygulama.
  • Paketleri yükleme.
  • İşletim sistemini güncel tutma.
  • Uygulamayı izleme.

Sonraki evrim, Hizmet Olarak Platform (PaaS) sağlayarak ek yükü azaltmıştı. PaaS ile bulut sağlayıcısı işletim sistemlerini, güvenlik düzeltme eklerini ve hatta belirli bir platformu desteklemek için gerekli paketleri ele almaktadır. Geliştiriciler vm oluşturmak ve ardından .NET'i yapılandırmak ve Internet Information Services (IIS) sunucuları oluşturmak yerine "web uygulaması" veya "API uç noktası" gibi bir "platform hedefi" seçer ve doğrudan kod dağıtır. Altyapı soruları şu şekilde azaltıldı:

  • Hangi boyutta hizmetler gerekiyor?
  • Hizmetlerin ölçeği nasıl uztar (daha fazla sunucu veya düğüm ekler)?
  • Hizmetlerin ölçeği nasıl artır (barındırma sunucularının veya düğümlerin kapasitesini artır)?

Sunucusuz, olay odaklı koda odaklanarak sunucuları soyutlar. Geliştiriciler platform yerine tek bir şey yapmak için mikro hizmetlere odaklanıyor. Sunucusuz kodun yapısına ilişkin iki önemli soru:

  • Kodu tetikleyen nedir?
  • Kod ne yapar?

Sunucusuz ile altyapı soyuttur. Bazı durumlarda geliştirici artık konak hakkında endişelenmez. Web isteklerini yönetmek için IIS, Kestrel, Apache veya başka bir web sunucusunun çalışıyor olup olmadığı, geliştirici bir HTTP tetikleyicisine odaklanır. Tetikleyici, istek için standart, platformlar arası yükü sağlar. Yük yalnızca geliştirme sürecini basitleştirmenin değil, test işlemini kolaylaştırır ve bazı durumlarda kodu platformlar arasında kolayca taşınabilir yapar.

Sunucusuz özelliğinin bir diğer özelliği de mikro faturalamadır. Web uygulamalarının Web API uç noktalarını barındırması yaygındır. Geleneksel çıplak metalde, IaaS'de ve hatta PaaS uygulamalarında API'leri barındırmak için gereken kaynaklar sürekli olarak ücrete ödeniyor. Bu, uç noktalara erişilmalarına rağmen barındırmak için ödeme yapmak anlamına gelir. Genellikle bir API'nin diğer API'lerden daha fazla çağrıldığnı, dolayısıyla sistemin tamamının popüler uç noktaları desteklemeye göre ölçeklendirildi olduğunu bulabilirsiniz. Sunucusuz, her uç noktayı bağımsız olarak ölçeklendirmeye ve kullanım için ödemeye olanak sağlar; böylece API'ler çağrılmasa hiçbir maliyet tahakkuk etmez. Geçiş birçok durumda uç noktaları desteklemek için devam eden maliyeti önemli ölçüde düşürebilirsiniz.

Bu kılavuzun kapsamları

Bu kılavuz özellikle mimari yaklaşımlarını ve tasarım desenlerini vurgular ve Azure İşlevleri,Logic Apps veya diğer sunucusuz platformların uygulama ayrıntılarını ayrıntılı olarak incelemez. Bu kılavuz, Logic Apps ile gelişmiş iş akışlarını veya çıkış Azure İşlevleri Kaynak Paylaşımını (CORS) yapılandırma, özel etki alanları uygulama veya SSL sertifikalarını karşıya yükleme gibi özellikleri kapsamıyor. Bu ayrıntılar, çevrimiçi çevrimiçi Azure İşlevleri edinebilirsiniz.

Ek kaynaklar

Who kılavuzu kullan

Bu kılavuz, şirket içinde veya bulutta sunucusuz bileşenleri kullana .NET ile kurumsal uygulamalar oluşturmak isteyen geliştiriciler ve çözüm mimarları için yazılmıştır. Geliştiriciler, mimarlar ve teknik karar verenler için yararlıdır:

  • Sunucusuz geliştirmenin artılarını ve dezavantajlarını anlama
  • Learning sunucusuz mimariye nasıl yaklaşabilirsiniz?
  • Sunucusuz uygulamaların örnek uygulamaları

Kılavuzu kullanma

Bu kılavuzun ilk bölümü, çeşitli farklı mimari yaklaşımlarını karşılaştırarak sunucusuz yaklaşımın neden uygulanabilir bir seçenek olduğunu inceler. Yazılım geliştirmenin tüm yönleri mimari kararlardan etkilendiğinden, hem teknoloji hem de geliştirme yaşam döngüsünü inceler. Kılavuz daha sonra kullanım durumlarını ve tasarım desenlerini inceler ve bu örnekleri kullanarak başvuru Azure İşlevleri. Her bölüm belirli bir alan hakkında daha fazla bilgi edinmek için ek kaynaklar içerir. Kılavuz, izlenecek yollar ve sunucusuz uygulamanın uygulamalı keşfi için kaynaklarla sonlanır.

Geri bildiriminizi gönderin

Kılavuz ve ilgili örnekler sürekli gelişmektedir, bu nedenle geri bildiriminiz memnuniyetle karşılandı! Bu kılavuzun nasıl iyileştirildikleri hakkında yorumlarınız varsa, sorunlarınızı ele alan herhangi bir sayfanın en altındaki geri GitHub kullanın.