Thứ hai, 09/07/2018 | 00:00 GMT+7

Hướng dẫn của Navigator: Giải pháp Triển khai với Quản lý Cấu hình


Lưu ý : Đây là version phát hành sớm của nội dung cuốn sách Hướng dẫn của Navigator, một sản phẩm từ Kỹ sư Giải pháp DigitalOcean. Mục tiêu của cuốn sách là giúp các khách hàng doanh nghiệp lập kế hoạch về nhu cầu cơ sở hạ tầng của họ, cung cấp các ví dụ làm việc trong quá trình thực hiện và bao gồm sắc thái kỹ thuật và “lý do” đưa ra một số quyết định tốt hơn những quyết định khác.

Cuốn sách và mã đi kèm sẽ được công bố rộng rãi trong repository lưu trữ GitHub. Vì đây là bản phát hành sớm nên cuốn sách vẫn chưa hoàn chỉnh và repository vẫn chưa được công khai, nhưng hãy theo dõi!

Chương trước đã trình bày cách giảm thời gian chết bằng cách thêm dự phòng ở lớp giao diện user web của cơ sở hạ tầng của bạn. Nếu dịch vụ của bạn hoạt động với các file và dữ liệu, bạn cũng cần một chương trình backend tập trung - điều này cũng sẽ dự phòng tương tự để tránh trở thành một điểm lỗi duy nhất.

Cả frontend và backend đều có thể sử dụng giải pháp cân bằng tải để phân phối lưu lượng đến nhiều server . Cấu trúc này cung cấp một số lợi ích độc đáo trên backend , như khả năng cập nhật mã ứng dụng của bạn mà không phải chịu thời gian chết, hỗ trợ những thứ như thử nghiệm A / B, triển khai canary và triển khai xanh lam / xanh lá cây. Tuy nhiên, điều này cũng làm tăng thêm sự phức tạp cho cơ sở hạ tầng của bạn. Bạn cần xem xét những thứ như cách duy trì cấu hình của bộ cân bằng tải, cách quản lý ứng dụng của bạn và các server mà nó chạy cũng như cách xử lý tính nhất quán như phiên user , lưu trữ file và database .

Dù bạn sử dụng Bộ cân bằng tải DigitalOcean hay một bộ cân bằng tải tự quản lý, bạn cần duy trì tính nhất quán của cấu hình của nó. Quản lý file cấu hình bằng công cụ quản lý cấu hình trong cài đặt bộ cân bằng tải tự quản lý dễ thực hiện hơn và yêu cầu một số công việc bổ sung trước, trong khi Bộ cân bằng tải DigitalOcean là một dịch vụ được quản lý xử lý tự động dự phòng bộ cân bằng tải.

Đối với Bộ cân bằng tải DigitalOcean, các tùy chọn cấu hình được sắp xếp, nhưng bạn vẫn cần đảm bảo cài đặt chính xác và nhất quán. Sử dụng thẻ Server để xác định backend của Load Balancer là con đường trực tiếp nhất dẫn đến thành công vì nó cho phép bạn thêm và xóa Server tự động (thay vì theo từng IP) và nghĩa là cấu hình của bạn có thể được xử lý duy nhất bởi Terraform mà không cần Ansible.

Nếu các yêu cầu cân bằng tải của bạn phức tạp hơn, bạn có thể đã chọn sử dụng bộ cân bằng tải của riêng mình (với HAProxy, như trong chương trước hoặc phần mềm cân bằng tải khác). Trong trường hợp này, bạn cần triển khai một tập hợp nhiều server cân bằng tải cùng với địa chỉ IP nổi DigitalOcean đảm bảo dự phòng ở lớp cân bằng tải.

Cài đặt của ta

Tính nhất quán của dữ liệu là vấn đề chính mà bạn sẽ giải quyết với cấu hình bộ cân bằng tải của bạn . Khi chương trình backend của bạn có thể được phục vụ từ bất kỳ một trong nhiều server , bạn cần đảm bảo mỗi server có quyền truy cập vào cùng một tập dữ liệu nhất quán hoặc một phiên cụ thể sẽ tiếp tục kết nối với một server cụ thể.

