báo cáo thực tập backend engineer

26 1 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo thực tập backend engineer

Đ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

Sựquan tâm và hỗ trợ từ anh Lương Nguyễn Nhân, người đã không ngần ngại chia sẻ kinhnghiệm và kiến thức thực tiễn, đã giúp em nhanh chóng hòa nhập và phát triển tại môitrường làm việc ch

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM

Trang 2

LỜI MỞ ĐẦU

Chúng ta đang sống trong thời đại mà công nghệ thông tin không chỉ là công cụ mà đã trởthành ngôn ngữ toàn cầu, nền tảng cho sự tiến hóa của xã hội Trong không gian ảo vô tậncủa thế giới số, lĩnh vực Công nghệ phần mềm đang chứng kiến sự phát triển vượt bậc, nơimà mỗi dòng mã, mỗi giải pháp kỹ thuật không chỉ đơn thuần là lập trình mà còn là nghệthuật tạo dựng thực tại số.

Em chọn thách thức bản thân với hướng đi Backend Engineer, nhằm vươn tới sự hoàn thiệnvề kỹ thuật và cũng như khám phá cách thức tạo ra những trải nghiệm sống động và ý nghĩacho người dùng qua từng sản phẩm web cho dù là gián tiếp hay trực tiếp Mục tiêu của emkhông chỉ là học hỏi kỹ thuật mà còn là tìm hiểu cách thức tạo nên những sản phẩm có giátrị thực sự.

Với mong muốn áp dụng những kiến thức đã học vào thực tế, em đã quyết định tham giavào Bosch Global Software Technologies – một môi trường chuyên nghiệp, nơi khuyến khíchsự sáng tạo và đổi mới Qua quá trình thực tập này, em hy vọng không chỉ cải thiện kỹ năngchuyên môn mà còn phát triển khả năng làm việc nhóm, giải quyết vấn đề sáng tạo và xâydựng những sản phẩm web có chất lượng và ý nghĩa, góp phần vào sự phát triển của ngànhcông nghiệp phần mềm.

Trang 3

LỜI CẢM ƠN

Sau thời gian học tập chăm chỉ và đầy nỗ lực tại trường Đại học Công nghệ thông tin, em đãcó dịp tiếp thu nhiều kiến thức bổ ích và phát triển kỹ năng chuyên môn Em xin bày tỏ lòngbiết ơn chân thành đến các thầy cô, đặc biệt là cô Trần Thị Hồng Yến ở bộ môn Công nghệphần mềm, người đã tận tình hướng dẫn và truyền đạt những bài học quý giá, đặt nền móngvững chắc cho em trong suốt quá trình học tập và thực tập.

Em cũng xin được gửi lời cảm ơn sâu sắc đến công ty Bosch Global Software Technologies,nơi đã mở cửa đón nhận và tạo điều kiện cho em thực tập với vai trò Backend Engineer Sựquan tâm và hỗ trợ từ anh Lương Nguyễn Nhân, người đã không ngần ngại chia sẻ kinhnghiệm và kiến thức thực tiễn, đã giúp em nhanh chóng hòa nhập và phát triển tại môitrường làm việc chuyên nghiệp.

Quãng thời gian thực tập tại Bosch Global Software Technologies không chỉ giúp em cảithiện kỹ năng mềm mà còn giúp em hiểu sâu sắc hơn về công việc của một BackendEngineer thông qua việc áp dụng công nghệ vào thực tiễn, cũng như tham gia vào các dự ánphần mềm mà công ty đang triển khai.

Em ý thức rằng bản thân vẫn còn nhiều hạn chế và báo cáo thực tập có thể chưa hoàn hảo.Em rất mong nhận được những góp ý quý báu từ cô Trần Thị Hồng Yến cùng quý thầy cô đểem có thể tiếp tục hoàn thiện mình mỗi ngày.

Em xin chân thành cảm ơn cô Trần Thị Hồng Yến và anh Lương Nguyễn Nhân đã dành thờigian và công sức để hướng dẫn em hoàn thành bài báo cáo thực tập này.

Cuối cùng, em xin kính chúc cô Trần Thị Hồng Yến cùng toàn thể quý thầy cô sức khỏe, hạnhphúc và thành công trong mọi lĩnh vực của cuộc sống

