Web sitesi için yüksek kullanılabilirlik sunmak için doğru zaman ne zaman?


16

Web sitesi için yüksek kullanılabilirlik sunmak için doğru zaman ne zaman?

Yüksek Kullanılabilirlik seçenekleriyle ilgili birçok makale vardır. Ancak, tek sunucudan yüksek kullanılabilirlik yapılandırmasına geçmek için doğru zaman NEDİR.

Lütfen durumumu göz önünde bulundurun:
http://www.postjobfree.com önemli miktarda trafiğe sahip 7/24 web sitesidir:
http://www.slikeweb.com/website/postjobfree.com

Şu anda tek bir sunucuda çalıştırıyorum: IIS 7.0 web sunucusu ve SQL Server 2008 aynı donanım kutusunda çalışıyor.

Zaman zaman (~ bir ayda bir) ~ 5 dakika kesinti, genellikle bazı Windows Server güncellemelerinin gerektirdiği yeniden başlatmadan kaynaklanır. Genellikle kesinti zamanlanır ve geceleri olur. Yine de rahatsız edici, çünkü Google Bot ve bazı kullanıcılar geceleri hala aktif.

Mevcut web sitesi geliri ayda ~ 8 bin ABD dolarıdır.

İki sunucu yapılandırmasına geçmeyi düşünüyorum (2 web sunucusunun web grubu ve iki donanım sunucusunda barındırılan 2 SQL Sunucusu kümesi).

Artıları:
1) Yüksek Kullanılabilirlik (teorik olarak kesinti yok). Bir sunucu çökse bile, başka bir sunucu devralacaktı.
2) Veri kaybı yok: SQL kümesi olmadan, donanım arızası durumunda bir güne kadar veri kaybedilebilir (günlük yedekleme yaparız).

Eksileri:
1) Bu tür yapılandırmayı ayarlamak ve sürdürmek için daha fazla çaba.
2) Yüksek barındırma maliyeti. Ayda 600 dolar yerine ayda yaklaşık 1200 dolar olur.

Tavsiyen ne olurdu?


Sorumun cevabı gelişimi etkileyebilir. Örneğin, veritabanını parçalara ayırmayı ve yüksek güvenilirlik (kullanıcı girişi) gerektiren verileri yüksek performans gerektiren verilerden (hesaplamalar) ayrı tutmayı düşünebilirim.

2
Merhaba Dennis, bu gerçekten bir tavsiye değil, bu yüzden bir yorum olarak sıkışmış, ancak hosting maliyetleri tek bir windows sunucusu için oldukça yüksek görünüyor? Ben tamamen adanmış bir sunucu (VM değil) varsayalım, ama o zaman bile 8GB RAM, iyi bir disk alanı, vb. daha iyi bir fiyat alma hakkında hosting şirketi.
Ewan Leith

6
Bence Yüksek Kullanılabilirlik projenin ilk anından itibaren planlanmalıdır.
Tom O'Connor

Ewan, web sitemin hızlı çalışmasını istiyorum, bu yüzden 8 GB bellek ve SDD sürücülü Dört işlemcim var. Yazılım lisanslarının maliyetini etkileyen faktörler (Windows, SQL Server), SSL ve teknik destek. Bunun için düşük fiyatla iyi bir çözümünüz var mı? Şu anda barındırma için Server Intellect (SoftLayer tarafından desteklenmektedir) kullanıyorum. Daha iyi bir şey tavsiye eder misiniz?
Dennis Gorelik

2
Windows güncelleştirmesi güvenlik güncelleştirmeleriyle birlikte geliyor. Sunucumu yamalamazsam, saldırılara karşı savunmasız olabilir. Windows üretim sunucusu için hangi güncelleme sıklığını önerirsiniz?
Dennis Gorelik

Yanıtlar:


15

Kısa cevap: Kesinti süresi veya riski size yüksek kullanılabilirliğe sahip olmanın maliyetinden daha fazla mal olduğunda.

Temelde ekonomik bir karardır. Örnek olarak. Ayda 8 bin dolar, 2 saatlik bir kesintinin size 22 dolara mal olacağını ima eder. Sisteminizi sıfırdan tamamen işlevsel bir siteye 2 saat içinde gidebilecek şekilde yapılandırabiliyorsanız, yüksek kullanılabilirlik size bunun üstünde sadece 22 $ işlevsellik kazandıracaktır.