Ta sẽ sử dụng điều này như một cơ hội để chứng minh việc sử dụng mạnh mẽ hơn phần mềm Quản lý Cấu hình.Trong ví dụ của ta về việc lưu trữ một trang web chạy WordPress, ta sẽ phải đưa ra quyết định về cách đảm bảo mọi nút trong cụm của ta đều có dữ liệu thích hợp. User cuối cần có trải nghiệm mount dù nút nào đang xử lý yêu cầu. User cuối có thể thấy các kết quả lẻ tẻ nếu một nút biết bài đăng hoặc hình ảnh trong trang web WordPress của ta , nhưng các node khác thì không.

Có ba thành phần liên quan mà ta sẽ xem xét khi xem qua cấu hình đảm bảo tính nhất quán: phiên user , lưu trữ file và database .

Hiểu cấu hình

Trên thực tế, việc cài đặt cụm sau khi cấu hình được thực hiện là một quá trình tương đối ngắn, nhưng hiểu cấu hình và các quyết định trong đó là key để có thể áp dụng các mẫu này cho cơ sở hạ tầng của bạn . Hãy chia nhỏ nó ra từng mảnh.

Cấu hình bộ cân bằng tải

Bộ cân bằng tải DigitalOcean

Như trong các chương trước, ta sẽ sử dụng Terraform để quản lý cấu hình Load Balancer. Mục nhập sau sẽ tạo một Load Balancer và cung cấp thẻ backend Server, các luật chuyển tiếp, certificate TLS để sử dụng và các kiểm tra tình trạng mà Load Balancer sẽ sử dụng. SSL và các cài đặt bảo mật khác không nằm trong phạm vi của chương này, nhưng chúng được đề cập sâu hơn trong Chương 13.

Đây là khối tài nguyên nằm trong file example-code/02-scale/ch05/init_deploy/main.tf :

...  resource "digitalocean_loadbalancer" "public" {   name                   = "${var.project}-lb"   region                 = "${var.region}"   server_tag            = "${digitalocean_tag.backend_tag.id}"   redirect_http_to_https = true   depends_on             = ["digitalocean_tag.backend_tag"]    forwarding_rule {     entry_port     = 80     entry_protocol = "http"      target_port     = 80     target_protocol = "http"   }    healthcheck {     port                     = 80     protocol                 = "http"     path                     = "/"     check_interval_seconds   = 5     response_timeout_seconds = 3     unhealthy_threshold      = 2     healthy_threshold        = 2   } } 

Bởi vì Load Balancers là một dịch vụ chứ không phải là một tài nguyên bất biến (như Server), thay đổi đối với các đối số cấu hình sẽ không tạo lại toàn bộ Load Balancer; nó sẽ cập nhật tại chỗ. Để biết thêm chi tiết về các đối số được hỗ trợ và thuộc tính kết quả , hãy xem tài liệu Terraform .

Ta đang sử dụng Bộ cân bằng tải DigitalOcean để xử lý việc cân bằng tải lưu lượng truy cập web công khai đến các web server của ta .

Cụm HAProxy

Nếu bạn cần cấu hình phức tạp hơn, chẳng hạn như quyền truy cập vào cài đặt cân bằng tải cấp thấp hơn hoặc hỗ trợ nhiều dịch vụ backend , bạn có thể cài đặt cụm cân bằng tải của riêng mình. Ta sẽ tiếp tục với ví dụ về HAProxy từ chương trước.

Ansible sử dụng hệ thống tạo khuôn mẫu Jinja2, giúp đơn giản hóa quá trình tạo và cập nhật các file cấu hình của bạn. Jinja2 hỗ trợ việc sử dụng các biến và cấu trúc điều khiển mà bạn sẽ tìm thấy trong ngôn ngữ lập trình, chẳng hạn như câu lệnh if, vòng lặp, phép toán và thư viện bộ lọc tích hợp lớn. Bản tóm tắt này không phù hợp với hệ thống tạo khuôn mẫu trong Ansible. Ta khuyên bạn nên xem lại tài liệu của Ansible để biết thêm chi tiết.

Có một số cách để kích hoạt cập nhật khi cấu hình của bạn thay đổi. Nếu nhu cầu trên trang web không dao động nhiều hoặc bạn biết khi nào các thay đổi sẽ xảy ra trước thời hạn, bạn có thể không cần hoặc không muốn cài đặt quy mô hoàn toàn tự động. Thay vào đó, bạn có thể chạy playbook Ansible của bạn theo cách thủ công hoặc đặt nó chạy khi bạn đẩy một thay đổi đối với các tập lệnh triển khai Terraform vào repository git của bạn.

