Aracılığıyla paylaş


Kurumsal Web Dağıtımı: Senaryoya Genel Bakış

tarafından Jason Lee

Bu öğretici kümesi, bir başvuru uygulaması sağlamak ve görevlere ve izlenecek yollara ortak bir bağlam sağlamak için kurgusal bir kurumsal dağıtım senaryosuyla birlikte gerçekçi bir karmaşıklık düzeyine sahip örnek bir çözüm kullanır. Bu konuda öğretici senaryosu açıklanır ve örnek çözüm tanıtılmaktadır.

Senaryo Açıklaması

Kurgusal bir şirket olan Fabrikam, Inc., uzak satış ekiplerinin iletişim bilgilerini bir web arabiriminden depolamasını ve almasını sağlayan bir çözüm oluşturuyor.

Fabrikam, Inc.'deki Uygulama Yaşam Döngüsü Yönetimi (ALM) işlemleri, çözümün yazılım geliştirme sürecinin çeşitli aşamalarında üç sunucu ortamına dağıtılması gerekir:

  • Geliştirici testi veya "korumalı alan" ortamı.
  • İntranet tabanlı bir hazırlama ortamı.
  • İnternet'e yönelik üretim ortamı.

Bu ortamların her biri farklı yapılandırma ve güvenlik gereksinimlerine sahiptir ve her biri benzersiz dağıtım zorlukları oluşturur.

Fabrikam, Inc. Sunucu Altyapısı

Bu, Fabrikam, Inc.'de üst düzey geliştirme ve dağıtım altyapısıdır.

Fabrikam, Inc.'de üst düzey geliştirme ve dağıtım altyapısı.

Geliştirici iş istasyonları, kaynak denetim altyapısı, geliştirici test ortamı ve hazırlama ortamı, Fabrikam.net etki alanındaki intranet ağında bulunur. Üretim ortamı, bir güvenlik duvarı tarafından intranet ağından yalıtılmış bir çevre ağında (DMZ, arındırılmış bölge ve denetimli alt ağ olarak da bilinir) bulunur. Bu yaygın bir dağıtım senaryosudur: Genellikle güvenlik duvarları veya ağ geçidi sunucuları kullanarak İnternet'e yönelik web sunucularınızı iç sunucu altyapınızdan yalıtabilirsiniz.

Bu örnekte:

  • Ayrı bir derleme sunucusuna sahip bir Team Foundation Server (TFS) 2010 sunucusu, kaynak denetimi ve sürekli tümleştirme (CI) işlevselliği sağlar.
  • Geliştirici test ortamı bir Internet Information Services (IIS) 7.5 web sunucusu ve SQL Server 2008 R2 veritabanı sunucusu içerir.
  • Üretim ortamı, SQL Server 2008 R2 veritabanı sunucusuyla birlikte bir Web Farm Framework (WFF) denetleyici sunucusu tarafından eşitlenen birden çok IIS 7.5 web sunucusu içerir. Pratikte, veritabanı sunucusu ölçeklenebilirliği ve kullanılabilirliği geliştirmek için kümeleme veya yansıtma kullanabilir.
  • Hazırlama ortamı, üretim ortamının yapılandırmasını mümkün olduğunca yakından çoğaltacak şekilde tasarlanmıştır.
  • Güvenlik duvarı ve ağ yalıtımı ilkeleri intranetten çevre ağına doğrudan, otomatik dağıtıma izin vermiyor.

Bu ortamların her birinin yapılandırması, Web Dağıtımı için Sunucu Ortamlarını Yapılandırma başlıklı ikinci öğreticide daha ayrıntılı olarak açıklanmıştır.

ALM için Ekip Rolleri

