Khi nào là thời điểm thích hợp để giới thiệu tính sẵn sàng cao cho trang web?


16

Khi nào là thời điểm thích hợp để giới thiệu tính sẵn sàng cao cho trang web?

Có nhiều bài viết về các tùy chọn có sẵn cao. Tuy nhiên, đó không phải là điều hiển nhiên khi KHI là thời điểm thích hợp để chuyển từ máy chủ đơn sang cấu hình khả dụng cao.

Vui lòng xem xét tình huống của tôi:
http://www.postjobfree.com là trang web 24/7 với lưu lượng truy cập đáng kể:
http://www.similarweb.com/website/postjobfree.com

Hiện tại tôi chạy nó trên một máy chủ duy nhất: cả máy chủ web IIS 7.0 và SQL Server 2008 đều chạy trên cùng một hộp phần cứng.

Thỉnh thoảng (~ một lần mỗi tháng) ~ 5 phút ngừng hoạt động thường do khởi động lại được yêu cầu bởi một số cập nhật Windows Server. Thông thường thời gian chết được lên kế hoạch và xảy ra vào ban đêm. Vẫn còn khó chịu, vì Google Bot và một số người dùng vẫn hoạt động vào ban đêm.

Doanh thu trang web hiện tại ở mức ~ $ 8K / tháng.

Tôi xem xét chuyển sang cấu hình hai máy chủ (cụm máy chủ web gồm 2 máy chủ web và cụm 2 Máy chủ SQL được lưu trữ trên hai máy chủ phần cứng).

Ưu điểm:
1) Tính sẵn sàng cao (về lý thuyết không có thời gian chết). Ngay cả khi một trong các máy chủ ngừng hoạt động - một máy chủ khác sẽ tiếp quản.
2) Không mất dữ liệu: không có cụm SQL, có thể mất tối đa một ngày dữ liệu trong trường hợp lỗi phần cứng (chúng tôi thực hiện sao lưu hàng ngày).

Nhược điểm:
1) Nhiều nỗ lực hơn để thiết lập và duy trì cấu hình như vậy.
2) Chi phí lưu trữ cao hơn. Thay vì ~ $ 600 / tháng, nó sẽ là khoảng $ 1200 / tháng.

Bạn có đề xuất gì?


Câu trả lời cho câu hỏi của tôi có thể ảnh hưởng đến sự phát triển. Ví dụ: tôi có thể xem xét tách cơ sở dữ liệu thành các phần và giữ dữ liệu yêu cầu độ tin cậy cao (đầu vào của người dùng) tách biệt với dữ liệu yêu cầu hiệu suất cao (tính toán).

2
Xin chào Dennis, đây thực sự không phải là một đề xuất vì vậy tôi đã coi đó là một nhận xét, nhưng chi phí lưu trữ của bạn có vẻ khá cao cho một máy chủ windows? Tôi cho rằng đó là một máy chủ chuyên dụng hoàn toàn (không phải VM), nhưng ngay cả khi đó bạn cũng nên xem xét có lẽ chỉ bằng một nửa chi phí cho một máy chủ đặc tả tốt với 8GB RAM, dung lượng ổ đĩa tốt, v.v. công ty lưu trữ của bạn về việc có được một mức giá tốt hơn.
Ewan Leith

6
Tôi nghĩ tính sẵn sàng cao nên được lên kế hoạch ngay từ giây phút đầu tiên của dự án.
Tom O'Connor

Ewan, tôi muốn trang web của mình hoạt động nhanh, vì vậy tôi có bộ xử lý Quad với bộ nhớ 8 GB và ổ SDD. Yếu tố chi phí giấy phép phần mềm (Windows, SQL Server), SSL và hỗ trợ kỹ thuật. Bạn có một giải pháp tốt với giá thấp cho điều đó? Tôi hiện đang sử dụng Server Intellect (được hỗ trợ bởi SoftLayer) để lưu trữ. Bạn có muốn giới thiệu một cái gì đó tốt hơn?
Dennis Gorelik

2
Bản cập nhật Windows đang đến với bản cập nhật bảo mật. Nếu tôi không vá máy chủ của mình, nó có thể dễ bị tấn công. Tần suất cập nhật nào bạn muốn giới thiệu cho máy chủ sản xuất Windows?
Dennis Gorelik

Câu trả lời:


15

Câu trả lời ngắn gọn: Khi hết thời gian hoặc rủi ro của nó khiến bạn tốn nhiều tiền hơn sẽ khiến bạn phải trả giá cao.

Nó về cơ bản là một quyết định kinh tế. Làm ví dụ $ 8k / tháng ngụ ý rằng việc ngừng hoạt động trong 2 giờ sẽ khiến bạn mất 22 đô la. Nếu bạn có thể định cấu hình hệ thống của mình sao cho bạn có thể đi từ đầu đến một trang web đầy đủ chức năng trong 2 giờ, thì tính sẵn sàng cao sẽ chỉ mang lại cho bạn 22 đô la chức năng trên mức đó.

