เวลาที่เหมาะสมในการแนะนำความพร้อมใช้งานสูงสำหรับเว็บไซต์คือเมื่อใด


16

เวลาที่เหมาะสมในการแนะนำความพร้อมใช้งานสูงสำหรับเว็บไซต์คือเมื่อใด

มีบทความมากมายเกี่ยวกับตัวเลือก High Availability ไม่ชัดเจน แต่เมื่อถึงเวลาที่เหมาะสมในการเปลี่ยนจากเซิร์ฟเวอร์เดียวเป็นการกำหนดค่าความพร้อมใช้งานสูง

โปรดพิจารณาสถานการณ์ของฉัน:
http://www.postjobfree.comเป็นเว็บไซต์ตลอด 24/7 ที่มีการเข้าชมที่สำคัญ:
http://www.similarweb.com/website/postjobfree.com

ขณะนี้ฉันเรียกใช้บนเซิร์ฟเวอร์เดียว: ทั้งเว็บเซิร์ฟเวอร์ IIS 7.0 และ SQL Server 2008 ทำงานบนกล่องฮาร์ดแวร์เดียวกัน

มีบางครั้ง (~ หนึ่งครั้งต่อเดือน) ~ 5 นาทีโดยปกติจะเกิดจากการรีบูตเครื่องซึ่งจำเป็นต้องมีการอัพเดท Windows Server บางตัว มักจะมีการหยุดทำงานตามกำหนดและเกิดขึ้นในเวลากลางคืน ยังคงไม่เป็นที่พอใจเนื่องจาก Google Bot และผู้ใช้บางคนยังทำงานอยู่ในตอนกลางคืน

รายได้จากเว็บไซต์ปัจจุบันอยู่ที่ ~ $ 8K / เดือน

ฉันพิจารณาเปลี่ยนไปใช้การกำหนดค่าสองเซิร์ฟเวอร์ (เว็บฟาร์มของ 2 เว็บเซิร์ฟเวอร์และคลัสเตอร์ของ 2 เซิร์ฟเวอร์ SQL ที่โฮสต์บนเซิร์ฟเวอร์ฮาร์ดแวร์สองแห่ง)

ข้อดี:
1) ความพร้อมใช้งานสูง (ในทางทฤษฎีไม่มีการหยุดทำงาน) แม้ว่าเซิร์ฟเวอร์เครื่องใดเครื่องหนึ่งหยุดทำงาน - เซิร์ฟเวอร์อื่นจะเข้าแทนที่
2) ไม่มีการสูญเสียข้อมูล: หากไม่มีคลัสเตอร์ SQL ข้อมูลหนึ่งวันสามารถสูญหายได้ในกรณีที่ฮาร์ดแวร์ล้มเหลว (เราสำรองข้อมูลทุกวัน)

ข้อด้อย:
1) ความพยายามเพิ่มเติมในการตั้งค่าและบำรุงรักษาการกำหนดค่าดังกล่าว
2) ค่าใช้จ่ายโฮสติ้งที่สูงขึ้น แทนที่จะเป็น ~ $ 600 / เดือนมันจะประมาณ $ 1200 / เดือน

คำแนะนำของคุณคืออะไร


คำตอบสำหรับคำถามของฉันอาจส่งผลต่อการพัฒนา ตัวอย่างเช่นฉันอาจพิจารณาแยกฐานข้อมูลเป็นส่วน ๆ และเก็บข้อมูลที่ต้องการความน่าเชื่อถือสูง (อินพุตของผู้ใช้) แยกต่างหากจากข้อมูลที่ต้องการประสิทธิภาพสูง (การคำนวณ)

