Di chuyển một ứng dụng PHP từ MySQL sang DB2, Phần 1: Chuẩn bị cho việc di trú của bạn

Các bài học từ một nghiên cứu sâu về ứng dụng mạng nội bộ của IBM

Tìm hiểu tại sao cần di chuyển một ứng dụng PHP sang DB2®, cách lập kế hoạch di trú, cách thực hiện nó, cách hỗ trợ nó và cách xử lý các rủi ro tiềm năng dựa trên kinh nghiệm của một nghiên cứu sâu về ứng dụng mạng nội bộ của IBM. Loạt bài bốn phần này chia sẻ các bài học từ một di trú MySQL-sang-DB2 thành công cho một ứng dụng mạng nội bộ PHP chủ yếu được 4.000 người dùng toàn cầu trong IBM sử dụng để hỗ trợ sản xuất nội dung cho ibm.com. Phần 1 mô tả các bước để chuẩn bị cho việc di trú.

Daniel Krook, Kỹ sư phần mềm, IBM

Daniel Krook là một chuyên gia CNTT có chứng chỉ xuất sắc của IBM/Open Group làm việc tại vùng New York City mở rộng. Ông đã có hơn mười năm kinh nghiệm trong việc phát triển ứng dụng web và hiện đang xây dựng một cơ sở hạ tầng Đám mây cho IBM bằng cách sử dụng các công nghệ Java EE, DB2, REST và công nghệ di động. Ông có các chứng chỉ về PHP, Java EE, BlackBerry, DB2 và Solaris. Ông viết các bài liên quan đến PHP cho developerWorks của IBM và đồng tác giả của quyển sách IBM Redbook "Developing PHP Applications for IBM Data Servers (Phát triển các ứng dụng PHP cho Các máy chủ dữ liệu của IBM)".


Cấp độ đóng góp cho developerWorks của
        tác giả

Yan Li Mu, Kiến trúc sư CNTT, IBM

Yan Li Mu là một kiến trúc sư công nghệ thông tin làm việc tại Đại Liên, Trung Quốc. Ông có hơn tám năm kinh nghiệm về phát triển ứng dụng web tập trung vào các công nghệ Java EE, PHP và phát triển cơ sở dữ liệu



Mark Nusekabel, Kiến trúc sư CNTT cao cấp, I.B.M.

Mark Nusekabel là một Kiến trúc sư CNTT có chứng chỉ xuất sắc của IBM/Open Group sống ở vịnh Tampa, vùng Florida. Ông đã có hơn 20 năm kinh nghiệm trong lĩnh vực công nghệ thông tin và ông hiện đang xây dựng các công cụ nội bộ bằng cách sử dụng JavaScript, PHP, Java và DB2. Ông có các chứng chỉ về các giải pháp kinh doanh điện tử, Java và XML.



05 01 2011

Giới thiệu về loạt bài này

MySQL hiện là máy chủ cơ sở dữ liệu phổ biến nhất được sử dụng với ngôn ngữ lập trình PHP để xây dựng các ứng dụng web động. Tuy nhiên, DB2 là một cơ sở dữ liệu phổ biến khác được PHP hỗ trợ đầy đủ và cung cấp các lợi thế hấp dẫn trên MySQL, làm cho nó trở thành một sự lựa chọn lý tưởng cho nhiều ứng dụng.

Loạt bài này mô tả tại sao để di chuyển một ứng dụng PHP sang DB2 lại có ý nghĩa, cách chuẩn bị cho việc di trú, cách thực hiện nó, cách hỗ trợ nó và cách xử lý các rủi ro tiềm năng dựa trên kinh nghiệm của các tác giả với một di trú mới nhất. Nhiều mẫu mã và mẫu cấu hình được cung cấp, cũng như các con trỏ đến tài nguyên để giúp cho dự án chạy trơn tru.

Với các ví dụ và các bài học thu được từ một sự chuyển đổi thực tế thành công, bạn sẽ thấy đây có thể là một dự án đơn giản có đủ tài liệu và cung cấp các lợi ích hấp dẫn.

Loạt bài bốn phần này chia sẻ các bài học nhận được từ một di trú MySQL-sang-DB2 thành công cho một ứng dụng mạng nội bộ PHP thiết yếu, cấp sản xuất được 4.000 người dùng toàn cầu trong IBM sử dụng để hỗ trợ sản xuất nội dung cho ibm.com.

  • Phần 1 mô tả các bước cần thực hiện để chuẩn bị cho việc di trú.
  • Phần 2 mô tả các bước cần thực hiện để di trú cơ sở dữ liệu.
  • Phần 3 mô tả các bước cần thực hiện để chuyển đổi mã PHP.
  • Phần 4 mô tả các bước cần thực hiện để triển khai và hỗ trợ ứng dụng.

