Nhiệm vụ và nội dung: - Nghiên cứu điện toán đám mây và kiến trúc chương trình SCADA - Thiết kế kiến trúc và phát triển các thành phần trong chương trình SCADA dựa trên điện toán đám mấ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
MAI KHẮC HIỆP
NGHIÊN CỨU VÀ PHÁT TRIỂN SCADA DỰA
TRÊN ĐIỆN TOÁN ĐÁM MÂY
Chuyên ngành: Tự Động Hóa
Mã số: 60.52.60
LUẬN VĂN THẠC SĨ
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG –HCM
Cán bộ hướng dẫn khoa học: TS TRƯƠNG ĐÌNH CHÂU
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1 PGS.TS DƯƠNG HOÀI NGHĨA
Trang 3
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: MAI KHẮC HIỆP Phái : Nam
Ngày, tháng, năm sinh: 20/8/1989 Nơi sinh: Tây Ninh Chuyên ngành: Tự động hóa MSHV: 12153173
I Tên đề tài:
NGHIÊN CỨU VÀ PHÁT TRIỂN SCADA DỰA TRÊN ĐIỆN TOÁN ĐÁM MÂY
II Nhiệm vụ và nội dung:
- Nghiên cứu điện toán đám mây và kiến trúc chương trình SCADA
- Thiết kế kiến trúc và phát triển các thành phần trong chương trình SCADA dựa trên điện toán đám mấy, triển khai lên cloud Window Azure
- Xây dựng hệ thống giám sát tín hiệu giao thông bằng cloud-based SCADA
III Ngày giao nhiệm vụ : 18/08/2014
IV Ngày hoàn thành nhiệm vụ: 10/05/2015
V Cán bộ hướng dẫn : Tiến Sĩ Trương Đình Châu
CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN QL CHUYÊN NGÀNH
KHOA ĐIỆN ĐIỆN TỬ TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 4Tôi xin gửi đến thầy TS Trương Đình Châu lời biết ơn sâu sắc vì đã dành thời gian quý báu để hướng dẫn, tạo điều kiện thuận lợi cũng như cho tôi những lời khuyên bổ ích để hoàn thành luận văn này
Trong suốt thời gian học tập tại trường đại học Bách Khoa – ĐHQG Tp HCM, tôi đã được các Thầy Cô khoa Điện – Điện tử, và đặc biệt là các Thầy Cô bộ môn Điều khiển tự động giảng dạy tận tình, cho tôi nhiều kiến thức mới bổ ích Xin gửi đến các Thầy, Cô và các bạn lời cảm ơn chân thành nhất
Cuối cùng, tôi xin cám ơn Cha Mẹ, các anh chị em trong gia đình đã động viên và tạo điều kiện giúp tôi vượt qua những khó khăn trong suốt quá trình học tập và nghiên cứu vừa qua
Tp Hồ Chí Minh, ngày 1 tháng 7 năm 2015
Mai Khắc Hiệp
Trang 5Điện toán đám mây (cloud computing) phát triển ngày càng mạnh mẽ, phổ biến và rộng rãi Nhu cầu giám sát, quản lý các thông tin quan trọng thông qua internet của con người ngày càng cao Đặc biệt là trong lĩnh vực công nghiệp, khi mà các cơ sở sản xuất nằm ở các vị trí địa lý rất xa nhau, người quản lý vận hành mong muốn có thể giám sát, điều khiển hệ thống từ xa thông qua internet bằng các thiết bị hiện đại như tablet, smart phone Các thế hệ SCADA trước đây rất cồng kềnh về phần cứng lẫn phần mềm, gây nhiều khó khăn trong việc bảo trì, nâng cấp, mở rộng hệ thống, khả năng kết nối, truy cập từ xa để giám sát và điều khiển hệ thống cũng rất giới hạn Việc tích hợp hệ thống SCADA lên cloud sẽ giải quyết các vấn đề trên
Luận văn tập trung nghiên cứu vào các kỹ thuật trong cloud computing, các đặc tính kỹ thuật của hệ thống SCADA, các phương pháp, mô hình để tích hợp SCADA lên cloud và đưa ra một kiến trúc tổng quan cho cloud-based SCADA
Luận văn sử dụng nên tảng điện toán đám mây Window Azure (do Microsoft cung cấp)
và ASP.Net WebForm để thực hiện hệ thống cloud-based SCADA giám sát hoạt động của các chốt tín hiệu giao thông trên địa bàn Thành phố Hồ Chí Minh
Cloud computing (cloud computing) grows increasingly and widely The need to monitor and manage critical information via the Internet is increasing Especially in the industrial zone, where the location of plants is very far from each other, the operator or manager can monitor and control the system remotely via the Internet using the modern devices like tablet, smart phone
Previous SCADA generations are very cumbersome in both hardware and software It’s hard to maintain, upgrade and expand the system The connectivity and the capable of remote access to monitoring and control system are also very limited The integration of SCADA systems on the cloud will solve these problems
This thesis use Azure Window (provided by Microsoft) as the cloud platform and ASP.Net WebForm to implement the cloud-based SCADA system to monitor key activities of traffic signals in Ho Chi Minh City
Trang 6Tôi xin cam kết các nội dung lý thuyết trình bày trong luận văn này là do tôi tham khảo các tài liệu và biên soạn lại, tất cả các kết quả đều do chính bản thân tôi tự làm ra, hoàn toàn không phải sao chép của từ bất kỳ một tài liệu hoặc công trình nghiên cứu nào khác Nếu tôi không thực hiện đúng các cam kết nêu trên, tôi xin chịu hoàn toàn trách nhiệm trước kỷ luật của nhà trường cũng như pháp luật Nhà nước
Mai Khắc Hiệp
Trang 7MỤC LỤC
CHƯƠNG 1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 12
1.1 Tổng quan về tình hình nghiên cứu 12
1.2 Phạm vi nghiên cứu của luận văn 14
1.3 Sản phẩm của luận văn 14
CHƯƠNG 2 ĐIỆN TOÁN ĐÁM MÂY 15
2.1 Ảo hóa (Virtualization) 15
2.2 Điện toán đám mây 20
2.3 Window Azure 29
2.3.1 Các mô hình điện toán trên Window Azure 30
2.3.2 Virual Machine: 30
2.3.3 Website: 32
2.3.4 Cloud service: 32
2.3.5 Lưu trữ trong Azure (Blob, table, queue, SQL Azure) 34
2.3.6 Network: 37
2.3.7 Message 41
CHƯƠNG 3 SCADA 45
3.1 Kiến trúc hệ thống quản lý giám sát sản xuất: 45
3.2 Tổng quan các chức năng chính của SCADA: 45
3.3 Các mô hình kết nối trong SCADA: 46
3.4 Các thành phần chính trong phần mềm SCADA: 52
CHƯƠNG 4 THIẾT KẾ SCADA DỰA TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY WINDOW AZURE 53
4.1 Xây dựng SCADA dựa trên nền tảng điện toán đám mây Window Azure 53
4.2 Thiết kế Front-End Server 54
4.3 Thiết kế Scheduler 62
4.4 Thiết kế Realtime Database 67
4.5 Thiết kế Runtime Manager 71
4.6 Thiết kế Web HMI Server/Client 72
CHƯƠNG 5 XÂY DỰNG HỆ THỐNG SCADA TÍN HIỆU GIAO THÔNG DỰA TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY 78
5.1 Tổng quan hệ thống 78
Trang 85.3 Kết luận và đánh giá 81
5.4 Hướng phát triển đề tài 81
TÀI LIỆU THAM KHẢO 82
PHẦN LÝ LỊCH TRÍCH NGANG 83
QUÁ TRÌNH ĐÀO TẠO 83
QUÁ TRÌNH CÔNG TÁC 83
Trang 9DANH MỤC HÌNH ẢNH
Hình 2.1 Hệ thống máy chủ khi chưa có ảo hóa Hình 2.2 Hệ thống máy chủ khi sử dụng ảo hóa Hình 2.3 Giải pháp cho hệ thống dự phòng bằng công nghệ ảo hóa Hình 2.4 Các mô hình dịch vụ
Hình 2.5 Mô hình các thành phần hệ thống trong cloud Hình 2.6 Mô hình và các dịch vụ của Cloud Computing Hình 2.7 Mô hình triển khai cho Cloud-based SCADA Hình 2.8 Kết nối local với public cloud
Hình 2.9 Mô hình của VM Hình 2.10 Mô hình điện toán website Hình 2.11 Mô hình cloud service Hình 2.12 Mô hình blob
Hình 2.13 Mô hình table service Hình 2.14 Mô hình của queue Hình 2.15 SQL Azure
Hình 2.16 Mở rộng network bằng virtual network Hình 2.17 Cách lựa chọn virtual network
Hình 2.18 Sử dụng Express Route để mở rộng network Hình 2.19 Traffic Manager
Hình 2.20 Queue Hình 2.21 Service bus relay Hình 2.22 Survice bus topics/subcriptions Hình 3.1 Kiến trúc hệ thống
Hình 3.2 Hệ thống Stand-alone Hình 3.3 Mô hình phân tán Hình 3.4 Mô hình remote web HMI client Hình 3.5 Mô hình host to host
Trang 10Hình 3.6 Mô hình phân tán Hình 3.7 Các thành phần trong phần mềm SCADA Hình 4.1 Kiến trúc cloud-based SCADA
Hình 4.1 Triển khai front-end server tại local Hình 4.2 Triển khai front-end server trên cloud Hình 4.3 Mô hình kết nối từ cloud đến on-premise Hình 4.4 Các module phần mềm trong Front-End Server Hình 4.5 OPC Item
Hình 4.6 OPC Group Hình 4.7 OPC Client Hình 4.8 OPC Client Hình 4.9 ITLCDriver Interface Hình 4.10 Proxy cho OPC Lib
Hình 4.11 Proxy dành cho VDK Driver Hình 4.12 Kiến trúc scheduler
Hình 4.13 Kiến trúc ghi dữ liệu xuống cho tag Hình 4.14 IOTag
Hình 4.15 Sub Task Hình 4.16 Task Hình 4.17 Quản lý front-end server Hình 4.18 Scheduler quản lý Task Collection, Front-End, và Service Bus Hình 4.19 Xây dựng blob access service, nằm trong BlobAccess.cs Hình 4.20 Giao tiếp với SQL Azure thông qua service
Hình 4.21 Cơ sở dữ liệu Hình 4.22 Tạo/chỉnh sửa/xóa/lấy các đối tượng device từ database trong file DBAccess.cs Hình 4.23 TableAccess.cs
Hình 4.24 Sơ đồ vận hành của runtime manager Hình 4.25 Nguyên lý của signalR
Hình 4.26 Thiết kế Hub
Trang 11Hình 4.27 Hub Class Hình 4.28 Broadcaster Hình 4.29 Giải quyết vấn đề 1 bằng service bus Hình 4.30 Giải quyết vấn đề 2 bằng service bus Hình 5.1 Mô hình kết nối của hệ thống
Hình 5.2 Giao diện quản lý tổng quát Hình 5.3 Giao diện giám sát thông tin tủ Hình 5.4 Giao diện giám sát thông tin tủ
Trang 12CHƯƠNG 1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Nhu cầu về sản phẩm phục vụ đời sống hàng ngày của con người trong thời kỳ hiện đại ngày càng tăng về số lượng lẫn chất lượng, đa dạng và phong phú Các đơn vị sản xuất một mặt cải tiến hệ thống sản xuất trong nội bộ để tăng chất lượng sản phẩm, mặt khác
mở rộng sản xuất thành nhiều cơ sở khác nhau nhằm tăng sản lượng Các hệ thống công nghiệp phát triển ngày càng phức tạp và biến đổi hàng ngày nhằm đáp ứng nhu cầu người dùng Các thế hệ SCADA hiện tại gặp nhiều khó khăn trong việc bảo trì nâng cấp
và mở rộng hệ thống Nó đòi hỏi phải chỉnh sửa cả phần cứng lẫn phần mềm, cài đặt phức tạp và chi phí cao
Với sự phát triển như vũ bão của công nghệ, các thiết bị di động như laptop, tablet, smart phone đóng một vài trò quan trọng trong đời sống hàng ngày Con người có thể truy cập quan sát các thông tin quan trọng thông qua internet với các thiết bị này Thế hệ SCADA hiện tại (hệ thống phân tán) cho phép giám sát và điều khiển các trạm khác nhau, không phụ thuộc ví trị địa lý Tuy nhiên, nó chưa đưa ra các dịch vụ chuẩn chung để các thiết
bị di động có thể truy cập vào hệ thống Mỗi hãng có một tiêu chuẩn cho riêng mình, gây khó khăn trong việc tích hợp hệ thống của nhiều hãng lại với nhau
Điện toán đám mây ra đời nhằm giải quyết các vấn đề về phần cứng, phần mềm và đa nền tảng khi có nhu cầu về bảo trì, nâng cấp với chi phí thấp, cài đặt nhanh chóng và dễ dàng mở rộng Việc tích hợp SCADA lên điện toán đám mây là điều cần thiết và quan trọng Cloud-based SCADA là bước phát triển tiếp theo của các thế hệ SCADA
Luận văn tập trung nghiên cứu vào các kỹ thuật trong cloud computing, các đặc tính kỹ thuật của hệ thống SCADA, các phương pháp, mô hình để tích hợp SCADA lên cloud và đưa ra một kiến trúc tổng quan cho cloud-based SCADA
Luận văn sử dụng nên tảng điện toán đám mây Window Azure (do Microsoft cung cấp)
và ASP.Net WebForm để thực hiện hệ thống cloud-based SCADA giám sát hoạt động của các chốt tín hiệu giao thông trên địa bàn Thành phố Hồ Chí Minh
1.1.Tổng quan về tình hình nghiên cứu
Cloud computing là thuật ngữ được ra đời từ giữa năm 2007, nó bắt nguồn từ ứng dụng điện toán lưới (grid computing) trong thập niên 1980, tiếp theo là điện toán theo nhu cầu (utility computing) và phần mềm dịch vụ [1] Điện toán đám mây được nhiều nhà phát triển và cung cấp lớn, trong đó có Amazon, Google, Microsoft
Trang 13Cloud computing dựa trên ý tưởng các khối lượng công việc của người dùng sẽ được chuyển đến các tài nguyên điện toán xử lý (người dùng hoàn toàn không biết thông tin
gì về các tài nguyên này như vị trí địa lý, thiết bị vật lý, v.v ) và chuyển kết quả lại cho người dùng Cloud computing có các đặc trưng sau: [2]
Ba mô hình dịch vụ: Cơ sở hạ tầng như một dịch vụ (IaaS - Infacstructure as a
Service), nền tảng như một dịch vụ (PaaS - Platfrom as a Service), phần mềm như một dịch vụ (SaaS - Software as a Service);
Bốn mô hình triển khai: Private Cloud, Public Cloud, Community Cloud và
Hybrid Cloud
Năm đặc tính kỹ thuật: khả năng co giãn (rapid elasticity), dịch vụ theo nhu
cầu (on-demand self-service), truy xuất diện rộng (broad network access), dịch
vụ được đo lường (measured service), dùng chung tài nguyên và điều tiết dịch
vụ (resource pooling)
SCADA (Supervisory Control and Data Acquisition) là một hệ thống điều khiển giám sát
và thu thập dữ liệu, nhằm hỗ trợ con người trong quá trình giám sát và điều khiển từ xa
hệ thống tự động hóa SCADA đã trải qua ba thế hệ (monolithic, distributed, networked)
và đang phát triển ở thế hệ thứ tư (Internet of things) dựa trên nền tảng điện toán đám mây [3]
Hệ thống SCADA gồm các hệ thống con [4] được chia thành nhiều lớp như lớp thiết bị trường (bao gồm cảm biến, thiết bị chấp hành), lớp thiết bị điều khiển (gồm các bộ điều khiển), lớp giám sát điều khiển (phần mềm thu thập dữ liệu, phần mềm điều khiển quá trình) Lớp giám sát điều khiển cần phải có các tính năng cơ bản sau:
Hỗ trợ kết nối, giao tiếp với nhiều loại bộ điều khiển khác nhau
Hỗ trợ các tiêu chuẩn, giao thức kết nối phổ biến như Modbus, Profibus, CAN, v.v
Thu thập dữ liệu
Lưu trữ cơ sở dữ liệu các cài đặt người dùng và các trạng thái của hệ thống khi chạy runtime
Các cảnh báo
Các biểu đồ, trạng thái của hệ thống
Các báo cáo về tình trạng hoạt động, lịch sử hoạt động
Giao diện người dùng cho phép cài đặt và hiển thị các trạng thái hoạt động của
hệ thống khi chạy runtime
Trang 14Các vấn đề cần quan tâm khi triển khai SCADA lên điện toán đám mây đó là tính bảo mật, hiệu suất hoạt động, độ tin cậy dữ liệu [5][6][7] Có rất nhiều giải pháp đã được đưa
ra nhằm giải quyết ba vấn đề trên Tuy nhiên, các nguyên nhân dẫn đến các vấn đề trên phần lớn nằm ở cơ sở hạ tầng mạng Khi kết nối mạng chậm (ngẽn mạng hay băng thông thấp) sẽ dẫn đến việc xử lý dữ liệu bị trễ, dẫn đến sự mất thống nhất trong hệ thống (giá trị của các biến dữ liệu khác nhau giữa máy chủ và máy khách), hiệu suất hoạt động giảm
và dữ liệu không còn tin cậy Về phương pháp bảo mật dữ liệu trên cloud, [9] đưa ra một phương pháp bảo mật theo nhiều lớp khác nhau
Trong khuôn khổ luận văn trình bày kiến trúc tổng quan cloud-based SCADA dưới dạng SaaS và được triển khai theo mô hình public cloud, đồng thời đưa ra các thiết kế chi tiết của các thành phần trong dịch vụ
1.2.Phạm vi nghiên cứu của luận văn
Nghiên cứu điện toán đám mây và kiến trúc chương trình SCADA
Thiết kế kiến trúc và phát triển các thành phần trong chương trình SCADA dựa trên điện toán đám mây, triển khai lên cloud Window Azure
Xây dựng hệ thống giám sát tín hiệu giao thông bằng Cloud-Based SCADA
1.3.Sản phẩm của luận văn
Giải thuật, mô hình và chương trình Cloud-Based SCADA dựa trên Window Azure
Hệ thống giám sát và điều khiển tín hiệu giao thông trên địa bàn Thành phố Hồ Chí Minh
Trang 15CHƯƠNG 2 ĐIỆN TOÁN ĐÁM MÂY
Để xây dựng hệ thống SCADA dựa trên điện toán đám mây, trước hết ta cần hiểu rõ bản chất của điện toán đám mây là gì, giá trị cốt lõi cùng với các chức năng mà nó hỗ trợ
Điện toán đám mây gồm nhiều thành phần chức năng khác nhau, bỗ trợ cho nhau để trở thành một hệ thống hoàn chỉnh Trong đó, ảo hóa là thành phần cốt lõi Ảo hóa giúp hệ điều hành không còn phụ thuộc vào kiến trúc phần cứng mà nó chạy trên đó
Ví dụ, hệ điều hành window có thể chạy trên các kiến trúc x86, x64, Arm mà không gặp bất cứ vấn đề gì Trong khi đó, điện toán đám mây giúp các ứng dụng, phần mềm không còn phụ thuộc vào hệ hành mà nó chạy trên đó Ví dụ, một ứng dụng có thể chạy trên nhiều hệ điều hành khác nhau như Window, Linux, Mac OS, Android, IOS
mà không cần phải thay đổi gì cả
2.1 Ảo hóa (Virtualization)
Để nắm rõ ảo hóa là gì, các ưu điểm nhược điểm của nó, trước hết ta cần phân biệt và hiểu rõ các khái niệm sau:
Phần cứng (Hardware): là các thiết bị, linh kiện điện tử, vật lý hiện hữu phục
vụ cho nhu cầu tính toán, ví dụ như CPU, RAM, ổ cứng, mainboard, v.v
Hệ điều hành (OS - Operating System): là phần mềm chạy trên phần cứng, dùng để điều hành, quản lý các thiết bị phần cứng và các tài nguyên trên máy tính Hệ điều hành đóng vai trò trung gian trong việc giao tiếp giữa người dùng
và phần cứng máy tính, cung cấp một môi trường cho phép người dùng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng
Nền tảng (Platform): bao gồm hệ điều hành và phần cứng mà nó chạy trên đó
Ảo hóa là sự trừu tượng hóa phần cứng thành phần mềm, tách hệ điều hành (OS) ra khỏi phần cứng (hardware), làm nó không còn phụ thuộc vào phần cứng Trong khi
đó, điện toán đám mây tách là nhằm tách ứng dụng phần mềm ra khỏi platform Ảo hóa là một thành phần nằm trong điện toán đám mây
Phương pháp ảo hóa cho các máy chủ
Các trung tâm dữ liệu bao gồm nhiều máy chủ (server) hoạt động Mỗi server sẽ được cài đặt ban đầu hệ điều hành, phần mềm trên một phần cứng cố định Khi các server gặp sự cố, không hoạt động được thì hệ thống tê liệt, làm gián đoạn hoạt động sản xuất Để giải quyết vấn đề này, các server thường được lắp đặt thêm các server dự phòng Khi server chính gặp sự cố, các server dự phòng sẽ đảm nhiệm tiếp tục công
Trang 16việc trong khi chờ đợi server chính khắc phục sự cố Đối với những hệ thống quan trọng, một server chính sẽ có thêm hai đến ba (hoặc nhiều hơn) các server dự phòng Phương pháp này chi phí cao, hệ thống cồng kềnh, cài đặt, bảo trì, nâng cấp, mở rộng cực kỳ khó khăn, gần như phải thao tác cài đặt trên cả phần cứng, hệ điều hành, phần mềm lại từ đầu
Hình 2.1 Hệ thống máy chủ khi chưa có ảo hóa
Trang 17Với phương pháp ảo hóa, nhiều server có thể chạy song song trên cùng một hardware Khi server gặp sự cố về phần cứng, ta chỉ việc đơn giản thay thế phần cứng mà không cần phải cài đặt gì lại cho server Khi hệ điều hành server gặp sự cố, chỉ đơn giản cho chạy một ảnh khác của server này Việc bảo trì nâng cấp mở rộng cực kỳ đơn giản, nhanh chóng, tiện lợi và chi phí thấp
Hình 2.2 Hệ thống máy chủ khi sử dụng ảo hóa
Hypervisor là thành phần chính của ảo hóa Nó dùng để ảo hóa các thành phần phần
cứng vật lý thành giao diện phần mềm Nó đóng vai trò trung gian giữa phần cứng
và hệ điều hành Mọi yêu cầu từ hệ điều hành xuống phần cứng phải thông qua hypervisor Ngược lại, các phản hồi từ phần cứng phải đi qua hypervisor rồi mới đến các hệ điều hành Dựa trên nền tảng của hypervisor, nhiều loại hệ điều hành với môi
Trang 18trường của nó có thể chạy song song với nhau Có hai loại hypervisor: native hypervisor và hosted hypervisor
Native hypervisor: Là loại hypervisor được cài đặt trực tiếp lên máy chủ vật lý (không thông qua hệ điều hành) Tuy nhiên, ta cần thêm một máy trạm khác
để cài đặt và quản lý các OS chạy trên hypervisor này thông qua Hypervisor Management Console (HMC)
Hosted Hypervisor: đây là loại hypervisor phổ biến hơn, nó được cài đặt lên máy chủ vật lý thông qua hệ điều hành của máy đó Do đó, hosted hypervisor
có thể được sử dụng để chạy các hệ điều hành khác với hệ điều hành của máy chủ
Các hypervisor phổ biến hiện nay dùng để ảo hóa đó là Hyper-V của Microsoft và vSphere của VMWare Các phần mềm này được sử dụng rất đơn giản để có thể ảo hóa phần cứng, nó đưa ra các máy ảo (virtual machine), ta tiến hành cài đặt hệ điều hành và phần mềm cho server Các VM này được lưu trữ thành dạng các tập tin trên
ổ cứng
Giải pháp dự phòng cho máy chủ bằng công nghệ ảo hóa
Sử dụng hai máy chủ đã ảo hóa trên hai máy chủ vật lý khác nhau và chạy song song đồng thời:
Active server: máy chủ ảo hóa chạy chính các server ảo
Shadow server: máy chủ ảo hóa dự phòng
Shadow server được đồng bộ với active server theo thời gian thực Khi active server gặp sự cố, shadow server sẽ đảm nhận tiếp tục công việc của nó Khi active server khắc phục được sự cố, nó sẽ đồng bộ lại từ shadow server và đảm nhận lại việc xử lý
dữ liệu hệ thống Bởi vì hai máy chủ ảo hóa được đồng bộ theo thời gian thực nên sẽ đảm bảo được hệ thống hoạt động liên tục và thông suốt
Dựa trên ưu điểm này của ảo hóa, điện toán đám mây phát triển nó thành một trong những tính năng quan trọng của mình Trên điện toán đám mây, người dùng chỉ đơn giản cài đặt là sẽ có bao nhiêu hệ thống dự phòng cho hệ thống chính, việc cài đặt còn
lại sẽ được hệ thống cài đặt và vận hành một cách tự động
Trang 19Hình 2.3 Giải pháp cho hệ thống dự phòng bằng công nghệ ảo hóa
Các vấn đề cần quan tâm và giải pháp khi sử dụng ảo hóa cho các máy chủ
Hiệu năng: khi phân bổ tài nguyên để các chạy các server ảo song song, lượng tài nguyên vật lý sẽ cạn kiệt dần, làm giảm hiệu năng hoạt động của các server
ảo, làm chậm toàn bộ hệ thống Cần thiết phải lên kế hoạch từ đầu lượng tài nguyên và số lượng máy ảo cung cấp tối đa, nhằm tránh tình trạng trên xảy ra
Xung đột phần cứng: khi nhiều server ảo cùng truy cập vào một tài nguyên duy nhất (ví dụ card mạng) sẽ dễ gây ra tình trạng xung đột trên bus hệ thống,
có khả năng gây treo hệ thống Cần thiết phải ảo hóa các thành phần này một cách chặt chẽ, nhằm tránh xung đột
Trang 20 Tính real-time: Hệ thống chạy trên nền tảng ảo hóa sẽ thực thi chậm hơn so với chạy trên phần cứng thực sự Bởi vì nó được chạy thông qua phần mềm, rồi mới đến phần cứng Một giải pháp cho vấn đề này đó là sử dụng ảo hóa dưới
sự hổ trợ trực tiếp của phần cứng VT-x của Intel hoặc AMD-V của AMD Các công nghệ này đã được tích hợp vào các chipset của họ Các chức năng của hypervisor sẽ được tích hợp trực tiếp vào phần cứng, các mô phỏng giả lập phần cứng cũng do các chipset này thực thi Do đó, các lệnh được yêu cầu từ các máy ảo sẽ được thực thi nhanh hơn
Ảo hóa trong SCADA
Ảo hóa môi trường SCADA nhằm mục đích giảm bớt về chi phí cho phần cứng, kiến trúc và hạ tầng hệ thống, cho phép tích hợp hệ thống SCADA vào nền tảng, kiến trúc, hạ tầng hiện tại
Các hệ thống công nghiệp có thể sẽ thay đổi bất kỳ lúc nào tùy theo nhu cầu sản xuất, kinh doanh Các thay đổi này có thể là các thay đổi về vật lý như thêm motor, valve, hệ thống ống, hướng dòng chảy,… Hoặc các thay đổi về phần mềm như thêm các chức năng của SCADA: data historian, MES, ERP,… Ảo hóa cho phép thêm bớt các thành phần mà không tốn quá nhiều nổ lực, chi phí
và là giải pháp có thể đáp ứng nhanh nhất đối với các yêu cầu thay đổi này Một ví dụ khác, khi phát triển một hệ thống mới, đòi hỏi cần phải kiểm tra hệ thống trước khi vận hành Việc xây dựng môi trường phần cứng cho kiểm tra tốn nhiều chi phí, nổ lực để thực hiện và bị bỏ đi khi kiểm tra xong hệ thống
Ảo hóa cho phép xây dựng một môi trường kiểm tra tương tự trên mà không tốn nhiều chi phí và nổ lực Trong khi đó, sau khi kiểm tra, nó sẽ trả tài nguyên lại cho hệ thống sử dụng
2.2 Điện toán đám mây
Điện toán đám mây là một mô hình cho phép truy cập một cách thuận tiện từ mọi nơi đến những tài nguyên cho điện toán như mạng, máy chủ, lữu trữ, ứng dụng và dịch
vụ Nó có thể được cung cấp cho người dùng hoặc lấy lại một cách dễ dàng mà không mất nhiều thời gian công sức cho quản trị Mô hình điện toán đám mây đưa ra năm đặc tính, ba mô hình dịch vụ và bốn cách để triển khai
Đối với ảo hóa, việc cấp phát hiệu năng, tài nguyên, lưu trữ, ứng dụng, nền tảng cho các server được người dùng cài đặt và giám sát local tại máy chủ đó Điện toán đám mây nâng cao khả năng của ảo hóa, bằng cách cho phép cài đặt và giám sát từ xa thông qua internet Người dùng hoàn toàn không biết thông tin về các thành phần vật
Trang 21lý này như đặt ở đâu, ai quản lý, của hãng sản xuất nào, v.v Mặt khác, nó cung cấp việc tự động hóa các cài đặt chi tiết kỹ thuật bên trong hệ thống, người dùng chỉ đơn giản cài đặt những gì mình mong muốn
Ba thành phần chính để cấu tạo nên 1 cloud đó là computing, storage và network
Computing: bao gồm tất cả nhân xử lý tín hiệu CPU và RAM tại datacenter
Storage: bao gồm toàn bộ bộ nhớ để chứa dữ liệu tại datacenter
Network: kết nối mạng thực giữa các máy chủ thực tại datacenter
Tại một trung tâm dữ liệu, tập hợp tất cả các thành phần vật lý computing, storage, network sẽ được ảo hóa hoàn toàn Sau đó chia nhỏ nó ra thành nhiều cloud khác nhau
Điện toán đám mây cung cấp ba loại hình dịch vụ:
Software as a Service (SaaS): Cung cấp người dùng các dịch vụ về phần mềm (application) thông qua web như google docs, google excels, v.v
Platform as a Service (PaaS): Cung cấp cho người dùng các dịch vụ nền tảng (hardware và OS) để họ cài đặt ứng dụng trên đó
Infrastructure as a Service (IaaS): Cung cấp cho người dùng các dịch vụ về phần cứng (CPU, RAM, storage, network)
Hình 2.4 Các mô hình dịch vụ
Trang 22Để hiểu rõ các mô hình dịch vụ này, ta có thể chia các thành phần phần mềm, phần cứng thành hai nhóm: nhóm thành phần do nhà cung cấp quản trị, nhóm thành phần
do người dùng quản trị Các thành phần phần cứng bao gồm servers (computing), storage, networking Các thành phần phần mềm bao gồm virtualization, OS, middleware, runtime, data, application
On premises: người dùng quản trị tất cả các thành phần (mô hình được sử dụng hiện tại vì chi phí đầu tư nhỏ đối với các hệ thống nhỏ)
IaaS: nhà cung cấp quản lý các thành phần phần cứng và virtualization, người dùng quản lý các thành phần phần mềm còn lại
PaaS: nhà cung cấp quản lý các thành phần phần cứng, virtualization, OS, middleware, runtime Người dùng quản lý data và application
SaaS: nhà cung cấp quản lý tất cả các thành phần phần cứng lẫn phần mềm Người dùng đơn giản sử dụng các phần mềm mà nhà cung cấp cung cấp
Hình 2.5 Mô hình các thành phần hệ thống trong cloud Luận văn hướng tới xây dựng một dịch vụ SCADA dựa trên PaaS của nhà cung cấp
và đưa đến người dùng SCADA như là một SaaS
Điện toán đám mây có năm đặc tính sau:
Dịch vụ theo yêu cầu (Ondemand Seft-Service): Người dùng gửi yêu cầu thông qua trang web cung cấp dịch vụ, hệ thống của nhà cung cấp sẽ đáp ứng để người dùng có thể tự phục vụ như: tăng – giảm thời gian sử dụng server và
Trang 23dung lượng lưu trữ, … mà không cần phải trực tiếp yêu cầu nhà cung cấp dịch
vụ, tức là mọi nhu cầu khách hàng đều được xử lý trên internet
Truy xuất diện rộng (Broad network access): Cloud Computing Service là tập hợp các dịch vụ công nghệ thông tin được cung cấp thông qua môi trường internet, ở đó người dùng thích dịch vụ gì thì dùng dịch vụ ấy, dùng bao nhiêu trả bấy nhiêu, được lựa chọn những dịch vụ tốt nhất ở bất cứ đâu vào bất cứ lúc nào Như vậy người dùng có kết nối internet là có thể sử dụng dịch vụ, Cloud Computing Service không yêu cầu người dùng phải có khả năng xử lý cao, người dùng có thể truy xuất bằng các thiết bị di dộng như điện thoại, PDA, laptop
Dùng chung tài nguyên và điều tiết dịch vụ (Resource pooling): Nhà cung cấp dịch vụ cho phép người dùng dùng chung tài nguyên do họ cung cấp dựa trên
mô hình “multi-tenant”, tài nguyên được phân phát rất linh hoạt tùy theo nhu cầu của người dùng Khi nhu cầu của một người dùng nào đó giảm xuống, lập tức phần tài nguyên dư thừa sẽ được phục vụ cho người dùng khác Nếu một người dùng 4 CPU từ 7 – đến 11 giờ hàng ngày, một người dùng khác thuê 4 CPU tương tự 13 giờ đến 17 giờ hàng ngày thì họ có thể dùng chung 4 CPU đó
Khả năng co giãn (Rapid elasticity): tự động mở rộng hoặc thu nhỏ hệ thống theo yêu cầu người dùng Ví dụ, một người dùng ký hợp đồng thuê một Server gồm 4 CPU Nếu lượng truy cập thấp chỉ cần 1 CPU là đủ, khi đó hệ thống quản lý của nhà cung cấp dịch vụ sẽ tự ngắt bớt 3 CPU, người dùng không phải trả phí cho 3 CPU nói trên và chúng được đưa sang phục vụ người dùng khác Đến khi nhu cầu tăng tức là lượng truy cập tăng, hệ thống ngay lập tức
sẽ tự động thêm CPU vào, nếu nhu cầu vượt quá 4 CPU thì người dùng trả phí theo hợp đồng đã ký với nhà cung cấp
Dịch vụ đo lường được (Measured service): hệ thống điện toán đám mây tự động điều khiển và tối ưu tài nguyên sử dụng nhờ vào khả năng đo lường được (như thời gian sử dụng bộ nhớ, CPU xử lý, băng thông, số lượng tài khoản truy cập vào hệ thống,…) Độ sử dụng tài nguyên có thể giám sát, điều khiển, báo cáo cho nhà cung cấp lẫn người sử dụng
Điện toán đám mây được triển khai trên các mô hình sau:
Private cloud: là mô hình trong đó hạ tầng đám mây được sở hữu bởi một tổ chức và phục vụ cho người dùng của tổ chức đó Private Cloud có thể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí là một bên thứ tư) Private Cloud được các tổ chức, doanh nghiệp lớn xây dựng
Trang 24cho mình nhằm khai thác ưu điểm về công nghệ và khả năng quản trị của điện toán đám mây Với Private Cloud, các doanh nghiệp tối ưu được hạ tầng IT của mình, nâng cao hiệu quả sử dụng, quản lý trong cấp phát và thu hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, kinh doanh ra thị trường
Public Cloud: được một tổ chức sở hữu và cung cấp dịch vụ rộng rãi cho tất cả các khách hàng thông qua hạ tầng internet hoặc các mạng công cộng diện rộng Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ
Do vậy, hạ tầng Cloud Computing được thiết kế để đảm bảo cô lập dữ liệu giữa các khách hàng và tách biệt về truy cập Các dịch vụ Public Cloud hướng tới số lượng khách hàng lớn nên thường có năng lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chi phí thấp cho khách hàng Cho nên khách hàng của dịch vụ trên Public Cloud sẽ bao gồm tất cả các tầng lớp mà khách hàng cá nhân và doanh nghiệp nhỏ sẽ được lợi thế trong việc dễ dàng tiếp cận các ứng dụng công nghệ cao, chất lượng mà không phải đầu tư ban đầu, chi phí sử dụng thấp, linh hoạt
Community Cloud: Với mô hình đám mây chung, hạ tầng đám mây được chia
sẻ bởi một số tổ chức cho cộng đồng người dùng trong các tổ chức đó Các tổ chức này do đặc thù không tiếp cận với các dịch vụ đám mây công cộng (Public Cloud) và chia sẻ chung một hạ tầng Cloud Computing để nâng cao hiệu quả đầu tư và sử dụng.
Hybrid Cloud: Mô hình bao gồm hai hoặc nhiều hơn các đám mây trên tích hợp với nhau Mô hình này cho phép chia sẻ hạ tầng hoặc đáp ứng nhu cầu trao đổi dữ liệu Mô hình điện toán đám mây là mô hình mới, mô hình ứng dụng và khai thác điện toán mới, được đánh giá mang lại hiệu quả cao Trong tương lai, khách hàng và doanh nghiệp sẽ quen với việc sử dụng các phần mềm
và lưu trữ dữ liệu ở trên “mây’
Trang 25Hình 2.6 Mô hình và các dịch vụ của Cloud Computing
Ưu điểm của cloud computing cho hệ thống SCADA
Lợi ích lớn nhất của điện toán đám mây đó là khả năng mở rộng Sự xuất hiện một cách đột ngột lượng dữ liệu lớn đòi hỏi phải xử lý trong hệ thống SCADA xuất hiện rất thường xuyên Do đó, trong hệ thống công nghiệp thường có các thiết bị đi kèm nhằm có thể xử lý được các tình huống như vậy Cloud computing giúp giảm bớt các thiết bị đi kèm này, làm giảm chi phí cho hệ thống
Bên cạnh đó, điện toán đám mây nâng cao những tính năng kỹ thuật và tính khả dụng cho các thiết bị di động Các thiết bị di động thông minh đang phát triển một cách mạnh mẽ Việc tích hợp SCADA lên cloud là một bước quan trọng cho hệ thống SCADA mới trong tương lai
Các vấn đề cần quan tâm khi triển khai SCADA lên cloud
Tính bảo mật: các nhà cung cấp dịch vụ cloud computing đưa ra rất nhiều phương pháp giải thuật nhằm đảm bảo bảo mật thông tin của người dùng Tuy nhiên vẫn có trường hợp các nhà cung cấp này bị hacker xâm nhập Một khi hệ thống SCADA đưa lên pubic cloud, không gì có thể đảm bảo rằng các thông tin quan trọng của chúng ta là an toàn Do đó, ta cần cân nhắc kỹ những thông tin nào sẽ được đưa lên public cloud, những thông tin gì sẽ chỉ được phép nằm
ở private cloud
Hiêu năng: vấn đề lớn đáng quan tâm là hiệu năng hoạt động của cloud computing, nó có tốt bằng các hế thống hiện tại không Cloud computing rất
Trang 26phụ thuộc vào băng thông kết nối mạng (bởi vì mọi yêu cầu tính toán đều phải
đi qua đường truyền mạng), khi băng thông quá tải hoặc gặp sự cố, nó sẽ dẫn đến tình trạng trễ của hệ thống Dẫn đến thông tin giám sát điều khiển từ trung tâm và tại local không đồng nhất, dẫn đến điều khiển sai mục đích (rất nguy hiểm) Cloud-based SCADA hoàn toàn đáp ứng được các ứng dụng giám sát điều khiển mà không cần theo thời gian thực Đối với các hệ thống thời gian thực, thì đòi hỏi kết nối mạng phải nhanh và thông suốt
Độ tin cậy: đối với các hệ thống điều khiển quá trình, việc mất kết nối từ thiết
bị điều khiển đến Cloud-based SCADA (do cloud gặp sự cố, hoặc đường truyền có vấn đề) ảnh hưởng rất to lớn, có thể gây hậu quả nghiêm trọng cho sản xuất Vì thế, cần cân nhắc kỹ sẽ triển khai SCADA lên mô hình cloud nào (public cloud hay private cloud)
Thiết kế mô hình Cloud-based SCADA
Từ những nghiên cứu, phân tích điểm mạnh điểm yếu, các mô hình dịch vụ, các mô hình triển khia trong cloud computing, luận văn đưa ra mô hình SCADA sẽ phát triển như sau:
Mô hình dịch vụ: IaaS nhằm xây dựng một máy tính ảo (để cài đặt hệ điều hành, network nhằm kết nối được đến các bộ điều khiển), PaaS nhằm kết nối đến máy ảo và triển khai phần mềm cloud-based SCADA
Mô hình triển khai: sử dụng hybrid cloud Hệ thống vận hàng sẽ kết nối đến private cloud Các thông tin quan trọng sẽ do người dùng cài đặt có đưa lên public cloud hay không
Trang 27Hình 2.7 Mô hình triển khai cho Cloud-based SCADA
Có 2 giải pháp để xây dựng private cloud:
Sử dụng Window Server và các kỹ thuật chi tiết do Microsoft cung cấp để xây dựng private cloud tại nhà máy
Xây dựng private cloud dựa trên các tính năng hỗ trợ của Azure
Tuy nhiên, hai mô hình này đòi hỏi phải thực hiện rất chi tiết các kỹ thuật về IT nhằm xây dựng private cloud Do đó, luận văn sẽ không hướng tới phương án này Thay vào đó, phương án sử dụng sẽ là mở rộng mạng kết nối từ local lên cloud Một VM trên cloud chịu trách nhiệm giao tiếp với các bộ điều khiển Từ đó, Cloud-based SCADA cloud service sẽ thu thập dữ liệu của các bộ điều khiển tại local thông qua
VM này
Trang 28Hình 2.8 Kết nối local với public cloud
Ưu điểm của kiến trúc trên
Mô hình trên đưa ra những lợi ích của cả hai cách triển khai cloud Private cloud chịu trách nhiệm cho việc quản lý toàn bộ các thành phần lõi trong hệ thống, xử lý các yêu cầu cấp bách, tương tự như kiến trúc hệ thống SCADA hiện tại Máy chủ SCADA trong private cloud đảm bảo cho các điều khiển bên trong và bảo mật Bên cạnh đó, việc đặt hệ thống trong nội bộ, chạy trên nền LAN sẽ giúp cho dữ liệu truyền tải với tốc độ nhanh hơn, làm giảm bớt tính trễ của hệ thống
Public cloud sẽ chuyển các dữ liệu yêu cầu đến người dùng từ private cloud Thông qua public cloud, một phần dữ liệu được chia sẽ đến người dùng Việc này làm giảm bớt tải cho private cloud, đồng thời tăng tính co giãn và chi phí thấp Khi chọn mô hình hybrid cloud, kiến trúc xây dựng hệ thống sẽ được chia thành từng bước Trước tiên, ta xây dựng private cloud, vận hành đảm bảo hệ thống hoạt động trơn tru và giúp đơn vị sử dụng quen với cloud SCADA Khi họ đã yên tâm về hoạt động của hệ thống, ta chuyển sang bước thứ hai, xây dựng public cloud
Để giảm bớt khối lượng cần xử lý và băng thông, giải thuật sử dụng cho việc cập nhật dữ liệu thay đổi theo phương pháp publish/subcribe (pub/sub) thay
vì quét dữ liệu theo chu kỳ Phương pháp thu thập dữ liệu này giúp cho giảm nhẹ việc tải dữ liệu trên băng thông của mạng và tải cần xử lý cho máy chủ Hơn thế nữa, publish dữ liệu ra từ phía server sẽ đảm bảo bảo mật cho hệ thống
Trang 29Ở phần tiếp theo, luận văn sẽ giới thiệu về Window Azure cũng như cách triển khai
hệ thống trên lên Window Azure
2.3 Window Azure
Window Azure (sản phẩm của Microsoft, được chạy trên nền tảng của Window Server) là hệ điều hành dành cho điện toán đám mây (được cài đặt trên cloud), ảo hóa toàn bộ các thành phần vật lý của hệ thống điện toán Người dùng lựa chọn các tính năng, tiện ích, thành phần mà không cần phải cài đặt phần cứng hay phần mềm đối với máy ảo mà họ sẽ được cấp từ dịch vụ Để đảm bảo cho khả năng mở rộng và khả năng chịu lỗi, dữ liệu chứa trên Window Azure sẽ được lưu trữ trên ba máy trạm khác nhau Bộ load balancer (một thành phần phần mềm trong Window Azure) sẽ chia tải cho các trạm, việc phân tải hoàn toàn trong suốt đối với người dùng, họ sẽ không biết
gì về các hoạt động này Window Azure cung cấp các lựa chọn về phần cứng như sau:
CPU: từ 1 core đến 8 core, xung nhịp hoạt động từ 1 GHz trở lên
RAM: từ 768MB đến 8GB
Bộ nhớ: từ 20 GB đến 2TB
Hiệu suất IO: thấp, trung bình, cao
Tùy theo chi phí mình bỏ ra (subcription fee), hệ thống còn cung cấp thêm nhiều tính năng khác nữa Bên cạnh đó, các tài nguyên, thành phần phần cứng có thể được thay đổi bất cứ lúc nào Ví dụ, khi lượng dữ liệu cần xử lý tăng lên, ta có thể tăng thêm CPU và RAM cho máy ảo, hoặc tăng thêm lượng máy ảo Việc tăng giảm này được thay đổi rất nhanh chóng, đáp ứng tốt nhu cầu sử dụng tính toán của người dùng Vấn đề bảo trì và bảo mật, các bản vá bảo mật cũng như bảo trì hệ thống được Microsoft team thực hiện nhanh nhất và tự động, đảm bảo hệ thống hoạt động trơn tru, cập nhật với xu thế mà người dùng hoàn toàn không cần phải quan tâm đến các vấn đề này
Window Azure ẩn đi các chi tiết kỹ thuật bên trong, nó chỉ đưa ra cho người dùng các dịch vụ và các giao thực chuẩn để họ sử dụng dịch vụ Các tài nguyên vật lý được cung cấp cho người dùng theo mô hình IaaS (Infrastructure as a Service) Người dùng không cần thiết phải viết các đoạn mã để quản lý phần cứng như: địa chỉ vật lý, loại
ổ cứng, tên máy chủ, đường dẫn mạng, IIS virtual directory, địa chỉ IP,… Để thao tác với các tài nguyên, ứng dụng phải gọi các dịch vụ tương ứng của các tài nguyên này
Ví dụ, người dùng có thể URI của dịch vụ để chèn thêm, cập nhật hoặc xóa tài nguyên
và sử dụng ODATA Rest để lấy được lấy được các dịch vụ của tài nguyên
Trang 30Các ứng dụng đã được chạy tốt trên nền tảng Window thì hoàn toàn có thể hoạt động tốt trên nền tảng của Azure Tùy theo code lập trình của các developer và các đòi hỏi
về tính năng phần mềm, các ứng dụng có thể sẽ phải chỉnh sửa lại để đáp ứng tốt hơn trên nền tảng Azure
2.3.1 Các mô hình điện toán trên Window Azure
Một trong những tính năng cơ bản của nền tảng điện toán đám mây đó là các ứng dụng thực thi Azure cung cấp những lựa chọn sau:
gồm cả hệ điều hành Đây là dịch vụ thuộc IaaS
dùng triển khai một cách nhanh chóng các ứng dụng web lớn, dễ dàng mở rộng và quản lý các công đoạn phát triển, kiểm thử, vận hành một cách hiệu
quả Đây là một dịch vụ thuộc mô hình SaaS
thể tạo ra một ứng dụng có tính mở rộng, tính chịu lỗi cao và linh động hơn cả
website
2.3.2 Virual Machine:
Khả năng tạo ra một máy ảo (người dùng tự tạo cho riêng mình rồi tải lên cloud hoặc
do nhà cung cấp dịch vụ tự tạo cho người dùng) theo nhu cầu rất là hữu ích Đây là một dịch IaaS mà Azure cung cấp Có thể sử dụng VM trong các trường hợp sau:
Trang 31Hình 2.9 Mô hình của VM
Dev/test: dùng để xây dựng 1 nền tảng môi trường phục vụ cho phát triển hay kiểm thử phần mềm với chi phí thấp Ta có thể thực thi bất kỳ dạng ứng dụng nào, bất kỳ nền tảng ngôn ngữ hay thư viện nào, bất kỳ loại cơ sở dữ liệu nào
Chuyển ứng dụng lên cloud (lift and shift): khi có nhu cầu đòi hỏi các ứng dụng
ở máy tính local phải được triển khai lên cloud, nhằm có thể được sử dụng ở mức rộng rãi hơn, ta có thể tạo ảnh cho máy tính đó (VHD Image), sau đó upload ảnh này lên cloud Do đó, ứng dụng local sẽ được triển khai lên cloud một cách nhanh chóng
Mở rộng datacenter: tạo máy ảo trên cloud, sau đó dùng Azure Virtual Network
để tạo kết nối giữa máy ảo trên cloud và datacenter ở local network Khi đó, datacenter sẽ được mở rộng lên cloud
Trang 322.3.3 Website:
Một trong những điều phổ biến mà người dùng thườn thực hiện đó là thực thi các website và web application Azure cung cấp một môi trường quản lý web bằng Azure Management Portal và APIs, nhằm giúp người dùng có thể tạo và quản lý website, web application một cách nhanh chóng, mà không cần tốn công sức trong việc cài đặt, bảo trì hệ thống nền tảng Người dùng có thể upload website của mình lên cloud để hoạt động bình thường mà không hề có bất cứ thay đổi gì, hoặc họ có thể tạo ngay website trên cloud mà không hề có bất cứ khó khăn gì Website thường được sử dụng bởi các tập đoàn, người phát triển và các công ty thiết kế Đối với tập đoàn, đây là giải pháp dễ dàng quản lý, mở rộng, bảo mật cao khi họ muốn đưa webiste hiện tại của mình lên cloud
Hình 2.10 Mô hình điện toán website
2.3.4 Cloud service:
Trường hợp ta muốn xây dựng một ứng dụng trên cloud cho phép nhiều người dùng truy cập cùng lúc Đều này hoàn toàn có thể bằng cách sử dụng mô hình Website hoặc
VM Tuy nhiên, đối với Website, nó có nhiều giới hạn truy cập hệ thống Nó chỉ cho
ta cài đặt, thiết kế logic liên quan đến web mà không thể thực thi các process chạy
Trang 33ngầm bên trong (theo mục đích của riêng mình) Đối với VM, ta có thể toàn quyền đối với hệ thống, chạy bất cứ ứng dụng nào ta muốn Tuy nhiên việc quản trị VM đòi hỏi mất nhiều công sức, chi phí, và kỹ thuật cho nó Như vậy, cầu nối giữa Webiste và
VM đó chính là Cloud service Cloud service thuộc mô hình PaaS (Platform as a Service) Việc cập nhật các bản vá lỗi hệ điều hành, phần cứng sẽ do nhà cung cấp dịch vụ đảm nhiệm, giảm bớt việc bảo trì hệ thống về phía người dùng, đồng thời cho phép nhiều loại ứng dụng khác nhau thực thi trên đó Có hai lựa chọn khi xây dựng ứng dụng trên cloud service đó là web role và worker role Sự khác biệt giữa hai instance này đó là web role thì được chạy trên IIS, còn worker role thì không Một ứng dụng cloud service thì thường dùng cả hai role này Ví dụ, web role sẽ nhận yêu cầu
từ phía người dùng, và chuyển nó sang cho worker role xử lý (worker role là process chạy ngầm để xử lý dữ liệu)
Hình 2.11 Mô hình cloud service Cloud-based SCADA sẽ được phát triển theo mô hình của Cloud Service vì những ưu điểm của nó so với VM và Website
Trang 342.3.5 Lưu trữ trong Azure (Blob, table, queue, SQL Azure)
Blob service: là dịch vụ nhằm để chứa những dữ liệu lớn và không có cấu trúc, như file
text hay file binary và có thể được truy cập từ bất kỳ đâu thông qua HTTP hay HTTPS
Dữ liệu trong blob có thể được public để những dịch vụ khác có thể truy cập hoặc private Dữ liệu được lưu trữ trên blob thường dùng để:
Hình ảnh hoặc tài liệu cần để hiển thị trên web browser
Chứa các file dữ liệu mà cần chia sẽ giữa nhiều ứng dụng khác nhau
Truyền audio và video
Thực hiện thao tác backup và recovery hệ thống
Chứa những dữ liệu mà cần phải phân tích bởi on-premise hoặc Azure-hosted service
Mô hình của blob như sau:
Hình 2.12 Mô hình blob Trong đó,
Storage Account: là tài khoản để truy cập tất cả các dịch vụ lưu trữ
Container: là tập hợp một nhóm các blob Một storage account có thể chứa không giới hạn các container Một container có thể chứa không giới hạn các blob
Blob: là một file dữ liệu, có thể là bất kỳ đuôi (extension) gì, bất kỳ kích cỡ nào
Trang 35 Fortmat URL: để truy cập một blob nào đó, ta theo cú pháp URL như
sau: http://<storage account>.blob.core.windows.net/<container>/<blob>
Table service: chứa các dữ liệu có cấu trúc Azure table như là một cơ sở dữ liệu, nhưng
nó không chứa quan hệ giữa các table (NoSQL) Sử dụng table trong các trường hợp
sau:
Chứa dữ liệu có cấu trúc nhằm đáp ứng các dịch vụ của web
Chứa những bảng dữ liệu mà không cần các thao tác như join, foreign keys,
stored procedures nhằm lấy dữ liệu nhanh hơn
Truy cập dữ liệu nhanh chóng bằng clustered index (kỹ thuật trong NoSQL
database)
Truy cập dữ liệu bằng qua giao thức Odata và LinQ queries thông qua WCF
data service
Mô hình của table như sau:
Hình 2.13 Mô hình table service Trong đó,
Storage Account: tài khoản để truy cập vào bất kỳ dịch vụ lưu trữ nào
Table: là tập hợp các entity, table không có cấu trúc nào định sẵn trước Do
đó, các entity trong cùng một table có thể có cấu trúc khác nhau Số lượng
Trang 36table có thể chứa được trong storage account thì tùy thuộc vào account đó cho phép tối đa bao nhiêu
Entity: là một tập hợp gồm nhiều thuộc tính khác nhau, tương tự như một row trong database Entity có kích thước tối đa là 1MB
Fortmat URL: truy cập vào các table theo cú pháp URL như sau
http://<storage account>.table.core.windows.net/<table>
Queue service: là dịch vụ để lưu trữ các message mà có thể truy cập từ nhiều ứng dụng
khác nhau, từ bất kỳ đâu trên thế giới thông qua các phương pháp gọi chứng thực như HTTP hay HTTPS Một queue có thể chứa tối đa 64KB và có thể chứa hàng triệu message, giới hạn bởi storage account Một storage account có thể chứa đến 500TB
blob, table, queue Sử dụng queue trong các trường hợp sau:
Tạo ra một lượng công việc cần xử lý bên trong
Truyền thông tin, lệnh từ web role sang worker role
Mô hình của queue như sau:
Hình 2.14 Mô hình của queue Trong đó,
Storage account: tài khoản để truy cập vào bất kỳ dịch vụ lưu trữ nào
Queue: là tập hợp các message
Message: có thể ở bất kỳ định dạng nào và tối đa là 64KB
Format URL: truy cập vào các queue theo định dạng URL như sau
http://<storage account>.queue.core.windows.net/<queue>
Microsoft SQL Azure
Trang 37Đối với cơ sở dữ liệu có quan hệ, Azure cung cấp những tính năng của SQL database, gọi là SQL Azure Nó cung cấp tất cả các tính năng chính của một
cơ sở dữ liệu quan hệ như atomic transactions, nhiều user cùng truy cập một lúc nhưng vẫn đảm bảo tính toàn vẹn dữ liệu, truy vấn ANSI SQL, và những
mô hình lập trình quen thuộc SQL Azure có thể truy cập bằng các mô hình như Entity Framework, ADO.Net, JBDC và những mô hình truy cập quen thuộc khác Nó cũng hỗ trợ ngôn ngữ T-SQL, và công cụ để quản lý server như SQL Management Studio
Azure SQL là một dịch vụ thuộc PaaS Ta vẫn có thể kiểm soát việc truy cập
dữ liệu và Azure SQL sẽ đảm nhận việc bảo trì hệ thống, hệ điều hành, phần cứng, đảm bảo database luôn hoạt động Azure SQL cung cấp khả năng high availability, automatic backups, point-in-time restores và có thể sao chép dữ liệu sang nơi khác, không phụ thuộc vào địa lý
Hình 2.15 SQL Azure Nếu ta xây dựng một ứng dụng cần đến cơ sở dữ liệu quan hệ, thì SQL Azure
là một sự lựa chọn tốt Những ứng dụng không chạy trên cloud vẫn có thể sử dụng các dịch vụ này Ví dụ, dữ liệu được lưu trữ SQL Azure có thể sẽ được truy cập từ rất nhiều ứng dụng trên các nền tảng khác nhau như máy tính bàn, máy tính xách tay, máy tính bảng, điện thoại
2.3.6 Network:
Azure được chạy trên rất nhiều trung tâm dữ liệu khác nhau ở khắp thế giới Khi triển khai một ứng dụng hoặc chứa dữ liệu lên cloud, ta lựa chọn một trong những trung tâm dữ liệu đó để sử dụng Có nhiều cách để kết nối đến các trung tâm dữ liệu đó thông qua dịch vụ như sau:
Trang 38Virtual Network:
Virtual network là một mạng ảo mà có thể cài đặt được trên Azure VMs và các service trên cùng một mạng ảo có thể truy cập lẫn nhau Tuy nhiên, các dịch vụ không cùng nằm trong cùng một mạng ảo thì không có cách nào để truy cập lẫn nhau Để làm được điều này, ta phải sử dụng đến VNet và cài đặt chức năng VNet to VNet VNet là một lớp cách ly ở giữa giữa các dịch vụ với nhau Ngoài ra, virtual network còn được dùng để mở rộng network tại local lên cloud, bằng cách sử dụng VPN và
VM trên cloud (khi có nhu cầu mở rộng datacenter chẳng hạn)
Hình 2.16 Mở rộng network bằng virtual network Tùy theo yêu cầu của hệ thống, ta có thể sử dụng virtual network theo nhiều cách khác nhau
Trang 39Hình 2.17 Cách lựa chọn virtual network Nếu ứng dụng của chúng ta là hybrid application, ta sử dụng VNet Cross-Premises connectivity Nếu ứng dụng chỉ đòi hỏi truy cập trực tiếp giữa các service và VM trên cloud thì ta sử dụng mạng ảo VNet Cloud-Only Nếu không đòi hỏi truy cập trực tiếp,
ta có thể sử dụng các phương pháp khác
Express Route:
Để có thể đạt được băng thông cao hơn và tăng tính bảo mật hơn trong việc mở rộng network từ local lên cloud, ta có thể sử dụng Express Route Nó cho phép mở rộng mạng từ local lên cloud mà không thông qua internet Để làm được điều này, ta cần liên hệ với các nhà cung cấp dịch vụ mạng, họ sẽ tiến hành cài đặt Do đó, việc cài đặt Express Route sẽ mất nhiều thời gian và công sức hơn
Trang 40Hình 2.18 Sử dụng Express Route để mở rộng network
Traffic Manager:
Nếu ứng dụng được chạy trên nhiều datacenter khác nhau, traffic manager sẽ chuyển các yêu cầu của người dùng đến các datacenter một cách thông minh Ví dụ, khi có yêu cầu từ một người dùng, traffic manager sẽ chuyển yêu cầu này đến datacenter gần với người dùng đó nhất Trong trường hợp datacenter đó gặp trục trặc, sự cố, nó
sẽ tự động chuyển yêu cầu này một datacenter khác gần nhất có thể
Người phát triển ứng dụng sẽ cài đặt các qui tắc, qui luật cho traffic manager Sau đó traffic manager sẽ dựa theo các quy tắc này mà chuyển yêu cầu đến các datacenter Traffic manager sử dụng DNS để chuyển yêu cầu từ người dùng đến datacenter Một khi kết nối giữa người dùng và datacenter đó thành công, các yêu cầu tiếp theo sẽ