9.7

Xem bằng tiếng Anh

9.7 Hoạch định năng lực và dự báo nhu cầu

Tổng quan và động lực

Mọi hệ thống đều có một trần. Lõi tính toán cạn, đĩa đầy, bể kết nối kiệt, và một hàng đợi rỗng lúc ăn sáng tràn vào bữa trưa. Hoạch định năng lực là kỷ luật khớp nguồn cung tính toán, lưu trữ và mạng với nhu cầu bạn kỳ vọng, với đủ dư địa để một ngày bình thường không bao giờ gần trần và một ngày tồi thất bại êm thay vì thảm khốc. Dự báo nhu cầu là nửa còn lại: dự đoán bao nhiêu tải đang đến, khi nào, và vì sao, để nguồn cung đến trước nhu cầu thay vì sau lần ngừng hoạt động.

Chương này nằm giữa hai người láng giềng và vẫn bổ sung cho cả hai. Chương 3.5 bao quát khả năng mở rộng như một thuộc tính kiến trúc: một hệ thống được xây thế nào để có thể lớn lên, qua tính không trạng thái, phân mảnh và co giãn ngang. Chương 9.1 bao quát kỹ thuật độ tin cậy hệ thống (SRE), đặt các mục tiêu độ tin cậy mà năng lực phải bảo vệ. Ở đây bạn coi kiến trúc là đã cho và các mục tiêu là cố định, rồi trả lời một câu hỏi định lượng: bạn cần mua, đặt trước và giữ dự trữ bao nhiêu mỗi thứ để hệ thống đáp ứng các mục tiêu mức dịch vụ (SLO, các mục tiêu độ tin cậy từ chương 9.1) qua nhu cầu dự báo và những đột biến bạn không dự báo. Co giãn tự động và kỹ thuật hiệu năng (chương 2.16) là công cụ bạn dùng ở đây, nhưng chúng không thay thế hoạch định, và nhầm chúng với hoạch định là sai lầm phổ biến và đắt đỏ.

Với các đội lớn, năng lực thôi là bảng tính một kỹ sư giữ và trở thành mô hình dùng chung mà nhiều dịch vụ phụ thuộc. Một nền tảng hàng trăm dịch vụ chia sẻ các bể hữu hạn: kết nối cơ sở dữ liệu, thông lượng môi giới thông điệp, hạn ngạch tài khoản đám mây, đầu ra mạng. Tăng trưởng của một đội có thể bỏ đói đội khác nếu không ai giữ bức tranh toàn cục. Trong bối cảnh doanh nghiệp, lỗi năng lực hiện ra là hoặc hàng triệu lãng phí cho hạ tầng nhàn rỗi hoặc ngừng hoạt động đáng xấu hổ đúng những khoảnh khắc quan trọng nhất. Trong chính phủ, rủi ro còn sắc hơn. Một hạn thuế, một kỳ ghi danh trợ cấp, hay một đợt đăng ký y tế công cộng tập trung nhu cầu của cả quốc gia vào vài giờ, tải là bắt buộc theo luật chứ không tùy chọn, và công chúng nhớ một trang web gục ngã dưới hạn chót do chính nó đặt ra. Hoạch định năng lực là cách bạn giữ những lời hứa đó.

Các nguyên tắc chính

  • Hoạch định năng lực cho nhu cầu dự báo cộng dư địa có chủ đích; đừng chạy gần bão hòa.
  • Tách hoạch định năng lực, co giãn tự động và kỹ thuật hiệu năng; mỗi cái giải một bài toán khác nhau.
  • Dự báo từ xu hướng, tính thời vụ, sự kiện đã biết và tăng trưởng kinh doanh, không chỉ từ tuần trước.
  • Tìm giới hạn thực bằng kiểm thử tải và đánh giá chuẩn, không phải đoán hay chờ môi trường sản xuất tìm ra.
  • Coi độ trễ gần bão hòa là vách đá, không phải dốc; mục tiêu sử dụng tồn tại vì lý thuyết hàng đợi.
  • Biết các nút thắt cứng của bạn: bể kết nối, hạn ngạch và điểm đơn không co giãn tự động.
  • Cân bằng chi phí với độ tin cậy có chủ đích, và xem xét năng lực theo nhịp đều đặn thay vì sau sự cố.

Khuyến nghị

Tách hoạch định năng lực, co giãn tự động và kỹ thuật hiệu năng

Ba kỷ luật này thường bị nhầm lẫn, và nhầm lẫn dẫn đến mua sai cách sửa. Hoạch định năng lực là câu hỏi trung đến dài hạn về tổng tài nguyên bạn phải cung cấp, đặt trước và lập ngân sách trong nhiều tuần, quý và năm. Co giãn tự động là điều chỉnh tự động, ngắn hạn của tài nguyên để bám theo tải từng phút: nó di chuyển bạn bên trong đường bao mà hoạch định đã cung cấp, nhưng nó không biến ra được hạn ngạch bạn chưa đặt trước, làm ấm một cơ sở dữ liệu lạnh, hay co giãn một thành phần chỉ chạy dưới dạng một thể hiện duy nhất. Kỹ thuật hiệu năng (chương 2.16) đổi hình dạng của bài toán bằng cách làm mỗi đơn vị công việc rẻ hơn, để cùng phần cứng phục vụ nhiều nhu cầu hơn.

Sự phân biệt là thực tế. Khi một hệ thống chậm dưới tải, co giãn tự động thêm thể hiện, kỹ thuật hiệu năng làm mỗi thể hiện nhanh hơn, và hoạch định năng lực quyết định bạn có chi trả nổi các thể hiện không và cơ sở dữ liệu hạ nguồn có nhận nổi các kết nối chúng sẽ mở không. Một đội chỉ với tới co giãn tự động sẽ đụng giới hạn cứng chưa bao giờ lên kế hoạch; một đội chỉ với tới kỹ thuật hiệu năng sẽ tối ưu mã trong khi hạn ngạch tài khoản chặn họ bất kể. Bạn cần cả ba, và bạn cần biết cái nào một vấn đề cụ thể đòi hỏi.

