Giải pháp cơ sở dữ liệu Oracle trên Docker Container và Kubernetes

Cơ hội

Bộ chứa là gói phần mềm nhẹ, độc lập, có thể thực thi được, bao gồm mọi thứ cần thiết để chạy một ứng dụng: mã, thời gian chạy, công cụ hệ thống, thư viện hệ thống và cài đặt. Vùng chứa cách ly phần mềm khỏi môi trường của nó và đảm bảo rằng phần mềm hoạt động đồng nhất bất chấp mọi khác biệt giữa phát triển và chạy thử. Các bộ chứa chia sẻ nhân hệ điều hành của máy và không yêu cầu hệ điều hành cho từng ứng dụng, giúp nâng cao hiệu suất máy chủ và giảm chi phí cấp phép và máy chủ.

Quy trình xây dựng truyền thống để phát triển ứng dụng cơ sở dữ liệu rất phức tạp, tốn nhiều thời gian và khó lập lịch trình. Với các bộ chứa và công cụ hỗ trợ phù hợp, quy trình xây dựng truyền thống được chuyển đổi thành trải nghiệm tự phục vụ, theo yêu cầu, cho phép các nhà phát triển triển khai nhanh chóng các ứng dụng. Trong các phần còn lại của bài viết này, chúng tôi mô tả cách phát triển khả năng để bộ chứa cơ sở dữ liệu Oracle chạy trong vài phút.

Oracle có cam kết lâu dài trong việc hỗ trợ cộng đồng nhà phát triển làm việc trong môi trường được đóng gói. Tại sự kiện DockerCon US vào tháng 4 năm 2017 , Oracle đã thông báo rằng ứng dụng phần mềm cơ sở dữ liệu Oracle 12c của họ sẽ có sẵn cùng với các sản phẩm Oracle khác trên Docker Store , tiêu chuẩn dành cho các nhà phát triển dev-op. Các nhà phát triển Dev-op đã lấy hơn bốn tỷ hình ảnh từ Docker Store và ngày càng chuyển sang Docker Store như một nguồn chuẩn cho nội dung được tuyển chọn chất lượng cao. Trong thế giới cơ sở dữ liệu ngày nay, khách hàng luôn chuyển sang sử dụng các container có quản lý Kubernetes để xây dựng và chạy nhiều ứng dụng và dịch vụ khác nhau trong môi trường lưu trữ tại chỗ có tính sẵn sàng cao.

Môi trường được chứa trong container có thể cung cấp khả năng tính toán, lưu trữ và kết nối mạng hiệu suất cao một cách đáng tin cậy với các cấu hình cần thiết. Môi trường được đóng gói cũng giúp giảm chi phí chung bằng cách cung cấp quy trình lặp lại để triển khai ứng dụng trên các hệ thống xây dựng, thử nghiệm và sản xuất. Để cho phép triển khai và quản lý các ứng dụng được đóng gói, các tổ chức sử dụng công nghệ Kubernetes để hoạt động ở mọi quy mô, kể cả quy mô sản xuất. Kubernetes cho phép khả năng cộng tác và quản lý quy trình công việc mạnh mẽ bằng cách triển khai các bộ chứa cho các ứng dụng phân tán và dịch vụ vi mô trên nền tảng đám mây. Nó thậm chí còn cho phép bạn đóng gói lại các ứng dụng cũ để tăng tính di động, triển khai hiệu quả hơn và cải thiện sự tương tác của khách hàng và nhân viên.

Hình 1: Docker container để giảm độ phức tạp trong quá trình phát triển 

 

Giải pháp

Đối với nhiều công ty, để tăng năng suất và thời gian tạo ra giá trị, việc sử dụng container bắt đầu từ các bộ phận tập trung vào phát triển phần mềm. Hành trình của họ thường bắt đầu bằng việc cài đặt, triển khai và sử dụng bộ chứa cho các ứng dụng dựa trên kiến ​​trúc vi dịch vụ như trong Hình 2. Các nhà phát triển muốn có thể xây dựng các ứng dụng bộ chứa dựa trên vi dịch vụ mà không cần thay đổi mã hoặc cơ sở hạ tầng.  

