1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu về docker và xây dựng ứng dụng minh họa

94 83 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 94
Dung lượng 4,57 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sự ra đời của Docker Docker là một nền tảng mã nguồn mở cung cấp cho người sử dụng những công cụ để có thểđóng gói, vận chuyển và chạy container một cách đơn giản và dễ dàng trên các nền

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

-& -BÁO CÁO CUỐI KỲ ĐỒ ÁN 2

ĐỀ TÀI: TÌM HIỂU VỀ DOCKER VÀ XÂY DỰNG ỨNG

DỤNG MINH HỌA

Giảng viên hướng dẫn:

Thầy Nguyễn Công Hoan

Sinh viên thực hiện:

Trần Phương Duy 18520038Tăng Khánh Chương 18520010

Lớp :SE122.M11.PMCL

TP.Hồ Chí Minh, ngày 4 tháng 12 năm 2021

Trang 2

LỜI CẢM ƠN

Lời đầu tiên em xin chân thành gửi lời cảm ơn đến thầy Nguyễn Công Hoan đã nhiệt tìnhgiảng dạy trên lớp, hỗ trợ những thông tin cần thiết và giải đáp những thắc mắc cho nhóm

và các bạn trong suốt quá trình thực hiện đề tài

Đồng thời nhóm em cũng muốn gửi lời cảm ơn đến các anh chị khóa trên, đặc biệt lànhững anh chị trong khoa đã chia sẻ những kinh nghiệm quý báu về môn học cũng nhưnhững kiến thức liên quan Cũng xin cảm ơn bạn bè đã tạo điều kiện thuận, mọi người đãđưa ra nhận xét và góp ý chân thành, vô cùng quý giá Những người đã động viên, hỗ trợnhóm hoàn thành đề tài

Nhóm thực hiệnThủ Đức, Tháng 12 Năm 2021

Trang 3

6 Một số lệnh cơ bản của Docker 20

Trang 4

6.6 Docker Compose 24

III Tìm hiểu về nền tảng học trực tuyến 25

1 Giới thiệu ứng dụng minh họa 25

1.2 Tìm hiểu về các mô hình nền tảng học trực tuyến 25

2 Tìm hiểu và phân tích kiến trúc các nền tảng học trực tuyến 34

IV Ứng dụng học trực tuyến Udemy 43

1 Product Requirement Document 43

1.3.5 Bài giảng là video có phụ đề đi kèm resource hoặc bài đọc 491.3.6 Ghi chú trong lúc học và làm quiz sau mỗi bài giảng 501.3.7 Hỏi đáp với giảng viên và nhận hướng dẫn 511.3.8 Tạo khóa học và trở thành giảng viên 51

2 Use cases và đặc tả use cases: 55

Trang 5

IV Hướng dẫn đóng gói ứng dụng 87

Trang 6

I GIỚI THIỆU CHUNG

2.1 Giới thiệu đề tài

Đề tài: Tìm hiểu Docker và xây dựng ứng dụng.

Công nghệ phát triển, hàng loạt các ứng dụng được tạo ra, nhiều ngôn ngữ lập trình mớihình thành nhằm đáp ứng nhu cầu cụ thể nào đó Những ngôn ngữ lập trình khác nhaulại yêu cầu các phần mềm hỗ trợ, gói thư viện và môi trường khác nhau Mỗi lần cài đặt,

sẽ tốn nhiều công sức và thời gian

Ví dụ đang làm việc lập trình Android, nhưng muốn làm việc với hệ điều hành iOS thìphải cài thêm OS để triển khai được các ứng dụng Python, Java, Scala… phải tiến hànhcài đặt hàng tá môi trường Đó là chưa kể xung đột phần mềm, port… và vấn đề là sẽthật kinh khủng nếu xảy ra xung đột phần mềm và làm ảnh hưởng đến hoạt động củacác ứng dụng đang hoạt động trên máy tính

Trang 7

Chính vì thế Docker ra đời, nó có thể triển khai bất cứ nơi đâu do không phụ thuộc vào

OS và cơ sở hạ tầng, thời gian khởi động cực nhanh và khi nhiều người cùng phát triểnmột dự án sẽ không sợ sai khác về môi trường Do đó nhóm chúng em lựa chọn Docker

Nhóm tập trung nghiên cứu và tìm hiểu về Docker, Docker Swarm và ReactJs cũng

như áp dụng các nghiên cứu này vào việc xây dựng ứng dụng minh họa để giúp có

cái nhìn tổng quan và hiểu sâu hơn

2.3 Nội dung nghiên cứu

Tiến hành nghiên cứu chi tiết về các thành phần và kiến trúc của Docker, cách thứchoạt động cũng như làm quen với các câu lệnh của Docker và Docker Swarm Kèmtheo đó là xây dựng ứng dụng minh họa bằng ReactJs

2.4 Kết quả hướng tới

● Nền tảng học trực tuyến được xây dựng bằng ReactJs

Trang 8

II DOCKER

1 Sự ra đời của Docker

Docker là một nền tảng mã nguồn mở cung cấp cho người sử dụng những công cụ để có thểđóng gói, vận chuyển và chạy container một cách đơn giản và dễ dàng trên các nền tảngkhác nhau một cách nhanh nhất với tiêu chí - “Build once, run anywhere” Docker thực hiện

ảo hóa ở mức hệ điều hành Mỗi container là cô lập (isolated) với nhau nhưng đều dùngchung một số bin/lib và kernel của Host OS Docker có thể làm việc trên nhiều nền tảngkhác nhau như Linux, Microsoft Windows và Apple OS X Ngoài ra, Docker còn hỗ trợnhiều dịch vụ điện toán đám mây nổi tiếng như Microsoft Azure hay Amazon WebServices

2 Khái niệm Docker

2.1 Quá trình hình thành

Bắt đầu từ những ngày đầu tiên, mô hình server thường sẽ là Máy chủ vật lý + Hệ điều hành+ Application

Trang 9

Vậy muốn xài 2 dịch vụ thì ta phải có 2 server như vậy, và chi phí cho mỗi server như vậy làkhông hề ít một tí nào Tiếp theo là sự ra đời của công nghệ ảo hóa virtualization