Dự báo nhu cầu từ xu hướng, tính thời vụ, sự kiện và tăng trưởng kinh doanh

Một dự báo xây trên trung bình tuần trước sẽ bỏ lỡ mọi khoảnh khắc thú vị. Hãy xây của bạn từ bốn thành phần riêng biệt. Xu hướng là hướng cơ bản: nhu cầu đang tăng, phẳng hay giảm, và nhanh đến đâu? Tính thời vụ là mẫu lặp lại: đỉnh hằng ngày lúc 9 giờ sáng, lắng xuống hằng tuần vào cuối tuần, đợt tăng hằng năm trước kỳ nghỉ. Đột biến do sự kiện là những tập trung một lần: ra mắt sản phẩm, chiến dịch tiếp thị, một lần nhắc trên truyền hình, hạn nộp hồ sơ chính phủ. Tăng trưởng do kinh doanh là nhu cầu lộ trình của chính bạn tạo ra: một thị trường mới, một khách hàng lớn làm quen, một tính năng nhân ba số yêu cầu mỗi phiên.

Hãy dùng kỹ thuật đúng cho từng thành phần. Một chuỗi thời gian tải lịch sử, phân rã thành xu hướng và tính thời vụ, cho bạn đường cơ sở bảo vệ được cho nhu cầu ổn định. Sự kiện không ngoại suy từ lịch sử được vì chúng không có lịch sử; chúng đến từ việc nói chuyện với doanh nghiệp, đọc lộ trình, và hỏi tiếp thị và sản phẩm họ sắp ra mắt gì. Những thất bại năng lực gây hại nhất gần như luôn là sự kiện mà kỹ thuật chưa bao giờ nghe. Cách chữa là tổ chức, không phải thống kê: một kênh thường trực nơi sản phẩm, tiếp thị và vận hành khai báo các đột biến sắp tới đủ sớm để cung cấp cho chúng.

Đặt mục tiêu sử dụng và tôn trọng vách đá lý thuyết hàng đợi

Bản năng chạy hạ tầng “nóng” ở mức sử dụng 90% để tiết kiệm tiền là cái bẫy, và lý do là lý thuyết hàng đợi, được bàn sâu trong chương 11.3. Khi một tài nguyên tiến gần sử dụng đầy, thời gian chờ không tăng nhẹ nhàng và tuyến tính; nó bùng nổ. Một máy chủ ở sử dụng 50% có dư địa thoải mái; cùng máy chủ đó ở 90% có thể thấy độ trễ tệ hơn gấp nhiều lần, và ở 95% hàng đợi có thể chạy mất kiểm soát hoàn toàn. Độ trễ gần bão hòa là vách đá, không phải dốc, và người dùng của bạn cảm nhận vách đá dưới dạng hết thời gian chờ, thử lại và lỗi rất lâu trước khi tài nguyên “đầy” về mặt kỹ thuật.

Đó là lý do người hoạch định năng lực đặt mục tiêu sử dụng thấp hơn nhiều so với 100%, thường trong khoảng 50% đến 70% cho dịch vụ nhạy với độ trễ, cao hơn cho công việc lô hướng thông lượng chịu được xếp hàng. Mục tiêu không phải lãng phí; nó là cái giá của độ trễ khả đoán. Hãy chọn mục tiêu từ SLO: nếu mục tiêu độ trễ của bạn chặt, trần sử dụng của bạn thấp hơn, vì độ trễ đuôi mà xếp hàng tạo ra chính là thứ làm vỡ SLO. Dư địa và biên an toàn là cùng ý tưởng từ hai hướng. Dư địa là khoảng cách giữa tải bình thường và năng lực; biên an toàn là khoảng cách đó được diễn đạt như bảo hiểm chống lại dự báo chạy cao, một lần chuyển dự phòng tập trung tải, hoặc một đột biến bạn không thấy trước.

Tìm giới hạn thực qua kiểm thử tải và đánh giá chuẩn

Bạn không hoạch định quanh một giới hạn bạn chưa đo. Kiểm thử tải đẩy lưu lượng tổng hợp hoặc phát lại vào một hệ thống để quan sát độ trễ, thông lượng và tỷ lệ lỗi hành xử thế nào khi tải tăng, và nơi chúng vỡ. Đánh giá chuẩn đo một thành phần cô lập để xác lập trần của nó: yêu cầu mỗi giây mỗi thể hiện, lần ghi mỗi giây mỗi nút cơ sở dữ liệu, thông điệp mỗi giây mỗi phân vùng môi giới. Cùng nhau chúng cho bạn hai con số hoạch định cần: một đơn vị năng lực mang lại bao nhiêu, và toàn hệ thống đổ ở đâu.

Hãy chạy nhiều bài kiểm thử riêng biệt. Một kiểm thử tải tăng dần đến đỉnh kỳ vọng và xác nhận SLO giữ với dư địa. Một kiểm thử căng thẳng đẩy qua điểm vỡ để xem hệ thống thất bại thế nào, vì một hệ thống suy giảm êm rất khác với một hệ thống sụp đổ. Một kiểm thử ngâm giữ tải vừa phải trong nhiều giờ hoặc ngày để làm lộ rò rỉ bộ nhớ, cạn kết nối và vấn đề đầy đĩa chỉ xuất hiện theo thời gian. Một kiểm thử đột biến dội tải đột ngột để kiểm tra liệu co giãn tự động và bộ đệm có hấp thụ nó trước khi người dùng nhận ra. Hãy kiểm thử trên dữ liệu và cấu trúc giống môi trường sản xuất, vì một giới hạn đo trên tập dữ liệu đồ chơi nói dối. Chạy lại các kiểm thử này khi hệ thống thay đổi, để con số của bạn mô tả hệ thống bạn có thay vì cái bạn có năm ngoái.

Chọn chiến lược cung cấp có chủ đích

