Thứ năm, 14/02/2019 | 00:00 GMT+7

Dịch vụ Cơ sở dữ liệu

Lưu trữ dữ liệu an toàn, tin cậy là điều bắt buộc đối với hầu hết mọi ứng dụng hiện đại. Tuy nhiên, cơ sở hạ tầng cần thiết cho một database tại chỗ, tự quản lý có thể rất tốn kém đối với nhiều group . Tương tự như vậy, những nhân viên có các kỹ năng và kinh nghiệm cần thiết để duy trì database production một cách hiệu quả có thể khó có được.

Sự lan rộng của các dịch vụ điện toán cloud đã giảm bớt các rào cản gia nhập liên quan đến việc cung cấp database , nhưng nhiều nhà phát triển vẫn thiếu thời gian hoặc chuyên môn cần thiết để quản lý và điều chỉnh database cho phù hợp với nhu cầu của họ. Vì lý do này, nhiều doanh nghiệp đang chuyển sang sử dụng các dịch vụ dịch vụ database để giúp họ xây dựng và mở rộng quy mô database phù hợp với tốc độ phát triển của họ.

Trong bài viết khái niệm này, ta sẽ xem xét dịch vụ database là gì và chúng có thể mang lại lợi ích cho nhiều tổ chức như thế nào. Ta cũng sẽ đề cập đến một số cân nhắc thực tế mà người ta nên thực hiện trước khi xây dựng ứng dụng tiếp theo của họ trên cơ sở giải pháp dịch vụ database.

Dịch vụdatabase khái quát

Dịch vụdatabase là một dịch vụ điện toán cloud trong đó user cuối trả tiền cho nhà cung cấp dịch vụ cloud để truy cập vào database . Không giống như một database thông thường, user không phải tự mình cài đặt hoặc duy trì một dịch vụ database; thay vào đó, nhà cung cấp có trách nhiệm giám sát cơ sở hạ tầng của database . Điều này cho phép user tập trung vào việc xây dựng ứng dụng của họ thay vì dành thời gian cấu hình database của họ và cập nhật nó.

Quá trình cung cấp dịch vụ database khác nhau tùy theo nhà cung cấp, nhưng nhìn chung, nó giống với bất kỳ dịch vụ dựa trên cloud nào khác. Sau khi đăng ký account và đăng nhập vào console , user xem xét các tùy chọn database có sẵn - chẳng hạn như công cụ database và kích thước cụm - rồi chọn cài đặt phù hợp với họ. Sau khi bạn cung cấp dịch vụ database, bạn có thể kết nối với nó thông qua GUI hoặc ứng dụng client và sau đó có thể bắt đầu tải dữ liệu và tích hợp database với ứng dụng của bạn.

Các giải pháp dữ liệu được quản lý đơn giản hóa quá trình cung cấp và duy trì database . Thay vì chạy các lệnh từ một terminal để cài đặt và cài đặt một terminal , bạn có thể triển khai database sẵn sàng production chỉ với một vài cú nhấp chuột trong trình duyệt của bạn . Bằng cách đơn giản hóa và tự động hóa việc quản lý database , các nhà cung cấp cloud giúp bất kỳ ai, ngay cả những người mới sử dụng database , dễ dàng xây dựng các ứng dụng và trang web theo hướng dữ liệu. Đây là kết quả của một xu hướng kéo dài hàng thập kỷ hướng tới việc đơn giản hóa, tự động hóa và trừu tượng hóa các nhiệm vụ quản lý database khác nhau, bản thân nó đã là một phản ứng đối với những điểm khó khăn mà các administrator database cảm thấy từ lâu.

Điểm hạn chế của dịch vụ database và database tự quản lý

Trước sự nổi lên của mô hình điện toán cloud , bất kỳ tổ chức nào cần trung tâm dữ liệu đều phải cung cấp tất cả thời gian, không gian và tài nguyên để cài đặt một trung tâm. Sau khi database của họ được cài đặt và chạy, họ cũng phải bảo trì phần cứng, cập nhật phần mềm của nó, thuê một group quản lý database và đào tạo nhân viên của họ về cách sử dụng nó.