Bu kullanıcılar Contact Manager çözümünü oluşturma, yönetme, oluşturma ve yayımlama konusunda rol alıyor:

  • Matt Hink, Fabrikam, Inc. Visual Studio 2010 kullanarak Contact Manager çözümünü geliştiren ekibin bir parçasıdır. Matt, geliştirici test ortamındaki sunucularda tam yönetici haklarına sahiptir ve bu sayede ortamı gereksinimlerini karşılayacak şekilde yapılandırır. Ayrıca, Contact Manager çözümünün kaynak kodunu depoladığı Visual Studio 2010 TFS örneğine kullanıcı erişimi de vardır.

  • Rob Walters, Fabrikam, Inc. geliştirme ekibinin sunucu yöneticisidir. Rob, TFS ve Takım Derlemesi'nin tüm yönlerini yapılandırabilmesi için TFS sunucusunda yönetici erişimine sahiptir. Rob ayrıca test ve hazırlama web sunucularına yönetici erişimine sahiptir ve test ve hazırlama ortamlarındaki veritabanı sunucuları için veritabanı yöneticisi (DBA) olarak görev yapar. Rob, TFS sunucusunda Team Build'i şu görevleri gerçekleştirecek şekilde yapılandırdı:

    • Bir kullanıcı TFS'ye bir dosya iade etti her durumda uygulama üzerinde birim testleri derleyin ve çalıştırın. Buna CI adı verilir.
    • Uygulama birim testlerini geçtikten sonra Contact Manager uygulamasını test ortamına otomatik olarak dağıtın. Bu, veritabanını ilk dağıtımda test sunucularına yayımlamayı ve ilk dağıtımdan sonra veritabanında yapılan güncelleştirmeleri içerir.
    • Contact Manager uygulamasını hazırlama ortamına tek adımlı bir işlemle dağıtın.
    • Bir Web sunucusu yöneticisinin ve DBA'nın uygulamayı üretim ortamına yayımlamak için kullanabileceği bir Web paketi oluşturun.
  • Lisa Andrews, Fabrikam, Inc. üretim sunucularına uygulama dağıtmakla sorumlu bir sunucu yöneticisidir. TFS Team Build'in Contact Manager uygulamasını derledikten sonra web dağıtım paketini depoladığı paylaşıma okuma erişimi vardır. Ayrıca, uygulamayı üretime dağıtabilmek için üretim web sunucularına yönetici erişimine de sahiptir. Ayrıca, veritabanlarını ve veritabanı güncelleştirmelerini üretim ortamındaki veritabanı sunucusuna dağıtan DBA işlevi görür.

Kişi Yöneticisi Çözümü

Contact Manager çözümü, kayıtlı, oturum açmış kullanıcıların iletişim bilgilerini web arabirimi aracılığıyla eklemesine ve düzenlemesine izin verecek şekilde tasarlanmıştır. Contact Manager çözümü dört ayrı projeden oluşur:

Contact Manager çözümü, kayıtlı, oturum açmış kullanıcıların iletişim bilgilerini web arabirimi aracılığıyla eklemesine ve düzenlemesine izin verecek şekilde tasarlanmıştır.

  • ContactManager.Mvc. Bu, çözümün giriş noktasını temsil eden ASP.NET bir MVC3 web uygulaması projesidir. Kullanıcılara iletişim bilgilerini oluşturma ve görüntüleme olanağı sağlama gibi bazı temel web uygulaması işlevleri sunar. Uygulama, kişileri yönetmek için bir Windows Communication Foundation (WCF) hizmetini ve kimlik doğrulama ve yetkilendirmeyi yönetmek için bir ASP.NET uygulama hizmetleri veritabanını kullanır.
  • ContactManager.Database. Bu bir Visual Studio 2010 veritabanı projesidir. Proje, kişi ayrıntılarını depolayan bir veritabanının şemasını tanımlar.
  • ContactManager.Service. Bu bir WCF web hizmeti projesidir. WCF, çağıranların Contact Manager veritabanında oluşturma, alma, güncelleştirme ve silme (CRUD) işlemleri gerçekleştirmesine olanak tanıyan bir uç nokta sunar. Hizmet, Contact Manager veritabanına ve ContactManager.Common.dll derlemesine dayanır.
  • ContactManager.Common. Bu bir sınıf kitaplığı projesidir. WCF hizmeti bu derlemede tanımlanan türleri kullanır.

Çözümün ve dağıtım gereksinimlerinin tam bir gözden geçirilmesi, bu serinin ilk öğreticisi olan Enterprise'da Web Dağıtımı'nda sağlanır.

Dağıtım Görevleri

Büyük bir kuruluştaki farklı ortamlara uygulama dağıtmayla ilgili birkaç farklı görev vardır. Öğreticilerin kapsadığını temel görevler şunlardır:

Büyük bir kuruluştaki farklı ortamlara uygulama dağıtmayla ilgili birkaç farklı görev vardır.