Nói cách khác, bạn có thể tiết kiệm tiền trừ khi / cho đến khi bạn có 54 giờ thời gian ngừng hoạt động không thể chấp nhận được trong một tháng nhất định.


16
Bạn cũng phải cân nhắc rủi ro cho danh tiếng
gbn

7
Chi phí cho mỗi giờ ngừng hoạt động gần như chắc chắn sẽ phụ thuộc vào chỉ khi máy chủ ngừng hoạt động. Các giao dịch rất khó có thể được trải đều trong khoảng thời gian 24 giờ. Nó là bình thường hơn xảy ra chỉ trong một vài giờ cao điểm, tại thời điểm đó tổn thất sẽ lớn hơn nhiều.
John Gardeniers

Slartibartfast, tôi hiểu câu trả lời của bạn theo cách đó: đảm bảo rằng thời gian phục hồi sau thất bại thảm khốc là hợp lý (vài giờ), mất dữ liệu là hợp lý (vài giờ) và cho phép bản thân có thời gian ngừng hoạt động theo thời gian ngắn (ít nhất là bây giờ) . Điều đó có nghĩa là có các bản sao lưu hàng ngày, sao lưu một phần gia tăng và một máy chủ có sẵn để khôi phục tất cả cấu hình đó. Nghe có vẻ đúng không?
Dennis Gorelik

Phản hồi: gbn: Đồng ý; Tôi đã đi đến một lời giải thích đơn giản, nhưng danh tiếng có thể dễ dàng là một yếu tố quan trọng. John Gardeniers: Chắc chắn, nhưng nếu trang web chỉ được sử dụng vào Chủ nhật trong khoảng thời gian từ 11 giờ sáng đến 1 giờ sáng thì thời gian dự kiến ​​không thực sự là vấn đề, trong khi mức giá 2 nghìn đô la cho việc ngừng hoạt động 2 giờ không có kế hoạch là đúng. Tại thời điểm đó, bạn phải tìm ra khả năng mất điện kịp thời (với chi phí doanh thu $ 2k) so với khoản phí $ 600 / tháng nhất định cho máy chủ addnl. Gợi ý: trừ khi thất bại ngẫu nhiên trong giai đoạn quan trọng xảy ra thường xuyên hơn 4 / năm, điều đó không đáng.
Slartibartfast

Dennis Gorelik: Quyết định các rủi ro bạn muốn bảo vệ, (ví dụ như mất doanh nghiệp trong quá trình bảo trì, mất máy chủ, mất trung tâm dữ liệu, tài khoản / bảo mật / cơ sở dữ liệu) và hành động để bảo vệ chống lại chúng. Trong trường hợp này, bạn đang bảo vệ chống lại thời gian xuống do bảo trì và thất bại không thể đoán trước (theo như tôi có thể nói). Những gì bạn mô tả nên thực hiện thủ thuật, nhưng hãy nhớ rằng bạn không phải sở hữu máy chủ miễn là bạn có thể tự tin rằng bạn có thể mua nó và thiết lập nó trong giai đoạn khôi phục.
Slartibartfast


2

Tôi nghĩ rằng hầu hết người dùng có thể xử lý một chút thời gian chết theo lịch trình. Hãy xem xét rằng ebay có cập nhật hàng tuần vào các tối thứ sáu và đôi khi giá thầu đôi khi không hoạt động. Ngân hàng trực tuyến của ngân hàng (australian) của tôi đã lên kế hoạch ngừng hoạt động hàng giờ mỗi tuần. Twitter luôn ngoại tuyến mọi lúc. Heroku / EC2 đã ngừng hoạt động trong nhiều ngày gần đây.

Tôi sẽ giữ nó trong viễn cảnh đó, nếu bạn thực sự chỉ nói 5 phút mỗi tháng, thì bạn đang làm một công việc khá tốt như một sysadmin.


1

Bạn đã từng đề cập đến Google như một yếu tố về lập chỉ mục, nhưng cũng có thể đáng để xem xét tác động mà độ trễ / phản ứng của trang web có thể gây ra đối với SEO. Đó là một hộp đen và tất cả những thứ đó, rất khó để định lượng - mặc dù với giá trị của nó, Matt Cutts cho rằng đó là một người chơi . Tôi sẽ quan tâm nhiều hơn đến danh tiếng, như những người khác đã tuyên bố.


1

Hãy nhớ rằng HA, giống như bảo mật, không phải là một sản phẩm, mà là một quá trình.

Ví dụ, sao chép cơ sở dữ liệu sẽ chỉ đưa bạn đến điểm mà mỗi gương của cơ sở dữ liệu sẽ có thể tự tiếp tục, nhưng bạn cũng sẽ cần một chiến lược để đồng bộ hóa sau khi các thành phần bị lỗi được thay thế.

Hãy xem xét một hệ thống đặt hàng làm ví dụ: khách hàng gửi đơn đặt hàng và trong quá trình xử lý, hệ thống vật lý mà anh ta đã nói không thành công sau khi lưu trữ thông tin đơn hàng trong bản sao cơ sở dữ liệu. Không kiên nhẫn, khách hàng nhấn "gửi" lại và được chuyển đến một máy chủ khác chấp nhận đơn đặt hàng. Nếu cơ sở dữ liệu của bạn đồng bộ hóa lại bằng cách đơn giản phát lại các câu lệnh INSERT bị thiếu ở phía bên kia, thì thứ tự sẽ được sao chép, có thể không phải là điều bạn muốn.