Khi các dịch vụ điện toán cloud trở nên phổ biến trong những năm 2000, việc cung cấp cơ sở hạ tầng server trở nên dễ dàng và hợp lý hơn, vì phần cứng và không gian cần thiết cho nó không còn phải do những người sử dụng nó sở hữu hoặc quản lý.Tương tự như vậy, việc cài đặt một database hoàn toàn trong cloud trở nên ít khó khăn hơn nhiều; một doanh nghiệp hoặc nhà phát triển sẽ chỉ cần yêu cầu một server , cài đặt và cấu hình hệ thống quản lý database đã chọn của họ và bắt đầu lưu trữ dữ liệu.

Mặc dù điện toán cloud đã giúp quá trình cài đặt database truyền thống dễ dàng hơn, nhưng nó không giải quyết được tất cả các vấn đề của nó. Ví dụ, trong cloud , vẫn có thể khó xác định kích thước lý tưởng của dấu chân cơ sở hạ tầng của database trước khi nó bắt đầu thu thập dữ liệu. Điều này rất quan trọng vì người tiêu dùng cloud bị tính phí dựa trên tài nguyên mà họ sử dụng và họ có nguy cơ phải trả nhiều hơn những gì họ yêu cầu nếu server mà họ cung cấp lớn hơn mức cần thiết. Ngoài ra, như với dịch vụ database truyền thống, quản lý database của một người trên cloud có thể là một nỗ lực tốn kém. Tùy thuộc vào nhu cầu của bạn, bạn vẫn có thể cần thuê một administrator database có kinh nghiệm hoặc dành một lượng lớn thời gian và tiền bạc để đào tạo nhân viên hiện có của bạn để quản lý database của bạn một cách hiệu quả.

Nhiều vấn đề trong số này là phức tạp đối với các tổ chức nhỏ hơn và các nhà phát triển độc lập. Trong khi một doanh nghiệp lớn thường có đủ khả năng để thuê nhân viên có kiến thức sâu về database , các group nhỏ hơn thường có sẵn ít nguồn lực hơn, khiến họ chỉ có kiến thức thể chế hiện có. Điều này làm cho các việc như sao chép, di chuyển và sao lưu trở nên khó khăn hơn và tốn thời gian hơn, vì chúng có thể yêu cầu rất nhiều học tập tại chỗ cũng như thử và sai.

Dịch vụdatabase giúp giải quyết những vấn đề khó khăn này với nhiều lợi ích cho các doanh nghiệp và nhà phát triển. Hãy cùng điểm qua một số lợi ích này và cách chúng có thể tác động đến các group phát triển.

Lợi ích của Dịch vụdatabase

Các dịch vụ dịch vụ database có thể giúp giảm thiểu nhiều vấn đề liên quan đến việc cung cấp và quản lý database . Thứ nhất, các nhà phát triển xây dựng các ứng dụng trên các dịch vụ dịch vụ database để đẩy nhanh quá trình cung cấp server database . Với giải pháp tự quản lý, bạn phải có một server (tại chỗ hoặc trong cloud ), kết nối với nó từ một client hoặc terminal , cấu hình và bảo mật nó, sau đó cài đặt và cài đặt phần mềm quản lý database trước khi bạn có thể bắt đầu lưu trữ dữ liệu. Với dịch vụ database, bạn chỉ phải quyết định kích thước ban đầu của server database , cấu hình bất kỳ tùy chọn bổ sung nào dành riêng cho nhà cung cấp và bạn sẽ có một database mới sẵn sàng tích hợp với ứng dụng hoặc trang web . Điều này thường có thể được thực hiện chỉ trong vài phút thông qua giao diện user của nhà cung cấp.

Một điểm hấp dẫn khác của dịch vụ database là tự động hóa. Database tự quản lý có thể tiêu tốn một lượng lớn tài nguyên của tổ chức vì nhân viên của tổ chức phải thực hiện mọi tác vụ quản trị - từ mở rộng quy mô đến thực hiện cập nhật, chạy di chuyển và tạo bản sao lưu - theo cách thủ công. Tuy nhiên, với dịch vụ database, các việc này và các việc khác được thực hiện tự động hoặc theo yêu cầu, điều này làm giảm đáng kể nguy cơ mắc lỗi của con người.