Nhà cung cấp đám mây cho bạn mua cùng năng lực theo cách đánh đổi giá lấy sự linh hoạt, và pha trộn chúng tốt là nơi tiền thật được tiết kiệm. Năng lực theo yêu cầu linh hoạt và đắt: bạn trả giá đầy đủ cho khả năng bắt đầu và dừng bất cứ lúc nào, phù hợp với tải khó đoán và ngắn hạn. Năng lực đặt trước (cam kết một hoặc ba năm, hay gói tiết kiệm) rẻ hơn mỗi đơn vị đổi lấy lời hứa tiếp tục dùng nó, phù hợp với tải nền ổn định của bạn. Thể hiện spot bán năng lực dư với chiết khấu sâu nhưng có thể bị thu hồi với ít cảnh báo, phù hợp với công việc chịu lỗi, ngắt được như xử lý lô và worker không trạng thái.

Mẫu hiệu quả là phân lớp. Hãy bao phủ tải nền ổn định bằng năng lực đặt trước cho chi phí đơn vị thấp nhất, hấp thụ biến động hằng ngày và hằng tuần bằng co giãn tự động theo yêu cầu, và đẩy công việc lô ngắt được lên spot để gặt chiết khấu. Giữ một bể đệm ấm năng lực cung cấp sẵn cho các dịch vụ không chịu được độ trễ khởi động lạnh khi co giãn từ không, để một đột biến đột ngột gặp năng lực sẵn sàng thay vì hàng đợi trong khi thể hiện mới khởi động. Sự pha trộn đúng là quyết định danh mục, và nó dịch chuyển khi hình dạng nhu cầu và giá của nhà cung cấp đổi, nên hãy xem xét lại.

Lập bản đồ nút thắt cứng không co giãn tự động

Co giãn tự động nuôi sự tự tin nguy hiểm, vì nhiều giới hạn nằm hạ nguồn của thứ co giãn và không dịch chuyển khi nó làm vậy. Bể kết nối cơ sở dữ liệu là ví dụ kinh điển: co giãn tầng không trạng thái của bạn từ 10 lên 100 thể hiện và mỗi cái mở kết nối đến cùng cơ sở dữ liệu, vốn có trần cứng về kết nối đồng thời và sẽ bắt đầu từ chối cái mới. Tài khoản đám mây mang hạn ngạch trên gần như mọi thứ: thể hiện mỗi khu vực, địa chỉ IP, lệnh gọi API mỗi giây, đồng thời hàm. Bất kỳ điểm đơn nào của kiến trúc, cơ sở dữ liệu chính, nút trưởng, bộ nhớ đệm dùng chung, thiết bị có giấy phép, là một cái trần mà co giãn ngang ở nơi khác không nâng được.

Hãy làm những điều này tường minh. Giữ một bản kiểm kê bằng văn bản mọi giới hạn cứng giữa một yêu cầu và phản hồi của nó: kích thước bể, giá trị hạn ngạch, thành phần đơn thể hiện, giới hạn tốc độ bên thứ ba, số ghế giấy phép. Với mỗi cái, ghi giá trị hiện tại, mức sử dụng hiện tại, và tải mà tại đó nó ràng buộc. Bản kiểm kê này là sự khác biệt giữa kế hoạch năng lực mô tả toàn hệ thống và kế hoạch chỉ mô tả những phần dễ, đàn hồi trong khi một bể kết nối lặng lẽ chờ kết thúc lần ra mắt của bạn. Hãy nâng hạn ngạch trước nhu cầu, vì nhà cung cấp tăng hạn ngạch có thể mất nhiều ngày để duyệt.

Cung cấp cho sự kiện đỉnh, không chỉ trung bình

Trung bình giấu những khoảnh khắc quan trọng. Một hệ thống định cỡ theo tải trung bình sẽ thất bại ở đỉnh, và với nhiều tổ chức đỉnh là toàn bộ ý nghĩa: đợt tăng bán lẻ vào ngày mua sắm lớn nhất, đột biến phát trực tuyến ở một trận chung kết trực tiếp, cổng thuế vào hạn nộp hồ sơ, trang trợ cấp khi kỳ ghi danh mở. Hãy hoạch định các sự kiện có tên này riêng lẻ. Ước tính đỉnh từ doanh nghiệp (người dùng đồng thời kỳ vọng, yêu cầu mỗi phiên, bội số so với một ngày bình thường), cung cấp theo đỉnh đó với dư địa, kiểm thử tải ở mức đó, và dàn dựng năng lực trước sự kiện thay vì chạy vạy trong lúc đó.

Hãy coi một lần ra mắt hay hạn chót là sự kiện vận hành có sổ tay vận hành. Làm ấm trước bộ nhớ đệm và bể đệm, nâng hạn ngạch từ trước, đóng băng các lần triển khai rủi ro trong cửa sổ, và đặt con người trực có thể hành động nếu dự báo hóa ra thấp. Sau sự kiện, hãy nắm bắt đỉnh thực và bạn đến gần giới hạn đến đâu, vì con số đó là đầu vào tốt nhất cho kế hoạch năm sau. Hạn chót chính phủ xứng đáng được chăm sóc đặc biệt: chúng tự áp đặt, được biết công khai, và không dời được, nên không có cớ bị bất ngờ và không cách nào giấu khi bạn bị.

Gắn công cụ đo cho năng lực và xem xét theo nhịp

Hoạch định năng lực chạy trên dữ liệu, và dữ liệu đến từ khả năng quan sát của chương 9.2. Theo dõi mức sử dụng của mọi tài nguyên bị ràng buộc (CPU, bộ nhớ, đĩa, mạng, bể kết nối, độ sâu hàng đợi) so với giới hạn của nó, để bạn thấy dư địa thu hẹp trước khi nó biến mất. Theo dõi trực tiếp tín hiệu bão hòa: độ dài hàng đợi, thời gian chờ và tỷ lệ từ chối cho thấy vách đá hàng đợi đang đến. Theo xu hướng các chỉ số này qua nhiều tuần để dự phóng khi nào một tài nguyên sẽ chạm trần ở tốc độ tăng hiện tại, và cảnh báo trên dự phóng thay vì chỉ giá trị hiện tại, để bạn cung cấp trước bức tường thay vì tại nó.