Cách tiếp cận này cho phép tính di động giữa các trung tâm dữ liệu và loại bỏ nhu cầu thay đổi trong các ứng dụng truyền thống, giúp chu kỳ triển khai và phát triển nhanh hơn. Các bộ chứa Oracle Docker chạy các vi dịch vụ trong khi Kubernetes được sử dụng để điều phối bộ chứa. Ngoài ra, các vi dịch vụ chạy trong vùng chứa Docker có thể giao tiếp với cơ sở dữ liệu Oracle bằng cách sử dụng dịch vụ nhắn tin.

 

Hình 2: Kiến trúc cơ sở dữ liệu Oracle có Docker và Kubernetes 

 

Bằng cách sử dụng khả năng điều phối và tự động hóa cho các ứng dụng được đóng gói, các nhà phát triển có thể tự cung cấp cơ sở dữ liệu Oracle, từ đó tăng tính linh hoạt và năng suất đồng thời tiết kiệm đáng kể thời gian tạo bản sao sản xuất cho môi trường phát triển và thử nghiệm. Giải pháp này cho phép các nhóm phát triển nhanh chóng cung cấp các ứng dụng riêng biệt mà không gặp phải sự phức tạp truyền thống. 

Các kỹ sư Dell EMC của chúng tôi gần đây đã thử nghiệm và xác thực   giải pháp cho cơ sở dữ liệu Oracle bằng cách sử dụng bộ chứa Docker và Kubernetes . Giải pháp này sử dụng Cơ sở dữ liệu Oracle trong các bộ chứa, Kubernetes và Trình điều khiển Giao diện lưu trữ bộ chứa (CSI) cho Hệ điều hành Dell EMC PowerFlex để cho thấy cách các nhóm phát triển/hoạt động có thể chuyển đổi quy trình phát triển của họ.

Các kỹ sư của Dell EMC đã chứng minh hai trường hợp sử dụng giải pháp này. Cả hai trường hợp sử dụng của chúng tôi đều có bốn máy chủ Dell EMC PowerEdge R640, là một phần không thể thiếu của Dell EMC VxFlex Ready Nodes và Trình điều khiển CSI cho Dell EMC PowerFlex được lưu trữ trong phòng thí nghiệm DellEMC của chúng tôi.

 

Trường hợp sử dụng 1

Trong trường hợp sử dụng 1, các kỹ sư DellEMC đã cung cấp thủ công môi trường thử nghiệm và phát triển dựa trên vùng chứa như trong Hình 3 như sau:

  1. Cài đặt Docker.
  2. Kích hoạt Giấy phép phiên bản doanh nghiệp Docker.
  3. Chạy cơ sở dữ liệu Oracle 12c trong vùng chứa Docker.
  4. Xây dựng và chạy cơ sở dữ liệu Oracle 19c trong vùng chứa Docker.
  5. Nhập các lược đồ Oracle mẫu được lấy từ GitHub vào cơ sở dữ liệu Oracle 12c và 19c.
  6. Cài đặt Oracle SQL Developer và truy vấn các bảng từ vùng chứa để chứng minh rằng kết nối từ Oracle SQL Developer đến cơ sở dữ liệu Oracle có chức năng.

Hình 3: Ca sử dụng 1 – Kiến trúc 

 

Lợi ích chính của trường hợp sử dụng đầu tiên của chúng tôi là thời gian chúng tôi tiết kiệm được bằng cách sử dụng bộ chứa Docker thay vì phương pháp cấu hình và cài đặt thủ công truyền thống để xây dựng môi trường cơ sở dữ liệu Oracle điển hình. Lập kế hoạch cho Trường hợp sử dụng 1 cũng cho thấy tầm quan trọng của việc chọn vị trí đăng ký Docker và các tùy chọn cung cấp bộ lưu trữ phù hợp nhất với yêu cầu của môi trường thử nghiệm và phát triển điển hình.

Trường hợp sử dụng 2