Điều này liên quan đến thực tế là các dịch vụ dịch vụ database giúp hợp lý hóa quá trình mở rộng database . Mở rộng quy mô một database tự quản lý có thể rất tốn thời gian và tài nguyên. Cho dù bạn chọn sharding, nhân rộng, cân bằng tải hay thứ gì khác làm chiến lược mở rộng quy mô của bạn , nếu bạn tự quản lý cơ sở hạ tầng thì bạn có trách nhiệm đảm bảo không có dữ liệu nào bị mất trong quá trình này và ứng dụng sẽ tiếp tục hoạt động bình thường.Tuy nhiên, nếu bạn tích hợp ứng dụng của bạn với dịch vụ dịch vụ database, bạn có thể mở rộng cụm database theo yêu cầu. Thay vì phải tính toán trước kích thước server tối ưu hoặc mức sử dụng CPU, bạn có thể nhanh chóng cung cấp nhiều tài nguyên hơn khi đang di chuyển. Điều này giúp bạn tránh sử dụng các tài nguyên không cần thiết, nghĩa là bạn cũng sẽ không phải trả tiền cho những gì bạn không cần.

Các giải pháp được quản lý có xu hướng tích hợp sẵn tính khả dụng cao. Trong bối cảnh điện toán cloud , một dịch vụ được cho là có tính khả dụng cao nếu nó ổn định và có khả năng chạy mà không bị lỗi trong thời gian dài. Hầu hết các sản phẩm của nhà cung cấp dịch vụ cloud có uy tín đều đi kèm với thỏa thuận mức dịch vụ (SLA) , commit giữa nhà cung cấp và khách hàng đảm bảo tính khả dụng và độ tin cậy của dịch vụ của họ. Một SLA điển hình sẽ chỉ định thời gian ngừng hoạt động mà khách hàng nên mong đợi và nhiều người cũng xác định khoản bồi thường cho khách hàng nếu các mức dịch vụ này không được đáp ứng. Điều này cung cấp sự đảm bảo cho khách hàng rằng database của họ sẽ không bị lỗi và nếu có, ít nhất họ có thể mong đợi một số loại sửa chữa từ nhà cung cấp.

Nói chung, dịch vụ database đơn giản hóa các nhiệm vụ liên quan đến việc cung cấp và duy trì database . Tùy thuộc vào nhà cung cấp, bạn hoặc group của bạn có thể vẫn cần một số kinh nghiệm làm việc với database để cung cấp database và tương tác với nó khi bạn xây dựng và mở rộng ứng dụng của bạn . Tuy nhiên, cuối cùng thì trải nghiệm dành riêng cho database cần thiết để quản trị một dịch vụ database sẽ ít hơn nhiều so với giải pháp tự quản lý.

Tất nhiên, dịch vụ database không thể giải quyết mọi vấn đề và có thể chứng tỏ là một lựa chọn kém lý tưởng đối với một số người. Tiếp theo, ta sẽ xem xét một số nhược điểm tiềm ẩn mà người ta nên xem xét trước khi cung cấp dịch vụ database.

Cân nhắc thực tế

Một dịch vụ dịch vụ database có thể giảm bớt căng thẳng khi triển khai và duy trì database , nhưng vẫn có một số điều cần lưu ý trước khi commit thực hiện. Nhớ lại rằng điểm thu hút chính của dịch vụ database là chúng loại bỏ hầu hết các khía cạnh tẻ nhạt hơn của quản trị database . Để đạt được mục tiêu này, nhà cung cấp dịch vụ database nhằm cung cấp một database thô sơ đáp ứng các trường hợp sử dụng phổ biến nhất. Theo đó, các dịch vụ database của họ sẽ không có nhiều tùy chọn tùy chỉnh hoặc các tính năng độc đáo có trong phần mềm database chuyên dụng hơn. Do đó, bạn sẽ không có nhiều quyền tự do để điều chỉnh database của bạn và bạn sẽ bị giới hạn ở những gì nhà cung cấp cloud cung cấp.