TP HCM, tháng 12 năm 2023

Trang 4

Sinh viên thực hiện

Hoàng Đình Anh Tuấn

Trang 5

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 8

1.1 Giới thiệu Bosch Global Software Technologies 8

1.2 Sản phẩm công ty 9

CHƯƠNG 2: NỘI DUNG THỰC TẬP 11

2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 11

2.2 Nghiên cứu kỹ thuật 11

Trang 6

3.3 Kế hoạch tương lai 223.4 Chuẩn đạt được 22TÀI LIỆU THAM KHẢO 24

Trang 7

MỤC LỤC HÌNH ẢNH

Hình 1.1 Logo của Công Ty THHH Bosch Global Software Technologies 8

Hình 2.4 Giao diện Catalogue Interface của Digital Auto Playground 19Hình 2.5 Giao diện Project của Digital Auto Playground 19Hình 2.6 Giao diện Code Editor của Digital Auto Playground 20

Trang 8

MỤC LỤC BẢNG BIỂU

Trang 9

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1.1 Giới thiệu Bosch Global Software Technologies

Hình 1.1 Logo của Công Ty THHH Bosch Global Software Technologies

Tập đoàn Bosch, một công ty đa quốc gia của Đức, nổi tiếng với các sản phẩm và dịch vụ liênquan đến ô tô, công nghệ công nghiệp, hàng tiêu dùng và công nghệ xây dựng Bosch Thànhlập vào năm 1886 bởi Robert Bosch ở Stuttgart, Đức.

BGSV (Bosch Global Software Technologies) là công ty con 100% vốn của Robert BoschGmbH, một trong những nhà cung cấp công nghệ và dịch vụ toàn cầu hang đầu thế giới,cung cấp các Giải pháp Kỹ thuật, CNTT và Kinh doanh đầu cuối

Với khả năng độc đáo trong việc cung cấp các giải pháp kết nối cảm biến, phần mềm, và dịchvụ theo quy trình đầu-cuối, Bosch hỗ trợ các doanh nghiệp chuyển dịch từ phương pháptruyền thống sang kỹ thuật số Công ty cũng giới thiệu yếu tố kỹ thuật số vào việc cải thiệnquy trình và sản phẩm của doanh nghiệp.

Lĩnh vực

- Giải pháp di động- Công nghệ Công nghiệp

Trang 10

- Công nghệ thông tin- Giải pháp kỹ thuật

- Giải pháp công nghệ thông tin

- Đây là những dịch vụ cốt lõi mà Bosch cung cấp cho tập đoàn trên toàn cầu.

mềm để hỗ trợ kết nối, quản lý dữ liệu, và tối ưu hóa hoạt động kinh doanh.

- Thiết Kế Cơ Khí và Mô Phỏng: Cung cấp các dịch vụ thiết kế và mô phỏng cơ khí, hỗ

trợ trong việc phát triển sản phẩm và quy trình sản xuất.

- Tư Vấn và Dịch Vụ Công Nghệ Thông Tin: Cung cấp tư vấn và giải pháp trong lĩnh

vực công nghệ thông tin như SAP, phát triển sử dụng ngôn ngữ Java, và các giải phápquản lý dữ liệu.

Trang 11

- Dịch Vụ Kinh Doanh: Cung cấp các dịch vụ hỗ trợ kinh doanh như tài chính, kế toán,

mua hàng, logistics, dịch thuật, và bảo mật thông tin.

1.3 Lịch làm việc khi thực tập tại công ty

Em làm việc full-time ở công ty, từ thứ Hai đến thứ Sáu hàng tuần Mỗi ngày, em dành ratổng cộng 8 tiếng để đảm bảo hoàn thành công việc được giao Công ty không yêu cầu mộtkhung giờ cố định để bắt đầu hoặc kết thúc ngày làm việc, miễn là em có mặt từ 10 giờ sángđến 4 giờ chiều Điều này nhằm đảm bảo rằng em có thể tương tác và hỗ trợ các đồngnghiệp, đồng thời không làm gián đoạn tiến độ chung của nhóm.

Thời gian nghỉ trưa của em là 1 tiếng Mỗi 2 tuần vào sáng thứ Ba sẽ có một buổi họp đểreview những sản phẩm cũng như tiến độ công việc của các thành viên trong nhóm.