2
สวัสดีเดนนิสนี่ไม่ใช่คำแนะนำดังนั้นฉันจึงติดมันเป็นความคิดเห็น แต่ค่าใช้จ่ายในการโฮสต์ของคุณนั้นค่อนข้างสูงสำหรับเซิร์ฟเวอร์ windows เดียวใช่ไหม ฉันคิดว่ามันเป็นเซิร์ฟเวอร์ที่ทุ่มเทอย่างสมบูรณ์ (ไม่ใช่ VM) แต่ถึงอย่างนั้นคุณก็ควรจะดูว่ามีค่าใช้จ่ายครึ่งหนึ่งสำหรับเซิร์ฟเวอร์สเปคที่เหมาะสมด้วย RAM ขนาด 8GB พื้นที่ดิสก์ที่ดี ฯลฯ อาจคุ้มค่าที่จะพูด บริษัท โฮสติ้งของคุณเกี่ยวกับการรับราคาที่ดีกว่า
Ewan Leith

6
ฉันคิดว่ามีความพร้อมใช้งานสูงควรได้รับการวางแผนตั้งแต่ช่วงแรกของความคิดของโครงการ
Tom O'Connor

Ewan ฉันต้องการให้เว็บไซต์ของฉันทำงานได้อย่างรวดเร็วดังนั้นฉันจึงมีโปรเซสเซอร์ Quad ที่มีหน่วยความจำ 8 GB และไดรฟ์ SDD ปัจจัยด้านต้นทุนใบอนุญาตซอฟต์แวร์ (Windows, SQL Server), SSL และการสนับสนุนด้านเทคนิค คุณมีทางออกที่ดีในราคาถูกใช่ไหม ปัจจุบันฉันใช้ Server Intellect (สนับสนุนโดย SoftLayer) สำหรับโฮสต์ คุณจะแนะนำอะไรที่ดีกว่านี้ไหม
Dennis Gorelik

2
การอัพเดท Windows มาพร้อมกับการอัพเดทความปลอดภัย ถ้าฉันไม่แก้ไขเซิร์ฟเวอร์ของฉันมันอาจเสี่ยงต่อการถูกโจมตี คุณต้องการแนะนำความถี่ในการอัปเดตสำหรับเซิร์ฟเวอร์การผลิตของ Windows เป็นอย่างไร
Dennis Gorelik

คำตอบ:


15

คำตอบสั้น ๆ : เมื่อหยุดทำงานหรือมีความเสี่ยงจะทำให้คุณต้องเสียค่าใช้จ่ายสูง

มันเป็นการตัดสินใจทางเศรษฐกิจขั้นพื้นฐาน ตัวอย่างเช่น. $ 8k / เดือนหมายความว่าการหยุดทำงาน 2 ชั่วโมงจะทำให้คุณเสียค่าใช้จ่าย $ 22 หากคุณสามารถกำหนดค่าระบบของคุณเพื่อให้คุณสามารถเริ่มต้นจากศูนย์การทำงานที่สมบูรณ์ได้ภายใน 2 ชั่วโมงจากนั้นความพร้อมใช้งานสูงจะทำให้คุณได้รับฟังก์ชันการทำงาน $ 22 เท่านั้น

อีกวิธีหนึ่งคุณสามารถประหยัดเงินเว้นแต่ / จนกว่าคุณจะมีเวลาหยุดงาน 54 ชั่วโมงในเดือนที่กำหนด


16
คุณต้องพิจารณาความเสี่ยงต่อชื่อเสียงเกินไป
GBN

7
ค่าใช้จ่ายต่อชั่วโมงของการหยุดทำงานจะขึ้นอยู่กับเมื่อเซิร์ฟเวอร์ล่ม การทำธุรกรรมไม่น่าจะแพร่กระจายอย่างสม่ำเสมอตลอดระยะเวลา 24 ชั่วโมง เป็นเรื่องปกติมากขึ้นที่จะเกิดขึ้นในช่วงเวลาเร่งด่วนเพียงไม่กี่ชั่วโมงซึ่งการสูญเสียจะยิ่งใหญ่กว่ามาก
John Gardeniers