Başka bir deyişle, belirli bir ayda 54 saat önlenemez kapalı kalma süreniz olmadıkça / olmadıkça paradan tasarruf edebilirsiniz.


16
Siz de itibar için risk göz önünde bulundurmalısınız
gbn

7
Kesinti saati başına maliyet neredeyse kesinlikle sunucunun çökmesine bağlı olacaktır. İşlemlerin 24 saatlik bir sürede eşit bir şekilde yayılması pek olası değildir. Sadece birkaç pik saat içinde meydana gelmek daha normaldir, bu sırada kayıp çok daha büyük olacaktır.
John Gardeniers

Slartibartfast, cevabınızı şu şekilde anlıyorum: yıkıcı başarısızlıktan sonra iyileşme süresinin makul (birkaç saat), veri kaybının makul (birkaç saat) ve kendime zamanlanmış kısa süreli duruş süreleri (en azından şimdilik) olmasını sağlayın . Bu, günlük yedeklemeler, artımlı kısmi yedeklemeler ve tüm bu yapılandırmayı geri yüklemek için kullanılabilir bir sunucu olması anlamına gelir. Kulağa doğru geliyor mu?
Dennis Gorelik

Yanıtlar: gbn: Kabul edildi; Basit bir açıklama yapıyordum, ancak itibar kolayca önemli bir faktör olabilir. John Gardeniers: Tabii, ancak site sadece 11:00 ve 13:00 arasında Pazar günleri kullanılıyorsa, planlanan kapalı zaman gerçekten bir sorun değil, planlanmamış 2 saatlik bir kesinti için $ 2k fiyat etiketi right_then . Bu noktada, addnl sunucusu için belirli bir 600 $ / ay ücret karşılığında zamansız kesintinin (2k $ gelir maliyetinde) ne kadar olası olduğunu bulmanız gerekir. İpucu: Kritik dönemdeki rastgele başarısızlıklar yılda 4'ten daha sık olmazsa, buna değmez.
Slartibartfast

Dennis Gorelik: Korumak istediğiniz risklere karar verin (örn. Bakım sırasında iş kaybı, sunucu kaybı, veri merkezi kaybı, hesap / güvenlik / veritabanı makamı) ve bunlara karşı koruma sağlamak için harekete geçin. Bu durumda, bakım ve öngörülemeyen arıza nedeniyle arıza süresine karşı koruyorsunuz (anlayabildiğim kadarıyla). Açıkladığınız şey hile yapmak zorundadır, ancak onu satın alabileceğinizden ve geri yükleme döneminde ayarlayacağınızdan emin olabileceğiniz sürece sunucunun sahibi olmanız gerekmediğini unutmayın.
Slartibartfast


2

Bence çoğu kullanıcı biraz planlı çalışmama süresini halledebilir. Ebay'ın Cuma geceleri haftalık güncellemeleri olduğunu ve tekliflerin bazen işe yaramadığını düşünün. Benim (büyük avustralya) bankamın çevrimiçi bankacılığı her hafta saatlerce kesinti yapmıştır. Twitter her zaman çevrimdışı olur. Heroku / EC2 son günlerde kapalı kaldı.

Bu perspektifte kalırdım, gerçekten ayda sadece 5 dakika konuşuyorsanız, bir sistem yöneticisi olarak oldukça iyi bir iş çıkarıyorsunuz.


1

Google'ı zaten endeksleme açısından bir faktör olarak belirtmişsinizdir, ancak gecikme / site yanıt hızının SEO üzerindeki etkisini de göz önünde bulundurmaya değer olabilir. Bu bir kara kutu ve ölçülmesi çok zor - buna rağmen Matt Cutts bunun bir yüzdelik olduğunu düşünüyor . Diğerlerinin de belirttiği gibi, itibar konusunda daha fazla endişe duyarım.


1

HA'nın güvenlik gibi bir ürün değil, bir süreç olduğunu unutmayın.

Örneğin, veritabanı çoğaltması yalnızca veritabanının her aynasının kendi başına devam edebileceği noktaya gelecektir, ancak başarısız bileşenler değiştirildikten sonra yeniden senkronizasyon için bir stratejiye ihtiyacınız olacaktır.

Bir sipariş sistemini örnek olarak düşünün: müşteri bir sipariş verir ve işleme sırasında, sipariş bilgilerini veritabanının yerel kopyasında sakladıktan sonra konuştuğu fiziksel sistem başarısız olur. Sabırsız, müşteri tekrar "gönder" e basar ve siparişi kabul eden başka bir sunucuya yönlendirilir. Veritabanlarınız diğer tarafta eksik INSERT deyimlerini tekrarlayarak yeniden senkronize ederse, sipariş çoğaltılır, bu da sizin istediğiniz şey olmayabilir.

@Slartibartfast'ın önerdiği gibi, hepsi ekonomik bir karara bağlanır, ancak gelecekte de birkaç yıl planlamanızı tavsiye ederim. Uygun bir HA kurulumuna ihtiyacınız varsa, şimdi hazırlık çalışması için kaynakları ayırmak için iyi bir zaman olacaktır.


1

Bunu düşünürken bir "başarısız balina" sayfası oluşturmayı düşünüyorum.

Bunu yapmanın birçok yolu var ama route53 ve s3'ün aws kombinasyonu küçük sitelerimde iyi çalışıyor.

Ben hatalar DNS kullanıcıları s3 içinde oturan bir statik html sayfasına gönderir, böylece sağlık kontrolleri ile etki alanı kurmak; Maliyet hiçbir şey yanında.

Deneyimlerime göre sitenize "özür dilerim bozuldu ama üzerinde çalışıyoruz" diyerek kullanıcılar için bir dünya yaratıyor. Kullanıcılarla daha da iletişim kurabileceğiniz bir Twitter hesabı daha da iyidir.

Bu, bir kesintinin en önemli etkisi olabilecek "itibar kaybını" hafifletmek için çok uzundur.

kurulum kılavuzu için bkz. https://aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting/ .

DynDns'in sosyal yük devretmesi http://dyn.com/managed-dns/social-failover/ benzer bir şeydir.

DNS kayıtlarınız düşük bir TTL'ye sahipse ve bunları programlı olarak manipüle etmenin bir yolu varsa, kendiniz yuvarlayabilir ve sağlık kontrollerinizi yapabilir ve ardından DNS değişikliklerini komutlayabilirsiniz.


Bu sağlık denetimlerinin DNS'yi barındıran aynı sunucudan yürütülmesi gerekiyor mu? Koşullu DNS güncellemesinin nasıl yapılacağını hayal edemiyorum.
Dennis Gorelik

@DennisGorelik gerekli değildir, ancak DNS kayıtlarınızın kısa bir TTL'ye ihtiyacı vardır ve sağlığınızı yapan her şeyin kayıtları hızlı bir şekilde değiştirebilmesi gerekir. Cevabı, bunu nasıl başaracağınız hakkında daha fazla bilgi ile güncelleyin.
Nath

Sağlık kontrolüne bağımlılık ile birlikte DNS için kısa TTL, genel sistemi biraz daha az kararlı hale getirebilir (ana sunucu iyi çalışsa bile değişebilir). Aslında son kullanıcılar için durumu daha da kötüleştirebilir.
Dennis Gorelik

Kısa TTL, herhangi bir iyi DNS sağlayıcısı ile ilgili bir sorun olmamalı ve sağlık kontrollerinizde oldukça düşük bir çubuk belirlerseniz (yani 10 dakika boyunca http 200s yoksa yük devretme), kararlılık bir sorun değildir. Alternatif olarak, sağlık kontrolü bölümünü atlayabilir ve manuel bir kesime sahip olabilirsiniz. Bu, kullanıcılarınızın "bağlantı zaman aşımına uğradı" ve diğer çirkin hataları aldıkları ancak yanlış pozitif olma şansının olmadığı daha uzun bir süre anlamına gelir.
Nath

0

Esnek bir şekilde ölçeklendirmenize ve dezavantajlarınızı reddetmenize izin verecek EC2 gibi bir şey kullanmayı düşündünüz mü? EC2 kullanmanın buna değip değmeyeceği, nihayetinde ekonomik bir karardır, ancak en azından dikkate alınması gereken bir seçenektir.


-2

Veri kaybını önlemek için, kümelerden önce Raid yapılandırmalarına bakmalısınız. Ayrıca, DNS yayılmasını beklemek zorunda kalmadan bir felaket durumunda bir sunucudan diğerine geçebileceğiniz bir Yük Devretme IP'si yapılandırmanız gerekir.


bu nereden geliyor? posterin RAID kullanmadığını düşünmenize neden olan şey nedir?
Chopper3

Chopper3. Söylediğim tek şey Raid'in veri kaybı problemini çözeceğidir.
yqt

2
Nasıl? bir disk emin öldü ama onun denetleyicisi kötüleşirse ne olur
Chopper3
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.