Virtualization (ảo hóa) là một công nghệ được thiết kế để tạo ra một tầng trung gian giữa

phần cứng máy tính và phần mềm chạy trên nó Ảo hóa được xây dựng dựa trên ý tưởngphân chia ổ đĩa, chúng phân chia máy chủ gốc thành nhiều máy chủ logic Từ đó, một máy

Trang 10

chủ vật lý đơn giản có thể tạo thành nhiều máy ảo chạy độc lập, riêng rẽ với nhau Các máy

ảo đó có thể có hệ điều hành riêng, ứng dụng riêng, độc lập với các máy ảo khác

Tuy nhiên, việc ảo hóa này cũng nảy sinh ra nhiều vấn đề mới: ngốn tài nguyên, tốn thờigian thực thi, cồng kềnh vì chúng chiếm luôn phần cứng máy host ngay từ khi cài

Để giải quyết các vấn đề trên, người ta đã phát minh ra Containerization

Containerization sử dụng các container, các container này sẽ sử dụng chung nhân OS

kernel với máy chủ host, điều này có nghĩa là khi container hoạt động cần tài nguyên, nó sẽtrực tiếp lấy từ máy host như một phần mềm bình thường chạy trên máy host vậy, điều nàytránh lãng phí tài nguyên từ máy ảo khi không sử dụng như trong công nghệ virtualization.Vậy thì công nghệ containerization dùng cái gì đây? Đó là Docker

2.2 Docker là gì?

Docker là 1 phần mềm chạy trên Linux hoặc Windows, cho phép dựng, kiểm thử và triển

khai ứng dụng một cách nhanh chóng Docker đóng gói phần mềm vào các đơn vị tiêuchuẩn hóa được gọi là container

Trang 11

Docker sử dụng công nghệ ảo hóa containerization để triển khai các ứng dụng vào trongcontainer ảo hóa.

Docker sử dụng nhân kernel linux để chạy các container, trên hệ điều hành Linux Docker cóthể sử dụng trực tiếp nhân của máy host; còn với các hệ điều hành Windows, MacOS – cóthể vì lý do bảo mật nên docker không thể trực tiếp xài chung kernel với các hệ điều hànhnày nên trên các hệ điều hành này docker sẽ tạo ra một máy ảo virtual guest với nhân linux

để chạy các container

Container là đơn vị phần mềm cung cấp cơ chế đóng gói ứng dụng, mã nguồn, thiết lập,

thư viện… vào một đối tượng duy nhất Ứng dụng sau khi được đóng gói có thể hoạt độngmột cách nhanh chóng và hiệu quả trên các môi trường điện toán khác nhau Từ đó nó cóthể tạo ra một môi trường hoàn hảo nơi mà có mọi thứ để chương trình có thể hoạt độngđược, không chịu sự tác động từ môi trường của hệ thống cũng như không làm ảnh hưởngngược lại về phía hệ thống chứa nó

Để tạo ra container phải kể đến 2 tính năng có trong nhân Linux đó là:

● Namespace: có nhiệm vụ cô lập các tài nguyên của hệ thống, khiến các tiến trình

"nhìn thấy" tập tài nguyên khác nhau

● Control groups (cgroups): giới hạn tài nguyên của mỗi ứng dụng, cho phép DockerEngine điều phối lượng tài nguyên phần cứng của mỗi ứng dụng, thiết lập các ràngbuộc

Ngoài ra, việc container được chia ra thành nhiều layer khác nhau cũng khiến cho việc quản

lý tài nguyên được hiệu quả hơn

Cụ thể, container mới sẽ được xây dựng dựa trên các image layer dạng read-only Trong mỗicontainer sẽ có thêm một layer với quyền read-write, mọi thay đổi của container sẽ chỉ đượcghi vào đây Như vậy, chỉ từ một vài image ban đầu chúng ta có thể tạo ra nhiều containerkhác nhau từ đó tiết kiệm được một phần không gian lưu trữ

Trang 12

● Tiết kiệm không gian: container được xây dựng dựa trên nhiều image có sẵn, từ

đó tiết kiệm được nhiều không gian lưu trữ hơn

Trang 13

● Đồng nhất: không có sự sai khác về mặt môi trường khi triển khai ở bất kỳ nơiđâu, tạo ra sự nhất quán khi làm việc theo nhóm.

● Nhanh: do chia sẻ host OS nên các container có thể gần như được tạo một cáchtức thì, việc khởi động cũng diễn ra nhanh hơn rất nhiều

4 Các khái niệm trong Docker

● Rest API: controller cho docker daemon, chỉ ra những gì docker daemon sẽ làm

● Client: Là một công cụ giúp người dùng giao tiếp với Docker host Người dùngtương tác với docker thông qua command trong terminal (CLI) Docker Client sẽ sửdụng API gửi lệnh tới Docker Daemon

Có 4 đối tượng lớn trong thế giới của Docker Engine: Image, Container, Network, Volume

4.1.1 Image

Một Docker Image là một read-only template dùng để tạo ra các containers

Image trong docker còn được gọi là mirror, nó là 1 đơn vị đóng gói chứa mọi thứ cần thiết

để 1 ứng dụng chạy

Image được tạo thành từ nhiều layer xếp chồng lên nhau, bên trong image là 1 hệ điều hành

bị cắt giảm và tất cả các phụ thuộc (dependencies) cần thiết để chạy 1 ứng dụng

Trang 14

Ta có thể có được image docker bằng cách pulling từ image registry Thao tác pulling sẽ tảiimage xuống máy chủ docker, nơi docker có thể sử dụng nó để chạy 1 hoặc nhiều container.Thường thì image sẽ dựa trên 1 image có sẵn với những tùy chỉnh thêm Một image sẽ đượcbuild dựa trên những chỉ dẫn của Dockerfile.

DockerFile

Dockerfile là một file dạng text không có phần đuôi mở rộng, chứa các đặc tả về một trườngthực thi phần mềm, cấu trúc cho Docker image Docker image có thể được tạo ra tự độngbằng cách đọc các chỉ dẫn trong Dockerfile Từ những câu lệnh đó, Docker sẽ build raDocker image (thường có dung lượng nhỏ từ vài MB đến lớn vài GB)