Bạn sẽ học được điều gì

Mục đích của loạt bài này là cung cấp cho bạn sự hiểu biết về điều nói chung cần thiết để di trú một ứng dụng PHP từ MySQL sang DB2, tài nguyên nào có sẵn để giúp bạn và một nhóm dự án của IBM đã thực hiện nhiệm vụ này vào đầu năm 2010 như thế nào.

Nếu bạn đã thẩm tra một sự di trú từ MySQL sang DB2, bạn có thể đã thấy giá trị mà DB2 cung cấp dựa trên tài liệu sản phẩm, các đánh giá hiệu năng, các tính năng mà bạn đã đọc trong tài liệu DB2, hoặc các so sánh trong các Sách Đỏ của IBM (IBM Redbooks®) dành riêng cho nhiệm vụ này, bao gồm Hướng dẫn chuyển đổi MySQL sang DB2 (xem phần Tài nguyên).

Bạn có lẽ cũng biết rằng DB2 Express-C là một máy chủ dữ liệu quan hệ chức năng đầy đủ, miễn phí có thể dễ dàng được cài đặt hoặc được đánh giá bằng cách sử dụng IBM Smart Business Development (Phát triển nghiệp vụ thông minh) và Test on the Cloud (Thử nghiệm trên Đám mây) của IBM hoặc Amazon EC2. Các liên kết đến các bản phát hành này có sẵn trong phần Tài nguyên.

Loạt bài này cung cấp cho bạn một ví dụ cụ thể về cách thực hiện di trú thực tế thành công trong năm 2010 cho một ứng dụng mạng nội bộ PHP được sử dụng rộng rãi trong IBM để hỗ trợ quản lý hàng ngày về nội dung được công bố trên nhiều phần của trang Web ibm.com.

Sau khi bạn đọc xong loạt bài này, bạn sẽ có thể tạo trường hợp cho một sự di trú tương tự, hiểu về việc định giờ và các phụ thuộc của các mục công việc cần được thực hiện, dự kiến các rủi ro tiềm năng và biết nơi để tìm kiếm sự hỗ trợ từng bước trên đường đi. Tất cả điều này sẽ cho bạn sự tự tin hơn để lựa chọn DB2 và làm cho việc sử dụng nó tốt nhất cho các ứng dụng PHP của bạn hiện đang được phát triển trên MySQL.

Những điều không trình bày

Loạt bài này dự định chia sẻ các bài học thu được từ một di trú nội bộ của IBM từ MySQL sang DB2 và cung cấp cho bạn thông tin về tài nguyên có sẵn để thực hiện một cam kết tương tự. Loạt bài này không phải là một hướng dẫn toàn diện về di trú để có thể áp dụng được cho tất cả các kịch bản.

Để xác định một cách tiếp cận phù hợp với bạn, hãy tham khảo Hướng dẫn chuyển đổi MySQL sang DB2 hoặc liên hệ với SMPO (Software Migration Project Office - Văn phòng dự án di trú phần mềm) để đánh giá di trú miễn phí. Các liên kết này được cung cấp trong phần Tài nguyên.


Giới thiệu về một nghiên cứu sâu

Nhóm ibm.com vẫn đang sử dụng PTT (Project Tracking Tool - Công cụ theo dõi dự án) hơn bảy năm qua để hỗ trợ vòng đời thông tin mà các nhóm trong bộ phận Bán hàng và Phân phối công bố trên ibm.com. Đây là ứng dụng mà chúng tôi đã di trú trong một nghiên cứu sâu.

PTT đã tăng trưởng hữu cơ như một công cụ bộ phận được hỗ trợ trước hết cho một tổ chức nhỏ trong một ứng dụng quản lý dự án và theo dõi thời gian trên toàn cầu, phục vụ hơn 4.000 người dùng trên toàn thế giới.

Về nhiều mặt, PTT tương tự như các công cụ mạng nội bộ khác được xây dựng trên nền tảng LAMP (Linux, Apache, MySQL, PHP): ứng dụng web được phát triển vào một ngày cuối tuần bởi một nhà phát triển nhiệt tình, người đã thấy một nhu cầu nghiệp vụ cấp thiết cho giải pháp đã được chấp nhận và được phát triển nhanh chóng để hỗ trợ nhiều yêu cầu mới khi cộng đồng người dùng của nó đã phát triển. Tuy nhiên, nhiều đặc tính, làm cho nó trở nên phổ biến và rất có ích lúc ban đầu, đã đặt ra các thách thức sau này.