Hãy tổ chức xem xét năng lực theo nhịp đều đặn, hằng tháng hoặc hằng quý, thay vì chỉ sau sự cố. Trong mỗi lần xem xét, so sánh dự báo với nhu cầu thực và hiệu chỉnh mô hình, đi qua bản kiểm kê giới hạn cứng và kiểm tra dư địa so với từng cái, nhìn các sự kiện sắp tới và kế hoạch kinh doanh, và quyết định đặt trước, nâng hay cho nghỉ hưu cái gì. Giữ một mô hình năng lực sống: một tài liệu hay bảng tính đơn giản ánh xạ các động lực nhu cầu với nhu cầu tài nguyên, để bất kỳ ai cũng hỏi được “điều gì xảy ra với cơ sở dữ liệu nếu lưu lượng nhân đôi” và nhận câu trả lời từ mô hình thay vì một lần ngừng hoạt động. Mô hình không bao giờ hoàn hảo, nhưng một mô hình bằng văn bản, được hiệu chỉnh đều đặn thắng trực giác mọi lúc.

Đánh đổi: ưu và nhược điểm

Cách tiếp cậnƯu điểmNhược điểm
Mục tiêu sử dụng caoChi phí mỗi đơn vị thấp hơn; ít năng lực nhàn rỗiĐộ trễ bùng nổ gần bão hòa; không chỗ cho đột biến hay chuyển dự phòng
Dư địa hào phóngĐộ trễ khả đoán; hấp thụ đột biến và chuyển dự phòngChi phí ổn định cao hơn; có thể che giấu kém hiệu quả
Năng lực đặt trướcGiá đơn vị thấp nhất cho tải nền ổn địnhRủi ro cam kết nếu nhu cầu giảm hoặc dịch chuyển
Năng lực theo yêu cầuLinh hoạt; khớp tải biến đổi từng phútGiá đơn vị cao nhất; có thể làm ngân sách bất ngờ
Thể hiện spotChiết khấu sâu cho công việc ngắt đượcBị thu hồi không báo trước; không phù hợp công việc có trạng thái hay trọng yếu về độ trễ
Co giãn tự độngTự động bám tải bên trong đường baoKhông vượt được hạn ngạch đặt trước; khởi động lạnh; che giới hạn hạ nguồn
Bể đệm (năng lực ấm)Hấp thụ đột biến đột ngột tức thìTrả tiền cho năng lực nhàn rỗi giữa các đột biến

Căng thẳng trung tâm là chi phí so với độ tin cậy, và không có thiết lập nào tối ưu cả hai. Chạy tiết kiệm và bạn tiết kiệm tiền cho đến ngày một đột biến gặp tài nguyên bão hòa và độ trễ rơi khỏi vách đá hàng đợi. Chạy hào phóng và bạn ngủ ngon trong khi trả tiền cho dư địa nằm nhàn rỗi phần lớn thời gian. Hãy giải quyết căng thẳng bằng SLO thay vì bằng sợ hãi hay keo kiệt. Cung cấp đủ dư địa để đáp ứng mục tiêu độ tin cậy qua đỉnh dự báo cộng một biên, và không hơn, rồi để FinOps (vận hành tài chính cho chi tiêu đám mây, chương 9.4) săn lãng phí không bảo vệ một SLO. Mục tiêu là cân bằng có chủ đích: mỗi đô la dư địa được mua có chủ đích để mua một lượng độ tin cậy đã biết, và mỗi đô la lãng phí bị loại có chủ đích vì nó không mua gì.

