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

báo cáo thực tập data engineer, big data AI team momo e wallet

34 378 5

Đ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 34
Dung lượng 3,88 MB

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

Nội dung

Sau ba năm học tập trên trường, với mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tìm hiểu, bổ sung kiến thức trong một môi trường chuyên nghiệp, xuất phát điểm là một sinh v

Trang 1

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

Thực tập sinh : Nguyễn Phi Hùng

Trang 2

LỜI MỞ ĐẦU

Ngày nay, ngành Kỹ thuật phần mềm là một bộ phận không thể thiếu của ngành Công nghiệp phần mềm Với tốc độ phát triển vô cùng mạnh mẽ, ngành Kỹ thuật phần mềm đã và đang

là nhân tố kích thích sự phát triển của Công nghệ thông tin thế giới, cả về phần cứng và phần mềm

Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Hiện nay, việc

ra quyết định tại doanh nghiệp đều dựa trên dữ liệu, vì thế việc lấy được dữ liệu, hiểu được dữ liệu rất quan trọng, giúp một doanh nghiệp có phát triển bền vững và lớn mạnh hơn Vì xu hướng đó, nhu cầu tuyển dụng nhân sự về ngành Data nói chung và Data Engineer nói riêng là rất cao

Sau ba năm học tập trên trường, với mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tìm hiểu, bổ sung kiến thức trong một môi trường chuyên nghiệp, xuất phát điểm là một sinh viên ngành Kỹ thuật phần mềm, có nền tảng về lập trình và tinh thần tiếp thu thêm ngôn ngữ, kinh nghiệm làm việc mới, em đã thử sức mình bằng việc thực tập ở Phòng BigData&AI - Trung tâm Công nghệ thông tin tại Ví điện tử MoMo - một môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này

Trang 3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Phòng ban BigData&AI -Trung tâm Công nghệ thông tin tại Ví điện tử MoMo - Trung tâm Công nghệ thông tin tại Ví điện tử MoMo đã tạo điều kiện cho em có

cơ hội được thực tập tại công ty

Trong suốt thời gian thực tập và làm việc, em đã được tiếp xúc với các công cụ, ngôn ngữ thực tế, cũng như được bắt tay vào các công việc thực tế mà em đang hướng đến Với sự chỉ bảo tận tình của mentor đã giúp em có được một thời gian thực tập rất hiệu quả, em đã có cơ hội được trải nghiệm và áp dụng tư duy lập trình và cải tiến của mình tại trường học vào công việc thực tế

Đặc biệt cảm ơn anh Nguyễn Thanh Hải đã hướng dẫn, tạo điều kiện cho em được trau dồi, học tập và chỉ dẫn em trong quá trình thực tập

Trân trọng gửi lời cảm ơn Công ty M_service đã tạo điều kiện cho em có cơ hội được thực tập tại công ty Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này

Nguyễn Phi Hùng

TP Hồ Chí Minh, tháng 12 năm 2020

Trang 4

NHẬN XÉT CỦA KHOA

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 5

MỤC LỤC

1.2 Giới thiệu về Gerrit và Jenkins 12 1.3 Giới thiệu về IntelliJ IDEA 13 1.4 Giới thiệu về quy trình làm việc Agile – Scrum 15 1.5 Giới thiệu về Google Cloud Platform 17 1.6 Giới thiệu về Kotlin 18 1.7 Giới thiệu về Kubernetes 18 1.8 Giới thiệu về Dependency Injection và Dagger 2 19 1.9 Giới thiệu về Vert.x 20 1.10 Giới thiệu về Prometheus và Grafana 20

2 Dự án Cornerstone – Nền tảng Quảng cáo trên ứng dụng MoMo 21

2.1 Giới thiệu về dự án 21 2.2 Nhiệm vụ của sinh viên được giao 23 2.3 Chức năng chính của dự án 23 2.4 Kiến trúc tổng quan hệ thống 23 2.5 Một số hình ảnh của dự án 24 2.6 Thành quả mà dự án đạt được 27

Trang 6

Chương 1: Giới thiệu công ty thực tập

1 Giới thiệu về Công ty M_Service

Công ty Cổ phần dịch vụ Di Động Trực Tuyến (viết tắt M_Service) hoạt động

chính trong lĩnh vực thanh toán trên di động (mobile payment) dưới thương hiệu MoMo Công ty đã được Ngân hàng Nhà nước Việt Nam cấp phép cung cấp dịch vụ Ví điện tử và dịch vụ chuyển tiền, thu hộ/chi hộ…