Trang 16

Container và VM có sự cách ly và phân bổ tài nguyên tương tự nhưng có chức năng khácnhau vì container ảo hóa hệ điều hành thay vì phần cứng Các container có tính portable vàhiệu quả hơn.

Container nhằm làm cho các ứng dụng trở nên dễ dàng xây dựng, di chuyển và chạy Quátrình đưa 1 ứng dụng chạy trong container có để được hiểu như sau:

1 Đầu tiên ta bắt đầu với code app và các phụ thuộc của nó

2 Tạo Dockerfile mô tả ứng dụng, các phụ thuộc và cách chạy ứng dụng đó

3 Build Dockerfile thành image

4 Push image mới build vào registry(option)

5 Chạy container từ image

Trang 17

4.1.3 Network

Docker network có nhiệm vụ cung cấp private network (VLAN) để các container trên mộthost có thể liên lạc được với nhau, hoặc các container trên nhiều hosts có thể liên lạc đượcvới nhau (multi-host networking)

4.1.4 Volume

Docker volume là cơ chế tạo và sử dụng dữ liệu của docker, có nhiệm vụ lưu trữ dữ liệu độclập với vòng đời của container

Có 3 trường hợp sử dụng Docker Volume:

1 Giữ lại dữ liệu khi một Container bị xóa

2 Để chia sẻ dữ liệu giữa máy chủ vật lý và Docker Container

3 Chia sẻ dữ liệu giữa các Docker Container

4.2 Công cụ phân tán

4.2.1 Docker Registry

Docker Registry là một dịch vụ máy chủ cho phép lưu trữ các docker image của cá nhân,công ty, team,… Dịch vụ Docker Registry có thể được cung cấp bởi tổ chức thứ 3 hoặc làdịch vụ nội bộ được xây dựng riêng nếu bạn muốn Một số dịch vụ Docker Registry phổbiến như :

● Azure Container Registry

Trang 18

● Docker Hub

● Quay Enterprise

● Google Container Registry

● AWS Container Registry

4.2.2 DockerHub

Docker Hub là một “github for docker images” Trên Docker Hub có hàng ngàn publicimages được tạo bởi cộng đồng cho phép bạn dễ dàng tìm thấy những image mà bạn cần Vàchỉ cần pull về và sử dụng với một số config mà bạn mong muốn

5 Kiến trúc của Docker

Docker là một ứng dụng client-server, có 2 phiên bản phổ biến:

● Docker Community Edition (CE): là phiên bản miễn phí và chủ yếu dựa vào các sảnphẩm nguồn mở khác

● Docker Enterprise (EE): phiên bản dành cho các doanh nghiệp, khi sử dụng phiênbản này sẽ nhận được sự support của nhà phát hành, ngoài ra còn có thêm các tínhnăng quản lý và bảo mật

Trang 19

Các thành phần của Docker Engine gồm có:

● Docker Deamon: chạy trên host, đóng vai trò là server, nhận các RESTful request từDocker Client và thực thi nó Là một lightweight runtime giúp build, run và quản lýcác containers và các thành phần liên quan khác

● Docker Deamon quản lý 4 đối tượng chính: image, container, network, volume

● Docker Client (CLI): cung cấp giao diện dòng lệnh (command line) cho người sửdụng, đồng thời cũng gửi request đến Docker deamon

Trang 20

Sơ đồ minh họa các lệnh phổ biến của Docker client và mối quan hệ của Image, Container,Network, Volume.

Docker Registry: nơi lưu trữ Docker image Docker Hub là một registry công khai mà bất

cứ ai cũng có thể sử dụng và Docker được cấu hình để tìm kiếm image trên Docker Hubtheo mặc định Bạn thậm chí có thể chạy registry riêng của mình Có hai loại registry làpublic hoặc private registry

6 Một số lệnh cơ bản của Docker

6.1 Image

● Liệt kê các image có trong hệ thống

$ docker images

● Tải 1 image về hệ thống

$ docker pull <image name>:<tag name>

Tải phiên bản mới nhất: $ docker pull <image name>:latest

● Xóa 1 image ra khỏi hệ thống

Có 2 cách:

Trang 21

Cách 1: sử dụng tên image

$ docker image rm <image name>:<tag name>

Cách 2: sử dụng id image

$ docker image rm <image id>

● Lưu image thành file ở trên hệ thống máy host

$ docker save output <tên file muốn đặt>.tar <image name | image id>

● Ép xóa image dù đang chạy 1 container

$ docker image rm <image name | image id> -f

● Kiểm tra lịch sử hình thành nên image

$ docker image history <image name | image id>

● Tra cứu thông tin của 1 image

$ docker inspect <image name | image id>:<image tag>

6.2 Container

● Kiểm tra container nào đang chạy

$ docker ps

● Chạy 1 container

$ docker run <tham số> <image name | image id> Tham số :

-i : Muốn container tạo ra sẽ nhận tương tác, nhận input

-t : container đó kết nối với terminal

* 2 tham số có thể viết gọn lại là : -it

● Kiểm tra các container đang không chạy

$ docker ps -a

● Khởi chạy 1 container đang dừng

$ docker start <container name | container id>

● Truy cập vào container đang chạy

$ docker attach <container name | container id>

● Ép dừng 1 container

$ docker stop <container name | container id>

Trang 22

● Đặt tên và hostname cho container

$ docker run -it name “<container name>” -h <hostname> <image>

● Xóa 1 container

$ docker rm <image>

● Xóa container đang chạy

$ docker rm -f <image>

● Cài 1 số gói phần mềm trong container

$ apt install <tên phần mềm>

● Lưu container thành 1 image

$ docker commit <container name | container id> <đặt tên cho image>:<đặt tên choversion>

● Tra cứu thông tin của 1 container

$ docker inspect <container name | container id>

● Kiểm tra lỗi bên trong 1 container

$ docker logs <container name | container id>

● Lấy N-dòng log cuối cùng

$ docker logs tail <number> <container name | container id>

● Lấy log của container đang chạy

$ docker logs -f <container name | container id>

● Giám sát tài nguyên container sử dụng