Câu hỏi để thảo luận với đội của bạn

  1. Chúng ta thực sự biết tải mà tại đó từng nút thắt cứng của mình ràng buộc không, hay chúng ta đang giả định co giãn tự động sẽ cứu mình? Hầu hết đội nói được thể hiện của họ co giãn tự động, và hầu hết không nói được giới hạn kết nối đồng thời trên cơ sở dữ liệu chính, giới hạn tốc độ API của bên thứ ba quan trọng nhất, hay hạn ngạch tài khoản chặn đồng thời hàm của họ. Đó là những giới hạn kết thúc lần ra mắt, và chúng không dịch chuyển khi tầng không trạng thái co giãn. Hãy mang bản kiểm kê giới hạn cứng bằng văn bản nếu có, và nếu không, sự vắng mặt đó là phát hiện. Với mỗi giới hạn, bạn muốn ba con số: trần, mức sử dụng hôm nay, và mức nhu cầu mà tại đó chúng gặp nhau. Bất cứ nơi nào bạn không đưa ra được cả ba, bạn có một nút thắt đang quản lý bằng hy vọng.

  2. Lần cuối chúng ta kiểm thử tải đến mức đỉnh tệ nhất sắp tới, trên dữ liệu giống môi trường sản xuất, và SLO có giữ với dư địa không? Kế hoạch năng lực là tập hợp các tuyên bố về hệ thống hành xử thế nào dưới tải, và một tuyên bố chưa kiểm thử là đoán mò mặc vest. Đỉnh quan trọng không phải trung bình tháng trước mà là lần ra mắt, kỳ nghỉ hay hạn chót kế tiếp, và bài kiểm thử chỉ có ý nghĩa nếu dữ liệu và cấu trúc giống môi trường sản xuất, vì một giới hạn đo trên tập dữ liệu đồ chơi nói dối. Hãy mang kết quả các kiểm thử căng thẳng và ngâm gần nhất của bạn, gồm nơi hệ thống vỡ và nó thất bại thế nào khi vỡ. Nếu câu trả lời trung thực là bạn chưa bao giờ cố ý đẩy hệ thống đến điểm vỡ, thì bạn sẽ phát hiện điểm đó trong môi trường sản xuất, vào lúc tệ nhất có thể, với người dùng nhìn.

  3. Sản phẩm, tiếp thị và vận hành báo cho kỹ thuật về một đột biến trước khi nó xảy ra thế nào, và trước bao lâu? Những thất bại năng lực đắt nhất không phải lỗi mô hình; chúng là sự kiện mà kỹ thuật chưa bao giờ nghe cho đến khi lưu lượng đến. Một dự báo có thể ngoại suy xu hướng và tính thời vụ từ lịch sử, nhưng một sự kiện không có lịch sử, nên nó chỉ đến từ những người lên kế hoạch cho nó. Hãy mang ba đột biến nhu cầu gần nhất và hỏi, với mỗi cái, kỹ thuật được cảnh báo trước bao nhiêu ngày và liệu đó có đủ để đặt trước năng lực và kiểm thử tải. Bằng chứng bạn muốn là một kênh thường trực với thời gian báo trước đủ dài để cung cấp, vì riêng tăng hạn ngạch đám mây đã có thể mất nhiều ngày. Nếu kênh không tồn tại, kế hoạch năng lực của bạn mù đúng những khoảnh khắc nó tồn tại để bảo vệ.

  4. Mục tiêu sử dụng mà từng dịch vụ nhạy với độ trễ thực sự chạy là bao nhiêu, và chúng ta truy được con số đó về SLO của nó thay vì về mục tiêu chi phí không? Điều này quan trọng vì áp lực chạy hạ tầng nóng là liên tục và đến từ phần tổ chức thấy hóa đơn nhưng không thấy vách đá hàng đợi, nên trừ khi mục tiêu được viết ra và biện minh từ mục tiêu độ trễ, nó trôi lên cho đến khi một đột biến tìm thấy rìa. Các cân nhắc đối lập là tiền thật một bên và độ trễ đuôi bên kia, và vị trí trung thực là dư địa dưới 100% là cái giá của độ trễ khả đoán, không phải lãng phí cần cắt tỉa. Hãy mang mức sử dụng hiện tại của vài dịch vụ hàng đầu, SLO mỗi cái bảo vệ, và độ trễ bạn đo ở mức sử dụng đó dưới tải, để cuộc thảo luận lập luận từ bằng chứng thay vì bản năng. Trong một nền tảng doanh nghiệp hay chính phủ nơi một bể dùng chung nuôi nhiều dịch vụ, hãy thống nhất mục tiêu tập trung và ghi lại ai được đổi nó, vì một đội lặng lẽ nâng trần của mình có thể đẩy một tài nguyên mà người khác phụ thuộc qua vách đá cho tất cả.

  5. Sự pha trộn năng lực đặt trước, theo yêu cầu và spot của chúng ta là gì, lần cuối chúng ta xem xét lại là khi nào, và nó có còn khớp với hình dạng nhu cầu của chúng ta không? Sự pha trộn là nơi cả khoản tiết kiệm bền vững lớn nhất lẫn lãng phí bền vững lớn nhất ẩn nấp, vì tải nền ổn định trả theo giá theo yêu cầu đốt tiền mỗi giờ trong khi vị thế đặt trước cam kết quá mức trả cho năng lực mà nhu cầu đã vượt hay rơi xuống dưới. Căng thẳng là chi phí so với linh hoạt và rủi ro cam kết: năng lực đặt trước rẻ nhất mỗi đơn vị nhưng khóa bạn, spot còn rẻ hơn nhưng có thể bị thu hồi không báo trước, và theo yêu cầu mua tự do với giá cao hơn. Hãy mang tỷ lệ chia hiện tại theo chi phí, đường cong nhu cầu nó định bao phủ, và tỷ lệ thu hồi cùng bán kính ảnh hưởng của bất kỳ khối lượng công việc spot nào, để căn phòng thấy liệu công việc ngắt được có thực sự ngắt được. Trong bối cảnh doanh nghiệp và chính phủ, hãy gắn cam kết đặt trước với chu kỳ mua sắm và ngân sách, vì cam kết nhiều năm và gói tiết kiệm là nghĩa vụ tài chính mà tài chính và kiểm toán sẽ muốn biện minh theo nhu cầu dự báo, không theo sự tiện lợi của quý trước.

  6. Khi một sự kiện đỉnh có tên đang đến, ai sở hữu việc làm ấm trước, nâng hạn ngạch, đóng băng triển khai, và quyết định đi/không đi, và nó có được viết thành sổ tay vận hành chúng ta đã diễn tập không? Sự kiện đỉnh là những khoảnh khắc hoạch định năng lực tồn tại để bảo vệ, và chúng thất bại thường nhất không phải vì kế hoạch sai mà vì không ai chịu trách nhiệm thực thi nó dưới áp lực vào ngày. Các cân nhắc cạnh tranh ở đây là tốc độ và tự chủ so với phối hợp: các đội muốn tiếp tục phát hành, nhưng một lần triển khai rủi ro trong cửa sổ tăng đột biến có thể xóa nhiều tháng cung cấp, nên ai đó phải giữ thẩm quyền đóng băng và dừng lần ra mắt. Hãy mang sổ tay vận hành cho sự kiện lớn kế tiếp, thời gian chờ cho tăng hạn ngạch và làm ấm bể đệm, và hồ sơ ai giữ mỗi vai trò lần trước và liệu các bàn giao có giữ. Với hạn chót chính phủ vốn tự áp đặt, được biết công khai và không dời được, hãy nêu rõ chủ sở hữu chịu trách nhiệm và đường leo thang, vì không có lựa chọn để xả tải hay yêu cầu công dân quay lại sau, và một đỉnh không ai sở hữu là đỉnh không ai bảo vệ khi nó đến.

Góc nhìn theo lĩnh vực