Trường hợp sử dụng 2 thể hiện giá trị của việc tích hợp plug-in CSI với bộ lưu trữ Kubernetes và Dell EMC Power Flex để tự động hóa cấu hình lưu trữ. Sự phối hợp Kubernetes với PowerFlex cung cấp chiến lược triển khai vùng chứa với bộ lưu trữ liên tục. Nó thể hiện sự dễ dàng, đơn giản và tốc độ trong việc mở rộng môi trường phát triển và thử nghiệm từ cơ sở dữ liệu Oracle sản xuất. Trong trường hợp sử dụng này, nhà phát triển sẽ cung cấp cơ sở dữ liệu Oracle trong các vùng chứa trên cùng cơ sở hạ tầng được mô tả trong Trường hợp sử dụng 1 lần này bằng cách sử dụng Kubernetes với Trình điều khiển CSI cho Dell EMC PowerFlex. Hình 4 mô tả kiến ​​trúc chi tiết của Ca sử dụng 2.

Hình 4. Ca sử dụng 2 – Kiến trúc 

 

Trường hợp sử dụng 2 trình bày cách Docker, Kubernetes và Trình điều khiển CSI cho Dell EMC PowerFlex tăng tốc vòng đời phát triển cho các ứng dụng Oracle. Kubernetes được định cấu hình bằng Trình điều khiển CSI cho Hệ điều hành Dell EMC VxFlex đã đơn giản hóa và tự động hóa việc cung cấp cũng như loại bỏ các vùng chứa có bộ lưu trữ liên tục. Các kỹ sư đã sử dụng các tệp cấu hình yaml cùng với lệnh kubectl để nhanh chóng triển khai và xóa các vùng chứa cũng như nhóm hoàn chỉnh. Giải pháp của chúng tôi chứng tỏ rằng các nhà phát triển có thể cung cấp cơ sở dữ liệu Oracle trong các vùng chứa mà không gặp phải sự phức tạp nào liên quan đến việc cài đặt cơ sở dữ liệu và cung cấp bộ lưu trữ.

Quan sát và lợi ích của ca sử dụng

Việc thêm điều phối vùng chứa Kubernetes là một bổ sung cần thiết cho các nhà phát triển cơ sở dữ liệu trên hành trình phát triển vùng chứa. Tự động hóa trở nên cần thiết với việc mở rộng triển khai ứng dụng trong vùng chứa. Trong trường hợp này, nó cho phép các nhà phát triển của chúng tôi bỏ qua sự phức tạp liên quan đến tập lệnh đơn giản. Thay vào đó, giải pháp của chúng tôi sử dụng Kubernetes nguồn mở để hoàn thành mục tiêu của nhà phát triển. Plug-in CSI tích hợp với Kubernetes và thể hiện khả năng của hệ thống lưu trữ Dell EMC PowerFlex, cho phép nhà phát triển:

  • Chụp ảnh nhanh cơ sở dữ liệu Oracle, bao gồm cả lược đồ mẫu được lấy từ trang GitHub.
  • Bảo vệ công việc của cơ sở dữ liệu Oracle hiện có đã được thay đổi trước khi chụp ảnh nhanh. Chúng tôi có thể bảo vệ bất kỳ tiểu bang nào. Sử dụng Trình điều khiển plug-in CSI cho Dell EMC PowerFlex OS để tạo ảnh chụp nhanh được cài đặt trong Kubernetes nhằm cung cấp khả năng lưu trữ liên tục.
  • Khôi phục cơ sở dữ liệu Oracle 19c về trạng thái trước khi xóa bằng ảnh chụp nhanh, ngay cả sau khi xóa vùng chứa và bộ lưu trữ đính kèm.

Trong trường hợp sử dụng thứ hai của chúng tôi, việc sử dụng Kubernetes kết hợp với Trình điều khiển CSI cho DellEMC PowerFlex OS đã đơn giản hóa và tự động hóa việc cung cấp cũng như loại bỏ các vùng chứa và bộ lưu trữ. Trong trường hợp sử dụng này, chúng tôi đã sử dụng các tệp yaml cùng với lệnh kubectl để triển khai và xóa các vùng chứa và nhóm. Tất cả các thành phần này tạo điều kiện thuận lợi cho việc tự động hóa vùng chứa lưu trữ cơ sở dữ liệu Oracle trên PowerFlex.

