1. Trang chủ
  2. » Cao đẳng - Đại học

báo cáo thực tập xây dựng CHATAPP và triển khai với DOCKER và KUBERNETES

23 66 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 23
Dung lượng 612,65 KB

Nội dung

ĐẠI HỌC QUỐC GIA TP.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 THỰC TẬP XÂY DỰNG CHATAPP VÀ TRIỂN KHAI VỚI DOCKER VÀ KUBERNETES Công ty thực tập : DEK TECHNOLOGY Người phụ trách : Lâm Khang Thực tập sinh : Nguyễn Tiến Đạt TP.HỒ CHÍ MINH, 2020 LỜI MỞ ĐẦU Quá trình học tập đại học giúp sinh viên có kiến thức lý thuyết thực hành Tuy nhiên, với khối lượng kiến thức học chưa đủ để sinh viên áp dụng vào việc làm thực tế Vì thế, để đáp ứng yêu cầu doanh nghiệp tham gia tuyển dụng, nhà trường tạo điều kiện cho sinh viên tiếp xúc trực tiếp với doanh nghiệp ngồi ghế nhà trường để tìm hiểu làm quen với cơng việc thực tế Thơng qua để hiểu rõ cách điều hành hoạt động doanh nghiệp Trong thời gian thực tập Công ty DEK Technology, em tiếp thu nhiều kiến thức kỹ năng, tư logic tư lập trình Song song em có hội làm quen, thực đóng góp kiến thức mà thân em học tập trình thực tập cơng ty, hiểu quy trình làm việc cách quản lý công việc cách hiệu Ngồi kiến thức chun mơn, em rèn luyện tinh thần trách nhiệm công việc, khả chịu áp lực với công việc, kỹ mềm giao tiếp, làm việc nhóm thành viên dự án, quản lý thời gian làm việc cách có hiệu Qua thời gian tìm hiểu thực hành thực tế, em xây dựng cho thân quy trình làm việc trình tự Nội dung đề tài gồm chương: Chương 1: Giới thiệu công ty Chương 2: Giới thiệu chương trình thực tập Chương 3: Nợi dung thực tập Chương 4: Kết luận Người phụ trách: Lâm Khang Nguyễn Tiến Đạt LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến tất Thầy/Cô khoa Cơng nghệ Phần mềm nói riêng trường Đại học Công nghệ Thông tin – Đại học quốc gia TPHCM nói chung tận tình dạy em kiến thức cần thiết tạo điều kiện cho em tiếp xúc với môi trường doanh nghiệp, giúp em tự tin Tiếp đến, em xin trân thành gửi lời cảm ơn đến Công ty DEK Technology tạo điều kiện cho em có hội thực tập công ty Chỉ thời gian ngắn, nhờ dẫn nhóm trainer, em tiếp thu kiến thức quan trọng kĩ năng, tư lập trình kiến thức liên quan cách thức hoạt động doanh nghiệp Chân thành cảm ơn anh chị dành nhiều thời gian, cơng sức q báu để hướng dẫn em hồn thành chương trình thực tập Đặc biệt cảm ơn anh Lâm Khang hướng dẫn, giúp đỡ cho em tận tình khó khăn công việc, đến bất cập làm quen với mơi trường mới; cảm ơn chị Ngọc phịng Nhân hỗ trợ chúng em nhiều vấn đề làm việc công ty Một lần xin cám ơn anh chị công ty DEK Technology giúp đỡ để hồn thành tốt công việc thời gian thực tập công ty Em xin chân thành cảm ơn! Nguyễn Tiến Đạt TP.HCM, ngày 17 tháng 12 năm 2020 Người phụ trách: Lâm Khang Nguyễn Tiến Đạt NHẬN XÉT CỦA KHOA Người phụ trách: Lâm Khang Nguyễn Tiến Đạt MỤC LỤC Chương GIỚI THIỆU VỀ CÔNG TY Chương GIỚI THIỆU VỀ CHƯƠNG TRÌNH THỰC TẬP Chương NỘI DUNG THỰC TẬP Chương KẾT LUẬN Error! Bookmark not defined TÀI LIỆU THAM KHẢO .21 TỔNG KẾT 22 Người phụ trách: Lâm Khang Nguyễn Tiến Đạt Chương GIỚI THIỆU VỀ CÔNG TY 1.1 Giới thiệu công ty DEK Technologies DEK Technologies thành lập Melbourne Australia vào năm 1999, với kỹ sư cung cấp dịch vụ phát triển phần mềm phần cứng cho ngành viễn thông Khi công ty dịch vụ thiết bị viễn thông mạng đa quốc gia lớn giới thơng báo kết thúc phịng thí nghiệm nghiên cứu phát triển khu vực Melbourne, năm 2002, 450 nhân viên bị dư thừa tìm kiếm việc làm Công nghệ DEK nắm lấy hội để đảm bảo lực chuyên môn kỹ thuật phát triển thành tổ chức toàn cầu Các kỹ sư làm việc sản phẩm chịu trách nhiệm xử lý 40% (gần tỷ) số gọi di động hàng ngày giới Các dự án nhiệm vụ công ty trải rộng nhiều ngành quốc gia, với hội mở rộng thị trường toàn cầu 1.2 Sản phẩm công ty Nghiệp vụ chuyên môn: - Cung cấp dịch vụ phát triển phần mềm phần cứng - Quản lý, thiết kế phát triển dự án phần mềm - Cung cấp tảng công nghệ Internet of Things - Telegea tảng để quản lý giám sát lượng nhiệt - Phát triển phần mềm phần cứng lĩnh vực: thông tin viễn thông, y tế, thương mại điện tử, an tồn bảo mật, Cơng nghệ sử dụng: Người phụ trách: Lâm Khang Nguyễn Tiến Đạt C/C++, Java, Net, Erlang, Python, Perl, PHP, Unix, Linux, Windows, Android, iOS, 3G, 4G, Kotlin, Objective C, Swift, React Native, Javascript, Bootstrap, Angular, Vue, React JS, Người phụ trách: Lâm Khang Nguyễn Tiến Đạt Chương GIỚI THIỆU VỀ CHƯƠNG TRÌNH THỰC TẬP 2.1 Tổng quan chương trình thực tập Tham gia chương trình thực tập theo chuẩn đào tạo đầu vào công ty kiến thức C++, hệ điều hành Linux, Kubernetes, Gitlab, CI/CD công cụ MobaXterm, Visual Code Quản lý, thiết kế phát triển phần mềm Availability Chat Application đề theo quy trình quản lý Scrum/Agile Cuối chương trình, hồn thành sản phẩm đề theo yêu cầu công ty, demo báo cáo kết sản phẩm 2.2 Các quyền nghĩa vụ thực tập sinh Yêu cầu: - Có tư lập trình - Giao tiếp tiếng Anh cuối Sprint để demo cho anh chị trainer - Nghiêm túc có trách nhiệm Quyền lợi: - Trong thời gian tham gia training, công ty sẽ hỗ trợ cho thực tập sinh với chi phí 2.000.000 đ/tháng - Được hướng dẫn đào tạo chun mơn hồn toàn miễn phí đồng thời kèm mức hỗ trợ hàng tháng từ phía cơng ty - Sử dụng máy tính công ty cung cấp - Miễn phí đồ uống (Milo, vinamilk, trà, cà phê, …) - Sau hoàn thành chương trình đào tạo, cơng ty tạo điều kiện cho sinh viên trở thành nhân viên chính thức công ty 2.3 Thời gian thực tập Chương trình thực tập kéo dài 2.5 tháng (10 tuần) từ 30/08/2020 đến 09/10/2020 Thời gian thực tập công ty: Người phụ trách: Lâm Khang Nguyễn Tiến Đạt - Trong thời gian thực tập, thực tập sinh phải làm việt 3.5 ngày / tuần - Mỗi ngày làm việc Người phụ trách: Lâm Khang Nguyễn Tiến Đạt Chương NỘI DUNG THỰC TẬP Đợt thực tập với chủ đề “Xây dựng ứng dụng chat có tính khả dụng cao tảng Linux/Ubuntu” Ngồi việc tập trung vào thiết kế phát triển có áp dụng quy trình phát triển phần mềm Scrum/Agile, đợt thực tập cịn giúp sinh viên tiếp cận cơng nghệ triển khai ứng dụng với Docker Kubernetes Rèn luyện kỹ mềm làm việc nhóm, giao tiếp demo sản phẩm sprint tiếng Anh 3.1 Giới thiệu công ty yêu cầu nhân viên Thời gian: tuần Nội dung: Giới thiệu công ty, cách thức tổ chức nhân cách làm việc nhân viên công ty Được nghe anh chị phụ trách phịng nhân giới thiệu cơng ty; trình thành lập, phát triển; cấu tổ chức; quy trình làm việc Ngồi ra, thực tập sinh cịn giới thiệu chương trình thực tập, quyền nghĩa vụ thực tập sinh Kết quả: Hiểu thêm cơng ty DEK Technologies, q trình hình thành phát triển Sử dụng công cụ giao tiếp, quản lý công việc, kế hoạch hiểu chuyển nghiệp 3.2 Traning công nghệ 3.2.1 Các công cụ làm việc Thời gian: tuần Nội dung: Tìm hiểu công cụ sẽ sử dụng trình làm việc Một số phần mềm số VirtualBox (quy định công ty cho phép phát triển phần mềm máy ảo), Quản lý source code GitLab & CICD, MobaExterm để remote access vào máy ảo, Làm việc giao tiếp thông qua Skype, Kết : Lập trình sử dụng cơng cụ miễn phí, giúp dễ dàng kết hợp cơng cụ với nhau, so với việc dùng IDE Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 10 3.2.2 C/C++ Project Ubuntu Thời gian: tuần Nội dung: Tìm hiểu làm quen với hệ điều hành Ubuntu, tảng mà ứng dụng sẽ phát triển triển khai Học cách tự tạo project C/C++ công cụ Ubuntu CMake, Ninja Build Không giống việc phát triển C/C++ project Window, Ubuntu Visual Studio làm IDE Kết quả: Làm quen thành thạo thao tác sử dụng hệ điều hành Ubuntu Xây dựng cấu trúc mẫu cho chương trình C/C++ Ubuntu 3.3 Thực project Sau tuần đầu làm quen với môi trường làm việc, tiếp cận làm quen với kiến thức Thực tập sinh nắm phương pháp để thực với project C/C++ Ubuntu Các tuần sau, trainer sẽ hướng dẫn thực project theo quy trình phát triển phần mềm Scrum/Agile 3.4 Nhật ký thực tập Tuần Tuần Công việc - Training IT policy and (03/08/2020 infrastructure - Người hướng dẫn Kết Chị Kim Ngọc - Nắm quy Chị Phương Loan tắc làm việc - Training coporate policy công ty 07/08/2020) - Training Agile, GIT, CI - Làm quen với bạn intern khác Tuần - Làm quen với GIT (10/08/2020 - Xây dựng project - structure, app architecture 14/08/2020) - Xây dựng chức năng: Anh Khang Lâm - Sử dụng lệnh Anh Huỳnh Tiến GIT - Làm quen với Ubuntu nhắn tin, đổi màu tin nhắn Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 11 - Tham gia xây dựng chức Tuần - Xây dựng giao diện chat (17/08/2020 terminal - Anh Khang Lâm - Sử dụng Anh Huỳnh Tiến CMake - Thêm chức năng: nhắn - Viết unit test 21/08/2020) tin nhóm, tài khoản admin với gtest - Debug code Tuần - Sử dụng Cmake, Gtest (24/08/2020 chạy auto testing - framework Anh Khang Lâm - Setup máy chạy Anh Huỳnh Tiến test CI - Set up CI cho Gitlap Gitlab (runner) 28/08/2020) local - Tạo script chạy test CI tự động Tuần - Debug code app (31/08/2020 - Cập nhật UI - Anh Khang Lâm - Sửa số bug Anh Huỳnh Tiến ứng dụng - Tìm hiểu Docker - Tìm hiểu sử 04/09/2020) Tuần dụng Docker - Deploy docker máy (07/09/2020 local - - Cài đặt sever, database 11/09/2020) docker Anh Khang Lâm - Tạo docker Anh Huỳnh Tiến image local - Triển khai image thành container Tuần - Tìm hiểu Kubernetes Deploy thành (14/09/2020 Microk8s công pod, - service - Deploy chat app server 18/09/2020) microk8s local Người phụ trách: Lâm Khang Microk8s Nguyễn Tiến Đạt 12 Tuần - Cài đặt CICD sever - Deploy thủ (21/09/2020 công ty công pod - server cty - Deploy Kubernetes 25/09/2020) clusters thủ công server công ty - Gặp vấn đề quyền user CICD Tuần - Tạo Logger (28/09/2020 - Deploy Kubernetes - clusters tự động server 02/10/2020) công ty với CICD - Ẩn/hiển thị log cần thiết - Deploy tự động pods server cty Tuần 10 - Review code, refactor Kết thúc (05/10/2020 code tập với kết - tốt đẹp - Báo cáo cuối tập 09/10/2020) Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 13 Chương CHI TIẾT VỀ PROJECT Với đề tài “Xây dựng ứng dụng chat có tính khả dụng cao (Availability Chat Application)” Thực tập sinh phải xây dựng ứng dụng chat với chức như: Đăng nhập, Chat peer to peer, Chat nhóm, quản lý chat nhóm, Ngồi cịn phải sử dụng cơng nghệ Docker Kubernetes để đảm bảo tính khả dụng ứng dụng Bảng 4-1: Danh sách Actor có chương trình STT Ý nghĩa Tên tác nhân Người quản lý danh sách tài khoản, quản lý danh sách Admin group chat có Người dùng sử dụng chức chat app User Bảng 4-2: Danh sách Use Case có chương trình STT Ý nghĩa Tên Use Case Đăng nhập Người dùng buộc phải đăng nhập để sử dụng chức khác Quản lý danh Người dùng xác thực với phân quyền Admin sẽ có sách tài khoản quyền quản lý tài khoản như: thêm, xóa, sửa, xem Quản lý danh Người dùng xác thực với phân quyền Admin sẽ có sách nhóm chat quyền quản lý nhóm chat như: thêm, xóa, chỉnh sửa thành viên, xem Chat peer to Người dùng sử dụng chức chat trực tiếp peer với người dùng khác online Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 14 Quản lý nhóm Người dùng quyền quản lý nhóm chat chat tạo ra: chỉnh sửa thành viên, xóa nhóm Tham gia / rời Người dùng quyền tham gia nhóm (nhóm khỏi nhóm chat riêng tư phải cung cấp mật khẩu) Người dùng rời khỏi nhóm chat tham gia 4.1 Kiến trúc phần mềm Hệ thống chia thành thành phần sau: - Client: ứng dụng viết ngôn ngữ C/C++ chạy hệ điều hành Ubuntu Dành cho người dùng Admin User thơng thường, có hai phiên Console dùng Admin GUI dùng QT để lập trình dùng User - Chat Server: server chuyên dùng cho nhiệm vụ gửi nhận lưu trữ tin nhắn người dùng với Chat server sử dụng Socket để trình kết nối với Client - REST Server: server xây dựng để thực chức thông dụng người dùng: đăng nhập, quản lý tài khoản, quản lý nhóm chat Sử dụng thư viện cpprestsdk để viết HTTP request API - MySQL: hệ quản trị sở liệu để lưu trữ thông tin tài khoản người dùng, nhóm chat, tin nhắn chat, Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 15 4.2 Giao diện Client App Hình 4-1: Màn hình đăng nhập Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 16 Hình 4-2: Màn hình nhắn tin trực tiếp trực tiếp với User Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 17 Hình 4-3:Màn hình nhắn tin theo nhóm Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 18 Hình 4-4: Màn hình quản lý nhóm 4.3 Triển khai hệ thống với Docker Kubernetes Docker ứng dụng dựa công nghệ containerization, nhũng công nghệ triển khai phần mềm Docker sẽ gôm tất thành phần cần thiết ứng dụng thành một: môi trường, thư viện phụ thuộc, mã nguồn build mang liệu vào Và chạy ứng dụng đâu có cài Docker Với Docker, đóng gói phân phối phần mềm đến với khách hàng end-user nhanh chóng Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 19 Với mô tả kiến trúc hệ thống đề cập trước đó, nhóm tạo image docker tương ứng mysql, chat server rest server Phần quan trọng ứng dụng tính high availability Để đảm bảo hệ thống ln ln hoạt động Kubernetes có số tính sau: - Làm nhiệm vụ khởi động image docker lên cách tự động - Trong trường hợp container bị lỗi có khả khởi động lại Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 20 Mỗi Deployment K8S sẽ làm nhiệm vụ đảm bảo pod ln ln hoạt động, có pod bị lỗi K8S sẽ khởi động lại pod với số điều khiện khởi động định Service K8S giống cách thức để thứ kết nối với nhau: deployment kết nối với mạng bên ngồi Chẳng hạn, Chat Rest server sẽ kết nối với MySQL cho phép Client từ bên kết nối với chúng Persitent Volume giải pháp dành cho vấn đề đảm bảo tính tồn vẹn liệu Bản thân container có vùng nhớ riêng, sẽ bị trường hợp xóa pod khởi động lại, cần phải lưu trữ liệu chỗ mà khơng bị pod bị xóa Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 21 TÀI LIỆU THAM KHẢO Cho trình phát triển: https://github.com/microsoft/cpprestsdk https://ncona.com/2019/03/building-a-cpp-project-with-cmake/ https://www.geeksforgeeks.org/socket-programming-cc/ https://wiki.qt.io/Qt_for_Beginners Cho trình triển khai https://kubernetes.io/docs/home/ https://docs.docker.com/ https://docs.gitlab.com/ Người phụ trách: Lâm Khang Nguyễn Tiến Đạt 22 TỔNG KẾT Lần tham gia thực tập làm việc mơi trường thực tế, có chuẩn bị từ trước tránh bỡ ngỡ tác phong quy trình làm việc môi trường công ty Sếp anh chị đồng nghiệp thân thiện nhiệt tình, mơi trường làm việc khơng q áp lực giúp em hồn thành tốt cơng việc giao Những kiến thức học trường kiến thức tảng để từ đào sâu nghiên cứu thực nhiều dự án thực tế để đáp ứng yêu cầu kiến thức kỹ môi trường làm việc chuyên nghiệp Ở công ty, với quy trình làm việc rõ ràng với giám sát quản lý người có chun mơn tốt, dự án đa phần hoàn thành thời gian đề Ngoài kiến thức kỹ thuật hay lập trình, để sinh viên thích ứng nhanh với mơi trường cơng ty u cầu kỹ mềm sinh viên phải đạt mức độ định Có số lượng khơng nhỏ sinh viên có kiến thức tốt kỹ mềm yếu nên không nhận vào công ty chi trả mức lương thấp lực.Tự nghiên cứu, giải vấn đề, nêu ra/trình bày vấn đề, kỹ giao tiếp với đồng nghiệp, kỹ Tiếng Anh,… kỹ sinh viên cần phải trau dồi sinh viên để đáp ứng yêu cầu nhà tuyển dụng Người phụ trách: Lâm Khang Nguyễn Tiến Đạt ... Linux/Ubuntu” Ngoài việc tập trung vào thiết kế phát triển có áp dụng quy trình phát triển phần mềm Scrum/Agile, đợt thực tập giúp sinh viên tiếp cận công nghệ triển khai ứng dụng với Docker Kubernetes Rèn... gian thực tập Chương trình thực tập kéo dài 2.5 tháng (10 tuần) từ 30/08/2020 đến 09/10/2020 Thời gian thực tập công ty: Người phụ trách: Lâm Khang Nguyễn Tiến Đạt - Trong thời gian thực tập, thực. .. Ubuntu Xây dựng cấu trúc mẫu cho chương trình C/C++ Ubuntu 3.3 Thực project Sau tuần đầu làm quen với môi trường làm việc, tiếp cận làm quen với kiến thức Thực tập sinh nắm phương pháp để thực với

Ngày đăng: 05/09/2021, 21:07

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w