Với niềm tin dịch vụ tài chính, thanh toán sẽ góp phần thay đổi cuộc sống và gia tăng thu nhập cho người dân Việt Nam, công ty đã xây dựng thành công một cơ sở hạ tầng thanh toán độc đáo và sáng tạo có thể phục vụ cho mọi đối tượng khách hàng MoMo là đơn vị hàng đầu tại Việt Nam về cung cấp dịch vụ ứng dụng Ví điện tử trên di động, dịch

vụ chuyển tiền mặt tại điểm giao dịch (OTC) và nền tảng thanh toán (payment platform) Thông qua việc hợp tác chiến lược với các ngân hàng và tổ chức tài chính, MoMo hoạt động như một cánh tay nối dài mang dịch vụ tài chính, thanh toán đến cho người dân Việt Nam, đặc biệt tại các khu vực vùng sâu, vùng xa Đến nay, công ty đã thực hiện hàng chục triệu lượt giao dịch cho khách hàng và cộng đồng này đang ngày càng phát triển

Đặc biệt, MoMo sở hữu mạng lưới điểm giao dịch tài chính trải rộng khắp các tỉnh thành trên cả nước, cho phép hàng triệu khách hàng tại các vùng sâu vùng xa, nơi dịch vụ ngân hàng và điện thoại thông minh vẫn chưa phổ biến, được tiếp cận với các dịch vụ tài chính

MoMo là ứng dụng Ví điện tử trên điện thoại thông minh đã có mặt trên 2 hệ điều hành iOS và Android với gần 20 triệu người tin dùng Là nền tảng thanh toán di động, Ví MoMo thúc đẩy nền kinh tế không tiền mặt và cung cấp cho khách hàng trải nghiệm thanh toán một chạm (One Touch Payment) với hơn hàng trăm tiện ích dịch vụ, bao gồm Chuyển tiền, Thanh toán hóa đơn, Mua vé máy bay, Mua vé xe lửa, Vé xem phim, Thu-Chi hộ và Thương mại trên di động

Ví MoMo hiện đã liên kết trực tiếp với hơn 25 ngân hàng Người dùng Ví MoMo

có thể thanh toán mọi tiện ích hàng ngày như Điện/Nước/Internet/Truyền hình cáp; Mua

vé Máy bay/vé xe/vé tàu hỏa; Thanh toán taxi Vinasun; Mua vé xem phim tất cả rạp; Đặt dịch vụ giúp việc; Mua hoa tươi…; Đóng vay trả góp của tất cả các công ty tài chính hoặc

sử dụng MoMo để thanh toán tại các điểm chấp nhận thanh toán MoMo như Gongcha, The Coffee House, Al Fresco’s, Món Huế, Hoàng Yến, Co.opMart, Circle K, Ministop,…

Người dùng Ví MoMo hoàn toàn an tâm vì MoMo hiện đang đáp ứng bộ tiêu chuẩn khắt khe nhất trong ngành tài chính ngân hàng quốc tế: Chứng chỉ bảo mật quốc tế PCI DSS (Payment Card Industry Data Security Standard) - là tiêu chuẩn bảo mật xác lập bởi Hội đồng Tiêu chuẩn Bảo mật (PCI Security Standards Council) gồm các thành viên: Visa, MasterCard, American Express, Discover Financial Services, JCB International Tại Việt Nam, MoMo là đơn vị ví điện tử đầu tiên có chứng chỉ mức độ cao nhất là PCI DSS - Level

1

Đồng thời, Ví MoMo áp dụng các công nghệ xác thực tiên tiến, vượt trội như: Xác thực hai lớp; Xác thực bằng vân tay hay nhận diện khuôn mặt; Tự động khóa ứng dụng khi quá thời gian sử dụng; Bảo vệ đường truyền chuẩn SSL/TLS; Tính năng mã hóa số thẻ quốc tế (Tokenization)

2 Sản phẩm của công ty

Ví điện tử MoMo là một ứng dụng tài chính cho phép chuyển nhận tiền Siêu nhanh, dễ dùng, an toàn tuyệt đối! Ví MoMo giúp bạn thanh toán mọi nhu cầu, mọi lúc mọi nơi và HOÀN TOÀN MIỄN PHÍ như nạp tiền điện thoại tất cả nhà mạng, thanh toán

Trang 7

các hóa đơn điện nước - internet - vay tiêu dùng, vé xem phim, vé máy bay và hàng trăm dịch vụ khác

● Hưởng chiết khấu đến 5% khi nạp tiền điện thoại, mua mã thẻ