Như @Slartibartfast đã đề xuất, tất cả đều đi đến một quyết định kinh tế, tuy nhiên tôi khuyên bạn cũng nên lên kế hoạch một vài năm trong tương lai ở đây. Nếu bạn muốn có một thiết lập HA thích hợp thì bây giờ sẽ là thời điểm tốt để dành tài nguyên cho công việc chuẩn bị.


1

Trong khi bạn nghĩ về điều này, tôi nghĩ rằng bạn xem xét việc thiết lập một trang "cá voi thất bại".

Có rất nhiều cách để làm điều này nhưng combo aws của route53 và s3 hoạt động tốt trên các trang web nhỏ của tôi.

Tôi thiết lập tên miền với các kiểm tra sức khỏe để khi thất bại DNS sẽ gửi người dùng đến người dùng đến một trang html tĩnh ngồi trong s3; Chi phí bên cạnh không có gì.

Theo kinh nghiệm của tôi, trang web của bạn nói rằng "xin lỗi mọi thứ đã bị hỏng nhưng chúng tôi đang làm việc với nó" tạo ra một thế giới khác biệt cho người dùng. Một tài khoản Twitter nơi bạn có thể giao tiếp với người dùng thậm chí còn tốt hơn.

Điều này đi một thời gian dài để giảm thiểu "mất danh tiếng" có thể là tác động đáng kể nhất của việc ngừng hoạt động.

xem: https://aws.amazon.com/bloss/aws/create-a-backup-website-USE-route-53-dns-failover-and-s3-website-hosting/ để biết hướng dẫn về cách thiết lập.

Chuyển đổi dự phòng xã hội của DynDns http://dyn.com/managed-dns/social-failover/ là một loại mô phỏng.

Bạn có thể tự cuộn và thực hiện kiểm tra sức khỏe của mình và sau đó kịch bản thay đổi DNS, miễn là các bản ghi DNS của bạn có chỉ số TTL thấp và bạn có một số cách để thao tác chúng theo chương trình.


Các kiểm tra sức khỏe này có phải được thực hiện từ cùng một máy chủ lưu trữ DNS không? Tôi không thể hình dung làm thế nào để thực hiện cập nhật DNS có điều kiện.
Dennis Gorelik

@DennisGorelik không cần thiết nhưng các bản ghi DNS của bạn cần một đoạn ngắn và bất cứ điều gì đang làm kiểm tra sức khỏe của bạn cần để có thể thay đổi các bản ghi một cách nhanh chóng. Cập nhật câu trả lời với nhiều thông tin hơn về cách đạt được điều này.
Nath

TTL ngắn cho DNS kết hợp với sự phụ thuộc vào kiểm tra sức khỏe có thể làm cho hệ thống tổng thể kém ổn định hơn một chút (nó có thể chuyển đổi ngay cả khi máy chủ chính hoạt động tốt). Nó thực sự có thể làm cho tình hình tồi tệ hơn cho người dùng cuối, không tốt hơn.
Dennis Gorelik

Bản thân TTL ngắn không phải là vấn đề với bất kỳ nhà cung cấp DNS tử tế nào và nếu bạn đặt một thanh khá thấp trong kiểm tra sức khỏe của mình (tức là Failover nếu No http 200s trong 10 phút) thì sự ổn định không phải là vấn đề. Ngoài ra, bạn có thể bỏ qua phần kiểm tra sức khỏe và cắt bỏ thủ công. Điều này có nghĩa là một khoảng thời gian dài hơn khi người dùng của bạn nhận được "hết thời gian kết nối" và các lỗi xấu khác nhưng không có khả năng dương tính giả.
Nath

0

Bạn đã từng cân nhắc sử dụng thứ gì đó như EC2 sẽ cho phép bạn mở rộng quy mô linh hoạt và cũng phủ nhận khuyết điểm của bạn chưa? Cuối cùng, đó là một quyết định kinh tế nếu sử dụng EC2 có đáng hay không, nhưng ít nhất, đó là một lựa chọn để xem xét.


-2

Để tránh mất dữ liệu, bạn nên xem xét cấu hình Raid trước các cụm. Bạn cũng nên định cấu hình IP Failover mà bạn có thể chuyển từ máy chủ này sang máy chủ khác trong trường hợp xảy ra thảm họa mà không phải chờ lan truyền DNS.


Trường hợp nào này đến từ đâu? Điều gì khiến bạn nghĩ rằng poster chưa sử dụng RAID?
Chopper3

Chopper3. Tất cả những gì tôi nói là Raid sẽ giải quyết vấn đề mất dữ liệu của anh ấy.
yqt

2
Làm sao? nếu một đĩa bị chết chắc chắn nhưng điều gì sẽ xảy ra nếu bộ điều khiển của anh ta bị hỏng
Chopper3
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.