$ docker stats <container name | container id >

Giám sát tài nguyên tất cả container đang chạy : $ docker stats

● Tra cứu hoạt động cấu trúc file của container

$ docker diff <container name>

6.3 Network

● Tải busybox

$ docker pull busybox

Trang 23

● Kiểm tra đang có những mạng nào

$ docker network ls

● Kiểm tra thông tin của 1 network

$ docker network inspect <network name>

● Chạy container ánh xạ cổng mạng trong docker

$ docker run -it name <container name> -p <cổng muốn ánh xạ đến ở máy host

>:<ánh xạ vào cổng nào của container> busybox

$ docker network rm <network name>

● Chạy container truy cập mạng network

$ docker run -it name <container name> network <network name> busyboxTham số:

network : cho phép chỉ định network muốn truy cập

6.4 Volume

● Kiểm tra đang sử dụng ổ đĩa nào

$ docker volume ls

● Tạo ổ đĩa

$ docker volume create <volume name>

● Kiểm tra thông tin ổ đĩa

$ docker volume inspect <volume name>

● Xóa ổ đĩa

$ docker volume rm <volume name>

● Gán ổ đĩa vào container

Trang 24

$ docker run -it name <đặt tên container> mount source=<tên ổ đĩa muốn gán>,target=<thư mục nó ánh xạ ổ đĩa pathContainer> <image Id>

Tham số :

mount : dùng để gán ổ đỉa

target: ổ đĩa này gán và ánh xạ vào thư mục nào của container

● Tạo ra ổ đĩa mà nó ánh xạ đến thư mục cụ thể của máy host

$ docker volume create opt device=<đường dẫn thư mục> opt type=none

opt o=bind <tên ổ đĩa muốn tạo>

6.5 DockerFile

● Tạo 1 Dockerfile trong docker

$ touch <Dockerfile name>

Có thể thêm vào các chỉ thị sau vào Dockerfile:

+ Thiết lập thư mục mặc định của image này WORKDIR /var/www/html

+ Cho biết image này nó hoạt động, lắng nghe trên cổng nào EXPOSE 80

+ Muốn khi container tạo ra từ image này thì mặc định nó sẽ chạy tiến trình nàoENTRYPOINT [ "httpd" ]

thiết lập tham số cho ENTRYPOINT thì chúng ta sử dụng chỉ thị

CMD [ "-D", "FOREGROUND" ]

● Từ Dockerfile phát sinh ra image tương ứng

$ docker build -t <name image>:<tag image> -f <name Dockerfile> <địa chỉ imagetính từ thư mục hiện tại>

6.6 Docker Compose

● Tạo file Docker Compose

$ touch <docker-compose name>.yml

● Thực thi file Docker Compose

$ <docker-compose name> up

Trang 25

III Tìm hiểu về nền tảng học trực tuyến

1 Giới thiệu ứng dụng minh họa

1.1 Bài toán thực tế

Ngành giáo dục được xem là ngành nghề đáng trân trọng nhất trong các cả các nghề, giáodục phát triển nhanh và khả năng hội tụ cao trong bối cảnh kinh tế biến đổi liên tục hiệnnay Cùng với đó công việc quản lý và dạy học của các thầy cô cũng trở nên khó khăn hơnnếu như không có một sự phát triển về công nghệ thông tin trong ngành giáo dục thì rấtkhó để học sinh và sinh viên có thể tiếp thu phát triển hết khả năng của mình Ứng dụngcông nghệ vào nền tảng giáo dục học trực tuyến chính là một giải pháp được rất nhiều chủđầu tư lựa chọn hiện nay Không chỉ giúp người dạy được chủ động hơn trong việc truyềntài mà còn giúp cho học sinh, sinh viên tiếp thu kiến thức một cách tổng quan hơn, côngnghệ còn giúp ngành giáo dục vươn xa nhiều hơn thế nữa

Không những thế, trong thời gian gần đây, việc dịch bệnh Covid-19 lan rộng trên phạm vitoàn thế giới, việc suy giảm nhu cầu học tập trực tiếp và không thể đến trường lớp để họccùng thầy cô đã ảnh hưởng rất nhiều đến các bạn học sinh và sinh viên.Chính vì lại cảng có

do để đưa ngành giáo dục tích hợp với công nghệ thông tin để người học có thể tiếp thuđược kiến thức trực tiếp trong bối cảnh dịch bệnh đang rất phức tạp

1.2 Tìm hiểu về các mô hình nền tảng học trực tuyến

Tìm hiểu theo hướng phát triển nền tảng học trực tuyến thì chúng ta có cái nhìn tổng quát

về hướng theo 3 mô hình và điểm khác nhau như nào?

Mô hình 1: (nền tảng trực tiếp lên chuyển thành trực tuyến) chuyển hết các hoạt động học tập, công cụ học tập và quản lý giờ giấc của giáo viên và học sinh của 1 trường trực tiếp sang trực tuyến)

❖ Người dùng: BQL nhà trường, giáo viên, nhân viên, học sinh, PHHS

❖ Các chức năng cơ bản:

● Đối với BQL nhà trường:

Trang 26

○ Quản lý giáo viên

○ Quản lý nhân viên

○ Quản lý học sinh

● Đối với giáo viên:

○ Quản lý lớp học

○ Quản lý môn học: đăng bài giảng môn học

○ Tương tác với học sinh

● Đối với học sinh:

○ Học các môn học trong khóa

○ Tương tác với nhà trường

● Bài giảng theo lớp 10, 11, 12

● Điểm danh

● Quản lý thu chi (tiền học phí, tiền lương)

● Quản lý thời khóa biểu

Trang 27

● Học sinh:

○ Học sinh được chia ra thành các chi nhánh để có thể dễ dàng kiểm soát thôngtin

○ Thông tin của học viên được quản lý đầy đủ

○ Các khóa học và chương trình học của học sinh được cập nhật đầy đủ

○ Nhắc nhở khi học sinh vắng nhiều buổi

○ Tổng hợp các kết quả học tập để khen thưởng hoặc nhắc nhở các học sinh

● Giáo viên:

○ Tổng hợp thành tích của giáo viên để phụ huynh và học viên có sự thuyếtphục trong sự lựa chọn khóa học của mình