Động lực để di trú

Trong khi ứng dụng đã phục vụ rất tốt cho các bên liên quan của nó về hiệu năng và sự đáp ứng với việc thay đổi các nhu cầu, thì nghiệp vụ lõi bắt đầu củng cố thành một quá trình đầu cuối đến đầu cuối chiến lược, mạnh mẽ và hoàn thiện. Với mốc này, chính ứng dụng đã có một tập các yêu cầu rõ ràng, các cách thực hành tốt nhất đã qua thử thách về quản lý dòng công việc, và dữ liệu mà nó đã chứa đã phát triển về cả khối lượng lẫn giá trị. Tóm lại, PTT đã đạt đến một khối lượng tới hạn mà ở đó nó không chỉ còn là một ứng dụng tình huống tiện lợi, mà nó là một trụ cột để xây dựng nghiệp vụ lõi của tổ chức của chúng ta.

Ngoài ra để làm cho PTT có ích hơn và mạnh mẽ hơn cho các hoạt động hàng ngày của tổ chức, đã cần có một sự thay đổi kiến trúc lớn hơn để tích hợp tốt hơn PTT với hệ sinh thái các dịch vụ và các nguồn dữ liệu web mà nó đã tương tác. Để hỗ trợ cho thiết kế hệ thống nâng cấp này, một SOA (kiến trúc định hướng dịch vụ) toàn diện đã được xây dựng xung quanh PTT và một công cụ thông minh nghiệp vụ mới đã được chọn để trợ giúp sử dụng dữ liệu trong PTT nhằm nâng cao hơn nữa hiệu quả hoạt động.

Động lực chính của chúng ta để di trú từ MySQL sang DB2 được thể hiện trong Bảng 1. Thứ tự của các động lực này được đặt theo tầm quan trọng tương đối của chúng với các bên liên quan của chúng ta.

Bảng 1. Danh sách các lợi ích và các động lực dự kiến
Lợi íchGiải thíchTầm quan trọng
Hiệu năng và khả năng tương thích của công cụ đoKhối lượng dữ liệu của chúng ta đã tràn ngập công cụ đo của máy tính để bàn Hyperion Brio của mình. Sự thay thế mà chúng ta xác định để giải quyết vấn đề, Cognos®, đã chỉ tương thích với DB2 trên Linux (MySQL chỉ được hỗ trợ trên Windows bằng cách sử dụng ODBC). Để đưa ra các quyết định thông minh hơn đúng lúc, chúng ta cần di trú.Quan trọng
Khả năng tương thích của phần mềm trung gian của IBMĐể hỗ trợ một SOA, chúng ta cũng đã xem xét khả năng tương thích tiềm năng với các công cụ và các ứng dụng khác trong danh mục đầu tư của IBM, ví dụ như FileNet® để quản lý sản xuất nội dung và ILOG JRules sắp đặt cẩn thận quy trình nghiệp vụ của chúng ta.Cao
Chuyên gia DB2 có sẵnTrong khi nhóm làm việc đã gom lại được rất nhiều kinh nghiệm về MySQL, thì tài liệu, kinh nghiệm, và sự hỗ trợ của DB2 cũng rất phong phú trong IBM. Chúng ta cũng bắt đầu thấy có nhiều kinh nghiệm hơn về DB2 trong cộng đồng học thuật, những người đã tăng cường nguồn nhân viên hỗ trợ ứng dụng. Cao
Toàn vẹn dữ liệuCác bảng cơ sở dữ liệu MySQL của chúng ta thường dựa trên máy MyISAM không giao tác. Dựa vào giá trị gia tăng và khối lượng giao dịch hàng ngày, sự di chuyển theo hướng các giao dịch, các thủ tục đã lưu và các tri gơ là rất quan trọng để cải thiện tính toàn vẹn và quản trị dữ liệu. Trong khi MySQL cung cấp nhiều tính năng này trong các máy lưu trữ thay thế, các tính năng của DB2 đã hoàn thiện hơn.Cao
Lưu trữ các tùy chọn trên máy chủ và chi phíChúng ta hiện lưu trữ trên máy chủ ứng dụng của mình bên trong trung tâm dữ liệu của riêng của chúng ta. Trong trường hợp chúng ta quyết định di trú sang một nhà cung cấp dịch vụ lưu trữ trên máy chủ IBM thay thế, hoặc sử dụng các hình ảnh máy chủ Đám mây của IBM đã cấu hình sẵn, chúng ta sẽ cần phối hợp với một lược tả qua thử nghiệm, phổ biến để giữ cho các chi phí hỗ trợ của chúng ta thấp.Trung bình
Chi phí cấp giấy phépBản hỗ trợ doanh nghiệp của MySQL có giá 600 đến 5.000 Đô la Mỹ mỗi năm từ Oracle. Là nhân viên của IBM, chi phí cấp giấy phép của DB2 không thành vấn đề. Các khách hàng bên ngoài có thể nhận được một giấy phép hỗ trợ DB2 Express thấp hơn so với những gì Oracle đề xuất. Chi phí giấy phép có thời hạn cố định của DB2 khoảng 2.000 Đô la Mỹ.Thấp