Dịch vụdatabase hầu như luôn đắt hơn database tự quản lý. Điều này có lý, vì bạn đang trả tiền cho nhà cung cấp cloud để hỗ trợ bạn quản lý database , nhưng nó có thể là nguyên nhân gây lo lắng cho các group có nguồn lực hạn chế. Hơn nữa, việc định giá cho dịch vụ database thường dựa trên dung lượng lưu trữ và RAM mà database sử dụng, số lần đọc mà nó xử lý và bao nhiêu bản sao lưu của database mà user tạo. Tương tự như vậy, bất kỳ ứng dụng nào sử dụng dịch vụ dịch vụ database để xử lý lượng lớn dữ liệu hoặc lưu lượng sẽ đắt hơn so với việc sử dụng database cloud tự quản lý.

Người ta cũng nên phản ánh về tác động của việc chuyển sang dịch vụ database đối với quy trình công việc nội bộ của họ và liệu họ có thể điều chỉnh những thay đổi đó hay không. Mỗi nhà cung cấp đều khác nhau và tùy thuộc vào SLA của họ, họ có thể chỉ gánh vác trách nhiệm đối với một số nhiệm vụ quản trị, điều này sẽ gây khó khăn cho các nhà phát triển đang tìm kiếm giải pháp dịch vụ đầy đủ. Mặt khác, một số nhà cung cấp có thể có SLA hạn chế nghiêm trọng hoặc khiến khách hàng hoàn toàn phụ thuộc vào nhà cung cấp đang được đề cập, một tình huống được gọi là khóa nhà cung cấp .

Cuối cùng, và có lẽ là quan trọng nhất, người ta nên xem xét cẩn thận xem liệu bất kỳ dịch vụ dịch vụ database nào mà họ đang xem xét sử dụng sẽ đáp ứng nhu cầu bảo mật của họ hay không. Tất cả các database , bao gồm cả dịch vụ database, dễ bị các mối đe dọa bảo mật nhất định, như tấn công SQL injection hoặc rò rỉ dữ liệu. Tuy nhiên, động lực bảo mật khác xa đối với database được lưu trữ trên cloud . User dịch vụ database không thể kiểm soát vị trí thực của dữ liệu của họ hoặc ai có quyền truy cập vào nó, cũng như không thể đảm bảo tuân theo các tiêu chuẩn bảo mật cụ thể. Điều này có thể đặc biệt có vấn đề nếu khách hàng của bạn có nhu cầu bảo mật cao.

Để minh họa, hãy tưởng tượng rằng bạn được một ngân hàng thuê để xây dựng một ứng dụng mà khách hàng của họ có thể truy cập profile tài chính và thực hiện thanh toán. Ngân hàng có thể quy định rằng ứng dụng phải có dữ liệu được mã hóa ở trạng thái nghỉ và các quyền của user trong phạm vi phù hợp và nó phải tuân theo các tiêu chuẩn quy định nhất định như PCI DSS . Không phải tất cả các nhà cung cấp dịch vụ database đều tuân theo các tiêu chuẩn quy định giống nhau hoặc duy trì các phương thức bảo mật giống nhau và họ không có khả năng áp dụng các tiêu chuẩn hoặc phương pháp mới cho chỉ một khách hàng của bạn . Vì lý do này, điều quan trọng là bạn phải đảm bảo bất kỳ nhà cung cấp dịch vụ database nào mà bạn dựa vào cho một ứng dụng như vậy đều có thể đáp ứng nhu cầu bảo mật cũng như nhu cầu của khách hàng của bạn.

Kết luận

Dịch vụdatabase có nhiều tính năng thu hút nhiều doanh nghiệp và nhà phát triển, nhưng dịch vụ database có thể không giải quyết được mọi vấn đề hoặc phù hợp với nhu cầu của mọi người. Một số người có thể thấy rằng bộ tính năng hạn chế của dịch vụ database và các tùy chọn cấu hình, tăng chi phí và giảm tính linh hoạt vượt trội hơn bất kỳ lợi thế tiềm năng nào của nó. Tuy nhiên, những lợi ích hấp dẫn như dễ sử dụng, khả năng mở rộng, sao lưu và nâng cấp tự động cũng như tính sẵn sàng cao đã dẫn đến việc tăng cường áp dụng các giải pháp dịch vụ database trong nhiều ngành khác nhau.

 


Tags:

Các tin trước