Khi chúng ta triển khai một ứng dụng trên Bluemix, chúng ta phải cấu hình Bluemix với đầy đủ thông tin để hỗ trợ các ứng dụng.
Đối với một ứng dụng di động, Bluemix có một thành phần đại diện cho các ứng dụng di động back end, chẳng hạn như các dịch vụ được sử dụng cho các ứng dụng di động để “giao tiếp” với máy chủ.
Đối với một ứng dụng web, chúng ta phải đảm bảo đúng rằng các thông tin về Runtime và Framework được truyền tới Bluemix, từ đó nó có thể thiết lập môi trường thực hiện thích hợp để chạy các ứng dụng.
Mỗi môi trường thực hiện, kể cả cả di động và web, được cô lập với môi trường thực thi của các ứng dụng khác. Các môi trường thực hiện được cô lập ngay cả khi các ứng dụng này trên cùng một máy vật lý.
Khi chúng ta tạo ra một ứng dụng và triển khai nó trên Bluemix, môi trường Bluemix sẽ xác định một máy ảo phù hợp (VM) mà ứng dụng hoặc các thành phần mà
các ứng dụng hiện đang được gửi. Đối với một ứng dụng di động, một dự án back end được tạo ra trên Bluemix. Bất kỳ code cho ứng dụng di động đang chạy trên đám mây cuối cùng cũng chạy trên môi trường Bluemix. Đối với một ứng dụng web, code đang chạy trên đám mây chính là bản thân của ứng dụng mà các nhà phát triển triển khai đến Bluemix. Việc xác định các máy ảo dựa trên một số yếu tố, bao gồm:
- Đã tải sẵn trên máy
- Các Runtime hoặc các Framework đã được hỗ trợ bởi VM đó
Sau khi một máy ảo được lựa chọn, người quản lý ứng dụng trên mỗi máy chủ cài đặt các framework và runtime thích hợp cho ứng dụng đó, sau đó ứng dụng sẽ được triển khai trên Framework đó. Khi việc triển khai đã hoàn thành, các thành phần của ứng dụng được bắt đầu.
Hình 2.3 [12] thể hiện cấu trúc của một máy ảo, có đa ứng dụng được triển khai:
Hình 2.3. Thiết kế của máy ảo
Ở mỗi máy ảo, người quản lý ứng dụng giao tiếp với phần còn lại của cơ sở hạ tầng Bluemix, và quản lý các ứng dụng được triển khai đến máy ảo này. Mỗi máy ảo có các container riêng biệt và các ứng dụng được bảo vệ. Trong mỗi container, Bluemix cài đặt framework và runtime phù hợp với yêu cầu của từng ứng dụng.
Khi ứng dụng được triển khai, nếu nó là giao diện web (chẳng hạn như một ứng dụng web Java), hoặc các dịch vụ dựa trên REST khác (chẳng hạn như dịch vụ điện thoại di động tiếp xúc công khai cho các ứng dụng điện thoại di động), người sử dụng các ứng dụng có thể giao tiếp với nó bằng cách sử dụng yêu cầu HTTP bình thường.
Mỗi ứng dụng có thể có một hoặc nhiều URL liên kết với nó, nhưng tất cả đều phải trỏ đến điểm cuối Bluemix. Khi một yêu cầu được gửi đến, Bluemix xem xét các yêu cầu này, xác định ứng dụng nào được ưu tiên, và sau đó chọn một trong các trường hợp của các ứng dụng để phản hồi.