Về ngày nghỉ phép, mỗi tháng công ty sẽ cung cấp một ngày nghỉ phép Các sinh viên đangcòn đi học cũng được tạo điều kiện để nghỉ trong tuần.

Trang 12

CHƯƠNG 2: NỘI DUNG THỰC TẬP

2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty

Thời gian: 2 ngàyNội dung:

- Giới thiệu tổng quan về công ty Bosch, bao gồm lịch sử hình thành, quá trình pháttriển.

- Hiểu biết về quy trình làm việc và cơ cấu tổ chức từ cấp cao xuống cấp thấp.

- Training về Information Security Policy (ISP) và tiến hành kiểm tra kiến thức liênquan.

- Hướng dẫn cụ thể về các quy định trong công việc, như thời gian làm việc, cácnguyên tắc cần tuân thủ.

- Cách sử dụng email và các công cụ chuyên biệt khác trong công việc.Thực hiện:

- Lắng nghe người phụ trách giới thiệu chi tiết về công ty Bosch và các khía cạnh khácnhau của quá trình làm việc.

- Tham gia vào các phiên training và kiểm tra kiến thức về ISP.

- Nhận thông tin hướng dẫn về cách thức làm việc tại công ty, bao gồm cách sử dụngemail công việc và các nguyên tắc cần biết.

2.2 Nghiên cứu kỹ thuật

Các công cụ sử dụng trong thời gian thực tập gồm:

Trang 13

2.2.1 Git

- Thời gian: Xuyên suốt thời gian thực tập.

- Nội dung: Sử dụng Git để quản lý phiên bản code, cải thiện hiệu quả làm việc nhómvà theo dõi tiến độ dự án.

- Thực hiện:

o Học cách sử dụng các lệnh cơ bản của Git như commit, push, pull, branch vàmerge.

o Áp dụng quy trình Git flow để quản lý các branch trong dự án.

- Kết quả: Nâng cao kỹ năng quản lý phiên bản và hiểu biết về công cụ quản lý mãnguồn mạnh mẽ này, hỗ trợ làm việc nhóm một cách hiệu quả.

2.2.2 Electron

- Thời gian: Trong giai đoạn phát triển sản phẩm.

- Nội dung: Tạo ứng dụng desktop đa nền tảng từ code web sử dụng Electron.- Thực hiện:

o Học cách tích hợp ReactJS vào môi trường Electron.

o Phát triển các ứng dụng có giao diện đồ họa phong phú, chạy trên Windows,macOS và Linux.

- Kết quả: Phát triển thành công ứng dụng desktop từ code web, mở rộng khả năng pháttriển phần mềm của bản thân.

- Thực hiện:

o Cài đặt và cấu hình môi trường NodeJS và MongoDB.

o Học cách thiết kế và xây dựng RESTful API sử dụng NodeJS.

o Sử dụng MongoDB để tạo, lưu trữ, truy vấn và cập nhật dữ liệu từ server.

Trang 14

o Tích hợp MongoDB với NodeJS để xây dựng một backend hoàn chỉnh, có thểxử lý và lưu trữ dữ liệu từ client.

- Thời gian: Khi thực hiện các tính năng yêu cầu giao tiếp thời gian thực.

- Nội dung: Triển khai các giải pháp giao tiếp thời gian thực trong ứng dụng web.- Thực hiện:

o Học cách tích hợp SocketIO vào NodeJS và trình duyệt.

o Phát triển các chức năng như chat trực tuyến, thông báo thời gian thực.

- Kết quả: Tạo được các ứng dụng web đáp ứng việc trao đổi thông tin theo thời gianthực và cách áp dụng nó vào thực tế.

2.2.4 Docker và Docker Compose

- Thời gian: Trong giai đoạn thiết kế, phát triển, và triển khai ứng dụng.- Nội dung:

o Docker là một nền tảng open-source giúp phát triển và chạy ứng dụng trongmôi trường ảo hoá gọi là container Điều này tạo điều kiện cho việc triển khaiứng dụng một cách nhất quán trên mọi môi trường khác nhau.