○ Quản lý số giờ lên lớp của giáo viên

○ Kiểm soát các danh sách lớp học mà giáo viên đang dạy

● Lớp học:

○ Điểm danh và quản lý số lượng học viên có trong lớp học

○ Chỉnh sửa như thêm, xóa,… lịch học Lưu ý lịch học có thể được sắp xếp đểlặp lại theo tuần, theo tháng và theo năm

● Thu chi:

○ Tổng lại số tiền mà mỗi học viên phải trả, nhắc nhở nếu quá hẹn

○ Quản lý số tiền đã chi trả cho nhu cầu của các chương trình học

○ Tự động xử lý học phí trong các trường hợp chuyển lớp, chuyển khóa học haycác trường hợp rắc rối

● Quản lý kết quả học tập của học viên:

○ Tính kết quả trung bình của học viên

○ Lưu tự động kết quả trong hệ thống

○ Tổng hợp kết quả cao nhất để khen thưởng

Trang 28

❖ Nhược điểm:

➢ Nhà trường sẽ phải thay đổi cách dùng truyền thống từ giấy tờ, excel, quaphần mềm chỉ cần nhập liệu và thực hiện trên máy tính Đầu tiên bạn bỏ rachính là thời gian để triển khai, đưa nhân viên vào luồng làm việc nhập số liệutrên phần mềm

➢ Chi phí bỏ ra để đầu tư phần mềm tùy theo quy mô và nghiệp vụ mà đòi hỏiphần mềm

– Phải mất thời gian để lập kế hoạch dự án, xác định các mốc quan trọng, nhập mọi thứvào hệ thống và phân bổ nhiệm vụ cho các thành viên trong nhóm

Mô hình 2: giống nền tảng như udemy gồm nhiều môn lĩnh vực, xây dựng ra nhằm mục đích cho các học viên có một khóa học trọn vẹn Mô hình này là 1 gói môn học ví

dụ như cntt, kế toán, kinh tế, … không có lớp như là lớp 1 gồm học những môn gì Mô

Trang 29

hình này nó tập hợp nhiều lĩnh vực để đạt mục tiêu mình cần ví dụ như làm web thì học css, html, js, framework

❖ Người dùng: giảng viên và học viên (tất cả mọi người đều có thể là giảng viên và họcviên)

❖ Các chức năng cơ bản:

● Đối với giảng viên

○ Đăng bài giảng, viết tài liệu

○ Trả lời thắc mắc học viên

○ Tương tác với học viên

○ Nhận tiền từ bán khóa học

● Đối với học viên

○ Mua khóa học hoặc học khóa học miễn phí

○ Tương tác với giảng viên đặt câu hỏi

○ Lưu bài giảng học lâu dài

● Danh sách các khóa học trực tuyến phân làm nhiều lĩnh vực

● Danh sách rút gọn các khóa học yêu thích

● Đánh giá và nhận xét giúp khóa học đáng tin cậy hơn

Trang 30

● Cập nhật những thay đổi của giảng viên sau trong phạm vi khóa học sau khimua

● Bài giảng là video có phụ đề đi kèm resource hoặc bài đọc

● Ghi chú trong lúc học và làm quiz sau mỗi bài giảng

● Hỏi đáp với giảng viên và nhận hướng dẫn

● Tạo khóa học và trở thành giảng viên

Hiện có các khóa học với nhiều ngôn ngữ trên nền tảng

Bạn được truy cập vĩnh viễn không hạn chế đối với mọi nội dung của cáckhóa học mà bạn đã mua (và dĩ nhiên bất kỳ khóa học miễn phí nào trên nềntảng)

Các khóa học có xu hướng tập trung vào những kỹ năng thực tế thay vì kiếnthức lý thuyết đơn thuần

Đối với các nhóm từ 5 người trở lên, cung cấp chương trình đào tạo khôngphụ thuộc địa điểm dựa trên tập hợp khóa học được tuyển chọn

❖ Nhược điểm:

● Số lượng khóa học hiện tại có thể quá nhiều, và việc chọn một khóa học haycần có thời gian

● Phải kết hợp nhiều khóa học thì mới đạt được mục tiêu kiến thức

● Văn bằng khóa học được cấp trực tiếp và hiếm khi đề cập đến một thươnghiệu trường đại học nổi tiếng

● Một số khóa học hay nhất thường bằng tiếng Anh, và một số ngôn ngữ nhấtđịnh thì cung cấp ít lựa chọn hơn

Mô hình 3: (giống như mô hình dạy thêm) 1 người thầy cô giảng viên chuyên về 1 môn nào đó ra chuỗi cái video lớp 10 11 12, giữa người có kiến thức với người chưa có kiến thức Mang tính c2c (tức là người dùng mang đến cho người dùng)

Trang 31

❖ Người dùng: giáo viên và học sinh

❖ Các chức năng cơ bản:

● Đối với giáo viên

○ Đăng bài giảng, viết tài liệu

○ Trả lời thắc mắc học viên

○ Tương tác với học viên

● Đối với học sinh

○ Học trọn vẹn được một môn nào đó của khối lớp

○ Tương tác với giảng viên đặt câu hỏi

Trang 32

○ Lưu bài giảng học lâu dài

● Danh sách các môn học trực tuyến phân làm nhiều lớp

● Danh sách rút gọn các môn học yêu thích

● Đánh giá và nhận xét giúp môn học đáng tin cậy hơn

● Cập nhật những thay đổi của giáo viên sau trong phạm vi môn học sau khimua

● Bài giảng là video có phụ đề đi kèm resource hoặc bài đọc

● Ghi chú trong lúc học và làm quiz sau mỗi bài giảng

● Hỏi đáp với giáo viên và nhận hướng dẫn

❖ Ưu điểm:

● Đào tạo mọi lúc mọi nơi: Truyền đạt kiến thức nhanh chóng, thông tin theo

yêu cầu của học viên Người học có thể truy cập vào các khóa học trực tuyến

tại bất kỳ nơi đâu: ở nhà, nơi làm việc hay các địa điểm mạng internet côngcộng và vào bất ký thời gian nào thích hợp khi người học muốn