Slartibartfast ฉันเข้าใจคำตอบของคุณด้วยวิธีนี้: ตรวจสอบให้แน่ใจว่าเวลาการกู้คืนหลังจากความล้มเหลวจากภัยพิบัตินั้นสมเหตุสมผล (ไม่กี่ชั่วโมง) การสูญเสียข้อมูลนั้นสมเหตุสมผล (ไม่กี่ชั่วโมง) และทำให้ตัวเองมีเวลาหยุดทำงานสั้น ๆ . นั่นหมายถึงการมีการสำรองข้อมูลรายวันสำรองข้อมูลบางส่วนที่เพิ่มขึ้นและเซิร์ฟเวอร์พร้อมที่จะกู้คืนการกำหนดค่าทั้งหมดนั้น มันฟังดูใช่มั้ย
Dennis Gorelik

คำตอบ: gbn: เห็นด้วย; ฉันกำลังจะอธิบายง่ายๆ แต่ชื่อเสียงอาจเป็นปัจจัยสำคัญได้อย่างง่ายดาย จอห์น Gardeniers: แน่นอน แต่ถ้าเว็บไซต์ที่มีใช้เฉพาะในวันอาทิตย์ 11:00-13:00 กำหนดแล้วลงเวลาไม่ได้จริงๆปัญหาในขณะที่ $ 2k ป้ายราคาสำหรับที่ไม่ได้วางแผนดับ 2 ชั่วโมงright_thenคือ ณ จุดนี้คุณต้องเข้าใจว่ามีแนวโน้มว่าไฟดับที่ไม่เหมาะสม (ที่รายรับ $ 2k) เทียบกับค่าใช้จ่าย $ 600 / เดือนสำหรับเซิร์ฟเวอร์ addnl คำแนะนำ: หากความล้มเหลวแบบสุ่มในช่วงเวลาวิกฤติเกิดขึ้นบ่อยกว่า 4 ครั้งต่อปีมันไม่คุ้มค่า
Slartibartfast

Dennis Gorelik: ตัดสินใจเกี่ยวกับความเสี่ยงที่คุณต้องการป้องกัน (เช่นการสูญเสียของธุรกิจระหว่างการบำรุงรักษาการสูญเสียเซิร์ฟเวอร์การสูญเสียดาต้าเซ็นเตอร์บัญชี / ความปลอดภัย / ก้นก้นฐานข้อมูล) และดำเนินการเพื่อปกป้องพวกเขา ในกรณีนี้คุณกำลังป้องกันเวลาหยุดทำงานเนื่องจากการบำรุงรักษาและความล้มเหลวที่คาดเดาไม่ได้ (เท่าที่ฉันสามารถบอกได้) สิ่งที่คุณอธิบายควรทำเคล็ดลับ แต่โปรดจำไว้ว่าคุณไม่จำเป็นต้องเป็นเจ้าของเซิร์ฟเวอร์ตราบใดที่คุณมั่นใจได้ว่าคุณสามารถจัดหาและติดตั้งในช่วงเวลาการเรียกคืน
Slartibartfast

11

ผู้มีส่วนได้เสีย / กลุ่มธุรกิจของคุณ (ซึ่งอาจเป็นคุณ!) ต้องตัดสินใจ

การสูญเสียรายได้นั้นง่ายต่อการหาจำนวน: ส่วนที่เหลือไม่สามารถตอบได้ที่นี่ขอโทษ ...


2

ฉันคิดว่าผู้ใช้ส่วนใหญ่สามารถจัดการกับการหยุดทำงานตามกำหนดเวลาเล็กน้อย พิจารณาว่าอีเบย์มีอัปเดตรายสัปดาห์ในคืนวันศุกร์และบางครั้งการเสนอราคาก็ไม่สามารถทำได้ ธนาคารออนไลน์ของธนาคาร (ออสเตรเลียที่สำคัญ) ของฉันมีการหยุดทำงานเป็นเวลาหลายชั่วโมงทุกสัปดาห์ Twitter ออฟไลน์ตลอดเวลา Heroku / EC2 หยุดทำงานไปหลายวันแล้ว

ฉันจะเก็บไว้ในมุมมองนั้นถ้าคุณเพียงแค่พูดจริง ๆ 5 นาทีต่อเดือนคุณทำงานได้ค่อนข้างดีในฐานะดูแลระบบ