Tất nhiên có những lợi ích khác cần xem xét, thường rất hấp dẫn để di trú DB2, bao gồm những điều sau đây:

  • Tự điều chỉnh và cấu hình
  • Khả năng mở rộng rất lớn
  • An toàn rất cao
  • Lưu trữ XML nguyên gốc
  • Nén dữ liệu

Những xem xét này thường không phải là quan trọng nhất cho các mục tiêu nghiệp vụ của chúng ta về thời gian di trú.

Đánh giá phân tích chi phí-lợi ích

Trong đánh giá di trú của chúng ta, chúng ta đã xác định được một số ít các rủi ro đòi hỏi các chiến lược di trú để thực hiện một di trú thành công. Trong tất cả các kế hoạch di trú, cần phải phân tích hiện trạng khách quan như là một giải pháp khả thi cho câu hỏi về có di trú hay không. Những lợi ích mà bạn theo đuổi còn quan trọng hơn những tác động rủi ro tiềm năng mà bạn xác định trong ngữ cảnh của ứng dụng hay trang web riêng của bạn.

Bảng 2 mô tả một số rủi ro có xác suất cao nhất và có tác động cao nhất mà chúng ta đã xác định trong việc thực hiện di trú, cùng với một chiến lược giảm nhẹ.

Bảng 2. Danh sách các rủi ro chống lại việc di trú và các chiến lược giảm nhẹ
Rủi roMô tảGiảm nhẹ
Đưa vào các lỗi cho một cơ sở mã và cấu trúc cơ sở dữ liệu ổn địnhChúng ta đã sản xuất một ứng dụng ổn định và tùy chỉnh rất cao qua gần tám năm thay đổi các yêu cầu. Trong khi ứng dụng này chưa hoàn hảo và thụt lùi thì các lỗi đôi khi vẫn xảy ra khi thêm vào các tính năng mới, ứng dụng khá ổn định và được các bên liên quan của chúng ta hỗ trợ khá tốt.Ghi lại cẩn thận chức năng quan trọng và sử dụng nó để chuẩn bị thử nghiệm đơn vị, thành phần và thử nghiệm được người dùng chấp nhận.
Thay đổi cơ sở hạ tầng phần cứng và phần mềm trung gian hiện cóViệc di trú sẽ là một sự thay đổi đáng kể đối với việc sao lưu hiện tại và kiến trúc sao chép.Hiểu biết về khả năng mà nền tảng mới cần và tạo ra một cơ sở hạ tầng mới để phối hợp hoặc vượt quá nó.
Chuyển hướng tài nguyên từ phát triển tính năng mới sang di trú cơ sở hạ tầngVới nhiều tài nguyên đang tiếp tục tác động tới sự đầu tư cơ sở hạ tầng này, chúng ta sẽ có ít thời gian hơn để dành cho các tính năng mới. Với sự hoàn thiện của ứng dụng theo quan điểm chức năng, điều này không phải là một mối quan tâm chính.Thực hiện việc di trú vào một thời điểm trong năm khi doanh nghiệp không sử dụng hệ thống như mọi khi hoặc không cần phát triển các tính năng quan trọng mới.

Bảng 3 cho thấy một danh sách các rủi ro với tác động có thể xảy ra cao, mà chúng ta thường đã phải giảm nhẹ, khi chúng ta vẫn ở lại MySQL.

Bảng 3. Danh sách các rủi ro chống lại việc di trú
Rủi roMô tả
Không có khả năng tối đa hóa tính linh hoạt nghiệp vụKhông có một công cụ đo hiệu năng cao để điều khiển khả năng hiểu biết nghiệp vụ và hiệu quả hoạt động của mình, chúng ta sẽ giảm ngày càng nhiều hơn ở phía sau khi quá trình ra quyết định và tạo báo cáo của chúng ta đã tăng thêm mỗi ngày với việc tăng các khối lượng dữ liệu.
Mối đe dọa ngày càng tăng đối với tính toàn vẹn dữ liệuTrong khi MySQL không cung cấp một máy lưu trữ giao tác, thì ứng dụng của chúng ta được xây dựng trên kiểu bảng MyISAM trọng số-nhẹ hơn. Một sự di trú đến máy lưu trữ giao tác hoặc đến một nhà cung cấp máy chủ dữ liệu khác nhau là rất quan trọng để cải thiện tính toàn vẹn và quản trị dữ liệu.
Độ tin cậy hỗ trợ của OracleVới việc mua lại Sun của Oracle trong năm 2009, sự hỗ trợ cho MySQL trong tương lai đã phát triển không chắc chắn. Ngoài ra, Oracle đã mua công cụ đo Hyperion Brio vào năm 2007.