● Tiết kiệm chi phí học tập: Giúp học sinh giảm tới khoảng 60% chi phí đi lại,địa điểm tổ chức học tập Mỗi học sinh đều có thể đăng ký nhiều môn học và

thanh toán trực tuyến chi phí học tập.

● Tiết kiệm thời gian học tập: So với phương pháp đào tạo truyền thống thì cáckhóa học qua mạng giúp học viên tiết kiệm khoảng từ 20 đến 40 % thời gian

đo giảm được thời gian đi lại và sự phân tán

● Linh động và uyển chuyển: học sinh có thể chủ động và linh hoạt trong sự chỉ

dẫn của giáo viên hay những môn học trực tuyến với hình thức tương tác.

Ngoài ra, học sinh còn có thể tự động điều chỉnh tốc độ học tập theo khả năng,

và còn có thể nâng cao thêm kiến thức thông qua những tài liệu của thư việntrực tuyến

● Đối với giáo viên: có thể sử dụng hình ảnh, âm thanh và video để truyền đạtnội dung học tập đến người học thêm hấp dẫn và sinh động hơn

Trang 33

● Đối với học sinh: Tiết kiệm được nhiều chi phí học tập cũng như chi phí đi lại

và địa điểm Ngoài ra, hình thức trả học phí cũng đơn giản thông qua tính

năng thanh toán online.

❖ Nhược điểm:

● Hiệu quả và chất lượng học tập không cao

● Học sinh không có nhiều cơ hội học hỏi trao đổi thông tin với bạn bè

● Muốn học sinh học tập tốt thì học online phải có đội ngũ giáo viên hướng dẫn

rõ ràng

● Môi trường học không kích thích được sự chủ động và sáng tạo của học sinh

● Học trực tuyến qua mạng làm giảm khả năng truyền đạt với lòng say mê

nhiệt huyết của giáo viên đến học sinh

Kết luận chung cho 3 mô hình:

● Ưu điểm của mô hình học trực tuyến là khả năng giảm thiểu chi phí đi lại, tiết kiệm được thời gian và không gian học tập Hơn thế nữa, việc xây dựng nền tảng không

tốn nhiều chi phí bằng việc xây dựng một trường học và cũng không cần giấy phépxây dựng phức tạp

Trang 34

● Tối ưu nội dung: Các cá nhân hay tổ chức đều có thể thiết kế nền tảng học qua

mạng nhưng cấp độ đào tạo lại khác nhau giúp học viên dễ dàng lựa chọn Đồng thời

nội dung truyền đạt phải tối ưu và nhất quán

● Hệ thống hóa: Những hệ thống học tập trực tuyến cho phép học viên dễ dàng tham gia khóa học, và có thể theo dõi kết quả cũng như tiến độ học tập Với khả năng thiết

kế website quản lý học sinh sinh viên, giáo viên có thể biết được những học viên

nào tham gia khóa học, khi nào họ hoàn tất quá trình học tập và đưa ra giải pháp thựchiện giúp họ phát triển trong quá trình học

● Nhược điểm quan trọng của hình thức học online đó chính là sự tương tác của học

viên với giảng viên một cách trực tiếp Tuy một số phần mềm có thể cung cấp tính

năng trao đổi trực tiếp giữa giảng viên và học viên thông qua các ứng dụng tròchuyện trực tuyến nhưng cũng không đầy đủ và sinh động bằng việc trao đổi nhưhình thức đào tạo truyền thống

1.3 Hướng giải quyết

Nhóm đã quyết định chọn mô hình thứ 2 và hướng đến xây dựng một trang web hỗ trợ họctrực tuyến và quản lý các khóa học cho học viên và đăng các bài giảng cho giảng viên Ứngdụng sẽ đem lại các tính năng giúp cho học viên và giảng viên được tương tác với nhautrong quá trình học tập trực tuyến xử lý nhanh chóng các nhu cầu như: xem các video bàigiảng, tương tác với giảng viên Toàn bộ hệ thống dữ liệu được cập nhật và đồng bộ trên hệthống phần mềm Nhờ đó, việc tìm kiếm và xử lý thông tin dữ liệu được thực hiện nhanhchóng và hiệu quả

2 Tìm hiểu và phân tích kiến trúc các nền tảng học trực tuyến

2.1 Giới thiệu

Internet và những tiến bộ trong Công nghệ Thông tin và Truyền thông đã thay đổi môitrường giáo dục, cả trong đào tạo truyền thống và đào tạo từ xa Kết quả là đã có sự thayđổi trong cách thiết kế, phát triển và chuyển tải nội dung giáo dục đến người học Đối mặtvới những chuyển đổi này, trong những năm gần đây, nhu cầu ngày càng tăng về các môitrường học tập mở, có thể mở rộng và linh hoạt

Trang 35

Nền tảng học trực tuyến là một hình thức của học tập trong đó giáo viên / giảng viên vàngười học được ngăn cách bởi không gian hay thời gian qua sử dụng công nghệ trực tuyến.Với trang web dựa trên học tập, nó có thể cho các học viên / giáo viên để học hỏi từ bất cứnơi nào, bất cứ lúc nào, với tốc độ của họ Học tập dựa trên web mang lại khả năng tiếp cận

ở mức độ chưa từng có đối với các khóa học ở vùng sâu vùng xa, các khóa học bị cấm bởigiới hạn ngân sách, các khóa học được cập nhật kiến thức mới được khám phá gần đây,những giảng viên có trình độ và hướng dẫn bất cứ lúc nào Môi trường học trực tuyến cónhững đặc điểm cụ thể liên quan đến các vấn đề về sư phạm, kỹ thuật và quản lý Quantrọng hơn, môi trường học tập nên tích hợp với các giải pháp ứng dụng doanh nghiệp khácđược sử dụng bởi nguồn nhân lực và kế toán, cho phép ban quản lý đo lường tác động, hiệuquả và chi phí tổng thể của các sáng kiến đào tạo

Nền tảng học trực tuyến cũng cần các cơ chế được cá nhân hóa để giúp người học học tậphiệu quả hơn Để cung cấp chiến lược học tập được cá nhân hóa là cần thiết cho hầu hết các