1

คุณได้กล่าวถึง Google เป็นปัจจัยในการจัดทำดัชนีแล้ว แต่ก็อาจคุ้มค่าเมื่อพิจารณาถึงผลกระทบที่การตอบสนองที่แฝง / เว็บไซต์อาจมีต่อ SEO มันเป็นกล่องดำและทั้งหมดนั้นยากที่จะหาจำนวน - แม้ว่าสิ่งที่คุ้มค่าMatt Cutts คิดว่ามันเป็นหนึ่งศูนย์ ฉันจะกังวลเกี่ยวกับชื่อเสียงมากขึ้นตามที่คนอื่นได้กล่าวไว้


1

โปรดทราบว่า HA เช่นความปลอดภัยไม่ใช่ผลิตภัณฑ์ แต่เป็นกระบวนการ

ตัวอย่างเช่นการจำลองฐานข้อมูลจะนำคุณไปยังจุดที่มิเรอร์แต่ละฐานข้อมูลจะสามารถดำเนินการได้ด้วยตัวเอง แต่คุณจะต้องใช้กลยุทธ์สำหรับการซิงโครไนซ์อีกครั้งหลังจากเปลี่ยนส่วนประกอบที่ล้มเหลว

พิจารณาระบบการสั่งซื้อเป็นตัวอย่าง: ลูกค้าส่งคำสั่งซื้อและในระหว่างการประมวลผลระบบทางกายภาพที่เขาพูดคุยจะล้มเหลวหลังจากเก็บข้อมูลการสั่งซื้อไว้ในสำเนาของฐานข้อมูลในเครื่อง ใจร้อนลูกค้ากด "ส่ง" อีกครั้งและถูกนำไปยังเซิร์ฟเวอร์อื่นซึ่งยอมรับคำสั่ง หากฐานข้อมูลของคุณซิงโครไนซ์อีกครั้งโดยการเล่นซ้ำคำสั่ง INSERT ที่หายไปในอีกด้านหนึ่งคำสั่งนั้นจะถูกทำซ้ำซึ่งอาจไม่ใช่สิ่งที่คุณต้องการ

ตามที่ @Slartibartfast แนะนำสิ่งทั้งหมดนี้ทำให้การตัดสินใจทางเศรษฐกิจดีขึ้น แต่ผมขอแนะนำให้คุณวางแผนในอนาคตอีกไม่กี่ปีข้างหน้านี้ หากคุณคาดหวังว่าจะต้องมีการติดตั้ง HA ที่เหมาะสมดังนั้นคุณควรเตรียมทรัพยากรสำหรับงานเตรียมการ


1

ในขณะที่คุณคิดเกี่ยวกับสิ่งนี้ฉันคิดว่าคุณพิจารณาการตั้งค่าหน้า "วาฬล้มเหลว"

มีหลายวิธีในการทำเช่นนี้ แต่คำสั่งผสม aws ของ route53 และ s3 ทำงานได้ดีบนไซต์ขนาดเล็กของฉัน

ฉันตั้งค่าโดเมนด้วย healthchecks เพื่อที่ว่า DNS ล้มเหลวส่งผู้ใช้ไปยังผู้ใช้ไปยังหน้า html คงที่ใน s3; ค่าใช้จ่ายถัดจากอะไร

จากประสบการณ์ที่ทำให้เว็บไซต์ของคุณพูดว่า "สิ่งที่น่าเสียใจเสียไป แต่เรากำลังดำเนินการอยู่" สร้างความแตกต่างให้กับผู้ใช้ บัญชี Twitter ที่คุณสามารถสื่อสารกับผู้ใช้ได้ดียิ่งขึ้น

สิ่งนี้ใช้เวลานานในการบรรเทา "การสูญเสียชื่อเสียง" ซึ่งอาจเป็นผลกระทบที่สำคัญที่สุดของการหยุดทำงาน

ดู: https://aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting/สำหรับคำแนะนำในการตั้งค่า