Bằng cách xác định cẩn thận các rủi ro, đánh giá các lợi ích và sử dụng có hiệu quả tài nguyên, như các công cụ và tài liệu có sẵn dành cho chúng ta, chúng ta đã tin chắc rằng đây là một sự đầu tư đáng giá về thời gian và tài nguyên của chúng ta.


Dựa vào kiến thức của thành viên trong nhóm

Khi chúng ta quyết định di trú, chúng ta bắt đầu lên kế hoạch các mục công việc, hiểu các phụ thuộc và lịch trình của chúng và phân bổ tài nguyên. Chìa khóa cho nỗ lực này là thu thập kiến thức của thành viên trong nhóm về DB2, tạo danh mục các tài liệu tham khảo di trú và hợp nhất các bài học từ công việc di trú trước đây. Chúng ta cũng đã đánh giá các công cụ di trú tự động hoặc các môi trường phát triển khác có thể giúp tăng tốc các nỗ lực di trú của chúng ta.

Ngoài việc di trú ứng dụng, chúng ta đã lập kế hoạch thay đổi cơ sở hạ tầng phần mềm và phần cứng cần thiết và chúng ta đã xác định liệu chúng ta có thực hiện bất kỳ các cải tiến khác vào cơ sở hạ tầng PHP của chúng ta nằm ngoài thay đổi tầng dữ liệu không.

Với những nỗ lực ban đầu này đang thực hiện, chúng ta đã có thể đưa ra một kế hoạch dự án khá chính xác.

Dựa vào kiến thức của thành viên trong nhóm về DB2

Vì nhóm của chúng ta hỗ trợ các ứng dụng khác với PTT, nên nhiều thành viên trong nhóm đã có kiến thức cơ bản về DB2, là nền tảng cơ sở dữ liệu được sử dụng phổ biến nhất của chúng ta so với các công cụ khác. Đối với những người mới dùng DB2, các tài liệu giới thiệu sau là các điểm bắt đầu có ích để tìm hiểu sản phẩm, như được chỉ ra trong phần Tài nguyên.

  • Danh sách khuyến nghị đọc: DB2 cho việc phát triển ứng dụng Linux, UNIX, và Windows trên developerWorks.
  • Danh sách khuyến nghị đọc: DB2 cho việc quản trị cơ sở dữ liệu Linux, UNIX, và Windows trên developerWorks.
  • Tìm hiểu về DB2, Học trực quan với Các ví dụ, do IBM Press xuất bản.
  • Bộ dụng cụ điện tử DB2 của IBM dành cho các chuyên gia cơ sở dữ liệu từ developerWorks

Bạn có thể thấy rằng càng học chính quy, ví dụ như các lớp có người hướng dẫn, càng có ích hơn. Xem Tài nguyên để biết thêm chi tiết.

Dựa vào kiến thức của thành viên trong nhóm về di trú

Có rất nhiều thông tin về di trú với phần mềm IBM từ các máy chủ ứng dụng, máy chủ dữ liệu và các hệ điều hành khác. Đặc biệt, các Sách Đỏ IBM cung cấp một loạt các hướng dẫn di trú. Nguồn thông tin chính của chúng ta là Hướng dẫn chuyển đổi MySQL sang DB2 mới được sửa lại (xem Tài nguyên). Hướng dẫn miễn phí này đã được làm mới vào tháng 12 năm 2009 khi chúng ta bước đầu lập kế hoạch di trú của mình. Hướng dẫn này được dùng làm nguồn thông tin di trú MySQL-sang-DB2 chính của chúng ta.

Để thu thập thông tin di trú cụ thể của PHP, chúng ta xem Sách Đỏ IBM khác, Phát triển ứng dụng PHP cho các máy chủ dữ liệu IBM và những kinh nghiệm mà một trong các tác giả đã học được trong quá trình di trú cho một ứng dụng tốt nhất của một nhà cung cấp phần mềm độc lập. Các quan sát của Daniel Krook được đăng trong bài viết trên blog của ông có tên là Viết SQL cho cả hai MySQL và DB2 (xem phần Tài nguyên). Chúng ta cũng đã đề cập đến danh sách khuyến khích đọc và tài liệu hướng dẫn sản phẩm DB2 khác.