Kubernetes, được cải tiến với Trình điều khiển CSI cho Dell EMC VxFlex OS, cung cấp khả năng đính kèm và quản lý khối lượng hệ thống lưu trữ Dell EMC VxFlex OS cho các ứng dụng được đóng gói. Các nhà phát triển của chúng tôi đã làm việc với giao diện Kubernetes quen thuộc để sửa đổi bản sao lược đồ cơ sở dữ liệu Oracle được thu thập từ cơ sở dữ liệu kho lưu trữ Github và kết nối nó với vùng chứa cơ sở dữ liệu Oracle. Sau khi sửa đổi cơ sở dữ liệu, nhà phát triển đã bảo vệ tất cả tiến trình bằng cách sử dụng tính năng chụp nhanh của hệ thống lưu trữ Dell EMC VxFlex OS và tạo bản sao cơ sở dữ liệu tại một thời điểm.

So sánh Trường hợp sử dụng 1 với Trường hợp sử dụng 2 đã chứng minh cách chúng ta có thể dễ dàng thoát khỏi sự phức tạp của tập lệnh và sử dụng dòng lệnh để triển khai mô hình tự phục vụ giúp tăng tốc việc quản lý vùng chứa. Việc chuyển sang mô hình tự phục vụ, giúp tăng năng suất của nhà phát triển bằng cách loại bỏ các tắc nghẽn, ngày càng trở nên quan trọng khi môi trường vùng chứa Docker phát triển.

 

Bản tóm tắt

 

Sức mạnh của bộ chứa và tự động hóa cho thấy các tác vụ theo truyền thống yêu cầu nhiều vai trò—nhà phát triển và những người khác làm việc với quản trị viên cơ sở dữ liệu và lưu trữ – có thể được đơn giản hóa như thế nào. Kubernetes với plug-in CSI cho phép các nhà phát triển và những người khác làm được nhiều việc hơn trong thời gian ngắn hơn và ít phức tạp hơn. Tiết kiệm thời gian có nghĩa là các dự án mã hóa có thể được hoàn thành nhanh hơn, mang lại lợi ích cho cả nhà phát triển, nhân viên và khách hàng phía doanh nghiệp. Nhìn chung, lợi ích chính được thể hiện khi so sánh hai trường hợp sử dụng của chúng tôi là việc chuyển đổi từ môi trường vùng chứa được quản lý thủ công sang hệ thống được điều phối với nhiều khả năng hơn.

Sự đổi mới thúc đẩy sự chuyển đổi. Trong trường hợp vùng chứa Docker và Kubernetes, lợi ích chính là chuyển sang các dịch vụ triển khai ứng dụng nhanh chóng. Oracle và nhiều công ty khác đã sử dụng các bộ chứa và cung cấp hình ảnh của các ứng dụng, chẳng hạn như cơ sở dữ liệu Oracle 12c, có thể được triển khai trong vài ngày và khởi tạo trong vài giây. Việc cài đặt và các tác vụ lặp đi lặp lại khác được thay thế bằng các ứng dụng đóng gói cho phép nhà phát triển làm việc nhanh chóng trong cơ sở dữ liệu. Sự dễ dàng sử dụng Docker và Kubernetes, kết hợp với việc cung cấp nhanh chóng bộ lưu trữ liên tục, sẽ biến đổi quá trình phát triển bằng cách loại bỏ thời gian chờ đợi và cho phép nhà phát triển tiến gần hơn đến tốc độ suy nghĩ.

Việc bổ sung hệ thống điều phối Kubernetes và Trình điều khiển CSI cho Hệ điều hành Dell EMC VxFlex mang lại giao diện người dùng phong phú giúp đơn giản hóa việc cung cấp vùng chứa và bộ lưu trữ liên tục. Trong thử nghiệm, chúng tôi nhận thấy rằng Kubernetes cộng với Trình điều khiển CSI cho Dell EMC VxFlex OS đã cho phép các nhà phát triển cung cấp bộ lưu trữ liên tục cho các ứng dụng được đóng gói. Giải pháp này có tính năng đơn giản theo điểm nhấn và giải phóng thời gian quý báu để quản trị viên lưu trữ có thể tập trung vào các nhiệm vụ quan trọng trong kinh doanh.