http://dyn.com/managed-dns/social-failover/ ความล้มเหลวทางสังคมของDynDns เป็นสิ่งที่คล้ายกัน

คุณสามารถม้วนของคุณเองและทำ healthchecks ของคุณแล้วสคริปต์การเปลี่ยนแปลง DNS ให้ระเบียน DNS ของคุณมี TTL ต่ำและคุณมีวิธีการจัดการพวกเขาโดยทางโปรแกรม


Healthchecks เหล่านี้ต้องดำเนินการจากเซิร์ฟเวอร์เดียวกันกับโฮสต์ DNS หรือไม่ ฉันไม่สามารถนึกภาพวิธีการอัพเดท DNS แบบมีเงื่อนไข
Dennis Gorelik

@DennisGorelik ไม่จำเป็น แต่ระเบียน DNS ของคุณต้องมี TTL สั้น ๆ และสิ่งที่กำลังทำเฮลธ์เช็คของคุณจะต้องสามารถเปลี่ยนระเบียนได้อย่างรวดเร็ว อัปเดตคำตอบพร้อมข้อมูลเพิ่มเติมเกี่ยวกับวิธีการบรรลุเป้าหมาย
Nath

TTL สั้นสำหรับ DNS ร่วมกับการพึ่งพาการตรวจสุขภาพอาจทำให้ระบบโดยรวมมีเสถียรภาพน้อยลงเล็กน้อย (อาจเปลี่ยนได้แม้ว่าเซิร์ฟเวอร์หลักจะใช้งานได้ดีก็ตาม) มันอาจทำให้สถานการณ์แย่ลงสำหรับผู้ใช้ปลายทางไม่ดีขึ้น
Dennis Gorelik

TTL สั้น ๆ ด้วยตัวเองไม่น่าจะมีปัญหากับผู้ให้บริการ DNS ที่ดีและถ้าคุณตั้งค่าแถบสุขภาพค่อนข้างต่ำ (เช่น Failover ถ้า No http 200s เป็นเวลา 10 นาที) ความเสถียรจะไม่เป็นปัญหา อีกทางเลือกหนึ่งคือคุณสามารถข้ามส่วนตรวจสุขภาพและใช้การตัดแบบแมนนวล ซึ่งจะหมายถึงระยะเวลานานขึ้นเมื่อผู้ใช้ของคุณได้รับ "การเชื่อมต่อหมดเวลา" และข้อผิดพลาดที่น่าเกลียดอื่น ๆ แต่ไม่มีโอกาสได้ผลบวกปลอม
Nath

0

คุณเคยลองใช้ EC2 ที่จะช่วยให้คุณปรับขนาดได้อย่างยืดหยุ่นและลบล้างข้อเสียของคุณหรือไม่? ในที่สุดมันก็เป็นการตัดสินใจทางเศรษฐกิจหากใช้ EC2 นั้นคุ้มค่าหรือไม่ แต่อย่างน้อยก็เป็นตัวเลือกในการพิจารณา


-2

เพื่อหลีกเลี่ยงการสูญเสียข้อมูลคุณควรตรวจสอบการกำหนดค่า Raid ก่อนที่จะรวมกลุ่ม คุณควรกำหนดค่า Failover IP ที่คุณสามารถเปลี่ยนจากเซิร์ฟเวอร์หนึ่งไปเป็นเซิร์ฟเวอร์อื่นในกรณีที่เกิดภัยพิบัติโดยไม่ต้องรอการเผยแพร่ DNS


สิ่งนี้มาจากไหน อะไรทำให้คุณคิดว่าโปสเตอร์นั้นไม่ได้ใช้ RAID อยู่แล้ว?
Chopper3

Chopper3 ทั้งหมดที่ฉันพูดก็คือ Raid จะแก้ปัญหาการสูญเสียข้อมูลของเขา
yqt

2
อย่างไร? ถ้าดิสก์ตัวหนึ่งตายแน่นอน แต่ถ้าตัวควบคุมของเขาเสียเสีย
ล่ะ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.