Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
880,91 KB
Nội dung
ĐẠ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 🙥o🙥 BÁO CÁO THỰC TẬP DOANH NGHIỆP BACKEND DEVELOPER Công ty : Imbrace Hong Kong Người phụ trách : Geoffrey Tipton Sinh viên : Nguyễn Thế Đan MSSV : 19521312 Lớp : SE501.N21.PMCL Thành phố Hồ Chí Minh, tháng năm 2023 LỜI CẢM ƠN Chương trình thực tập (03/04/2023 – 16/06/2023) công ty Imbrace Hongkong lần em trải ghiệm môi trường phát triển phần mềm thực tế với kỹ thuật công nghệ tiên tiến giới Đây hội lớn để em học kiến thức, kỹ thuật, kỹ mà em áp dụng kiến thức, kỹ lãnh hội trường áp dụng vào môi trường làm việc quốc tế chuyên nghiệp công ty Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến trường quý thầy cô khoa Công nghệ phần mềm truyền đạt vốn kiến thức làm tảng cho em trình thực tập Tiếp đến, em xin gửi lời cảm ơn chân thành đến q cơng ty Imbrace Hongkong Khơng dịch bệnh nặng nề, công ty tạo hội thuận lợi giành nhiều quyền lợi cho em thời gian thực tập Em làm việc remote cho công ty đa quốc gia Đây hội thách thức lớn, xu hướng làm việc remote trội Cũng không quên gửi lời cảm ơn chân thành đến ông Geoffrey Tipton – PM dự án imBrace, đồng nghiệp nhiều lĩnh vực frontend, backend, devops, designer tận tình bảo, hỗ trợ em ngày đầu bước chân vào công ty Xin chúc tất người nhiều sức khỏe, thành công sống Em xin chân thành cảm ơn! Nguyễn Thế Đan Hồ Chí Minh, ngày 17 tháng năm 2023 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… MỤC LỤC LỜI CẢM ƠN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN .3 MỤC LỤC DANH MỤC HÌNH ẢNH CHƯƠNG 1: GIỚI THIỆU CÔNG TY IMBRACE HONGKONG .8 1.1 Thông tin chung 1.2 Lĩnh vực hoạt động 1.3 Đối tác công ty CHƯƠNG KIẾN THỨC- KỸ NĂNG ĐÃ ĐƯỢC TẬP HUẤN .9 2.1 Kiến thức NodeJS .9 2.1.1 Tổng quan NodeJS .9 2.1.2 Vai trò NodeJS mang lại cho doanh nghiệp .10 2.2 Kiến thức Scrum .11 2.2.1 Tổng quan Scrum [1] 11 2.2.2 Vai trò Scrum mang lại cho doanh nghiệp .14 2.3 Kiến thức Git 14 2.3.1 Tổng quan Git 14 2.3.2 Vai trò Git mang lại cho doanh nghiệp 15 2.4 Kiến thức CI .15 2.4.1 Tổng quan CI .15 2.4.2 2.5 Vai trò CI mang lại cho doanh nghiệp 18 Kiến thức Docker .18 2.5.1 Tổng quan Docker [4] 18 2.5.2 Vai trò Docker mang lại cho doanh nghiệp 20 CHƯƠNG TĨM TẮT Q TRÌNH THỰC TẬP 20 3.1 Giới thiệu nhóm dự án công việc tuần .20 3.1.1 Nhóm dự án 20 3.1.2 Lịch thực tập 20 3.1.3 Bảng chi tiết công việc tuần 21 3.2 Các công việc thực 22 3.2.1 Quá trình giao cơng việc 22 3.2.2 Các công cụ sử dụng trình làm việc 22 3.2.3 Nhiệm vụ giao .23 CHƯƠNG MÔ TẢ CÔNG VIỆC 24 4.1 Ứng dụng Imbrace 24 4.1.1 Thông tin chung 24 4.1.2 Chi tiết công việc trình thực tập 25 CHƯƠNG ĐÁNH GIÁ- NHẬN XÉT .26 5.1 Kết đạt 26 5.1.1 Những kiến thức lý thuyết cố: 26 5.1.2 Những kỹ thực hành học thêm: 27 5.2 Những hạn chế 27 5.3 Bài học kinh nghiệm .28 5.4 Quy trình cơng việc hoạt động tương lai 29 Tài liệu tham khảo: .30 DANH MỤC HÌNH ẢNH Hình 1:Mơ hình làm việc Scrum 12 Hình 2: Mơ hình làm việc Cross-functional 13 Hình 3: Q trình tích hợp CI 16 Hình 4: Pipeline CI 17 Hình 5: Đồ thị Pipeline 18 Hình 6: Quy trình, bước hoạt động Docker 19 Hình 7: Giao task Sprint qua ClickUp 22 Hình 8: Ví dụ gọi tới endpoint Oauth 25 CHƯƠNG 1: GIỚI THIỆU CÔNG TY IMBRACE HONGKONG 1.1 Thơng tin chung − Tóm tắt thơng tin: Imbrace Hong Kong ( Future Embrace Limited ) công ty production nước ngồi có trụ sở Tsuen Wan- Hong Kong, thành lập năm 2021 Công ty có chi nhánh Tsuen Wan – Hong Kong, Ipoh – Malaysia, Kaohsiung – Taiwan − Các sản phẩm cơng ty: + Imbrace − Trụ sở công ty Việt Nam: Hiện công ty chưa có chi nhánh Việt Nam − Website: https://www.imbrace.co/ 1.2 Lĩnh vực hoạt động − Giải pháp dịch vụ phần mềm − Thiết kế phát triển phần mềm − Quản lý dự án phần mềm − Dịch vụ bảo trì hỗ trợ trọn gói sản phẩm công ty 1.3 Đối tác công ty - Imbrace Hong Kong product-based company , có nhiều cơng ty, doanh nghiệp khác sử dụng Imbrace tự động hóa quy trình nghiệp vụ ví dụ : KBQuest, Redwolf Airsoft, Master Concept, GoGoX, Patrick Henry Group, Partner Rhodes Restaurant Group, Jadine Restaurant Group, MercedezBenz, … CHƯƠNG KIẾN THỨC- KỸ NĂNG ĐÃ ĐƯỢC TẬP HUẤN 2.1 Kiến thức NodeJS 2.1.1 Tổng quan NodeJS Node.js mơi trường thực thi mã JavaScript phía máy chủ (server-side) xây dựng dựa Chrome's V8 JavaScript engine Nó cho phép chạy mã JavaScript bên ngồi trình duyệt web xây dựng ứng dụng mạng đa hiệu suất cao Dưới số điểm quan trọng Node.js: Kiến trúc không đồng bộ: Node.js sử dụng mơ hình khơng đồng (asynchronous) hướng kiện (event-driven), cho phép xử lý nhiều yêu cầu lúc mà không cần tạo luồng (threads) riêng biệt Điều giúp tăng hiệu suất khả mở rộng ứng dụng Mã chạy phía máy chủ: Node.js cho phép viết mã JavaScript để xây dựng ứng dụng phía máy chủ, bao gồm dịch vụ web, API, ứng dụng mạng ứng dụng thời gian thực Nền tảng mã nguồn mở: Node.js phát triển dạng mã nguồn mở, có cộng đồng lớn tích cực Điều đảm bảo phát triển nhanh chóng, hỗ trợ đa dạng liên tục cải tiến Node.js Hệ sinh thái mơ-đun (module ecosystem) phong phú: Node.js có hệ sinh thái mô-đun đa dạng, cho phép nhà phát triển sử dụng tái sử dụng mơ-đun có sẵn Nền tảng npm (Node Package Manager) hệ thống quản lý gói phần mềm mạnh mẽ nhất, cho phép tìm kiếm, cài đặt quản lý mơ-đun thư viện dễ dàng Xây dựng ứng dụng thời gian thực: Với tính khơng đồng hướng kiện, Node.js thích hợp cho việc xây dựng ứng dụng thời gian thực ứng dụng chat, streaming, game trực tuyến 10 Mở rộng dễ dàng: Node.js cho phép mở rộng ứng dụng cách linh hoạt Bằng cách sử dụng kỹ thuật clustering load balancing, bạn tăng khả xử lý đáp ứng ứng dụng dễ dàng Tóm lại, Node.js tảng mạnh mẽ cho phát triển ứng dụng mạng phía máy chủ, với tính không đồng bộ, hướng kiện khả mở rộng Nó sử dụng rộng rãi cộng đồng phát triển phần mềm công cụ quan trọng việc xây dựng ứng dụng hiệu suất cao linh hoạt 2.1.2 Vai trò NodeJS mang lại cho doanh nghiệp Node.js mang lại số lợi ích quan trọng cho Ombrace Dưới số vai trò quan trọng mà Node.js mang lại: Phát triển ứng dụng mạng nhanh chóng: Node.js sử dụng mơ hình không đồng hướng kiện, cho phép xử lý đồng thời nhiều yêu cầu mà không gây chờ đợi Điều giúp giảm thời gian phát triển ứng dụng tăng tốc độ đáp ứng, đồng thời tạo trải nghiệm người dùng tốt Mở rộng dễ dàng: Node.js cho phép mở rộng ứng dụng cách linh hoạt Bằng cách sử dụng kỹ thuật clustering load balancing, Node.js xử lý đồng thời hàng ngàn kết nối đảm bảo hiệu suất ổn định có nhiều người dùng truy cập vào lúc Tiết kiệm tài nguyên: Vì Node.js sử dụng mơ hình khơng đồng bộ, xử lý nhiều yêu cầu mà không cần phải tạo luồng riêng biệt ứng dụng truyền thống Điều giúp tiết kiệm tài nguyên máy chủ giảm chi phí vận hành hệ thống Hỗ trợ cho ứng dụng thời gian thực: Với khả xử lý kiện tính khơng đồng bộ, Node.js lựa chọn tốt cho việc phát triển ứng dụng thời gian thực ứng dụng trò chơi, streaming trực tiếp, chat trực tuyến ứng dụng IoT (Internet of Things) 18 ▪ Khi chạy git push click vào pipeline gitlab repo thơng báo đến cho gitlab runner, gitlab runner pull code về, đọc file gitlab-ci.yml thực theo bước định nghĩa ▪ Một Pipeline CI sinh report hiển thị giao diện sau Hình 4: Pipeline CI + Pipelines thành phần cấp cao tích hợp, phân phối triển khai liên tục Pipeline bao gồm: ● Jobs: Các cơng việc giao thực thi (Ví dụ: biên dịch mã chạy test) ● Stage: Xác định thời điểm cách thực (Ví dụ: test chạy sau biên dịch thành công) ● Pipeline hoạt động theo nguyên tắc sau: ▪ Tất công việc stage Runner thực song song, có đủ số lượng Runner đồng thời ▪ Nếu Success, pipeline chuyển sang stage 19 ▪ Nếu Failed, pipeline dừng lại Có ngoại lệ job đánh dấu làm thủ cơng, dù bị fail pipeline tiếp tục ▪ Bên ví dụ đồ thị Pipeline thơng thường: Hình 5: Đồ thị Pipeline + Tóm lại, bước để Gitlab CI hoạt động sau: ● Thêm.gitlab-ci.yml vào thư mục gốc repo ● Cấu hình gitlab Runner 2.4.2 Vai trị CI mang lại cho doanh nghiệp − Giảm thiểu rủi ro nhờ việc phát sửa lỗi sớm, giúp tăng chất lượng sản phẩm nhờ khả tự động kiểm tra quan sát − Không vậy, quy trình thủ cơng lặp lặp lại ngày giảm tải, thay vào xây dựng kiểm thử tự động mà không cần đến giúp đỡ người − Một đặc điểm CI deploy, triển khai phần mềm địa điểm thời gian 20 − Ngồi ra, việc tích hợp mã lên CI tăng tính chia sẻ thành viên Khi thơng tin cập nhật liên tục, thành viên team có kế hoạch triển khai phù hợp cho phần việc thân 2.5 Kiến thức Docker 2.5.1 Tổng quan Docker [4] − Docker tảng để cung cấp cách để building, deploying running ứng dụng dễ dàng cách sử dụng containers (trên tảng ảo hóa) − Các containers cho phép lập trình viên đóng gói ứng dụng với tất phần cần thiết, chẳng hạn thư viện phụ thuộc khác, gói tất dạng package Nhờ vào container, ứng dụng chạy máy Linux khác cài đặt tùy chỉnh mà máy có khác với máy sử dụng để viết code Hình 6: Quy trình, bước hoạt động Docker + Build: truy cập Docker tạo lập dockerfile, chứa code người dùng Dockerfile thiết lập thiết bị cài đặt