- THANH TOÁN HÓA ĐƠN SIÊU TIỆN LỢI

● Thanh toán các loại hóa đơn điện, hóa đơn nước, hóa đơn internet, truyền hình cáp, tiền bảo hiểm

● Thanh toán dễ dàng các khoản vay tài chính, vay tiêu dùng, vay trả góp của Home Credit, Fe Credit, HD Saison, Doctor Đồng, ACS, Prudential Finance

● Tự động nhắc nhở bạn thanh toán hóa đơn mỗi khi tới kỳ thanh toán

- CHUYỂN TIỀN, NHẬN TIỀN TỨC THÌ

● Chuyển tiền ngay tức thì, 24/7 với mức phí rẻ nhất thị trường

● Người nhận nhận tiền ngay lập tức

- NẠP VÀ RÚT TIỀN DỄ DÀNG TỪ TẤT CẢ CÁC NGÂN HÀNG NỘI ĐỊA

● Nạp tiền vào Ví MoMo dễ dàng thông qua hơn 29 ngân hàng nội địa

● Rút tiền ngay lập tức về tài khoản của hơn 15 ngân hàng liên kết trực tiếp với Ví MoMo như Vietcombank, VPBank, TPBank, OCB, ACB,

VietinBank, Eximbank, Sacombank, VIB, ShinhanBank, SCB, VRB, BIDV, Agribank

● Nạp và rút tiền tại hơn 4000 điểm giao dịch trên toàn quốc

● Thanh toán, mua sắm trên Tiki, nhommua.com, Gotit.vn, mua hoa trên hoayeuthuong

- AN TOÀN TUYỆT ĐỐI

● MoMo được Ngân Hàng Nhà Nước cấp giấy phép và quản lý hoạt động Tiền trong Ví MoMo được bảo chứng bởi Vietcombank Đồng thời, MoMo là đối tác chiến lược của nhiều ngân hàng hàng đầu Việt Nam

● MoMo đạt chứng chỉ bảo mật toàn cầu PCI DSS cấp độ cao nhất MoMo

áp dụng các công nghệ bảo mật vượt trội như 2FA, SSL/TLS, Tokenization, xác thực vân tay, tự động khóa ứng dụng và tự động ngăn chặn giao dịch bất thường, v.v

Trang 8

3 Giới thiệu về phòng ban BigData&AI

Phòng ban BigData&AI có nhiệm vụ giải quyết các vấn đề quan trọng và phát triển các ứng dụng trong đời thực, khai thác công nghệ để trích xuất thông tin chi tiết và

sử dụng dữ liệu theo cách hiệu quả hơn - hỗ trợ việc ra quyết định trong công ty - theo cách có thể thực hiện được những tiến bộ vượt bậc trong công nghệ điện toán, lưu trữ kỹ thuật số, mạng và cảm biến

Với chuyên môn trong ngành tài chính các lĩnh vực trọng tâm nghiên cứu bao gồm:

Chức năng chính của phòng ban:

- Xác định giá trị gia tăng cho công ty dựa vào việc phân tích dữ liệu

- Tổ chức và quản lý, định hướng quyền truy cập thông tin trong mô hình và chiến lược kinh doanh của công ty

- Phân tích các bên liên quan trong ngành và các đối tác của công ty

- Thử nghiệm với các quyết định khác nhau dựa trên luồng dữ liệu có sẵn

- Phân tích dữ liệu để hiểu cách quản lý thông tin và thu hút sự ủng hộ của người dùng

- Tìm hiểu lý do tại sao dữ liệu thường được cấu trúc theo cách không tương thích với các nguồn khác và cách truy cập thông tin này để tạo ra nhiều lợi ích hơn nữa cho công ty

- Nghiên cứu và ứng dụng các thuật toán hàng đầu dành cho học máy và trí tuệ nhân tạo, cách chúng hoạt động và cách diễn giải kết quả của chúng vào dữ liệu công ty

Trang 9

4 Văn hoá công ty

Hình 1 Giá trị cốt lõi Ví điện tử MoMo - Công ty M_Service

5 Một số hình ảnh công ty

Hình 2 Hình ảnh hoạt động trong Ví điện tử MoMo – Hiến máu nhân đạo

Giáng sinh 2020

Trang 10

Hình 3 Hình ảnh hoạt động trong Ví điện tử MoMo – Ngày Quốc tế Nam giới –

19/11/2020

Hình 4 Hình ảnh hoạt động trong Ví điện tử MoMo –

Sự kiện MoMo AI - 6/11/2020