Một tùy chọn khác là sử dụng Consul để khám phá dịch vụ và cấu hình consul-template trên bộ cân bằng tải của bạn để tự động làm mới file cấu hình. Điều này bổ sung các server bổ sung vào cơ sở hạ tầng tổng thể của bạn, nhưng bạn cũng có thể sử dụng Consul cho các dịch vụ khác.

Ta đang sử dụng một Cụm HAProxy để xử lý việc cân bằng tải cho cụm database của ta .

Phiên user

Đánh giá phiên

Khi user truy cập trang web được lưu trữ thông qua bộ cân bằng tải, không có gì đảm bảo yêu cầu tiếp theo của họ sẽ được xử lý bởi cùng một server backend . Đối với các trang tĩnh đơn giản, đây sẽ không phải là vấn đề, nhưng nếu dịch vụ cần kiến thức về phiên của user (như nếu họ đã đăng nhập), bạn cần xử lý điều đó. Có một số tùy chọn để giải quyết vấn đề này có thể được thực hiện ở các điểm khác nhau trong ngăn xếp của bạn.

Phương pháp bạn chọn để xử lý phiên user sẽ tùy thuộc vào trường hợp sử dụng của bạn. Dưới đây là một số tùy chọn:

Mối quan hệ nguồn IP hướng tất cả các yêu cầu từ cùng một địa chỉ IP đến cùng một chương trình backend . Đây không phải là lựa chọn tốt nhất trong các tình huống mà user của bạn có thể kết nối từ phía sau bộ định tuyến bằng NAT, vì tất cả họ sẽ có cùng địa chỉ IP.

Các tùy chọn phiên cân bằng tảiphiên ứng dụng tương tự nhau. Cả hai đều cấu hình bộ cân bằng tải để xem thông tin tiêu đề IP để xác định phần backend nào cần gửi yêu cầu. Không giống như phương pháp sở thích nguồn IP, user đằng sau NAT sẽ được xác định là user cá nhân. Bạn có thể điều chỉnh thêm bằng cách triển khai bảng thanh trên bộ cân bằng tải HAProxy được dùng để cấu hình nhận dạng user dựa trên nhiều điểm dữ liệu khác nhau.

Bản sao hệ thống file sao chép đường dẫn trong hệ thống file của bạn nơi các phiên được lưu trữ, cấp cho tất cả các phần backend quyền truy cập vào tất cả các phiên. Một khía cạnh quan trọng cần xem xét là tốc độ sao chép diễn ra. Tùy thuộc vào phương pháp, ngay cả một số lượng trễ vừa phải đặt cược nút backend với một số lượng lớn phiên để sao chép có thể gây ra sự cố cho user cuối.

Việc sử dụng cơ sở dữ liệu hoặc kho dữ liệu trong bộ nhớ cũng tương tự. Cả hai đều yêu cầu bạn tạo ứng dụng của bạn theo cách lưu trữ các phiên user trong database hoặc bộ nhớ đệm trong bộ nhớ như Redis. Sử dụng database có thể thuận tiện vì ứng dụng của bạn đã được cài đặt để kết nối với nó cho các yêu cầu dữ liệu khác. Đối với một trang web hoạt động cao, điều này có thể tạo ra nhiều chi phí hơn cho chính database , nhưng nó hầu hết sử dụng các trường hợp, tải bổ sung là không đáng kể. Sử dụng bộ nhớ đệm trong bộ nhớ như Redis hoặc Memcached nghĩa là bạn cần tạo thêm một vài Server , nhưng chúng là các giải pháp rất nhanh và linh hoạt mà bạn cũng có thể sử dụng để lưu vào cache các phản hồi truy vấn database nhằm cải thiện hiệu suất.

Vì WordPress đã được cấu hình để sử dụng database cho các phiên, đó là giải pháp ta sẽ sử dụng.

Lưu trữ file

Đánh giá lưu trữ file :

Các file mà ứng dụng của bạn sử dụng cần phải nhất quán; tất cả các server cần có quyền truy cập vào cùng một group tài nguyên. Một cách tiếp cận tốt cho vấn đề này là tách chức năng lưu trữ khỏi các server ứng dụng backend của bạn và thay vào đó sử dụng một dịch vụ riêng để lưu trữ file . Đối với nội dung tĩnh, bạn có thể sử dụng giải pháp lưu trữ đối tượng. DigitalOcean Spaces là một dịch vụ lưu trữ đối tượng có tính khả dụng cao với tính năng dự phòng được tích hợp sẵn. Ta sẽ nói thêm về các tùy chọn lưu trữ, đặc biệt là Spaces, trong Chương 7.