hệ thống học trực tuyến hiện nay Và hệ thống phải xem xét sở thích, sở thích và hành viduyệt của người học / người dùng khi phân tích hành vi của người học / người dùng đối vớicác dịch vụ được cá nhân hóa Có nghĩa là, khả năng của các cá nhân có thể dựa trên cáclĩnh vực và môn học chính Do đó, việc xem xét khả năng của người học có thể thúc đẩyhiệu suất học tập được cá nhân hóa

Với sự gia tăng về số lượng sinh viên, tăng trưởng nhanh chóng của nội dung giáo dục vàthay đổi cơ sở hạ tầng CNTT, các cơ sở giáo dục đang phải đối mặt với một sự gia tăngđáng kể trong chi phí và giảm ngân sách mà dẫn đến sự cần thiết của việc tìm kiếm một sốthay thế cho các giải pháp e-learning của họ Ngoài ra, hệ thống học trực tuyến hiện tại làkhông thể mở rộng và không dẫn đến việc sử dụng hiệu quả các nguồn lực Để đối phó với

sự gia tăng áp lực này và để tăng hiệu quả và tính khả dụng của hệ thống học tập điện tửhiện tại , các học viện giáo dục cần có nhiều kiến trúc / phương pháp tiếp cận có thể mởrộng hơn Nhiều cơ sở giáo dục đại học và các tổ chức doanh nghiệp đang áp dụng nềntảng học trực tuyến như một phương tiện cung cấp việc học và tăng hiệu quả đào tạo Từ

Trang 36

quan điểm của hành vi tiêu dùng và từ tổ chức và quan điểm quản lý, nhiều nhà nghiên cứucủa phần giáo dục và giáo viên muốn áp dụng kỹ thuật ảo hóa để chương trình giáo dục của

họ và tìm hiểu hệ thống xử lý

2.1.1 Kiến trúc của nền tảng học trực tuyến và các thành phần chính

Nền tảng học trực tuyến nên bao gồm bốn thành phần giải pháp chính, được kết nối chặtchẽ với nhau Họ đang:

● Một ứng dụng dựa trên web sẽ chứa hầu hết các tính năng để đơn giản hóa quá trìnhphát triển của thị trường giáo dục

● Xử lý video để chuyển mã, tải lên và phát trực tuyến video giáo dục theo yêu cầu

● Xử lý dữ liệu sẽ nhận các sự kiện từ các phần khác của dịch vụ eLearning tùy chỉnh

và nhập chúng

● Bộ nhớ đám mây để lưu trữ các tệp video giáo dục gốc được tải lên theo yêu cầu

Khi phát triển nền tảng học trực tuyến, có thể chọn kiến trúc trong số các tùy chọn sau:

● Xây dựng một nền tảng học trực tuyến nguyên khối nếu đang cân nhắc phát triểnmột phần mềm nền tảng học tập với số lượng nội dung, người dùng hạn chế, v.v.Nói cách khác, bạn sẽ không mở rộng quy mô đáng kể trong tương lai

Trang 37

● Tách các nền tảng học trực tuyến backend thành microservices là một lựa chọn tuyệtvời nếu bạn định tạo một nền tảng học tập trực tuyến, nơi các tổ chức giáo dục bênthứ ba sẽ đăng và bán các khóa học trực tuyến của họ.

2.1.2 Giải pháp cho vấn đề

Nó cần một cách tiếp cận có thể mở rộng hơn với ảo hóa để cung cấp khả năng hiển thịnăng động và kiểm soát việc quản lý dịch vụ để đáp ứng nhu cầu ngày càng tăng nhanhchóng đối với các dịch vụ học trực tuyến

Việc áp dụng Kiến trúc hướng dịch vụ (SOA) vào nền tảng học trực tuyến mang lại khảnăng học tập thích ứng tốt hơn Ngoài ra, điện toán đám mây cung cấp nền tảng học trựctuyến là tính khả dụng liên tục, tăng hiệu quả và bảo mật cao hơn Nó làm tăng dung lượnglưu trữ mà nó dành cho các tổ chức giáo dục Hiệu quả tiềm năng của việc sử dụng điệntoán đám mây trong giáo dục đại học đã được nhiều trường đại học công nhận

Cung cấp kiến trúc tham chiếu sử dụng Kiến trúc điện toán đám mây và máy tính hướngdịch vụ trong nền tảng học trực tuyến có thể làm tăng khả năng mở rộng, tính linh hoạt và

Trang 38

tính khả dụng hơn của các nền tảng học trực tuyến Do đó, đề xuất cung cấp kiến trúc thamchiếu sử dụng Kiến trúc Điện toán Đám mây Hướng Dịch vụ cho nền tảng học trực tuyến

để phát triển các hệ thống / kiến trúc học tập

Kiến trúc có thể được nhân rộng, cả chiều ngang và chiều dọc, và các tổ chức giáo dụcđược tính theo số lượng của các máy chủ sử dụng mà phụ thuộc vào số lượng của sinh viênhoặc học viên

Kiến trúc đề xuất giải quyết những hạn chế của nền tảng học trực tuyến dựa trên SOA vàtruyền thống liên quan đến khả năng tương tác, khả năng tái sử dụng, tính mở, tính linhhoạt và các công cụ hạn chế cho học tập cộng tác và xã hội Nó trình bày một môi trườnghọc tập dựa trên Web hợp tác và thích ứng được tích hợp

2.2 Công nghệ nền tảng

Nền tảng học trực tuyến là một thuật ngữ dùng để chỉ tất cả các hình thức giảng dạy vàhọc tập duy trì bằng phương pháp điện tử Nền tảng học trực tuyến là học tập diễn ra trênInternet cho phép chuyển giao các kỹ năng và kiến thức đến các vị trí địa lý khác nhau

Nó sử dụng công nghệ dựa trên Internet như một phương tiện giao tiếp chính giữa giáoviên và học sinh Học tập điện tử bao gồm và rộng rãi đồng nghĩa với học tập Đa phươngtiện, Học tập nâng cao công nghệ (TEL), hướng dẫn dựa trên máy tính (CBI), đào tạo dựatrên máy tính (CBT), hướng dẫn có sự hỗ trợ của máy tính hoặc hướng dẫn có sự hỗ trợcủa máy tính (CAI ), đào tạo dựa trên internet (IBT), đào tạo dựa trên web (WBT), giáodục trực tuyến, giáo dục ảo, môi trường học tập ảo (VLE), m-learning và hợp tác giáo dục