Trang 11

Chương 2: Nội dung thực tập

1 Công nghệ, giải pháp và quy trình áp dụng

1.1 Giới thiệu về Git

Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS), nó là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) riêng chứa toàn

bộ lịch sử thay đổi

Hình 5 Hình ảnh mô tả làm việc nhóm với sự hỗ trợ của Git

VCS là viết tắt của Version Control System là hệ thống kiểm soát các phiên bản phân tán mã nguồn mở Các VCS sẽ lưu trữ tất cả các file trong toàn bộ dự án và ghi lại toàn bộ lịch sử thay đổi của file Mỗi sự thay đổi được lưu lại sẽ được và thành một version (phiên bản) VCS nghĩa là hệ thống giúp lập trình viên có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho chứa mã nguồn (repository), mỗi thay đổi vào mã nguồn trên local sẽ có thể ủy thác (commit) rồi đưa lên server nơi đặt kho chứa chính

Trang 12

Hình 6 Hình ảnh mô tả thay đổi các phiên bản trên Git

Và một máy tính khác nếu họ có quyền truy cập cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới nhất trên máy tính kia Lập trình viên có thể xem lại danh sách các sự thay đổi của file như xem một dòng thời gian của các phiên bản Mỗi phiên bản bao gồm: nội dung file bị thay đổi, ngày giờ sửa đổi, người thay đổi là ai, lý do thay đổi hay tên phiên bản…

1.2 Giới thiệu về Gerrit và Jenkins

- Gerrit: Gerrit là một công cụ hỗ trợ việc quản lý và review source code dựa trên nền tảng web, sử dụng git làm version control, được phát triển tại Google bởi Shawn Pearce trong quá trình phát triển dự án Android Gerrit không đơn thuần chỉ là công cụ review

mà nó có thể được sử dụng nó để xây dựng một server quản lý source code, giống như những gì mà github, gitlab đang làm

Hình 6 Hình ảnh mô tả những hoạt động của nhóm lập trình viên trên Gerrit

Trang 13

- Jenkins: Jenkins là một web application chạy trên nền J2EE, đóng vai trò là một máy chủ build & test hệ thống tích hợp liên tục (Continuous Integration) Jenkins được viết bởi Kosuke Kawaguchi tại Sun và tiền thân có tên là Hudson, kể từ khi Oracle mua lại Sun vào năm 2010 thì bộ phận phát triển Hudson đã tách ra phát triển riêng và đặt tên

là Jenkins như ngày nay

Hình 7 Hình ảnh mô tả luồng tích hợp Gerrit và Jenkins

1.3 Giới thiệu về IntelliJ IDEA

Phần mềm IntelliJ IDEA, sản phẩm nổi tiếng của JetBrains đã nhận được rất nhiều giải thưởng Phần mềm được thiết kế để cải tiến năng suất cho các nhà phát triển IntelliJ IDEA cung cấp trình soạn thảo thông minh, trình phân tích mã và tập hợp mạnh mẽ của refactorings hỗ trợ một loạt các ngôn ngữ lập trình, các khuôn khổ và công nghệ,

và đã sẵn sàng để sử dụng

Trang 14

Hình 8 Hình ảnh mô tả phần mềm IntelliJ IDEA

Lợi ích chính của phần mềm IntelliJ IDEA:

- Cho phép các nhà phát triển tập trung phát triển và quản lý tất cả các tác vụ thông thường

- Cho phép viết, gỡ lỗi, tái cấu trúc, kiểm tra và tìm hiểu mã của bạn mà không

bị ảnh hưởng

- Xử lý liền mạch cơ sở mã hỗn hợp của Java, Kotlin, Ruby, Groovy, Python và Scala

- Tự động duy trì chất lượng mã

- Theo dõi và sửa lỗi trên tất cả các cấp độ – từ các câu đến kiến trúc tổng thể

- Tạo mã “sạch”, nhanh chóng thực hiện mã trong thời gian ngắn nhất

- Được thiết kế để làm việc trên tất cả các quy mô – từ cá nhân đến doanh nghiệp

- Hỗ trợ tất cả các ngôn ngữ, công nghệ và framework chính

- Làm việc với các hệ thống điều khiển phiên bản phổ biến và TeamCity, server tích hợp liên tục

Trang 15

1.4 Giới thiệu về quy trình làm việc Agile – Scrum

Hình 9 Hình ảnh mô tả quy trình làm việc Agile