Dựa vào vào kinh nghiệm của mình với DB2 từ các dự án khác, chúng ta đã không tham gia Văn phòng dự án di trú phần mềm-SMPO (xem phần Tài nguyên), mặc dù đây có thể là một tùy chọn thích hợp cho các dự án di trú khác. Họ có thể thực hiện đánh giá kịch bản di trú của bạn miễn phí.


Đánh giá các công cụ di trú

Tìm hiểu, thí nghiệm, phát triển và thử nghiệm trên Đám mây của IBM

Vào thời điểm di trú của chúng ta, nền tảng IBM Smart Business Development and Test on the IBM Cloud (Phát triển nghiệp vụ thông minh của IBM và Thử nghiệm trên Đám mây của IBM) vẫn còn là một phiên bản beta công cộng miễn phí. Chúng ta đã có thể tìm hiểu thực hành DB2 và thí nghiệm với các hình ảnh máy chủ DB2 có cấu hình sẵn không có nguy cơ trên đám mây này. Bây giờ IBM Smart Business Development và Test on the IBM Cloud là một nền tảng mức doanh nghiệp để rút ngắn thời hạn di trú ứng dụng và nó cũng có thể được sử dụng để nhanh chóng thu được kinh nghiệm với DB2. Nếu hiện nay chúng ta vẫn cố gắng di trú, đám mây này vẫn sẽ là một phần chủ yếu của cơ sở dữ liệu và chiến lược di trú ứng dụng của chúng ta.

Bạn có thể tìm hiểu thêm về các gói phần mềm và các khả năng kỹ thuật của đám mây này trên các tùy chọn dịch vụ.

Sau khi chúng ta đã hiểu rõ các nhiệm vụ chung liên quan đến một sự di trú, đây là lúc đánh giá một số công cụ tự động thường làm tăng tốc độ di trú của chúng ta. Có một số đường dẫn đến một di trú MySQL-sang-DB2 thành công và chúng ta đã xác định đường dẫn nào sẽ làm việc tốt nhất cho chúng ta. Chúng ta quyết định sử dụng DMT (Data Movement Tool - Công cụ di chuyển dữ liệu) và RSA (Rational® Software Architect-Kiến trúc sư phần mềm Rational) của IBM. Có thể sử dụng các công cụ khác, gồm InfoSphere™ Data Architect (Kiến trúc sư dữ liệu InfoSphere) và Optim™ Development Studio (Xưởng phát triển Optim), để mô hình hóa dữ liệu và để phát triển thủ tục. Nhưng chúng ta chọn các công cụ của chúng ta dựa trên sự đơn giản của chúng và dựa trên sự hiểu biết của chúng ta với các công cụ Rational.

Data Movement Tool của IBM
Tự động xuất khẩu DDL, chuyển dịch đối tượng cơ sở dữ liệu, và di chuyển dữ liệu. Công cụ này thay thế Bộ công cụ di trú cũ hơn với một dòng công việc đơn giản hơn.
Rational Software Architect
Trình bày chi tiết mô hình hóa dữ liệu trực quan, kỹ thuật dịch ngược và chỉnh sửa. Công cụ này cũng có thể được sử dụng để tạo các khung nhìn, các thủ tục đã lưu, các hàm do người dùng định nghĩa và các tri gơ.

Đánh giá phần cứng, phần mềm trung gian và di trú ứng dụng

Ngoài những lý do di trú phần mềm ứng dụng, chúng ta cũng đã lợi dụng cơ hội để thực hiện nâng cấp phần cứng và chính thức hóa các môi trường phát triển và sản xuất PHP của chúng ta. Chúng ta đã sử dụng từ trước phần cứng dựng sẵn và được cấu hình tùy chỉnh và muốn chuyển sang phân phối mã PHP nhị phân đóng gói sẵn và có hỗ trợ với một giao diện người dùng đồ họa. Zend Server (Máy chủ Zend) cung cấp cho chúng ta các khả năng lưu trữ trong bộ nhớ nhanh, giám sát và các khả năng cấu hình khác, ngoài việc đơn giản hóa các nâng cấp mở rộng PHP của chúng ta. Zend Server cũng thực hiện một bước theo hướng đến một mô hình hướng-đối tượng, khung nhìn và kiến trúc của bộ điều khiển (MVC), sử dụng các thư viện PHP đã qua thử nghiệm do nó có Khung công tác Zend (Zend Framework) mạnh mẽ.


Đề ra một kế hoạch dự án

Sau khi thu thập các tài liệu, xác định các mục công việc cần thực hiện, định thời gian cho chúng, và xác định các phụ thuộc của chúng, chúng ta đã tạo ra một kế hoạch dự án để xác định thời gian và tài nguyên cần thiết. Bảng 4 cho thấy kế hoạch mức cao của chúng ta.

Chúng ta đã đánh giá rằng khoảng thời hạn của dự án khi được thực hiện bởi một nhóm gồm 1 kiến trúc sư, 2 nhà phát triển và một nhà quản lý dự án sẽ mất khoảng 3 tháng để di trú 150 bảng, 10 GB dữ liệu và hàng trăm các tệp PHP.

Bảng 4. Kế hoạch dự án mức cao về di trú MySQL sang DB2
Giai đoạnNhiệm vụGiờ
Chuẩn bịTạo một danh sách các nhiệm vụ và các đánh giá16
Lập kế hoạch, thu thập và thực hiện các yêu cầu kiến thức48
Thực hiện đánh giá ứng dụng và lập kế hoạch hệ thống64
Chuyển đổi cấu trúc cơ sở dữ liệu Đánh giá các tính năng DB2 mới để thông qua16
Xác định phạm vi cấu trúc dữ liệu để di trú16
Chuyển đổi DDL cơ sở dữ liệu từ MySQL sang DB240
Tạo cơ sở dữ liệu và các đối tượng DB224
Di trú dữ liệuXem lại phạm vi dữ liệu cần di trú.8
Di trú dữ liệu40
Di trú các quyền hạn8
Cập nhật ứng dụngChuyển dịch các câu lệnh SQL32
Thực hiện các tùy chọn đồng thời và con trỏ mới16
Thực hiện các giao dịch, các hàm do người dùng định nghĩa, các thủ tục đã lưu16
Chuyển đổi các tên và các tham số hàm cơ sở dữ liệu40
Xác định các phần mã ở đó các tính năng không sắp đặt chính xác và đề ra các cách giải quyết khác32
Thiết lập quản trị cơ sở dữ liệuXác nhận các công cụ ưa thích, dù là dòng lệnh hay giao diện người dùng đồ họa8
Sắp xếp và chuyển dịch các thủ tục sao lưu16
Sắp xếp và chuyển dịch các thủ tục sao chép16
Thực hiện bất kỳ các quy tắc duy trì dữ liệu tự động nào16
Thử nghiệm và điều chỉnhTạo các bài thử nghiệm được người dùng chấp nhận dựa trên chức năng hiện có16
Xác định vị trí nghẽn cổ chai hiệu năng và thực hiện bất kỳ thay đổi logic nào trong ứng dụng24
Làm việc với Cố vấn thiết kế (Design Advisor), Trình giám sát hiệu năng (Performance Monitor) và Cố vấn chỉ mục (Index Advisor) để điều chỉnh cơ sở dữ liệu32
Triển khaiXác nhận rằng mô đun PHP và các môi trường lưu trữ trên máy chủ được cấu hình đúng24
Hoàn thành thử nghiệm tích hợp và sự chấp nhận của người dùng40
Đang thực hiện hỗ trợXác nhận chức năng đang thực hiện như dự kiến16
Đáp ứng với các cảnh báo sức khỏe của cơ sở dữ liệu16
Giải quyết các vấn đề hiệu năng do những người dùng ghi lại24

Đặt tất cả lại với nhau

Một khi chúng ta đã hiểu công việc cần được thực hiện và thời hạn cho dự án của mình, chúng ta đã phối hợp tài nguyên có sẵn cho chúng ta tùy ý sử dụng theo bốn giai đoạn trong dự án của mình. Bảng 5 nối từng giai đoạn tuần tự đã được thực hiện lặp lại với các ấn phẩm, các công cụ và các cơ sở hạ tầng có sẵn cho chúng ta. Bốn giai đoạn này cũng tương ứng với bốn phần của loạt bài này.

Bảng 5. Các giai đoạn và tài nguyên cho việc di trú
Giai đoạnTài nguyên
Preparation
  • Các sách của nhà xuất bản IBM
  • SMPO
  • Bộ dụng cụ điện tử cho các chuyên gia DB2
  • Các danh sách khuyến khích đọc
  • Phát triển nghiệp vụ thông minh của IBM và Thử nghiệm trên Đám mây của IBM
Di trú dữ liệu
  • Công cụ di trú dữ liệu
  • Rational Software Architect
  • Bộ dụng cụ điện tử cho các chuyên gia DB2
  • Các danh sách khuyến khích đọc
  • Phát triển nghiệp vụ thông minh của IBM và Thử nghiệm trên Đám mây của IBM