Giống như các phiên, bạn có thể xử lý việc lưu trữ file bằng cách sử dụng sao chép hệ thống file local giữa các node ứng dụng của bạn . Tuy nhiên, điều này sẽ thêm một dịch vụ khác vào cơ sở hạ tầng của bạn, cũng như các thay đổi cấu hình bổ sung.

Một giải pháp đơn giản hơn là sử dụng lưu trữ đối tượng, như DigitalOcean Spaces, đặc biệt là vì WordPress đã có plugin DigitalOcean Spaces Sync . Bởi vì cài đặt được giảm xuống cài đặt và cấu hình một plugin duy nhất, đó là giải pháp ta sẽ sử dụng trong chương này.

Database

Đánh giá database

Giống như lưu trữ file , database của bạn cần phải có thể truy cập được đối với tất cả các server backend . Cách bạn sao chép các chèn và cập nhật database trên một cụm là điều cần thiết đối với giải pháp database theo cụm chức năng.

Ngoài ra, database của bạn phải có tính khả dụng cao - tức là nó có khả năng dự phòng và chuyển đổi dự phòng tự động. Điều này có thể phức tạp hơn là chỉ đặt nó sau bộ cân bằng tải vì hệ thống cần xử lý tính nhất quán của dữ liệu, giống như điều gì xảy ra nếu các bản cập nhật xung đột được thực hiện cho các node khác nhau.

Trong ví dụ của ta , ta sử dụng một cụm MariaDB Galera để xử lý các vấn đề này. Galera xử lý sao chép đồng bộ đến mọi nút database , mỗi nút hoạt động như một server database chính đầy đủ. Điều này nghĩa là bạn có thể đọc và ghi vào từng nút trong cụm và mọi thứ được giữ đồng bộ. Có nhiều cách khác để phân cụm database liên quan đến các hình thức sao chép chính và phụ trong đó một nút cụ thể được chọn làm server ghi chính.

Mỗi giải pháp cụm có giá trị của nó. Đối với bài tập của ta , Galera mang lại cho ta nhiều lợi ích nhất vì tính nhất quán của dữ liệu được xử lý tự động và mọi nút trong cụm có thể đóng role như một server chính. Không có bước chuyển đổi dự phòng hoặc backup dự phòng cần thiết.

WordPress dựa vào database của nó cho hầu hết mọi thứ và một server database bên ngoài duy nhất là một điểm thất bại. Có một số tùy chọn cho các cụm database và các phần khác nhau có thể được trộn và kết hợp dựa trên những gì hoạt động tốt nhất trong trường hợp của bạn.

Trong chương này, ta sẽ xây dựng một cụm Galera chạy trên MariaDB, là một nhánh của MySQL. Điều này sẽ chạy sau một vài nút HAProxy có IP nổi DigitalOcean được đính kèm.

Bạn có thể truy cập repository nguồn cho điều này tại đây: https://github.com/DO-Solutions/galera-tf-mod . Nó cài đặt định tuyến TCP tới cụm, theo mặc định có ba nút. Nếu ta sử dụng ít hơn ba nút, một nút Galera Arbitrator sẽ được yêu cầu để tránh các tình huống chia rẽ và giữ cho cụm hoạt động. Bạn cũng có thể tăng số lượng nút bằng cách thêm dòng sau vào khối mã module trong file địa hình chính của ta example-code / 02-scale / ch05 / init_deploy / main.tf. Lưu ý bạn cần có một số nút lẻ để một cụm có thể có đa số khi thực hiện bỏ phiếu theo túc số. Một ví dụ sẽ là nếu hai nút cho rằng một bản ghi nên tồn tại và hai nút khác cho rằng bản ghi không tồn tại, thì một nút bổ sung được yêu cầu để bỏ phiếu quyết định.

module "sippin_db" { ...    db_node_count = "5" } 

Cài đặt Cụm WordPress

Trong dự án của ta , việc cài đặt cụm WordPress chỉ mất một vài lệnh. Ta sẽ làm việc với /root/navigators-guide/example-code/02-scale/ch05/init_deploy trên điều khiển Server, chứa mã ví dụ cho chương này.