Công ty khởi nghiệp. Nguồn lực khan hiếm nhất của bạn là sự chú ý của kỹ sư, nên hãy giữ hoạch định năng lực rẻ và gọn và dựa vào tính đàn hồi của nhà cung cấp đám mây cho biến động hằng ngày. Điều bạn không bỏ qua được là danh sách bằng văn bản các giới hạn cứng không co giãn tự động: trần kết nối cơ sở dữ liệu chính, giới hạn tốc độ bên thứ ba quan trọng nhất, và hạn ngạch tài khoản bạn sẽ chạm dưới một đột biến tính năng hay báo chí bất ngờ. Hãy kiểm thử tải đến nhiều lần đỉnh bình thường của bạn trên dữ liệu cỡ sản xuất trước đợt tăng thật đầu tiên, vì sự tự tin mong manh mà co giãn tự động mang lại chính là thứ vỡ khi cơ sở dữ liệu từ chối kết nối.

Doanh nghiệp nhỏ. Bạn không có chuyên gia năng lực và ngân sách eo hẹp, vì vậy hãy coi đây là bài toán mua-và-cấu-hình hơn là dự án mô hình hóa. Ưu tiên dịch vụ được quản lý hấp thụ co giãn cho bạn, đặt cảnh báo chi tiêu và bảng điều khiển sử dụng đơn giản để hóa đơn mất kiểm soát hay tài nguyên bão hòa hiện ra sớm, và biết vài sự kiện có tên (đợt cao điểm theo mùa, một khách hàng lớn đưa vào hoạt động) sẽ định nghĩa năm của bạn. Đặt trước năng lực cho tải nền ổn định để cắt hóa đơn, và chống lại việc xây bộ máy dự báo bạn không bảo trì nổi khi hình dạng nhu cầu hầu như không đổi.

Doanh nghiệp lớn. Vấn đề là một tập các bể hữu hạn, dùng chung đằng sau hàng trăm dịch vụ, nên năng lực thành quản trị danh mục: một bản kiểm kê giới hạn cứng được duy trì, mục tiêu sử dụng suy ra tập trung từ SLO, và sự pha trộn có chủ đích năng lực đặt trước, theo yêu cầu và spot được xem xét lại theo giá thực. Hãy chuẩn hóa các kiểm thử tải, căng thẳng, ngâm và đột biến để mọi đội đo giống nhau trên dữ liệu giống môi trường sản xuất, và chạy xem xét năng lực theo nhịp bắt dư địa thu hẹp trước một sự cố. Lập ngân sách tường minh cho phối hợp, vì tăng trưởng của một đội có thể bỏ đói đội khác khi không ai giữ toàn bộ mô hình.

Chính phủ. Nhu cầu thường tập trung theo luật vào một hạn chót không dời được, được biết công khai, vì vậy hãy hoạch định cho đỉnh có tên đó cụ thể và cung cấp biên an toàn rộng, vì bạn không xả được tải hay yêu cầu công dân quay lại sau. Quy tắc mua sắm định hình cung cấp: cam kết đặt trước nhiều năm và thỏa thuận hạn ngạch nhà cung cấp phải được biện minh theo nhu cầu dự báo và sống sót qua kiểm toán, nên hãy giữ dự báo, bằng chứng kiểm thử tải và bản kiểm kê giới hạn cứng có tài liệu và bảo vệ được. Công bố kỳ vọng thực tế nơi có thể, nâng giới hạn của nhà cung cấp từ rất sớm trước cửa sổ, và ghi lại đỉnh thực mỗi chu kỳ, vì trách nhiệm giải trình công nghĩa là một cổng gục ngã dưới hạn chót do chính nó đặt ra là thất bại cả nước thấy.

Ví dụ

Công ty khởi nghiệp. Một công ty khởi nghiệp mười người chạy ứng dụng tiêu dùng trên hạ tầng đám mây co giãn tự động và cảm thấy an toàn vì số thể hiện tăng theo tải. Lần xuất hiện truyền hình đầu tiên của họ nhân ba lưu lượng trong một giờ, tầng không trạng thái co giãn tuyệt vời, và ứng dụng vẫn đổ: mỗi thể hiện mới mở kết nối cơ sở dữ liệu cho đến khi cơ sở dữ liệu chạm trần kết nối và bắt đầu từ chối. Bài học định hình lại thực hành của họ. Họ thêm bộ gom kết nối trước cơ sở dữ liệu, viết ra mọi giới hạn cứng giữa yêu cầu và phản hồi, và kiểm thử tải đến nhiều lần đỉnh bình thường trên tập dữ liệu cỡ sản xuất. Họ bao phủ tải nền ổn định bằng cam kết năng lực đặt trước để được chiết khấu và giữ một bể đệm ấm nhỏ để đột biến kế tiếp gặp năng lực sẵn sàng. Những thay đổi tốn một tuần và biến sự tự tin mong manh của họ thành kế hoạch họ bảo vệ được.

Doanh nghiệp lớn. Một nhà bán lẻ toàn cầu coi ngày bán hàng lớn nhất của mình là sự kiện năng lực của năm. Nhiều tháng trước, một đội đa chức năng xây dự báo nhu cầu từ xu hướng và tính thời vụ các năm trước cộng kế hoạch bán hàng hóa, dịch sang nhu cầu tài nguyên qua một mô hình năng lực, và cung cấp theo đỉnh dự phóng với dư địa hào phóng. Họ kiểm thử tải, căng thẳng, ngâm và đột biến toàn bộ đường đi trên dữ liệu giống môi trường sản xuất, nâng mọi hạn ngạch đám mây liên quan trước nhiều tuần, làm ấm trước bộ nhớ đệm và bể đệm, và đóng băng các lần triển khai rủi ro cho cửa sổ xung quanh. Năng lực đặt trước bao phủ tải nền ổn định để tiết kiệm chi phí, co giãn tự động theo yêu cầu hấp thụ đường cong hằng ngày, và công việc lô ngắt được chạy trên spot. Khả năng quan sát theo dõi mọi tài nguyên bị ràng buộc so với giới hạn theo thời gian thực trong sự kiện, với cảnh báo trên bão hòa dự phóng thay vì giá trị hiện tại. Ngày trôi qua không kịch tính, chính xác là kết quả mà hoạch định mua được.