Khái niệm Agile (viết tắt của Agile Software Development) có nghĩa là phương thức phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển phần mềm với mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt Nguyên tắc phát triển mô hình là phân đoạn lặp (iterative) và tăng trưởng (incremental), theo

đó nhu cầu và giải pháp tiến hóa thông qua sự hợp tác giữa các nhóm tự quản và liên chức năng

Rất nhiều nơi định nghĩa Agile như một phương pháp Thực chất, Agile giống như một phương pháp luận, một triết lý dựa trên hơn nguyên tắc phân đoạn vòng lặp (iterative) và tăng trưởng (incremental)

Ngày nay, triết lí Agile đã vượt xa khỏi khu vực truyền thống của mình là phát triển phần mềm để đóng góp sự thay đổi trong cách thức làm việc, quản lí, sản xuất ở các ngành khác như sản xuất, dịch vụ, sales, marketing, giáo dục và trở thành một phương thức quản lý dự án phổ biến nhất hiện nay với nhiều đại diện được gọi là các phương pháp “họ Agile”

Những tôn chỉ trong quy trình Agile:

- Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ: Trọng tâm đặt lên con người, xây dựng tương tác và hỗ trợ giữa các thành viên trong nhóm Những thành viên có năng lực, chịu tương trợ nhau trong công việc sẽ mang đến thành công cho dự

Trang 16

- Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi với sự thay đổi, đó có thể là thay đổi về công nghệ, nhân sự, deadline,

Các bước làm việc theo quy trình Agile – Scrum:

Scrum định nghĩa quy tắc cho bốn sự kiện chủ chốt nhằm tạo môi trường và quy cách hoạt động và cộng tác cho các thành viên trong dự án Các sự kiện này diễn ra trước khi Sprint bắt đầu (là sự kiện lập kế hoạch – Sprint Planning), trong khi Sprint diễn ra (sự kiện Daily Scrum) và sau khi Sprint kết thúc (sự kiện Sprint Review và Sprint Retrospective)

Hình 10 Hình ảnh mô tả quy trình làm việc Agile - Scrum

- Sprint Planning (Họp Kế hoạch Sprint- Iteration): Nhóm phát triển gặp gỡ với

Product Owner để lên kế hoạch làm việc cho một Sprint (xem thêm phần Sprint bên dưới) Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng thời gian cần thiết để hoàn tất các tác vụ Chia nhỏ công việc thành các backlog (task) để có thể theo dõi tiến độ dự án dễ dàng hơn Scrum sử dụng cách thức lập kế hoạch từng phần và tăng dần theo thời gian, theo đó, việc lập kế hoạch không diễn ra duy nhất một lần trong vòng đời của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình hình thực tiễn trong tiến trình đi đến sản phẩm

- Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội sản xuất

họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia sẻ tiến độ công việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm suốt một Sprint

- Sprint Review (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng với

Product Owner sẽ rà soát lại các công việc đã hoàn tất (DONE) trong Sprint vừa qua

và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm

- Sprint Retrospective (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum Master,

nhóm phát triển sẽ rà soát lại toàn diện Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm

Trang 17

1.5 Giới thiệu về Google Cloud Platform

Google Cloud Platform là một sản phẩm của công ty Google còn được viết tắt là GCP Đây là nền tảng điện toán đám mây cho phép người dùng có thể sử dụng, tạo lập các ứng dụng, dữ liệu của mình trên hệ thống này Hiện nay, một số ứng dụng phổ biến với người dùng nhất được xây dựng dựa trên nền tảng Google Cloud Platform có thể kể đến như Youtube, Chrome, Google Maps, Google Search,… Những vấn đề liên quan đến Mobile, Developer, Management, Networking, Computer Engine, Storage, Big Data,…đều được Google Cloud Platform giải quyết, từ đó giúp doanh nghiệp thuận lợi hơn trong việc xây dựng nền tảng công nghệ thông tin mà không cần phải quan tâm đến các hệ thống bên dưới

Một trong những ưu điểm tuyệt vời Google Cloud Platform có thể mang đến cho người dùng chính là hệ thống dịch vụ Data Center Đây là những dịch vụ được Google đặt trực tiếp mà người dùng có thể sử dụng dễ dàng với mức độ bảo mật an toàn rất cao Và đương nhiên, hệ thống Google Cloud Platform được xây dựng dựa trên những nguyên tắc, tiêu chuẩn khắt khe mà một hệ thống điện toán đám mây cần phải có

Các sản phẩm của nền tảng Google Cloud:

Ngày đăng: 05/09/2021, 20:57

TỪ KHÓA LIÊN QUAN

w