Di trú mã
  • Các tài liệu về mở rộng PHP
  • Sách Đỏ PHP
  • Kinh nghiệm của ISV
  • Các danh sách khuyến khích đọc
  • Phát triển nghiệp vụ thông minh của IBM và Thử nghiệm trên Đám mây của IBM
Triển khai
  • Các chiến lược giảm chi phí
  • Loạt bài cải thiện trên developerWorks
  • Các danh sách đọc
  • Các danh sách khuyến khích đọc
  • Phát triển nghiệp vụ thông minh của IBM và Thử nghiệm trên Đám mây của IBM

Hình 1 minh họa Bảng 5.

Hình 1. Sắp đặt các giai đoạn và tài nguyên cho di trú MySQL sang DB2 của chúng ta
Sắp đặt các giai đoạn và tài nguyên cho di trú MySQL sang DB2 của chúng ta

Xem trước các kết quả sự di trú: Cảnh báo Spoiler!

Cuối năm 2009, chúng ta đã hoàn tất kế hoạch này để tiến lên một bước với việc di trú ứng dụng từ MySQL sang DB2. May mắn thay, đường dẫn di trú có đủ tài liệu, mặc dù có nhiều tùy chọn khác có sẵn có thể có ý nghĩa trong các tình huống nhất định. Bạn có thể tìm hiểu về các sự thay thế này trong tài nguyên khác như Hướng dẫn chuyển đổi MySQL sang DB2. Bài này mô tả kế hoạch đã làm việc với chúng ta và các công cụ đã giúp chúng ta thành công.

Trong năm 2010, ứng dụng của chúng ta đã được di trú thành công và nó đã giúp cho nghiệp vụ của chúng ta phát triển nhanh khối lượng và chất lượng công việc mà nó thực hiện, đã khiến khách hàng rất hài lòng.

Với chúng ta, thực tế là sự di trú đã là một sự trải nghiệm liên tục cho phần lớn người dùng cuối của chúng ta, đã là một dấu hiệu rất thực tế về thành công của chúng ta. Ứng dụng vẫn tiếp tục chạy như vốn có của nó, nhưng bây giờ chúng ta đã chạy toàn vẹn dữ liệu tốt hơn, đã cải thiện đáp ứng nghiệp vụ để hiểu biết sâu về dữ liệu, và đã mở rộng sự tích hợp ứng dụng tiềm năng của chúng ta vào cơ sở hạ tầng của IBM nhằm mở rộng sự đa dạng phần mềm có sẵn để sử dụng trong tương lai.


Kết luận

Mục đích của loạt bài này là cung cấp cho bạn sự hiểu biết về một kịch bản trong đó nhóm dự án của chúng tôi đã di trú một ứng dụng PHP từ MySQL sang DB2. Bạn cũng đã biết được những tài nguyên nào có sẵn để giúp bạn hoàn thành nhiệm vụ tương tự và cách chúng ta thực hiện thành công nhiệm vụ trước năm 2010.

Trong phần đầu tiên của loạt bài này, bạn:

  • Đã tìm hiểu về các động lực, các rủi ro và các lợi ích của một nghiên cứu sâu về chuyển đổi ứng dụng mạng nội bộ IBM của chúng ta.
  • Tiếp thu từ kinh nghiệm thu thập tài liệu của chúng ta để tìm hiểu DB2 và để hiểu những gì cần thiết với một sự di trú MySQL.
  • Đã phát hiện các công cụ có thể giúp bạn thực hiện việc di trú.
  • Đã quan sát cách tất cả tài nguyên có thể tập hợp lại để hướng dẫn bạn qua từng giai đoạn của dự án.

Trong phần tiếp theo của loạt bài này, bạn sẽ tìm hiểu cách chúng ta chuyển đổi cấu trúc cơ sở dữ liệu và thực hiện di trú dữ liệu của chúng ta.

Lời cảm ơn

Các tác giả cảm ơn Leons Petrazickis và Ambrish Bhargava về việc xem xét và góp ý kiến cho bài này.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Khi bạn đăng ký với trang developerWorks lần đầu tiên, một tiểu sử của của bạn được tạo ra. Chọn các thông tin về tiểu sử của bạn (tên, nước/vùng, và nơi làm việc) đã được hiện lên màn hình, thông tin này sẽ được hiện kèm với nội dung mà bạn đăng tải. Bạn có thể cập nhật thông tin này bất kỳ lúc nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Information Management, Nguồn mở
ArticleID=783936
ArticleTitle=Di chuyển một ứng dụng PHP từ MySQL sang DB2, Phần 1: Chuẩn bị cho việc di trú của bạn
publish-date=01052011