kỹ thuật số Những tên thay thế này nhấn mạnh một khía cạnh, thành phần hoặc phươngthức phân phối cụ thể

Nền tảng học trực tuyến bao gồm nhiều loại phương tiện truyền tải văn bản, âm thanh,hình ảnh, hoạt ảnh và video trực tuyến , đồng thời bao gồm các ứng dụng và quy trìnhcông nghệ như băng âm thanh hoặc video, truyền hình vệ tinh, CD-ROM và cả học tậpdựa trên máy tính như mạng nội bộ / mạng ngoại vi cục bộ và học tập dựa trên web Các

hệ thống thông tin và truyền thông , cho dù tồn tại độc lập hay dựa trên mạng cục bộ hoặcInternet trong học tập được nối mạng, đều có nhiều quy trình học tập điện tử Học tậpđiện tử có thể diễn ra trong hoặc ngoài lớp học Nó có thể là học tập theo nhịp độ, khôngđồng bộ hoặc có thể được hướng dẫn bởi người hướng dẫn, học tập đồng bộ Nền tảng

Trang 39

học trực tuyến là phù hợp với đào tạo từ xa và học tập linh hoạt, nhưng nó cũng có thểđược sử dụng trong kết hợp với giảng dạy mặt đối mặt, trong trường hợp này học tập tổnghợp hạn thường được sử dụng Hiện nay có rất nhiều nền tảng học trực tuyến hệ thống cósẵn với mở nguồn và bản quyền thương mại Các hệ thống học tập điện tử phổ biến nhất

là Blackboard, Moodle, Sakai và Adobe e-learning

2.2.1 Hệ thống học tập được cá nhân hóa

Các nền tảng học trực tuyến được cá nhân hóa có tiềm năng nâng cao giáo dục từ xa lênmột tầm cao mới Loại công cụ này sử dụng một loạt các phương pháp tiếp cận để điềuchỉnh cho phù hợp với kiến thức, sở thích và sở thích của từng học sinh để mang lại mức

độ hỗ trợ vượt trội Do đó, chiến lược học tập cá nhân hóa là cần thiết cho hầu hết các nềntảng học trực tuyến hiện nay Ngày nay, hầu hết các hệ thống khuyến nghị đều xem xét sởthích, sở thích và hành vi duyệt web của người học / người dùng khi phân tích hành vi củangười học / người dùng đối với các dịch vụ được cá nhân hóa Việc cá nhân hóa nên xemxét các cấp độ khác nhau của người học / người dùng kiến thức, đặc biệt là liên quan đếnhọc tập Do đó, việc xem xét khả năng của người học có thể thúc đẩy hiệu suất học tậpđược cá nhân hóa

Ngoài ra, hầu hết các hệ thống học tập điện tử đều thiếu sự hiện diện và kiểm soát củangười hướng dẫn đối với quá trình học tập để hỗ trợ và giúp đỡ người học trong nhữngmôi trường này (còn được gọi là sự tiếp xúc của con người) Do đó, mô hình hóa hành vicủa người hướng dẫn và cung cấp phản hồi tức thì là một nhiệm vụ quan trọng trongnhững môi trường này

Trang 40

2.2.2 Công nghệ dịch vụ Web

Các đối tượng học tập khác nhau có thể được công nhận lẫn nhau để cho phép trao đổigiữa các hệ thống học tập khác nhau hỗ trợ các tiêu chuẩn này Tuy nhiên, nền tảng họctrực tuyến gặp phải một số vấn đề Nền tảng học trực tuyến nguồn được luôn phân bốxung quanh một số địa điểm, làm cho nó khó khăn để tích hợp nhiều nền tảng học trựctuyến nguồn lực

● Hầu hết các thành phần của nền tảng học trực tuyến đều phụ thuộc vào hệthống và không thể kết hợp với các hệ thống khác

● Hầu hết các hệ thống nền tảng học trực tuyến đều yêu cầu người học sử dụngcác thiết bị khách cụ thể để học

● Người học vẫn không thể học nếu không bị giới hạn về thời gian và địa điểm Dịch vụ web là cách triển khai tích cực nhất và được chấp nhận rộng rãi của Kiến trúchướng dịch vụ (SOA) Công nghệ Web Services đang được liên tục được chuẩn hóa đểđảm bảo khả năng tương tác và an ninh Dịch vụ Web thực hiện các cuộc gọi đến cácphương thức web được hiển thị như một dịch vụ bằng cách gửi và nhận các tin nhắnSOAP Web Services được thường xuyên được coi là một trong những hình thức tiên tiếnnhất của SOA thực hiện và thường là một trong những trưởng thành hầu hết là tốt

2.2.3 Kiến trúc hướng dịch vụ

Các Service-Oriented Computing (SOC) mô hình liên quan đến các thiết lập của các kháiniệm, nguyên tắc và phương pháp mà đại diện cho máy tính trong SOA trong các ứng dụngphần mềm được xây dựng dựa trên các dịch vụ thành phần độc lập với các giao diện tiêuchuẩn SOA khiến chúng ta hiểu nó như một kiến trúc định hướng xung quanh các dịch vụ

Dịch vụ là các phần mềm rời rạc, được triển khai bằng cách sử dụng các tiêu chuẩn và đặc

điểm giao diện được xác định rõ ràng Một dịch vụ, sau khi được phát triển và thử nghiệm

sẽ được gửi đến một thư mục hoặc sổ đăng ký để nó có sẵn cho các nhà phát triển khác Sổđăng ký cũng chứa một kho lưu trữ, chứa các chi tiết của dịch vụ đã xuất bản, chẳng hạnnhư cách xây dựng giao diện, các mức dịch vụ mong đợi là gì, quyền duy trì , v.v MộtSOA điển hình sẽ giống như trong Hình 1

Ngày đăng: 08/03/2022, 21:38

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w