Từ folder đó, hãy chạy tập lệnh khởi tạo mà ta đã cung cấp. Nó sẽ hướng dẫn bạn qua tất cả các cài đặt và biến bạn cần đặt.

./bin/init_config 

Bạn có thể xem mã cho tập lệnh khởi tạo trên GitHub . Bạn sẽ thấy rằng script đang thực hiện khá nhiều chức năng. Những gì nó thực sự đang làm là tự động tạo các file biến Terraform và Ansible cần thiết và đảm bảo không có sự cố nào đã biết. Điều đầu tiên mà tập lệnh sẽ làm là nhắc mã thông báo API DigitalOcean hợp lệ. Sau đó, tập lệnh sẽ tạo một số khóa duy nhất cần thiết cho việc tạo cụm. Dấu nhắc tiếp theo bạn sẽ thấy là đặt tên cho dự án và chọn một khu vực. Nếu SSH key đã được cấu hình (như ta đã làm trong Chương 4), tập lệnh sẽ yêu cầu Terraform sử dụng nó. Nếu SSH key chưa được cấu hình , một khóa sẽ được tạo và tự động thêm vào account DigitalOcean của bạn. Cuối cùng, tập lệnh sẽ nhắc cho mọi password cần thiết.

Sau khi tập lệnh hoàn thành kế hoạch Terraform và sách phát Ansible đã sẵn sàng được thực thi. Điều này rất giống với các ví dụ trong Chương 4, nhưng có nhiều tài nguyên hơn được tạo và cấu hình.

Nếu bạn cấu hình mọi thứ theo cách thủ công, bạn cần các biến được nhập cho Terraform trong file terraform.tvfars . Ansible có các biến bắt buộc trong nhiều folder bên trong folder group_vars .

Tập lệnh khởi tạo sẽ in hướng dẫn về cách tiếp tục với Terraform trước khi thoát, nhưng ta cũng sẽ hướng dẫn chi tiết tại đây.

Đầu tiên, chạy terraform plan sẽ tạo các mục sau trong account DigitalOcean của bạn:

  1. Một Load Balancer, sẽ cung cấp quyền truy cập vào trang WordPress của bạn.
  2. Ba server sẽ được sử dụng làm nút web WordPress.
  3. Ba server được sử dụng làm nút database .
  4. Hai nút HAProxy Load Balancer cho cụm database .
  5. Một địa chỉ IP nổi cho bộ cân bằng tải database .
terraform plan 

Tiếp theo, phân tích cú pháp các file kế hoạch và module để chuẩn bị triển khai Terraform bằng init .

terraform init 

Cuối cùng, thực hiện các yêu cầu tạo thông qua API DigitalOcean bằng cách sử apply .

terraform apply 

Sau khi Terraform hoàn thành việc tạo tất cả các thành phần cơ sở hạ tầng, hãy sử dụng Ansible để cấu hình chúng. Có ba role Ansible để thực thi: một để cấu hình server database , một để cấu hình bộ cân bằng tải database và một để cài đặt WordPress trên tất cả các node web.

Bạn có thể chạy cả ba role bằng một lệnh:

ansible-playbook -i /usr/local/bin/terraform-inventory site.yml 

Sau khi playbook kết thúc, bạn cần hoàn tất quá trình cài đặt WordPress.

Truy cập địa chỉ IP của Load Balancer trong trình duyệt của bạn và làm theo hướng dẫn trên màn hình để hoàn tất cấu hình WordPress của bạn. Lưu ý Chương 13 bao gồm cách bảo vệ cài đặt WordPress của bạn bằng HTTPS.

Cấu hình Spaces

Ta sẽ sử dụng plugin DigitalOcean Spaces Sync để đồng bộ hóa các file phương tiện từ server ứng dụng WordPress sang bộ nhớ đối tượng. Space hoạt động như một vị trí trung tâm để lưu trữ bất kỳ phương tiện nào bạn chọn tải lên.

Plugin DigitalOcean Spaces Sync đã được cài đặt sẵn như một phần của sách phát Ansible. Để sử dụng plugin này, trước tiên bạn cần tạo một Space bằng Control Panel .