Chính phủ. Một cơ quan thuế quốc gia chạy cổng khai thuế có nhu cầu tập trung theo luật vào những ngày trước hạn chót không dời được, khi cả đất nước khai cùng lúc. Cơ quan hoạch định cho đỉnh đó cụ thể thay vì cho trung bình hằng năm vô nghĩa. Nó ước tính số người khai đồng thời từ các năm trước và dữ liệu dân số, cung cấp theo đỉnh đó với biên an toàn rộng vì không có lựa chọn xả tải hay yêu cầu công dân quay lại sau, và kiểm thử tải đến mức đồng thời dự phóng trên dữ liệu thực tế. Đội giữ bản kiểm kê bằng văn bản mọi hạn ngạch và điểm đơn thất bại, nâng giới hạn với nhà cung cấp từ rất sớm trước cửa sổ, và đặt mục tiêu sử dụng đủ thấp để vách đá hàng đợi vẫn xa đợt tăng cuối hạn. Sau mỗi mùa khai thuế họ ghi lại đỉnh thực và còn bao nhiêu dư địa, nuôi mô hình năm sau. Công chúng thấy một cổng vẫn chạy vào ngày nó được thiết kế cho, chính là toàn bộ ý nghĩa của lời hứa thể chế.

Luận chứng kinh doanh: động lực, ROI và TCO

Lợi tức của hoạch định năng lực hiện ra là hai chi phí tránh được kéo theo hai hướng đối lập, điều làm kỷ luật này có giá trị. Cung cấp thiếu tốn ngừng hoạt động, và ngừng hoạt động trong sự kiện đỉnh tốn nhất: doanh thu mất, giao dịch mất, và thiệt hại danh tiếng đúng lúc khán giả lớn nhất. Một trang bán lẻ sập vào ngày lớn nhất của nó hay một cổng chính phủ sụp vào hạn chót trả giá nhiều năm hoạch định trong một giờ tồi. Cung cấp thừa tốn theo hướng ngược lại, bằng hóa đơn đám mây cho năng lực nằm nhàn rỗi, và ở quy mô doanh nghiệp vài điểm cung cấp thừa kinh niên qua một đội máy lên tới hàng triệu đô la mỗi năm. Hoạch định năng lực là thực hành tìm điểm giữa có chủ đích: đủ để bảo vệ SLO qua đỉnh, không hơn.

Chi phí áp dụng chủ yếu là kỷ luật hơn là công cụ. Bạn xây dự báo nhu cầu, viết ra giới hạn cứng, chạy kiểm thử tải theo nhịp, pha trộn chiến lược cung cấp, và tổ chức xem xét năng lực đều đặn. Tổng chi phí sở hữu (TCO) cải thiện từ cả hai phía cùng lúc: ít sự cố do năng lực hạ chi phí ngừng hoạt động và ứng phó khẩn cấp, và chọn kích thước vừa liên tục cộng sự pha trộn đặt trước-và-spot hợp lý hạ hóa đơn hạ tầng ổn định. Để lập luận với ban lãnh đạo, hãy nối năng lực với các con số họ đã theo dõi. Gắn cung cấp thiếu với doanh thu mất mỗi giờ ngừng hoạt động đỉnh và với vi phạm SLO có phạt hợp đồng, và gắn cung cấp thừa với báo cáo lãng phí FinOps từ chương 9.4. Lập luận không phải sự thận trọng trừu tượng; mà là tiền ở cả hai phía của một núm bạn đặt được có chủ đích.

Phản mẫu và cạm bẫy

  • Co giãn tự động như một kế hoạch: tin vào thể hiện đàn hồi trong khi bể kết nối cơ sở dữ liệu, hạn ngạch tài khoản hay điểm đơn lặng lẽ chặn cả hệ thống.
  • Chạy nóng để tiết kiệm tiền: nhắm mức sử dụng 90% trở lên và gặp vách đá hàng đợi, nơi độ trễ bùng nổ và SLO vỡ.
  • Trung bình thay vì đỉnh: định cỡ theo tải trung bình nên hệ thống thất bại ở chính sự kiện đỉnh biện minh cho việc xây nó.
  • Dự báo chỉ từ lịch sử: ngoại suy xu hướng và tính thời vụ trong khi bỏ lỡ lần ra mắt hay chiến dịch mà kỹ thuật chưa bao giờ được báo.
  • Giới hạn chưa kiểm thử: hoạch định quanh điểm vỡ không ai đo, rồi phát hiện nó trong môi trường sản xuất vào lúc tệ nhất.
  • Kiểm thử tải trên dữ liệu đồ chơi: đo năng lực trên dữ liệu và cấu trúc không thực tế, tạo con số nói dối về hệ thống thật.
  • Không có bản kiểm kê giới hạn cứng: quản lý hạn ngạch, bể và điểm đơn bằng trí nhớ và hy vọng thay vì danh sách bằng văn bản được duy trì.
  • Đặt trước tất cả hoặc không đặt trước gì: cam kết quá mức vào năng lực đặt trước mà nhu cầu vượt hoặc rơi xuống dưới, hoặc trả giá theo yêu cầu đầy đủ cho tải nền ổn định.
  • Xem xét năng lực chỉ sau sự cố: coi hoạch định là chữa cháy phản ứng thay vì nhịp đều đặn cung cấp trước nhu cầu.