o Docker Compose là một công cụ giúp định nghĩa, chạy nhiều container vàphối hợp chúng với nhau Compose sử dụng một file YAML để cấu hình cáccontainer cũng như thiết lập các kết nối cho phép giữa chúng có thể giao tiếplẫn nhau.

- Thực hiện:

o Cài đặt Docker và Docker Compose.

o Học cách container hóa ứng dụng bằng Docker và quản lý nhiều container vớiDocker Compose.

o Sử dụng Docker Compose để tự động hóa quy trình triển khai và quản lý ứngdụng.

Trang 15

- Kết quả: Hiểu rõ về việc sử dụng container trong phát triển phần mềm và khả năng

triển khai nhanh chóng và dễ dàng trên bất kỳ môi trường nào.

- Thực hiện:

o Học cách định nghĩa các service và message bằng Protocol Buffers.o Phát triển các gRPC service và client trong môi trường NodeJS.o Sử dụng gRPC cho việc giao tiếp hiệu quả giữa các microservices.- Kết quả:

o Triển khai được gRPC trong các dịch vụ của hệ thống phân tán để chúng có thể giao tiếp với nhau.

2.3 Tham gia dự án thực tế2.3.1 Giới thiệu về dự án:

Tên dự án: Digital Auto Playground

- Nội dung: Đây là website giúp xây dựng và thử nghiệm các prototypes của các loạiphương tiện trên trình duyệt, sử dụng Python và Vehicle APIs (một chuẩn do Boschvà các bên đối tác định nghĩa)

- Tính năng chính: Sử dụng Vehicle APIs và code Python để xây dựng và kiểm thử cácprototype Có một hệ thống plugin và widget có thể sử dụng để tạo nên một prototypephong phú và đa dạng Bên cạnh đó là đi kèm hệ sinh thái phục vụ cho các tính năngtrên như: hệ thống upload, import, create và edit các plugin phục vụ cho hệ thống,editor online, ứng dụng quản lý việc phát hành các plugin.

- Công nghệ được sử dụng: HTML, CSS, Python, ReactJS, JavaScript, MySQL,TypeScript, Tailwind, NodeJS, MongoDB, SocketIO, Electron.

Trang 16

2.3.2 Quá trình thực hiện:

Công việc trong thời gian thực tập của các thực tập sinh liên quan chủ yếu đến các dự ánxoay quay Digital Auto Playground, với mục đích chính là phục vụ và hỗ trợ cho nó Thực tậpsinh được tạo điều kiện để tham gia các dự án mới, làm từ đầu dưới sự chỉ dạy của ngườihướng dẫn Cụ thể, quá trình thực hiện của em bao gồm một số công việc nổi bật sau:

- Xây dựng User management service, đóng vai trò trung tâm giữa các service khác.o Hệ thống User management service tách biệt so với hệ thống User trên Digital

Auto Playground.

o Được sử dụng chủ yếu trong nội bộ của team phát triển.

o Sử dụng để truy cập vào các dự án xoay quanh Digital Auto Playground.- Xây dựng Retrofit-ivi, ứng dụng đa nền tảng bằng ElectronJS.

o Hệ thống Cockpit xe hơi đa nền tảng có thể chạy được trên cả Windows,Ubuntu, MacOS cũng như trên các chip AMD và ARM.

o Tích hợp trình phát nhạc, dịch vụ bản đồ.

o Tích hợp hệ thống nhận diện và đăng ký khuôn mặt.o Tích hợp hệ thống nhận diện giọng nói

o Cài đặt hệ thống này lên một bản prototype của bộ điều khiển xe hơi.

o Nhận dữ liệu từ các cảm biến của bộ prototype này và hiển thị lên màn hình.

Trang 17

- Phát triển Upload service để upload các file phương tiện cho dự án.o Được sử dụng để upload các hình ảnh và file phương tiện.o Xử lý quyền upload các file.

o Xử lý, hạn chế dung lượng tối đa của ảnh, cũng như tạo thumbnail cho ảnh.o Phát triển hệ thống streaming đơn giản cho các file video.

- Tiếp tục phát triển ứng dụng Digital Auto Studio, phục vụ cho việc Edit plugin online.o Xây dựng thêm tính năng phân quyền.

o Phát triển tính năng quản lý theo project.o Xây dựng hệ thống quản lý file và truy cập file.