Aşağıda, dağıtım sürecindeki her adımın, bu belgenin önceki bölümlerinde açıklanan kullanıcıların perspektifinden bir listesi yer alır:

  1. Ekibin tüm üyeleri, önemli dağıtım gereksinimlerini ve sorunlarını belirlemek için Visual Studio 2010'daki Contact Manager çözümünü gözden geçirir.
  2. Matt Hink, dağıtım mantığının ilk testini gerçekleştirmek için Contact Manager çözümünü doğrudan geliştirici iş istasyonundan geliştirici test ortamına dağıtabilir.
  3. Matt Hink, uygulamayı TFS'deki kaynak denetimine ekler.
  4. Rob Walters, Ekip Derlemesi'nde Contact Manager çözümü için çeşitli derleme tanımları oluşturur. Bir derleme tanımı, bir kullanıcı her yeni kodu iade etti mi çözümü geliştirici test ortamına dağıtmak için CI kullanır. Başka bir derleme tanımı, kullanıcıların hazırlama ortamına dağıtımları gerektiği gibi tetiklesine olanak tanır.
  5. Bir kullanıcı her yeni kodu iade ederse, Takım Derlemesi çözüm bileşenlerini otomatik olarak oluşturur, birim testleri çalıştırır ve derleme başarılı olursa ve birim testleri başarılı olursa çözümü geliştirici test ortamına dağıtır.
  6. Kullanıcı hazırlama ortamına bir dağıtım tetiklediğinde, çözüm tek adımlı bir işlemde paketlenip dağıtılır. Bu işlem ayrıca üretim ortamına el ile dağıtım için bir paket oluşturur.
  7. Lisa Andrews, 6. adımda oluşturulan web paketini el ile içeri aktararak uygulamayı üretim ortamına dağıtır.

Önemli Dağıtım Sorunları

Contact Manager çözümü ve Fabrikam, Inc. senaryosu karmaşık ve kurumsal ölçekli çözümler dağıtırken karşılaşabileceğiniz çeşitli yaygın sorunları ve zorlukları vurgular. Örnek:

  • Projeleri geliştirici veya test ortamları, hazırlama platformları ve üretim sunucuları gibi birden çok ortamda dağıtabilmeniz gerekir. Çözümün her ortam için farklı yapılandırma ayarlarıyla dağıtılması gerekir.
  • Tek adımlı veya otomatik derleme ve dağıtım işleminin bir parçası olarak birden çok bağımlı projeyi aynı anda dağıtmanız gerekir.
  • Dağıtımı otomatik bir işlemden yönlendirebilmelisiniz. Örneğin, yeni kod iade edildiğinde web uygulamalarını bir hazırlama ortamına dağıtmak için CI işlemi kullanmak istiyorsunuz.
  • Geliştiricilerin her hedef ortam için doğru yapılandırma ayarlarına veya gerekli kimlik bilgilerine sahip olma olasılığı düşük olduğundan, dağıtım işlemini denetleyebilmek ve dağıtım değişkenlerini Visual Studio dışından ayarlayabilmeniz gerekir.
  • Şema tabanlı veritabanı projelerini dağıtmanız ve sonraki dağıtımlarda mevcut verileri korumanız gerekir.
  • Kullanıcı hesabı verilerini dağıtmadan üyelik veritabanlarını geçici olarak dağıtmanız gerekir. Ayrıca, mevcut kullanıcı hesabı verilerini kaybetmeden dağıtılan üyelik veritabanlarının şemasını güncelleştirmeniz de gerekebilir.
  • İçeriği çeşitli hedef ortamlara dağıtırken belirli dosya veya klasörleri dışlamanız gerekir.

Ayrıca, güncelleştirmeler sık ve artımlı olduğunda dağıtımı yönetmek bazı ek zorluklara neden olur. Örnek:

  • Bir geliştirici yeni kodu her iade oluşturduğunuzda birim testleri çalıştırırsınız. Çözümü yalnızca kod birim testlerinden geçtiğinde dağıtmak istiyorsunuz.
  • Bir web uygulamasını hazırlama veya üretim ortamına dağıttığınızda, dağıtım işlemi boyunca kullanıcıları birapp_offline.htm dosyasına yeniden yönlendirmek istersiniz.
  • Dağıtım etkinliklerini günlüğe kaydetmek istiyorsunuz. Dağıtım işlemi, başarılı veya başarısız dağıtımların e-posta bildirimlerini belirlenen alıcılara göndermelidir.
  • Otomatik dağıtım başarısız olursa, dağıtım işlemi geçerli dağıtımı yeniden denemeli veya bunun yerine önceki web paketini dağıtmalıdır.