Trong hàm mysqli_connect ta thay các chỉ số: user là Root User, pass là Root Password, và database là Database name mà ta đã lưu từ trước. ( Trong chương trình này thì ta sẽ thay đổi ở 3 file là includes/ mysqli_connect.php, admin/edit_user2.php, admin/delete_user.php.
Trong phần includes/functions.php chúng ta phải thay đường dẫn tuyệt đối là địa chỉ của host mà ta đã tạo.
Cuối cùng ta vào trang quản lý database. Nhập Tên Người dùng là Root User và Mật khẩu là Root Password. Sau đó tiến hành thêm cơ sở dữ liệu vào là đã hoàn thành ( tên của database là tên Database name mà ta đã lưu trước đó).
Như vậy là ta đã upload thành công trang web lên host của openshift.
26 trang |
Chia sẻ: lylyngoc | Lượt xem: 3169 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Xây dựng ứng dụng web bán hàng trên OpenShift 16, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Contents
Giới thiệu về Cloud Computing
Các khái niệm cơ bản.
Đặt vấn đề.
Ngày nay, đối với các công ty, doanh nghiệp, việc quản lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ liệu khách hàng, đối tác là một trong những bài toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn cho họ. Để có thể quản lý được nguồn dữ liệu đó, ban đầu các doanh nghiệp phải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa,…Ngoài ra họ còn phải tính toán khả năng mở rộng, nâng cấp thiết bị, kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu. Từ một bài toán điển hình như vậy, chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ sở hạ tầng, công nghệ mà chỉ tập trung chính vào công việc kinh doanh thì sẽ mang lại cho họ hiệu quả và lợi nhuận ngày càng cao hơn. Thuật ngữ “cloud computing” ra đời bắt nguồn từ một trong những hoàn cảnh như vậy. Thuật ngữ “cloud computing” còn được bắt nguồn từ ý tưởng đưa tất cả mọi thứ như dữ liệu, phần mềm, tính toán.…lên trên mạng Internet. Chúng ta sẽ không còn trông thấy các máy PC, máy chủ của riêng các doanh nghiệp để lưu trữ dữ liệu, phần mềm nữa mà chỉ còn một số các “máy chủ ảo” tập trung ở trên mạng. Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chi phí cho lượng sử dụng dịch vụ của họ, mà không cần phải đầu tư nhiều vào cơ sở hạ tầng cũng như quan tâm nhiều đến công nghệ. Xu hướng này sẽ giúp nhiều cho các công ty, doanh nghiệp vừa và nhỏ mà không có cơ sở hạ tầng mạng, máy chủ để lưu trữ, quản lý dữ liệu tốt. Vậy “cloud computing” là gì? Nó có thể giải quyết bài toán trên như thế nào và có những đặc điểm nổi bật gì? Chúng ta sẽ đi qua các phần sau để nắm rõ vấn đề này.
Khái niệm.
Thuật ngữ “đám mây”.
Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet dựa vào cách thức Internet được bố trí trong sơ đồ mạng máy tính. Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó.
Định nghĩa.
Một mô hình điện toán nơi mà khả năng mở rộng và linh hoạt về công nghệ thông tin được cung cấp như một dịch vụ cho nhiều khách hàng đang sử dụng các công nghệ trên Internet.
Nói một cách đơn giản nhất “điện toán đám mây” chính là những ứng dụng trực tuyến trên Internet. Dữ liệu, tài nguyên, phần mềm và các thông tin liên quan đều được lưu trữ, tính
toán, xử lý trên các server (chính là các “đám mây”). Trình duyệt là nơi ứng dụng hiện hữu và vận hành còn dữ liệu được lưu trữ và xử lý ở máy chủ của nhà cung cấp ứng dụng đó. Theo tổ chức Xã hội máy tính IEEE "Nó là hình mẫu trong đó thông tin được lưu trữ thường trực tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các máy khách, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các phương tiện máy tính cầm tay, ...".
Cấu trúc và cách thức hoạt động của Điện toán đám mây.
Mô hình dịch vụ điện toán đám mây.
Mô hình tổng quan.
Theo định nghĩa, các nguồn điện toán khổng lồ như phần mềm, dịch vụ ... sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy tính gia đình và văn phòng (trên mặt đất) để mọi người kết nối và sử dụng mỗi khi họ cần.
Hiện nay, các nhà cung cấp đưa ra nhiều dịch vụ của cloud computing theo nhiều hướng
khác nhau, đưa ra các chuẩn riêng cũng như cách thức hoạt động khác nhau. Do đó, việc tích hợp các cloud để giải quyết một bài toán lớn của khách hàng vẫn còn là một vấn đề khó khăn. Chính vì vậy, các nhà cung cấp dịch vụ đang có xu hướng tích hợp các cloud lại với nhau thành “sky computing”, đưa ra các chuẩn chung để giải quyết các bài toán lớn của khách hàng.
Cấu trúc phân lớp mô hình điện tóa đám mây.
Mô hình “điện toán đám mây” được chia ra thành 5 lớp riêng biệt, có tác động qua lại lẫn nhau:
Client (Lớp Khách hàng): Lớp Client của điện toán đám mây bao gồm phần cứng và phần mềm, để dựa vào đó, khách hàng có thể truy cập và sử dụng các ứng dụng/dịch vụ được cung cấp từ điện toán đám mây. Chẳng hạn máy tính và đường dây kết nối Internet (thiết bị phần cứng) và các trình duyệt web (phần mềm)….
Application (Lớp Ứng dụng): Lớp ứng dụng của điện toán đám mây làm nhiệm vụ phân phối phần mềm như một dịch vụ thông qua Internet, người dùng không cần phải cài đặt và chạy các ứng dụng đó trên máy tính của mình, các ứng dụng dễ dàng được chỉnh sữa và người dùng dễ dàng nhận được sự hỗ trợ.
Các đặc trưng chính của lớp ứng dụng bao gồm:
Các hoạt động được quản lý tại trung tâm của đám mây, chứ không nằm ở phía khách hàng (lớp Client), cho phép khách hàng truy cập các ứng dụng từ xa thông qua Website.
Người dùng không còn cần thực hiện các tính năng như cập nhật phiên bản, bản vá lỗi, download phiên bản mới… bởi chúng sẽ được thực hiện từ các “đám mây”.
Platform (Lớp Nền tảng): Cung cấp nền tảng cho điện toán và các giải pháp của dịch vụ,chi phối đến cấu trúc hạ tầng của “đám mây” và là điểm tựa cho lớp ứng dụng, cho phép các ứng dụng hoạt động trên nền tảng đó. Nó giảm nhẹ sự tốn kém khi triển khai các ứng dụng khi người dùng không phải trang bị cơ sở hạ tầng (phần cứng và phần mềm) của riêng mình.
Infrastructure (Lớp Cơ sở hạ tầng): Cung cấp hạ tầng máy tính, tiêu biểu là môi trường
nền ảo hóa. Thay vì khách hàng phải bỏ tiền ra mua các server, phần mềm, trung tâm dữ
liệu hoặc thiết bị kết nối… giờ đây, họ vẫn có thể có đầy đủ tài nguyên để sử dụng mà chi
phí được giảm thiểu, hoặc thậm chí là miễn phí. Đây là một bước tiến hóa của mô hình
máy chủ ảo (Virtual Private Server).
Server (Lớp Server - Máy chủ): Bao gồm các sản phẩm phần cứng và phần mềm máy tính, được thiết kế và xây dựng đặc biệt để cung cấp các dịch vụ của đám mây. Các server phải được xây dựng và có cấu hình đủ mạnh (thậm chí là rất mạnh) để đám ứng nhu cầu sử dụng của số lượng đông đảo các người dùng và các nhu cầu ngày càng cao của họ.
Cách thức hoạt động.
Để hiểu cách thức hoạt động của “đám mây”, tưởng tượng rằng “đám mây” bao gồm 2 lớp: Lớp Back-end và lớp Front-end.
Hạ tầng thiết bị được chứa ở lớp Back-End (bao gồm nhiều máy tính, máy chủ và hệ thống lưu trữ dữ liệu gộp thành “đám mây” các dịch vụ Web), và giao diện người dùng của các ứng dụng được chứa tại lớp Front-End.
Lớp Front-end: gồm có một máy tính Client và một ứng dụng cần cho việc truy cập đám mây; là lớp người dùng, cho phép người dùng sử dụng và thực hiện thông qua giao diện người dùng. Tuy nhiên, không phải tất cả các hệ thống đám mây đều sử dụng chung một giao diện. Khi người dùng truy cập các dịch vụ trực tuyến, họ sẽ phải sử dụng thông qua giao diện từ lớp Front-end, và các phần mềm sẽ được chạy trên lớp Back-end nằm ở “đám mây”.
Lớp Back-end: bao gồm các cấu trúc phần cứng và phần mềm để cung cấp giao diện cho lớp Front-end và được người dùng tác động thông qua giao diện đó.
Giải pháp, dịch vụ, ưu nhược điểm và xu hướng phát triển.
Giải pháp và dịch vụ.
Cloud Computing ra đời để giải quyết các vấn đề như:
Vấn đề về lưu trữ dữ liệu: Dữ liệu được lưu trữ tập trung ở các kho dữ liệu khổng lồ. Các công ty lớn như Microsoft, Google có hàng chục kho dữ liệu trung tâm nằm rải rác khắp nơi trên thế giới. Các công ty lớn này sẽ cung cấp các dịch vụ cho phép doanh nghiệp có thể lưu trữ và quản lý dữ liệu của họ trên các kho lưu trữ trung tâm.
Vấn đề về sức mạnh tính toán:
Sử dụng các siêu máy tính (super-computer) để xử lý tính toán.
Sử dụng các hệ thống tính toán song song, phân tán, tính toán lưới.
Vấn đề về cung cấp tài nguyên, phần mềm: Cung cấp các dịch vụ như IaaS (infrastructure as a service), PaaS (platform as a service), SaaS (software as a service).
Ưu nhược điểm.
Ưu điểm:
Những ưu điểm và thế mạnh dưới đây đã góp phần giúp "điện toán đám mây" trở thành mô hình điện toán được áp dụng rộng rãi trên toàn thế giới:
Tốc độ xử lý nhanh, cung cấp cho người dùng những dịch vụ nhanh chóng và giá thành rẻ dựa trên nền tảng cơ sở hạ tầng tập trung (đám mây).
Chi phí đầu tư ban đầu về cơ sở hạ tầng, máy móc và nguồn nhân lực của người sử dụng điện toán đám mây được giảm đến mức thấp nhất.Không còn phụ thuộc vào thiết bị và vị trí địa lý, cho phép người dùng truy cập và sử dụng hệ thống thông qua trình duyệt web ở bất kỳ đâu và trên bất kỳ thiết bị nào mà họ sử dụng (chẳng hạn là PC hoặc là điện thoại di động…)
Với độ tin cậy cao, không chỉ giành cho người dùng phổ thông, điện toán đám mây phù hợp với các yêu cầu cao và liên tục của các công ty kinh doanh và các nghiên cứu khoa học. Tuy nhiên, một vài dịch vụ lớn của điện toán đám mây đôi khi rơi vào trạng thái quá tải, khiến hoạt động bị ngưng trệ. Khi rơi vào trạng thái này, người dùng không có khả
năng để xử lý các sự cố mà phải nhờ vào các chuyên gia từ đám mây tiến hành xử lý.
Khả năng mở rộng được, giúp cải thiện chất lượng các dịch vụ được cung cấp trên “đám mây”.Khả năng bảo mật được cải thiện do sự tập trung về dữ liệu.Các ứng dụng của điện toán đám mây dễ dàng để sửa chữa hơn bởi lẽ chúng không được cài đặt cố định trên một máy tính nào. Chúng cũng dễ dàng hỗ trợ và cải thiện về tính năng.
Tài nguyên sử dụng của điện toán đám mây luôn được quản lý và thống kê trên từng khách hàng và ứng dụng, theo từng ngày, từng tuần, từng tháng. Điều này đảm bảo cho việc định lượng giá cả của mỗi dịch vụ do điện toán đám mây cung cấp để người dùng có thể lựa chọn phù hợp.
Nhược điểm:
Tuy nhiên, mô hình điện toán này vẫn còn mắc phải một số nhược điểm sau:
Tính riêng tư: Các thông tin người dùng và dữ liệu được chứa trên điện toán đám mây có đảm bảo được riêng tư, và liệu các thông tin đó có bị sử dụng vì một mục đích nào khác?
Tính sẵn dùng: Liệu các dịch vụ đám mây có bị “treo” bất ngờ, khiến cho người dùng không thể truy cập các dịch vụ và dữ liệu của mình trong những khoảng thời gian nào đó khiến ảnh hưởng đến công việc?
Mất dữ liệu: Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất ngờ ngừng hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho người dùng phải sao lưu dữ liệu của họ từ “đám mây” về máy tính cá nhân. Điều này sẽ mất nhiều thời gian. Thậm chí một vài trường hợp, vì một lý do nào đó, dữ liệu người dùng bị mất và không thể phục hồi được.
Tính di động của dữ liệu và quyền sở hữu: Một câu hỏi đặt ra, liệu người dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đám mây khác? Hoặc trong trường hợp không muốn tiếp tục sử dụng dịch vụ cung cấp từ đám mây, liệu người dùng có thể sao lưu toàn bộ dữ liệu của họ từ đám mây? Và làm cách nào để người dùng có thể chắc chắn rằng các dịch vụ đám mây sẽ không hủy toàn bộ dữ liệu của họ trong trường hợp dịch vụ ngừng hoạt động.
Khả năng bảo mật: Vấn đề tập trung dữ liệu trên các “đám mây” là cách thức hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là mối lo của người sử dụng dịch vụ của điện toán đám mây. Bởi lẽ một khi các đám mây bị tấn công hoặc đột nhập, toàn bộ dữ liệu sẽ bị chiếm dụng. Tuy nhiên, đây không thực sự là vấn đề của riêng “điện toán đám mây”, bởi lẽ tấn công đánh cắp dữ liệu là vấn đề gặp phải trên bất kỳ môi trường nào, ngay cả trên các máy tính cá nhân.
Xu hướng phát triển.
Thuật ngữ “cloud computing” ra đời từ giữa năm 2007, cho đến nay đã không ngừng phát triển mạnh mẽ và được hiện thực bởi nhiều nhà cung cấp, trong đó có Amazon, Google, DataSynapse, Cloud2s và Salesforce cũng như những nhà cung cấp truyền thống như Sun Microsystems, HP, IBM, Intel, Cisco và Microsoft. Nó đang được nhiều người dùng cá nhân cho đến những công ty lớn như General Electric, L'Oréal, Procter & Gamble và Valeo chấp nhân và sử dụng.
Với mục tiêu giải quyết các bài toán về dữ liệu, tính toán, dịch vụ, …, cloud computing đã và đang mang lại lợi nhuận lớn, đem đến một sân chơi, một thị trường rộng lớn cho các nhà cung cấp dịch vụ, nên sự phát triển nhanh chong của nó có thể được tính từng ngày. Trong khi đó, thuật ngữ ban đầu của “Grid computing” không mang kinh tế, lợi nhuận cao nên sự phát triển của nó đang ngày cáng giảm sút, và chỉ đang được áp dụng vào lĩnh vực nghiên cứu khoa học.
OpenShift
OpenShift là một dịch vụ nền tảng điện toán đám mây (Platform as a Service – PaaS) của hãng Red Hat.
Phần mềm chạy dịch vụ là mã nguồn mở và có sẵn trên GitHub với tên "OpenShift Origin".Người phát triển phần mềm có thể sử dụng Git để triển khai ứng dụng bằng các ngôn ngữ khác nhau trên nền tảng.
Đặc biệt, OpenShift cũng hỗ trợ các ứng dụng web dạng phần mềm mã nhị phân, miễn là nó có thể chạy trên RHEL Linux. Điều này làm tăng tính tùy biến của hệ thống, hỗ trợ nhiều ngôn ngữ và frameworks.
OpenShift bảo trì dịch vụ bên dưới ứng dụng và thống kê ứng dụng nếu cần thiết.
OpenShift có cung cấp các gói dịch vụ VPS ( Máy chủ ảo ) từ miễn phí đến nâng cao với mức độ bảo mật cao và chạy trên nền máy chủ Linux .
Cloud hosting Free Openshift được miễn phí sử dụng Cloud hosting với đầy đủ tính năng như một VPS (Vitual Private Server) , có thể sử dụng SSH (Secure Shell) + SFTP như một VPS.
Cấu trúc cơ bản.
OpenShift Online cung cấp cho người dùng tài nguyên CPU, bộ nhớ, kết nối mạng hoặc một Apache hay Jboss server để khởi tạo và triển khai, quản lý ứng dụng của mình trên cloud.
Với hầu hết các dạng của ứng dụng, OpenShift khởi tạo sẵn các file layout mà bạn có thể sử dụng như một khung để xây dựng ứng dụng của mình. Nó cũng tạo cho bạn một tên miền hệ thống (DNS) tất nhiên có giới hạn để ứng dụng có thể truy nhập trực tuyến.
Thành phần cơ bản của hệ thống
Mô tả
Gears (“bánh răng”)
Nguồn tài nguyên hạn chế của hệ thống cung cấp cho mã lệnh ứng dụng nơi cartidges chạy. Gears xác định dung lượng RAM và dung lượng bộ nhớ có sẵn cho một cartridge.
Cartridges(“đạn”)
Cartridges cung cấp các chức năng để chạy các ứng dụng. Nhiều cartridges hiện được hỗ trợ như Perl, PHP, Ruby hay các database như Postgre hay MySQL.
Các loại Gears được hỗ trợ trên OpenShift:
Small gears provide 512MB of RAM, 100MB of swap space, and 1GB of disk space.
Medium gears provide 1GB of RAM, 100MB of swap space, and 1GB of disk space.
Large gears provide 2GB of RAM, 100MB of swap space, and 1GB of disk space.
Mặc định thì sẽ có 3 Small gears có sẵn với tổng cộng 1.5 GB RAM và 3GB của bộ nhớ đĩa. OpenShift Online có thể chỉ định 3 gears này trong 1 ứng dụng và các cartridges của nó (Cron, MySQL,…), sử dụng mỗi gear để phân chia hoặc mở rộng ứng dụng.
Các loại tài khoản:
Hiện tại có 3 loại tài khoản trên OpenShift: Free (miễn phí), Bronze (Đồng), Silver (Bạc). Bảng sau sẽ mô tả chi tiết quyền lợi, các tính năng cung cấp cho mỗi loại:
Giao diện người dùng
Có 2 loại giao diện cho người sử dụng có thể dùng để tương tác vs OpenShift: management console (giao diện đồ họa điều khiển) và command line interface (CLI) (giao diện dòng lệnh).
Giao diện đồ họa (OpenShift Online)
Chính là địa chỉ trang web cho người dùng truy cập:
Management console phù hợp cho:
Khởi tạo, quản lý, giám sát tài khoản.
Deploy và run các ứng dụng.
Giám sát và đánh giá các ứng dụng.
Miêu tả ngắn gọn về các trang trên giao diện đồ họa:
Page
Mô tả
Application
Xem, quản lý các ứng dụng và cartridges. Nếu đang chưa có ứng dụng nào bạn có thể tạo ứng dụng mới từ trang này.
Settings
Xem và quản lý SSH key, tên miền (domains), và ủy quyền tài khoản (account authorizations)
Help
Truy nhập vào Kbase, các forum, các bài hướng dẫn,...Một số lượng lớn các tài nguyên có sẵn để cho người sử dụng tham khảo, chẩn đoán và giải quyết các vấn đề về tài khoản và ứng dụng của mình.
My Account
Xem và quản lý thông tin tài khoản, bao gồm cả nâng cấp tài khoản.
Giao diện dòng lệnh (Client tools):
Dùng để quản lý môi trường trong OpenShift thông qua các dòng lệnh và cung cấp các tính tăng hiện vẫn chưa có với giao diện đồ họa:
Thích hợp cho các đối tượng:
Coding: người lập trình
Debugging: người sửa lỗi
Advanced application management: người quản lý ứng dụng cấp cao
Mã ủy quyền (Authorization Tokens)
Giới thiệu:
Một mã ủy quyền là một giá trị bí mật được dùng để tự động đăng nhập vào tài khoản OpenShift Online mà không cần phải khai báo thông tin đăng nhập mỗi lần. Một token cũng dùng để xem khả năng cấp cho người dùng khác đầy đủ hay một phần quyền truy cập vào một tài khoản, xác định thông qua phạm vi scope của token.
Có các loại phạm vi như sau:
Scope
Mô tả
Thời gian hiệu lực
session
Truy nhập vào tất cả các hàm API của một tài khoản
1 ngày
read
Chỉ có thể đọc khi truy nhập vào các tài nguyên của 1 tài khoản nhưng không thể xem các mã ủy quyền
1 tháng
userinfo
Truy nhập để đăng nhập tên, id và sử dụng các khả năng của user
1 tháng
Mã ủy quyền chỉ được tạo khi đã cài đặt giao diện dòng lệnh Client Tools
SSH Keys
OpenShift Online sử dụng gia thức mạng Secure Shell (SSH) để xác nhận thông tin tài khoản cho OpenShift Online Server để đảm bảo sự giao tiếp. Nó hỗ trợ cả RSA và DSA keys cho SSH.
Xác nhận thành công khi khóa công khai SSH trên máy của user phù hợp với khóa công khai đã được upload lên OpenShift Online Server. Khi mà giao diện dòng lệnh được cấu hình nó sẽ ngầm tạo một cặp SSH keys mặc định .ssh trong thư mục home của user.
Các SSH keys được hỗ trợ bởi OpenShift Online:
Tên miền (domains)
Một mẫu tên miền là một phần của địa chỉ URL của ứng dụng, nó tạo ra tính độc nhất của tài khoản. Cú pháp cho một địa chỉ URL của ứng dụng là: application-domain.example. com. Mỗi người sử dụng được hỗ trợ một tên miền nhưng user có thể tạo nhiều ứng dụng trong tên miền đó. Chú ý rằng tê n miền phải khởi tạo trước ứng dụng.
Một domain bao gồm tối đa 16 kí tự chữ cái hoặc chữ số, không bao gồm dấu cách và các kí tự biểu tượng.
Ví dụ về domain của một application:
Cartridges
Cartridges là các thành phần của ứng dụng trên OpenShift Online, chứa các mã ứng dụng để cung cấp các chức năng cần thiết để chạy ứng dụng. Cartridges sẵn có có hỗ trợ nhiều loại ngôn ngữ lập trình, cơ dở dữ liệu, các dịch vụ giám sát và quản lý.
Thêm một cartidge cho một ứng dụng cung cấp khả năng mong muốn mà không cần phải quản lý hoặc cập nhật những tính năng kèm theo. Khi được thêm vào ứng dụng, một cartridge được triển khai đến một hoặc nhiều gears dựa theo yêu cầu của ứng dụng.
Một ứng dụng yêu cầu ít nhất một web framework cartridge, các web framework cartridges được hỗ trợ là:
Các loại cartridges tiện ích khác:
Add-on cartridges
Mô tả
Database
Cung cấp cho ứng dụng một trong các loại database back ends. VD: MySQL hay PostgreSQL
Database management
Cung cấp các chức năng để quản lý database của ứng dụng sử dụng phần mềm của bên thứ ba. VD: HAProxy
Monitoring and management
Cung cấp một loạt các chức năng quản lý và giám sát ứng dụng. VD: Cron task schedule, the Jenkins client
Các loại database và khả năng mở rộng hay không của chúng:
Các loại Management Database Cartridges và khả năng mở rộng scalable của chúng:
Application
Khi một ứng dụng mới được khởi tạo, một URL với tên của ứng dụng và tên miền domain sẽ được đăng kí trong DNS. Một copy của code ứng dụng sẽ được kiểm tra trong một thư mục có tên giống như tên ứng dụng. Chú ý rằng các loại ứng dụng khác nhau yêu cầu các cấu trúc thư mục khác nhau. Các thành phần của ứng dụng được chạy trên các gears:
Các thành phần cấu tạo nên một ứng dụng:
Components
Mô tả
Domain
Domain cung cấp một định danh nhóm duy nhất cho tất cả các ứng dụng của một người dùng xác định. Một domain không trực tiếp liên hệ với DNS, thay vào đó nó được nối vào tên ứng dụng để tạo URL cho ứng dụng theo dạng:
Application name
Tên của ứng dụng được đặt bởi user.
Alias
Tên DNS có thể được cung cấp cho ứng dụng bởi việc đăng kí một bí danh (alias) với OpenShift Online và chỉ mục DNS cho OpenShift Online servers.
Git repository
Một Git repository được sử dụng để thay đổi code ứng dụng cục bộ. Sau khi thay đổi code, lệnh git push sẽ cần để triển khai code đã sửa.
Vòng đời của một ứng dụng:
Process
Mô tả
Code (lập trình)
Phát triển ứng dụng với các ngôn ngữ lập trình và công cụ cần thiết. Tiếp tục đẩy các code ứng dụng đến nguồn điều khiển ứng dụng từ xa là Git repository.
Build (xây dựng)
OpenShift Online hỗ trợ nhiều cơ chế để build ứng dụng. Nếu là một ứng dụng đơn giản, một máy chủ cá nhân hoặc nội bộ tích hợp Jenkins tiếp tục build hệ thống.
Deploy (triển khai)
Mọi ứng dụng đều bao gồm các cartridges mà đơn giản hóa bảo trì và cấu hình server. OpenShift Online hỗ trợ đa dạng các kỹ thuật để cung cấp những dịch vụ được yêu cầu một cách tự động.
Manage (quản lý)
OpenShift Online cho phép theo dõi thời gian thực, gỡ lỗi–debugging và điều chỉnh ứng dụng. Ứng dụng được mở rộng tự động dựa theo lưu lượng web.
Các ứng dụng có thể mở rộng (scalable) và không thể mở rộng (non-scalable)
Các ứng dụng có thể mở rộng và cả không thể mở rộng. Một ứng dụng là không thể mở rộng chỉ khi tiêu thụ một trong các giới hạn mặc định của các gears được trao. Mặt khác, ứng dụng có thể mở rộng tiêu tốn 2 gears có sẵn, một là cho mức sẵn sàng ủy quyền cao high-availability proxy (HAProxy) và một là cho ứng dụng thực tế (actual application). Khi mà MySQL được thêm vào ứng dụng, nó được cài đặt là một gear.
Điểm mạnh của các ứng dụng mở rộng được là nó tự động cấp pháp tài nguyên dựa trên yêu cầu. OpenShift Online giám sát các yêu cầu tài nguyên và tự động cấp phát tài nguyên tương ứng. Một ứng dụng có thể tự động mở rộng hoặc bởi chính người dùng. Một ứng dụng mới khởi tạo mặc định là có thể mở rộng dựa theo số yêu cầu. Tuy nhiên, user có thể điều chỉnh số gears tối thiểu hay tối đa được sử dụng bởi một ứng dụng trong giới hạn cho phép.
Làm thế nào để mở rộng ứng dụng?
Mỗi ứng dụng được tạo trên OpenShift Online phải có ít nhất một web framework cartridge (VD: PHP cartridge). Khi một ứng dụng được mở rộng, cartridge thứ 2, HAProxy, sẽ được thêm vào ứng dụng. HAProxy sẽ lắng nghe tất cả yêu cầu cho ứng dụng đến web và chuyển chúng đến web cartridges.
Khi số yêu cầu của trang web (web page request) đến ứng dụng tăng, HAProxy báo cho OpenShift Online khi mà phát hiện quá tải yêu cầu. Một bản sao của web cartridge sẽ được tạo trên một gear riêng biệt. Trong mỗi trường hợp như vậy, web cartridge đã được mở rộng 2 lần. Tiến trình này được lặp lại khi mà có thêm yêu cầu web được phát hiện bởi HAProxy và mỗi lần như vậy một bản sao của lại được tạo trên một gear riêng biệt và số gear tăng 1.
Nếu tỷ lệ tổng số gear của một ứng dụng với số HAProxy gears lớn hơn 2, định tuyến chức năng của HAProxy sẽ bị vô hiệu hóa để web cartridges được sắp xếp thứ tự trên đó. Nếu tỷ lệ lại hạ xuống bằng 2 hoặc thấp hơn, HAProxy lại được kích hoạt lại.
Xây dựng ứng dụng web bán hàng trên OpenShift
1. Đăng ký Openshift
Đầu tiên chúng ta tiến hành tải 2 phần mềm này về
WinSCP : Là phần mềm kết nối với máy chủ ảo để up dữ liệu.
PuTTY Key Generator : Phần mềm khởi tạo key bảo mật.
Vào trang web www.openshift.redhat.com để đăng ký 1 tài khoản mới – chọn Sign up.
Nhập đẩy đủ thông tin và nhấn Sign Up để hoàn thành việc đăng ký.
Sau khi đăng ký xong, bạn vào hộp thư email đăng ký để tiến hành lấy địa chỉ kích hoạt tài khoản.
2. Đăng nhập và tạo tên miền trên openshit
Tiến hành đăng nhập với tài khoản vừa được tạo.
Chọn create your first application now.
Tiếp theo ta chọn phần PHP 5.3
Trong phần Public URL bạn điền địa chỉ host sẽ đưa lên trang web ( trên openshift thì nó sẽ có đuôi đằng sau là rhcloud.com.
Chọn create application.
Chọn Not now, continue.
Kích chọn vào MySQL 5.5
Chọn vào Add Catridge
Bạn cần ghi nhớ các thông số như là Root User, Root Password, Database. Những cái này ta sẽ sử dụng để đăng nhập vào phần winscript.
Chọn Add phpMyadmin 4.0 để sử dụng cơ sở dữ liệu trên trang web.
Tạo public key và private key
Tiếp theo chúng ta sẽ sử dụng phần mềm puttygen.exe. Để tạo key public và private key.
Chọn Generator và tiến hành rê chuột trên màn hình để lấy key public.
Tiến hành lấy key public trên phần mềm. Và nhớ chọn phần save private key để lưu key private.
Thêm public key vào openshit
Chọn phân Setting và chúng ta sẽ paste public key vào trong phần paste contents of your public key.
Trong phần application chúng ta nhớ lưu địa chỉ Source Code
Như vậy đã xong phần thứ nhất.
Sử dụng winscript để tải nội dung php lên trang web
Và bây giờ chúng ta sẽ dùng winscript để tiến hành tải nội dung php lên trang web.
Ví dụ ta có Source Code là: ssh://536ee08e500446ff8c0000c3@php-thangpro1993.rhcloud.com/~/git/php.git/
Trên giao diện winscp thì phần Host name là: 536ee08e500446ff8c0000c3@php-thangpro1993.rhcloud.com phần User name là: 536ee08e500446ff8c0000c3.
Chọn Port number là cổng 22. Lấy private key mà đợt trước ta lưu.
Chọn Login để đăng nhập vào host
Sẽ xuất hiện giao diện như sau.
Trong phần bên phải bạn chọn app-root, chọn phần repo.
Bạn tiến hành xóa file index.php và copy đoạn code bán hàng vào trong phần này.
Winscript sẽ tự động upload code của bạn lên trang web.
Nhưng lưu ý trong hàm mysqli_connect thì ta phải thay localhost bằng địa chỉ ip của trang web. Muốn lấy được địa chỉ của trang web. Thì ta sẽ vào địa chỉ của host và thêm phpmyadmin để vào trang quản lý databse.
Ví dụ như trên thì ta có địa chỉ ip là 127.12.83.2.
Trong hàm mysqli_connect ta thay các chỉ số: user là Root User, pass là Root Password, và database là Database name mà ta đã lưu từ trước. ( Trong chương trình này thì ta sẽ thay đổi ở 3 file là includes/ mysqli_connect.php, admin/edit_user2.php, admin/delete_user.php.
Trong phần includes/functions.php chúng ta phải thay đường dẫn tuyệt đối là địa chỉ của host mà ta đã tạo.
Cuối cùng ta vào trang quản lý database. Nhập Tên Người dùng là Root User và Mật khẩu là Root Password. Sau đó tiến hành thêm cơ sở dữ liệu vào là đã hoàn thành ( tên của database là tên Database name mà ta đã lưu trước đó).
Như vậy là ta đã upload thành công trang web lên host của openshift.
Các file đính kèm theo tài liệu này:
- bao_cao_project2_8629.docx