Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
573,97 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 Báo cáo Thực tập doanh nghiệp SE501.M21.PCML Công ty thực tập: DEK Technologies Sinh viên thực Nguyễn Thành Đạt 18520579 TP HCM, 17 tháng năm 2022 LỜI CẢM ƠN Trong sống chúng ta, có lẽ thất bại thành cơng, dù kết nỗ lực thân Và đằng sau hỗ trợ giúp đỡ từ người Xét mặt thành công, thực tế khơng có thành cơng mà khơng có giúp đỡ, học tập Dân gian ta có câu “Khơng thầy đố mày làm nên” thật đúng, học sinh thành công khơng có giúp đỡ, truyền đạt bảo tận tình người Thầy, người Cơ Và để nắm rõ hồn thành tốt trình thực tập này, em biết ơn Thầy Nguyễn Khánh Thuật hỗ trợ tận tình, cung cấp tài liệu cần thiết sẵn sàng tìm công việc thực tập phù hợp cho bạn sinh viên chưa tìm nơi thực tập Với lịng biết ơn sâu sắc nhất, em xin gửi đến quý công ty DEK Technologies nơi em thực tập, tạo điều kiện tối đa hỗ trợ em nhiệt thành suốt q trình thực tập cơng ty Đặc biệt, em xin cảm ơn anh mentor team CSCF, người hướng dẫn em trình thực tập, với kinh nghiệm tâm huyết để truyền đạt vốn kiến thức quý báu cho em suốt thời gian thực tập công ty Các anh hướng dẫn cho em cụ thể, chi tiết quy trình cách làm dự án thực tế nhiều kiến thức quý báu lời góp ý suốt q trình thực tập Ngồi ra, để q trình thực tập hồn thành tốt đẹp khơng thể khơng cảm ơn người tham gia vào trình thực tập đó, xin cảm ơn bạn, anh chị nhóm thực tập chăm chịu khó hồn thành nhiệm vụ tiến độ Xin chân thành cảm ơn thầy cô khoa Công nghệ phần mềm quý công ty DEK! Trân trọng cảm ơn Tp Hồ Chí Minh tháng năm 2022 Nhận Xét Của Giảng Viên Mục lục CHƯƠNG GIỚI THIỆU CÔNG TY THỰC TẬP 1.1 Tổng quan công ty 1.2 Môi trường làm việc CHƯƠNG TỔNG QUAN VỀ QUÁ TRÌNH THỰC TẬP 2.1 Tổng quan chương trình thực tập 2.2 Vị trí thời gian thực tập 2.3 Các nhiệm vụ giao CHƯƠNG NHỮNG KIẾN THỨC ĐÃ HỌC ĐƯỢC 3.1 Kiến thức Agile – Scrum 3.1.1 Tổng quan Agile 3.1.2 Tuyên ngôn Agile 3.1.3 Tổng quan Scrum 3.1.4 Ba giá trị cốt lõi Scrum 3.1.5 Lợi ích việc sử dụng Scrum phát triển phần mềm 10 3.2 Kiến thức GitLab 10 3.2.1 Tổng quan GitLab 10 3.2.2 Lợi ích sử dụng Gitlab 11 3.2.3 Lý nên sử dụng GitLab 12 3.3 Kiến thức IMS 12 3.3.1 Tổng quan IMS 12 3.3.2 Kiến trúc IMS Network 13 3.4 Kiến thức công cụ Jenkins 17 3.4.1 CI/CD 17 3.4.2 Jenkins 18 3.5 Kiến thức Automation Test Android 20 3.5.1 Testing Android 20 3.5.2 Automation test với Jenkins 21 CHƯƠNG KẾT QUẢ CÔNG VIỆC 22 CHƯƠNG TỔNG KẾT, KHÓ KHĂN VÀ HẠN CHẾ 24 5.1 Tổng kết 24 5.2 Khó khăn hạn chế 25 CHƯƠNG TÀI LIỆU THAM KHẢO 25 CHƯƠNG GIỚI THIỆU CÔNG TY THỰC TẬP 1.1 Tổng quan công ty DEK Technologies công ty công nghệ đạt giải thưởng cung cấp dịch vụ phần mềm phần cứng tồn cầu Cơng ty có trụ sở Úc, văn phòng làm việc khác gồm Việt Nam, Thụy Điển, Ý Hoa Kỳ Công ty TNHH DEK Technologies Việt Nam thành lập từ năm 2008, địa tại: 121/137 Lê Lợi, phường Bến Thành, quận 1, thành phố Hồ Chí Minh Tính đến văn phòng quốc tế lớn DEK Technologies với gần 400 nhân viên DEK Technologies Việt Nam đánh giá cao lực nhân viên tự hào có nhiều kỹ sư giỏi gắn bó với công ty DEK Technologies phát triển dịch vụ phần mềm phần cứng nhiều lĩnh vực: - Điện tử viễn thông - E-commerce - Y tế - An ninh – quốc phòng - Năng lượng - Điều khiển & tự động hóa 1.2 Mơi trường làm việc Do tình hình dịch bệnh nên khơng thể trực tiếp đến công ty để thực tập, sinh viên thực tập online thông qua tảng trực tuyến như: Microsoft Team: meeting, chat Outlook: mail Retrospective: ideaboardz Task manager: microsoft planner VPN CHƯƠNG TỔNG QUAN VỀ QUÁ TRÌNH THỰC TẬP 2.1 Tổng quan chương trình thực tập Là kì đào tạo thực tập sinh thứ 29 cơng ty DEK Technologies Sinh viên tham gia tập tham gia vào team khác như: - Microservice Deployment with Containers - IP Multimedia Subsystem – CSCF - IP Multimedia Subsystem – SBG Ngoài kiến thức chun mơn, chương trình trang bị kỹ khả làm việc nhóm, kĩ giao tiếp, khả hịa nhập với mơi trường doanh nghiệp Thực tập sinh tham gia tập có quyền lợi như: - Tham gia khóa đào tạo nội - Tham gia kiện cơng ty - Có hội trở thành nhân viên thức Chương trình thực tập kéo dài 10 tuần 2.2 Vị trí thời gian thực tập Vị trí thực tập: Software Developer Thời gian thực tập kéo dài từ 18/10/2021 – 22/12/2021 Thực tập fulltime từ 9h00 – 18h00 từ thứ dến thứ 2.3 Các nhiệm vụ giao Được phân công vào team IP Multimedia Subsystem – CSCF Nhiệm vụ nhóm xây dựng ứng dụng viễn thơng nhằm cung cấp dịch vụ đa phương tiện nhắn tin, gọi thoại video Sinh viên xây dựng ứng dụng client (máy tính di động) để yêu cầu dịch vụ tài nguyên từ IMS Server triển khai cách sử dụng giao thức IMS như: SIP, SDP, RTP, H.248, ENUM, Diameter Dự án sử dụng IMS Core System (Kamaillio) phía server Nhóm sử dụng ngơn ngữ lập trình để xây dựng ứng dụng client Sau cân nhắc lựa chọn, nhóm lựa chọn phát triển ứng dụng app chat nên tảng Android với Android Studio Các nhiệm vụ phân cơng tham gia vào nhóm: - Tìm hiểu khái qt hệ thống giao thức sử dụng IMS network - Tìm hiểu thực cấu hình IMS core nodes triển khai server linux - Tìm hiểu Automation Test Android viết số test case - Tìm hiểu triển khai hệ thống Continuous Integration sử dụng công cụ Jenkins CHƯƠNG NHỮNG KIẾN THỨC ĐÃ HỌC ĐƯỢC 3.1 Kiến thức Agile – Scrum 3.1.1 Tổng quan Agile Agile phương pháp phát triển phần mềm linh hoạt, hướng tiếp cận cụ thể cho việc quản lý dự án phần mềm Nó gồm q trình làm việc tương tác tích hợp để đưa sản phẩm đến tay người dùng nhanh tốt Những phương pháp phát triển phần mềm theo cách truyền thống ngày bộc lộ nhiều nhược điểm tỷ lệ dự án thất bại cao thời kỳ bùng phát ngành cơng nghệ Nhận vấn đề đó, số cá nhân công ty riêng lẻ đưa phương pháp phát triển phần mềm đại khác để thích ứng với tình hình 3.1.2 Tun ngơn Agile • Cá nhân tương tác quy trình cơng cụ • Phần mềm chạy tốt tài liệu đầy đủ • Cộng tác với khách hàng đàm phán hợp đồng • Phản hồi với thay đổi bám theo kế hoạch 3.1.3 Tổng quan Scrum Scrum “bộ khung làm việc” để tiếp cận công việc phức tạp Dựa khung này, nhóm làm việc áp dụng quy trình, kỹ thuật khác cho cơng việc Nó thành viên họ Agile 3.1.4 Ba giá trị cốt lõi Scrum Scrum giúp loại bỏ công đoạn phức tạp tập trung vào công đoạn cần thiết đáp ứng nhu cầu khác hàng đưa Ba yếu tố nịng cốt tạo thành mơ hình quản lý tiến trình thực nghiệm gồm: minh bạch (transparency), tra (inspection) thích nghi (adaptation) 3.1.5 Lợi ích việc sử dụng Scrum phát triển phần mềm Tính minh bạch, kiểm tra, thích nghi tảng Scrum Và lý nên dùng Scrum • Cải thiện chất lượng phần mềm, dễ học dễ sử dụng • Rút ngắn thời gian phát hành phần mềm, cho phép khách hàng sử dụng sản phẩm sớm • Nâng cao tinh thần đồng đội, tối ưu hóa hiệu nỗ lực đội phát triển • Gia tăng tỷ suất hoàn vốn đầu tư (ROI) • Tăng mức độ hài lòng khách hàng • Kiểm sốt dự án tốt, cải tiến liên tục • Giảm thiểu rủi ro xây dựng sản phẩm 3.2 Kiến thức GitLab 3.2.1 Tổng quan GitLab Git hệ thống quản lý phiên phân tán (Distributed Version Control System – DVCS) nhiều người ưa chuộng Git giúp máy tính lưu trữ nhiều phiên khác mã nguồn nhân từ kho lưu trữ Tất code update thông tin người sửa đổi lưu lại với Git GitLab phần mềm có nhiệm vụ quản lý kho code Git Gitlab sở hữu tính đơn giản, góp phần to lớn việc giúp doanh nghiệp, cá nhân, tổ chức lưu trữ code cách nhanh chóng vơ cùng, người dùng hồn tồn truy cập lúc nơi miễn có kết nối Internet Người dùng ẩn kho code mình, khơng cơng khai chúng cho ai, trường hợp vượt q ngưỡng miễn phí bạn phải phí để mua thêm dịch vụ 3.2.2 Lợi ích sử dụng Gitlab Khi sử dụng phần mềm Gitlab chúng mang lại cho bạn nhiều lợi ích đặc biệt, cụ thể là: • Open core Khi đối thủ Gitlap chủ yếu closed-source, ưu cạnh tranh dành cho phần mềm GitLab Community Edition mã nguồn mở hoàn chỉnh phiên Enterprise Edition open core (độc quyền) • Truy cập vào mã nguồn Người dùng xem sửa đổi source code GitLab Community Edition Enterprise Edition với Open core bạn muốn Điều thực phần mềm closed-source Người dùng thêm tính thực tùy chỉnh Server cách giả lập kho lưu trữ GitLab GitLab khuyên bạn nên cố gắng hợp thay đổi trở lại source code để người khác hưởng lợi từ thay đổi thay đổi để trì cập nhật • Xây dựng với cộng đồng Cùng với đóng góp, xây dựng phản hồi tích của người sử dụng, GitLab tích cực xây dựng phiên tốt từ ý kiến khách hàng để đem đến cho người dùng trải nghiệm tuyệt vời Điều góp phần tạo nên tính mà tổ chức thực cần, chẳng hạn quản lý người dùng thật dễ dàng khơng phần mạnh mẽ • Tính khả thi lâu dài (Viable long term) GitLab lấy lịng tin để khẳng định uy tín, nên tạo cộng đồng vững với hàng trăm nghìn tổ chức, cá nhân sử dụng đóng góp cho phần mềm GitLab có khả sử dụng lâu dài có nhiều người xây dựng, khơng đáng tin cậy có cơng ty hỗ trợ cho phần mềm • Phiên ổn định tháng GitLab phát hành phiên ổn định tháng, đầy đủ cải tiến, tính sửa lỗi Điều khiến cho GitLab phát triển nhanh đáp ứng yêu cầu khách hàng theo cách nhanh chóng 3.2.3 Lý nên sử dụng GitLab Sử dụng Gitlab mang đến cho lập trình viên lợi ích sau: • Sự tiện lợi Thao tác cần lưu trữ, tải lên, tải xuống code dễ dàng • Kiểm sốt thay đổi code nhanh chóng, xác • Dễ dàng quản lý, phân phối cơng việc, hồn thành dự án lập trình chất lượng 3.3 Kiến thức IMS 3.3.1 Tổng quan IMS - IMS, thuật ngữ viết tắt IP Multimedia Subsystem, IMS định hình phát triển diễn đàn cơng nghiệp 3G.IP, thành lập năm 1999 Kiến trúc ban đầu IMS xây dựng 3G.IP sau chuẩn hóa 3GPP (3rd Generation Partnership Project) Release công bố tháng năm 2003 - Đây kiến trúc mạng nhằm tạo thuận tiện cho việc phát triển phân phối dịch vụ đa phương tiện đến người dùng, họ kết nối thông qua mạng truy nhập IMS hỗ trợ nhiều phương thức truy nhập GSM, UMTS, CDMA2000, truy nhập hữu tuyến băng rộng cáp xDSL, cáp quang, cáp truyền hình, truy nhập vơ tuyến băng rộng WLAN, WiMAX IMS tạo điều kiện cho hệ thống mạng khác tương vận (interoperability) với Để nói cách dễ hiểu IMS hệ thống giúp người dùng mạng di động kết nối đến người dụng mạng internet để gọi điện nhắn tin với 3.3.2 Kiến trúc IMS Network Kiến trúc IMS phân thành lớp: lớp ứng dụng, lớp điều khiển (hay gọi lớp IMS hay IMS lõi) lớp vận tải (hay lớp người dùng) - Lớp dịch vụ bao gồm máy chủ ứng dụng AS (Application Server) máy chủ thuê bao thường trú HSS (Home Subscriber Server) - Lớp điều khiển bao gồm nhiều hệ thống có hệ thống IMS lõi - Lớp vận tải bao gồm thiết bị người dùng UE (User Equipment), mạng truy nhập kết nối vào mạng lõi IP Hai thực thể chức NASS RACS định nghĩa TISPAN xem thuộc lớp vận tải hay thuộc lớp điều khiển a Lớp dịch vụ Máy chủ ứng dụng AS (Application Server) nơi chứa đựng vận hành dịch vụ IMS AS tương tác với S-CSCF thông qua giao thức SIP để cung cấp dịch vụ đến người dùng Máy chủ VCC (Voice Call Continuity), phát triển chuẩn hóa 3GPP, ví dụ máy chủ ứng dụng AS AS thuộc mạng thường trú hay thuộc mạng thứ ba Nếu AS phần mạng thường trú, giao tiếp trực tiếp với HSS thông qua giao thức DIAMETER để cập nhật thông tin hồ sơ người dùng (user profiles) AS cung cấp dịch vụ quản lý diện (presence) người dùng mạng, quản lý trình hội thảo trực tuyến, tính cước trực tuyến… Máy chủ quản lý thuê bao thường trú HSS (Home Subscriber Server) xem cải tiến đăng ký định vị thường trú HLR (Home Location Register) HSS sở liệu lưu trữ thông tin tất khách hàng th bao Nó chứa đựng thơng tin nhận dạng người dùng, tên S-CSCF gán cho người dùng, hồ sơ roaming, thông số xác nhận thực thông tin dịch vụ thuê bao Trong trường hợp có nhiều HSS mạng, chức định vị người dùng SLF (Subscriber location Function) thiết lập nhằm xác định HSS chứa hồ sơ người dùng tương ứng b Lớp lõi IMS Chức lõi IMS quản lý việc tạo lập phiên liên lạc dịch vụ đa phương tiện Các chức bao gồm: CSCF (Call Session Control Function) có nhiệm vụ thiết lập, theo dõi, hỗ trợ giải phóng phiên đa phương tiện quản lý tương tác dịch vụ người dùng CSCF phân loại : Serving-CSCF, Proxy-CSCF Interogating-CSCF - Proxy-CSCF (P-CSCF) proxy SIP Sở dĩ gọi proxy nhận yêu cầu dịch vụ, xử lý nội chuyển tiếp yêu cầu đến phận khác hệ thống IMS Đây điểm kết nối hạ tầng IMS người dùng IMS/SIP Một vài hệ thống mạng dùng SBC (Session Border Controller) để thực chức Để kết nối với hệ thống IMS, người dùng trước tiên phải đăng ký với P-CSCF mạng mà kết nối Địa P-CSCF truy cập thông qua giao thức DHCP cung cấp người dùng tiến hành thiết lập kết nối PDP (Packet Data Protocol) mạng thơng tin di động gói tế bào Chức P-CSCF bao gồm: o P-CSCF nằm đường truyền tất thông điệp báo hiệu hệ thống IMS Nó có khả kiểm tra thơng điệp P-CSCF có nhiệm vụ đảm bảo chuyển tải yêu cầu từ UE đến máy chủ SIP (ở S-CSCF) thông điệp phản hồi từ máy chủ SIP UE o P-CSCF xác thực người dùng thiết lập kết nối bảo mật IPSec với thiết bị IMS người dùng Nó cịn có vai trị ngăn cản cơng spoofing, replay để đảm bảo bảo mật an toàn cho người dùng o P-CSCF nén giải nén thông điệp SIP để giảm thiểu khối lượng thông tin báo hiệu truyền đường truyền tốc độ thấp o P-CSCF tích hợp chức định sách PDF (Policy Decision Function) nhằm quản lý đảm bảo QoS cho dịch vụ đa phương tiện o P-CSCF tham gia vào trình tính cước dịch vụ - Serving-CSCF (S-CSCF) nút trung tâm hệ thống báo tín hiệu IMS SCSCF vận hành giống máy chủ SIP bao hàm chức quản lý phiên dịch vụ Các chức S-CSCF bao gồm: o Tiến hành đăng ký SIP nhằm thiết lập mối liên hệ địa người dùng (địa IP thiết bị) với địa SIP S-CSCF đóng vai trò máy chủ Registar hệ thống SIP o S-CSCF tham gia tất trình báo hiệu từ hệ thống IMS người dùng Nó kiểm tra thơng điệp muốn o S-CSCF giữ vai trò định chọn lựa AS cung cấp dịch vụ cho người dùng Nó giữ vai trị định tuyến dịch vụ thơng qua việc sử dụng giải pháp DNS/ENUM (Electronic Numbering) o S-CSCF thực sách nhà cung cấp dịch vụ S-CSCF tương tác với máy chủ AS để yêu cầu hỗ trợ dịch vụ cho khách hàng S-CSCF liên lạc với HSS để lấy thông tin, cập nhật thông tin hồ sơ người dùng tham gia vào q trình tính cước dịch vụ - Interrogating-CSCF (I-CSCF) hệ thống mạng nhà cung cấp dịch vụ điểm liên lạc cho tất kết nối hướng đến UE nằm mạng Địa IP I-CSCF công bố máy chủ DNS hệ thống Chức ICSCF bao gồm: o Định tuyến thông điệp yêu cầu SIP nhận từ mạng khác đến S-CSCF tương ứng Để làm điều này, I-CSCF liên lạc với HSS (thông qua DIAMETER) để cập nhật địa S-CSCF tương ứng người dùng Nếu chưa có S-CSCF gán cho UE, I-CSCF tiến hành gán S-CSCF cho người dùng để xử lý yêu cầu SIP o Ngược lại, I-CSCF định tuyến thông điệp yêu cầu SIP thông điệp trả lời SIP đến S-CSCF/I-CSCF nằm mạng nhà cung cấp dịch vụ khác - BGCF (Breakout Gateway Control Function) máy chủ SIP chứa đựng chức định tuyến dựa số điện thoại Nó sử dụng thiết bị IMS thực gọi đến mạng nối chuyển mạch hay mạng điện thoại cố định truyền thống PSTN BGCF hỗ trợ khả kết nối liên mạng thông qua việc định tuyến yêu cầu SIP trường hợp S-CSCF xác định định tuyến yêu cầu DNS/ENUM BGCF xác định nút mạng đường định tuyến, MGCF BGCF mạng khác chuyển báo hiệu đến nút mạng tương ứng - MGCF ( Media Gateway Control Function) có nhiệm vụ quản lý cổng phương tiện, bao hàm chức như: liên lạc với S-CSCF để quản lý gọi kênh phương tiện, làm trung gian chuyển đổi (conversion) giao thức báo hiệu ISUP SIP MGCF quản lý hay nhiều IM-MGW (IP Multimedia-Media Gateway) IM-MGW tương tác với MGCF để quản lý tài ngun IM-MGW đóng vai trị điểm chuyển đổi nội dung đa phương tiện mạng chuyển nối gói chuyển nối mạch thơng tin truyền từ mạng sang mạng khác - Chức quản lý tài nguyên đa phương tiện (Media Resource Function) phân thành thành phần: MRFC (Media Resource Function Controller) MRFP (Media Resource Function Processor) MRFC có vai trị quản lý tài ngun cho dịng liệu đa phương tiện MRFP (Media Resource Function Processor), giải mã thông điệp đến từ máy chủ ứng dụng AS truyền qua S-CSCF, điều khiển MRFP tương ứng tham gia vào q trình tính cước MRFP đóng vai trị quan trọng việc thích ứng nội dụng dịch vụ, chuyển đổi định dạng (transcoding) nội dung c Lớp vận tải Ở đây, tạm xem NASS RACS thành phần thuộc lớp vận tải Vài trò thành phần miêu tả đây: - NASS ( Network Attachment Subsystem): Chức NASS bao gồm: o Cung cấp cách linh hoạt địa IP thông số cấu hình khác cho UE (sử dụng DHCP) o Xác nhận thực người dùng trước trình cấp phát địa IP o Cấp phép cho mạng truy nhập dựa hồ sơ mạng o Quản lý định vị người dùng o Hỗ trợ trình di động roaming người dùng - RACS (Resource & Admission Control Functionality) bao gồm chức là: chức định sách dịch vụ (S-PDF) chức điều khiển chấp nhận kết nối tài nguyên truy nhập (A-RACF) - S-PDF (Serving Policy Decision Function) yêu cầu ứng dụng, tạo định sách (policy) việc sử dụng luật sách chuyển định tới A-RACF S-DPF cung cấp cách nhìn trừu tượng chức truyền tải với nội dung hay dịch vụ ứng dụng Bằng cách sử dụng S-DPF, việc xử lý tài nguyên trở nên độc lập với việc xử lý dịch vụ - A-RACF (Access Resource and admission Control Function) nhận yêu cầu tài nguyên QoS từ S-PDF A-RACF sử dụng thông tin QoS nhận từ S-PDF để định chấp nhận hay không chấp nhận kết nối A-RACF thực chức đặt trước tài nguyên điều khiển thực thể NAT/Firewall 3.4 Kiến thức công cụ Jenkins 3.4.1 CI/CD Continuous Integration hay CI phương pháp phát triển phần mềm Phương pháp đòi hỏi thành viên đội cần phải tích hợp cơng việc với cách thường xuyên, ngày cần lần tích hợp Mỗi lần tích hợp xây dựng cách tự động nhằm mục đích phát lỗi phát sinh cách nhanh Khi sử dụng CI giúp làm giảm vấn đề tích hợp cho phép developer phát triển phần mềm nhanh tiến độ Quy trình làm việc CI diễn sau: - Các developer commit code (mã cam kết) lên repo (repository - kho) - Tiếp theo, CI server thực giám sát repo kiểm tra xem có thay đổi repo hay không Khi xảy thay đổi, CI server phải code từ repo sau build, chạy unit test integration test Tiếp sau đó, CI server tạo phản hồi gửi đến cho thành viên dự án Và CI server lại tiếp tục chờ đợi thay đổi từ repo Mỗi lần mà Dev làm xong task mình, họ chạy local trước để kiểm tra trước commit code lên repo Đây công đoạn thường xuyên diễn thời điểm ngày Việc xây dựng tích hợp không xảy chúng không ảnh hưởng đến repo CD viết tắt Continuous Delivery - chuyển giao liên tục Đây trình nâng cao chút kiểm tra tất thay đổi code build code môi trường kiểm thử CD cho phép lập trình viên tự động hóa phần mềm testing, kiểm tra phần mềm qua nhiều thước đo trước triển khai Những test bao gồm UI testing, integration testing, API testing, CD sử dụng Deployment Pipeline giúp chia quy trình chuyển giao thành giai đoạn Mỗi giai đoạn có mục tiêu riêng để xác minh chất lượng tính từ góc độ vơ khác để kiểm định chức tránh lỗi phát sinh ảnh hưởng đến người dùng Những lợi ích CI/CD: - Giảm thiểu rủi ro phát sinh trình phát triển phần mềm - Tạo thay đổi nhỏ giúp giải vấn đề cách đơn giản - Hạn chế ảnh hưởng lỗi đến code 3.4.2 Jenkins Hiện có nhiều cơng cụ CI/CD phát triển kể như: Jenkins, Gitlab CI/CD, CircleCI, Travis CI, TeamCity Tuy nhiên Jenkins lựa chọn phù hợp với nhiều dự án lợi ích mang lại như: chiếm 71% thị trường với cộng đồng sử dụng nguồn tài liệu phong phú; có 1400 plugin nên dễ dàng mở rộng a Tổng quan Jenkins Jenkins phần mềm tự động hóa, mã nguồn mở viết Java Dự án tách từ dự án ban đầu Hudson, sau xảy tranh chấp với Oracle Jenkins giúp tự động hóa quy trình phát triển phần mềm, gọi theo thuật ngữ Tích hợp liên tục, cịn dùng đến việc Phân phối liên tục Jenkins phần mềm dạng server, chạy servlet với hỗ trợ Apache Tomcat Nó hỗ trợ hầu hết phần mềm quản lý mã nguồn phổ biến Git, Subversion, Mercurial, ClearCase Jenkins hỗ trợ mã lệnh Shell Windows Batch, đồng thời chạy mã lệnh Apache Ant, Maven, Gradle Người sáng tạo Jenkins Kohsuke Kawaguchi Phát hành theo giấy phép MIT nên Jenkins phần mềm miễn phí b Các tính jenkins Jenkins cung cấp nhiều tính hấp dẫn cho developers: o Dễ dàng cài đặt: chương trình dựa java, độc lập tảng sẳm sằng chạy với packages cho Windows, MacOS hệ điều hành giống Unix o Dễ dàng cấu hình: Jenkins dễ dàng cài đặt cấu hình thơng qua giao diện web nó, có tính kiểm tra lỗi o Các plugins dồi Có hàng trăm plugin có sẵn update center, plugin cung cấp hỗ trợ cho tính náo đó, tích hợp với cơng cụ chuỗi công cụ CI CD o Dễ dàng mở rộng (extensible): Jenkins mở rộng kiến trúc plugin nó, cung cấp khả gần vơ tận cho làm o Dễ dàng phân phối: Jenkins dễ dàng phân phối công việc nhiều máy để xây dựng, kiểm tra triển khai nhanh nhiều tảng o Mã nguồn mở: Jenkins công cụ mã nguồn mở, mã nguồn mở nên dĩ nhiên miễn phí cộng với cộng đồng hỗ trợ hùng hậu c Workflow Quy trình làm việc với Jenkins: - Các developer commit code thay đổi lên shared repository - Máy chủ Jenkins CI đặn kiểm tra repository đặn lấy code thêm vào - Build Server xây dựng mã thành tệp thực thi Trong trường hợp build thất bại, phản hồi gửi đến đội dev - Jenkins deploy ứng dụng build lên máy chủ test Nếu test thất bại, phản hồi gửi đến đội dev - Nếu code khơng có lỗi, ứng dụng test deploy máy chủ production 3.5 Kiến thức Automation Test Android 3.5.1 Testing Android Unit Testing phương pháp kiểm thử phần mềm dựa đơn vị kiểm thử (hay unit test) Trong ngơn ngữ hướng đối tượng (ví dụ C# hay Java), đơn vị kiểm thử phương thức hay lớp Một đơn vị kiểm thử dùng để kiểm tra đơn vị công việc (unit of work) với kết giả định đó; Nếu kết thực thi đơn vị cơng việc cần kiểm tra khác với kết giả định đơn vị kiểm thử thất bại Unit Testing thực dễ dàng nhờ framework Framework phổ biến hỗ trợ cho nhà phát triển Java Junit Trong project Android Studio bao gồm class testing Unit test Instrument Test (kiểm thử thiết bị) Có thể dễ dàng kiểm tra class kiểm thử mục app > java Lớp unit test hỗ trợ kiểm thử máy ảo Java cục (JVM) không phụ thuộc vào lớp thư viện Android, đó, lớp instrumented test chậm, liên quan nhiều thư viện Android phù hợp kiểm thử ứng dụng thiết bị thực (hay ảo) 3.5.2 Automation test với Jenkins Vì Jenkins thực build test ứng dụng jenkins server nên việc thực Automation Test giống công việc build test máy, nhiên thực cách tự động, thông qua Jenkins Trong Android Studio, Gradle công cụ tự động hóa q trình build quản lý thư viện, giúp tối ưu hóa cơng đoạn biên dịch, đóng gói Để thực build test cách tự động ta cần phải thực thao tác thơng qua dịng lệnh, Gradle hỗ trợ chạy Build, Unit Test, Compile ứng dụng thơng qua dịng lệnh với nhiều tùy chỉnh Đối với Instrucmentation Test, cần phải có thiết bị để thực chạy test liên quan đến thư viện Android Studio hỗ trợ chạy máy ảo android với emulator avd CHƯƠNG KẾT QUẢ CƠNG VIỆC Dưới bảng thể cơng việc giao tự đánh giá hiệu công việc Tuần Thời gian 18/10/2021 19/10/2021 20/10/2021 21/10/2021 22/10/2021 25/10/2021 26/10/2021 27/10/2021 Nội dung công việc Meeting Welcome Internship Internship Kick off – 1st Sprint Planning [Training] [General Orientation] GIT & GERRIT Company Policy Training Tự đánh giá hiệu Tham dự Tham dự ICT Policy Training Tham dự Tìm hiểu khái quát IMS network Thực Agile Way of Working Training Tham dự Tiếp tục tìm hiểu khái quát IMS network Thực C.I Overview Training Tham dự Tìm hiểu kiến trúc IMS VoIP Thực Tìm hiểu Sesion Description Protocol, Realtime Control Protocol, H248 Tìm hiểu Enum System Tìm hiểu Diameter Tạo slide để chuẩn bị cho phần thuyết trình cuối Thực Thực Thực sprint Hoàn thành slide + họp team để chia sẻ kiến thức 28/10/2021 với nhau, thuyết trình thử (bằng tiếng Việt) All Staff Meeting Team thuyết trình với Project Owner để báo cáo 29/10/2021 kiến thức vừa tìm hiểu (bằng tiếng Anh), Q&A 01/11/2021 02/11/2021 03/11/2021 04/11/2021 05/11/2021 08/11/2021 09/11/2021 10/11/2021 Tìm hiểu Kamailio – The Open-Source SIP server Tìm hiểu triển khai IMS core nodes với kamailio server linux (P-CSCF) Tìm hiểu triển khai kamailio – IMS core nodes server linux (I-CSCF) Tìm hiểu triển khai kamailio – IMS core nodes server linux (S-CSCF) Tìm hiểu triển khai kamailio – IMS core nodes server linux (HSS, DNS) Sử dụng App Chat Client cũ công ty để kết nối đến Server IMS triển khai Kiểm tra kết nối, phân tích gói tin Wireshark để tìm hiểu q trình Register đến server Thực thao tác app với server chat, call video phân tích chúng Thực Tham dự Đảm bảo nội dung tiếng Anh chưa tốt Thực Thực Thực Thực Hoàn thành Hoàn thành Thực Thực 11/11/2021 12/11/2021 cuối sprint 19/11/2021 Jenkins Tìm hiểu Automation test Android 29/11/2021- Viết số Unit test case cho ứng dụng, 03/12/2021 Instrucment test đơn giản 06/12/2021- Viết Jenkinsfile, setup pipeline, implement 10/12/2021 Jenkins Gitlab 13/12/2021- Setup môi trường Jenkins Server (gradle, java, 17/12/2021 android virtual device) 20/12/202110 Tìm hiểu lý thuyết Register IMS báo cáo Tìm hiểu Continuous Integration cơng cụ 26/11/2021 24/12/2021 Thực Chat Client với server 15/11/2021- 22/11/20216 Sửa số lỗi phát sinh thực kết nối App Hoàn thiện hệ thống CI, báo cáo Hoàn thành Hoàn thành Hoàn thành Hoàn thành Hoàn thành Hoàn thành Hồn thành Ngồi ra, kết cơng việc thể thông qua file document, source code, powerpoint lưu link: Document, PPT, Source Code CHƯƠNG TỔNG KẾT, KHÓ KHĂN VÀ HẠN CHẾ 5.1 Tổng kết Mặc dù phải thực tập online, nhiên sau trải qua 10 tuần thực tập đầy bổ ích, ngồi kiến thức chun mơn mà em trình bày trên, em học nhiều kĩ làm việc môi trường doanh nghiệp mà em phải sử dụng nhiều sau Em làm việc chung với anh mentor, người bạn từ trường khác; học hỏi kĩ cách làm việc người Tất kiến thức hữu ích giúp em vững bước đường làm việc sau 5.2 Khó khăn hạn chế Chính phải thực tập online nên việc giao tiếp thành viên team với người cơng ty khó khăn thời gian Các tảng làm việc trực tuyến chưa hỗ trợ hết tính hiệu trình trình bày sản phẩm Trong trình làm việc nhà gặp phải nhiều tác nhân khiến hiệu làm việc không tập trung tối đa Công ty hỗ trợ nhiều sở vật chất thực tập online khiến việc sử dụng trở nên hạn chế CHƯƠNG TÀI LIỆU THAM KHẢO [1] IMS ? Tìm hiểu IMS - Hỗ Trợ Kỹ Thuật Trực Tuyến (sunocean.com.vn) [2] CI/CD gì? Những lợi ích mà mơ hình CI/CD mang lại (itnavi.com.vn) [3] Tìm hiểu jenkins - Tổng quan cài đặt (viblo.asia) [4] Phát hiện, xử lý lỗi kiểm thử (testing) Android Studio (3.6 trở lên) – Trần Ngọc Minh Notes (ngocminhtran.com) ... 25 CHƯƠNG GIỚI THIỆU CÔNG TY THỰC TẬP 1.1 Tổng quan công ty DEK Technologies công ty công nghệ đạt giải thưởng cung cấp dịch vụ phần mềm phần cứng tồn cầu Cơng ty có trụ sở Úc, văn phịng... quý công ty DEK Technologies nơi em thực tập, tạo điều kiện tối đa hỗ trợ em nhiệt thành suốt trình thực tập cơng ty Đặc biệt, em xin cảm ơn anh mentor team CSCF, người hướng dẫn em trình thực tập, ... VPN CHƯƠNG TỔNG QUAN VỀ QUÁ TRÌNH THỰC TẬP 2.1 Tổng quan chương trình thực tập Là kì đào tạo thực tập sinh thứ 29 công ty DEK Technologies Sinh viên tham gia tập tham gia vào team khác như: -