Khi Không gian đã được tạo, hãy tạo khóa truy cập Không gian trên trang “API” trong console . Sau khi tạo khóa, bạn sẽ thấy khóa chính cùng với bí mật. Hãy lưu ý những điều này, vì bạn cần chúng để cài đặt plugin WordPress.

Bây giờ, quay trở lại WordPress, hãy truy cập trang Plugins và bạn sẽ thấy DigitalOcean Spaces Sync đã được cài đặt nhờ playbook Ansible của ta . Nhấp vào liên kết Kích hoạt để bật plugin này. Sau khi được bật, một liên kết mới sẽ xuất hiện trong cài đặt của bạn có tên “DigitalOcean Spaces Sync”.

Trên trang cài đặt này, nhập khóa Spaces, bí mật Spaces, tên Space (được gắn nhãn trên trang cài đặt này là “DO Spaces Container”) và điểm cuối. Lưu ý điểm cuối sẽ phụ thuộc vào trung tâm dữ liệu bạn đã chọn cho Không gian của bạn : ví dụ: NYC3 sẽ là “https: // nyc3 .digitaloceanspaces.com”.

Sau khi kiểm tra kết nối, hãy thêm URL đầy đủ cho Không gian của bạn trong “Đường dẫn URL đầy đủ đến file :”. Đối với Không gian ở NYC3, đây sẽ là “https: // space-name .nyc3.digitaloceanspaces.com” (trong đó space-name là tên của Không gian của bạn). Sau khi nhập xong, đã đến lúc lưu cài đặt của bạn và kiểm tra plugin bằng cách tải file lên.

Khi bạn tải lên một file trong tab “Phương tiện”, bạn sẽ thấy file này tự động đồng bộ hóa với Không gian của bạn. Bạn có thể kiểm tra bằng cách xem danh sách file của Space trong console DigitalOcean của bạn.

Bây giờ, theo mặc định, cài đặt này không sử dụng CDN. Trong môi trường production , ta thực sự khuyên bạn nên sử dụng CDN, vì điều này sẽ cho phép bạn phân phát các file phương tiện này một cách nhanh chóng và tin cậy cho tất cả khách truy cập.

Nếu bạn thêm CDN sau đó, hãy nhớ rằng bạn cần trỏ “Đường dẫn URL đầy đủ đến file ” đến địa chỉ của CDN mới này. Ta cũng đang làm việc trên một CDN tích hợp với Spaces. Tính năng này hiện đang ở giai đoạn thử nghiệm, nhưng vui lòng yêu cầu người quản lý account của bạn cấp quyền truy cập nếu bạn quan tâm.

Xác minh cài đặt

Bằng cách truy cập địa chỉ IP của Load Balancer trong trình duyệt, bạn có thể thấy trang WordPress mặc định, tương tự như sau:

Ảnh chụp màn hình cài đặt mặc định của WordPress

Kết quả cuối cùng là một trang WordPress đầy đủ chức năng. Bạn có thể kiểm tra bằng cách cấu hình blog hoặc tạo các bài đăng. Bạn có thể tắt hai trong số các web server , một trong các server HAProxy và một trong các node database và trang web vẫn phải hoạt động đầy đủ.

Sau khi kiểm tra xong, bạn có thể xóa tất cả các thành phần cơ sở hạ tầng này khỏi account DigitalOcean của bạn bằng một lệnh. Thao tác này sẽ xóa toàn bộ cụm để xóa công việc khỏi chương này.

terraform destroy 

Bạn có thể chạy lại apply và sau đó chạy lại playbook Ansible để tạo lại cụm.

Cái gì tiếp theo?

Ta đã lấy các ví dụ của ta về tính khả dụng cao và áp dụng khái niệm trên toàn bộ ứng dụng . Ví dụ trong chương này được sử dụng để tạo một trang web WordPress hoàn toàn dư thừa và có thể mở rộng. Điều này đã đạt được với các công cụ quản lý cấu hình tận dụng. Ta sẽ khám phá một cách để tự động hóa và cải thiện hơn nữa việc triển khai của ta trong chương tiếp theo. Phần còn lại của cuốn sách sẽ bao gồm các khái niệm liên quan đến lưu trữ, giám sát và bảo mật, nhưng quan trọng hơn là cách chúng áp dụng cho doanh nghiệp của bạn và những điều cần cân nhắc khi lập kế hoạch cơ sở hạ tầng của bạn.


Tags:

Các tin liên quan