Mô hình trưởng thành

  • Mức 1, Khởi đầu: Năng lực phản ứng và tùy nghi. Các đội thêm tài nguyên sau khi hết, tin co giãn tự động xử lý mọi thứ, và không có dự báo, không bản kiểm kê giới hạn cứng, không kiểm thử tải. Sự kiện đỉnh được đón bằng hy vọng, và ngừng hoạt động trong lần ra mắt và hạn chót bị coi là xui rủi.
  • Mức 2, Phát triển: Thực hành cơ bản xuất hiện nhưng khác nhau theo đội. Một số giám sát cho thấy mức sử dụng, một số kiểm thử tải xảy ra trước sự kiện lớn, hạn ngạch chính được biết, và một dự báo thô tồn tại ở vài nơi, nhưng mô hình không được duy trì, nút thắt hạ nguồn thường bị bỏ sót, và dư địa được đặt theo quy tắc ngón tay cái thay vì từ SLO.
  • Mức 3, Chuẩn hóa: Hoạch định năng lực là kỷ luật có tài liệu, được thực thi toàn tổ chức. Một dự báo nhu cầu kết hợp xu hướng, tính thời vụ, sự kiện và tăng trưởng kinh doanh; một bản kiểm kê giới hạn cứng bằng văn bản được duy trì; mục tiêu sử dụng suy ra từ SLO; kiểm thử tải, căng thẳng, ngâm và đột biến chạy theo nhịp trên dữ liệu giống môi trường sản xuất; và cung cấp pha trộn năng lực đặt trước, theo yêu cầu và spot có chủ đích. Một kênh thường trực mang cảnh báo sự kiện từ sản phẩm và tiếp thị đến kỹ thuật.
  • Mức 4, Quản lý: Năng lực được đo và kiểm soát theo đường cơ sở. Dự báo được so sánh với nhu cầu thực mỗi chu kỳ và sai số được theo dõi và kéo xuống; mức sử dụng, tín hiệu bão hòa và dư địa so với mọi giới hạn cứng được theo xu hướng và cảnh báo như dự phóng chứ không phải giá trị hiện tại; sự kiện đỉnh được xem xét sau đó so với đỉnh quan sát thực; và sự pha trộn cung cấp, độ phủ cam kết đặt trước và chi phí-trên-SLO được báo cáo như chỉ số chặn cổng quyết định tiếp tục hay dừng. Dữ liệu, không phải trực giác, quyết định đặt trước, nâng hay cho nghỉ hưu cái gì.
  • Mức 5, Điều phối: Hoạch định năng lực được cải thiện liên tục và tích hợp trong toàn tổ chức. Dự báo được xác thực và tinh chỉnh tự động, bão hòa được dự phóng và cung cấp trước khi nó đến, sự pha trộn cung cấp được tối ưu theo giá trực tiếp, sự kiện đỉnh chạy từ sổ tay vận hành đã diễn tập, và chi phí cùng độ tin cậy được cân bằng có chủ đích theo SLO qua toàn nền tảng. Mô hình năng lực là tài sản dùng chung, thích ứng cân bằng lại đội máy khi hình dạng nhu cầu và giá nhà cung cấp dịch chuyển.

Ý tưởng để thảo luận

  1. Mục tiêu sử dụng hiện tại của bạn cho dịch vụ nhạy với độ trễ là bao nhiêu, và bạn có biện minh được nó từ SLO và hành vi hàng đợi thay vì từ mong muốn tiết kiệm tiền không?
  2. Thành phần nào của bạn không co giãn tự động được, và điều gì xảy ra với phần còn lại của hệ thống khi một trong số đó bão hòa?
  3. Nếu lưu lượng của bạn nhân đôi quý tới, tài nguyên nào chạm trần trước, và bạn cần bao nhiêu ngày thời gian chờ để nâng nó?
  4. Làm sao bạn quyết định sự pha trộn năng lực đặt trước, theo yêu cầu và spot, và lần cuối bạn xem xét lại nó so với hình dạng nhu cầu thực là khi nào?
  5. Khi một sự kiện đỉnh đang đến, ai sở hữu làm ấm trước, nâng hạn ngạch, và quyết định đi/không đi, và điều đó có được viết thành sổ tay vận hành không?
  6. Cảnh báo năng lực của bạn kích hoạt trên bão hòa dự phóng nhiều tuần trước, hay chỉ trên mức sử dụng hiện tại khi bức tường đã gần?

Những điểm cần ghi nhớ

  • Hoạch định năng lực khớp nguồn cung với nhu cầu dự báo cùng dư địa có chủ đích; nó khác với co giãn tự động (ngắn hạn, bên trong đường bao) và kỹ thuật hiệu năng (đơn vị công việc rẻ hơn).
  • Dự báo từ xu hướng, tính thời vụ, sự kiện đã biết và tăng trưởng kinh doanh, và nhận cảnh báo sự kiện từ sản phẩm và tiếp thị, vì sự kiện không có lịch sử để ngoại suy.
  • Tôn trọng vách đá lý thuyết hàng đợi (chương 11.3): độ trễ bùng nổ gần bão hòa, nên đặt mục tiêu sử dụng từ SLO và giữ dư địa thực.
  • Tìm giới hạn qua kiểm thử tải, căng thẳng, ngâm và đột biến trên dữ liệu giống môi trường sản xuất, và giữ bản kiểm kê bằng văn bản các nút thắt cứng không co giãn tự động.
  • Pha trộn năng lực đặt trước, theo yêu cầu và spot với bể đệm ấm, hoạch định sự kiện đỉnh có tên riêng lẻ, và xem xét năng lực theo nhịp thay vì sau ngừng hoạt động.

Tài liệu tham khảo và đọc thêm

  • Betsy Beyer, Chris Jones, Jennifer Petoff và Niall Richard Murphy (biên tập), Site Reliability Engineering: How Google Runs Production Systems
  • Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara và Stephen Thorne (biên tập), The Site Reliability Workbook: Practical Ways to Implement SRE
  • John Allspaw, The Art of Capacity Planning: Scaling Web Resources in the Cloud
  • Neil J. Gunther, Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services
  • Martin L. Abbott và Michael T. Fisher, The Art of Scalability: Scalable Web Architecture, Processes, and Organisations for the Modern Enterprise
  • Brendan Gregg, Systems Performance: Enterprise and the Cloud
  • Leonard Kleinrock, Queueing Systems, Volume 1: Theory
  • J. R. Storment và Mike Fuller, Cloud FinOps: Collaborative, Real-Time Cloud Financial Management