Contents
1 | P a g e
Phần 1: Giới thiệu về Cloud Computing
I. Các khái niệm cơ bản.
1. Đặ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.
2. Khái niệm.
a. 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ử
3 | P a g e
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
4 | P a g e
đượ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ọ.
Ư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?
7 | P a g e
Phần 2: 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.
8 | P a g e
I. 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
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.
2. 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
III. Mã ủy quyền (Authorization Tokens)
1. 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
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
13 | P a g e
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:
VI. 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
14 | P a g e
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: http://app_name-domain.example.com.
Application name Tên của ứng dụng được đặt bởi user.
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.
4. 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.
15 | P a g e
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.
16 | P a g e
Phần 3: 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ề
1. WinSCP : Là phần mềm kết nối với máy chủ ảo để up dữ liệu.
2. 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ý.
23 | P a g e
Như vậy đã xong phần thứ nhất.
5. 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.
24 | P a g e
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.
25 | P a g e