Trang 18

Hình 2.2 Hình ảnh của ứng dụng Studio

- Xây dựng Digital Auto Store, phục vụ cho việc publish các plugin.o Phát triển các module như Package, Version.

o Xây dựng tính năng deploy từ một file zip.

o Xây dựng kết nối giữa Studio và Store, cho phép người dùng deploy vàpublish trực tiếp từ Studio lên Store.

Trang 19

Hình 2.3 Hình ảnh của ứng dụng Store

- Thiết lập và triển khai các dịch vụ lên hệ thống Cloud.

o Triển khai thông qua kết nối SSH đến Cloud Provider là Azure.o Vận hành ứng dụng bằng PM2.

o Thiết lập và cấu hình hệ thống để phục vụ cho việc quản lý file trên các ứngdụng.

o Tạo Cron Job để backup data.

o Thiết lập và cấu hình Nginx reverse proxy cho các service.

- Cài đặt và thiết lập hệ thống Android Automotive Operating System (AAOS) trênđiện thoại.

o Nghiên cứu và tìm hiểu về cách cài đặt AAOS.o Cài đặt các bản vá thích hợp cho Model điện thoại.o Build và cài đặt hệ thống.

o Thiết lập và cấu hình lại hệ điều hành để phục vụ cho việc phát triển các ứngdụng trên điện thoại.

- Migrate hệ thống Logging trên Digital Auto Playground từ Firebase sang NodeJS vàMongoDB.

o Xây dựng và phát triển hệ thống Logging bằng NodeJS và MongoDB.o Tiến hành migrate data từ Firebase sang MongoDB.

o Thay thế toàn bộ hệ thống Logging được sử dụng trong Front-end sang hệthống Logging mới.

Trong giai đoạn tiếp theo của quá trình phát triển, em được giao trách nhiệm trong việcchuyển đổi hệ thống của dự án Digital Auto Playground Dự án này trước đây được xây dựngdựa trên mô hình serverless, sử dụng các dịch vụ là Firebase và Netlify Mục tiêu của quátrình migrate là chuyển toàn bộ hệ thống sang một cơ sở hạ tầng tự quản lý (self-maintained), giúp tăng cường khả năng kiểm soát và tối ưu hiệu suất.

Các bước em thực hiện bao gồm:

- Đánh giá toàn diện cấu trúc hiện tại của hệ thống trên Firebase và Netlify để xác địnhcác yếu tố cần chuyển đổi và tối ưu hóa.

Trang 20

- Phát triển các dịch vụ cần thiết trên hệ thống mới dựa trên NodeJS và MongoDB.- Migrate dữ liệu và logic xử lý từ Firebase và Netlify sang hệ thống mới.

Ngoài ra, em cũng được giao nhiệm vụ triển khai các phương thức giao tiếp và triển khai cácservice xoay quanh Digital Auto Playground, bao gồm:

- Sử dụng các công nghệ như gRPC, hoặc message queue để quản lý giao tiếp dữ liệu.- Triển khai và vận hành các service lên Cloud Provider bằng các công cụ như

Kubernetes, Docker.

- Thiết lập các chu trình CI/CD cho các service đó.

Kết quả mà em mong đợi từ quá trình này là việc xây dựng được một hệ thống backendmạnh mẽ, có khả năng mở rộng, đồng thời cung cấp một nền tảng vững chắc cho sự pháttriển của dự án Digital Auto Playground.

2.3.3 Thuận lợi:

- Môi trường thân thiện, hoà đồng Mentor và các anh chị trong team nhiệt tình, tạo cảm giác thoải mái khi làm việc.

- Đã có nền tảng về hầu hết các công nghệ trên.

- Được tham gia vào các dự án mới hoàn toàn trước để làm quen, sau đó mới tham gia vào dự án chính

2.3.4 Khó khăn:

- Một số lĩnh vực không phải sở trường, nên hơi chậm khi nắm bắt cái nhìn tổng quát, như hệ thống nhúng.

- Source code dự án chính đồ sộ, phức tạp, mất khá nhiều thời gian để tìm hiểu.

Một số hình ảnh của Digital Auto Playground

Ngày đăng: 15/05/2024, 09:22

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan