CHƯƠNG 1. TỔNG QUAN VỀ TMA SOLUTIONS BÌNH ĐỊNH VÀ VỊ TRÍ DATA ENGINEER 1. Giới thiệu về TMA Solutions Bình Định. Hình 1 : Logo TMA Solutions TMA Solutions Bình Định là một đơn vị thuộc hệ thống TMA Solutions - một trong những công ty phần mềm hàng đầu tại Việt Nam.
TMA Solutions Bình Định đặt trụ sở tại thành phố Quy Nhơn, tỉnh Bình Định, Việt Nam. Đây là một trong những chi nhánh quan trọng của TMA Solutions, đóng góp vào sự phát triển và thành công của công ty trong lĩnh vực công nghệ thông tin. Lịch sử hình thành và phát triển của TMA Solutions Bình Định. 2017: TMA quyết định đầu tư xây dựng Công viên sáng tạo TMA Bình Định (TMA Innovation Park) tại Thung Lũng Sáng Tạo Quy Nhơn.
2018: Thành lập TMA Bình Định. Khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP). Thành lập Nhóm Data Science Group. Tổ chức Ngày hội Công nghệ tại ĐH Quy Nhơn.
1 2020: Khai trương Công viên Sáng tạo TMA Bình Định. Khách hàng từ 6 nước (Mỹ, Úc, Pháp, Nhật Bản, Hàn Quốc, Singapore). Khách hàng đến từ 15 quốc gia. Hợp tác cùng gần 15 trường đại học khu vực miền Trung – Tây Nguyên.
2022: Đạt mốc 500 nhân viên. TMA chính thức trở thành Tập đoàn Công nghệ TMA với 3 công ty thành viên (TMA Innovation Park, TMA Solutions, TMA Innovation). 2023: Tăng lên 600 thành viên. Hàng chục hoạt động cộng đồng được tổ chức (làm sạch biển Quy Hòa, dạy học miễn phí cho học sinh, hỗ trợ trẻ em mồ côi…) 1.
Vị trí thực tập. Tổng quan về Data Engineer. Data Engineer hay kỹ sư dữ liệu đóng vai trò xây dựng hệ thống, tổng hợp, lưu trữ và xuất dữ liệu trong doanh nghiệp. Các kỹ sư dữ liệu cần phải sử dụng những kiến thức và kỹ năng của mình để tìm ra xu hướng dữ liệu của doanh nghiệp, tìm ra phương án và phụ trách việc cải thiện chất lượng các nguồn dữ liệu.
Nhiệm vụ của sẽ là xây dựng hệ thống cơ sở hạ tầng dữ liệu để phân tích, vận hành và tích hợp các hệ thống với nhau. Một kỹ sư dữ liệu sẽ làm những công việc liên quan đến cấu trúc vận hành hệ thống dữ liệu, thiết kế các luồng dữ liệu (data pipeline) để phục vụ cho nhu cầu phát triển của Data Warehouse, chịu trách nhiệm cho hệ sinh thái dữ liệu của doanh nghiệp. Data Engineer cũng phụ trách việc xử lý, định dạng và tối ưu các dữ liệu đổ về Data Warehouse sao cho phù hợp với từng mục đích sử dụng. Hiểu đơn giản thì một kỹ sư dữ liệu sẽ phải đảm cho mọi dữ liệu đổ về luôn trong trạng thái sẵn sàng để phục vụ công việc của các vị trí khác như Data Analyst và Data Scientist.
Các kỹ năng cơ bản của một kỹ sư dữ liệu. Data Modelling (mô hình hóa dữ liệu), Data Warehouse (kho dữ liệu), Data APIs (Restful API cho data) và Data Lake. 2 Coding: Thành thạo các ngôn ngữ lập trình là điều cần thiết cho vai trò này. Các ngôn ngữ lập trình phổ biến bao gồm SQL, NoSQL, Python, Java, R và Scala.
Chủ yếu là SQL và Python. Spark để xây dựng hệ thống data. Tối thiểu mọi người phải hiểu được Spark vận hành như thế nào. Các công cụ Big Data: Kỹ sư dữ liệu không chỉ làm việc với dữ liệu thông thường.
Kỹ sư dữ liệu thường được giao nhiệm vụ quản lý dữ liệu lớn. Các công cụ và công nghệ đang phát triển và thay đổi theo từng công ty; nhưng một số công cụ phổ biến bao gồm Hadoop, MongoDB và Kafka. Điện toán đám mây: Cần hiểu về lưu trữ đám mây và điện toán đám mây khi các công ty ngày càng vận hành trên máy chủ cho các dịch vụ đám mây; phổ biến là AWS (AWS) hoặc Google Cloud. Bảo mật dữ liệu: Mặc dù một số công ty có thể có đội bảo mật dữ liệu chuyên dụng; nhưng nhiều kỹ sư dữ liệu vẫn được giao nhiệm vụ quản lý và lưu trữ dữ liệu; một cách an toàn để bảo vệ dữ liệu khỏi bị mất hoặc bị đánh cắp.
Con đường phát triển Data Engineer. Junior Data Engineer : Làm việc dưới sự hướng dẫn của các Data Engineer cao cấp. Tham gia vào các nhiệm vụ cơ bản liên quan đến ETL (Extract, Transform, Load) và xử lý dữ liệu. Xây dựng và duy trì các luồng dữ liệu đơn giản.
Làm việc với các công cụ và nền tảng dữ liệu cơ bản. Intermediate Data Engineer: Có kinh nghiệm trong việc thiết kế và triển khai các quy trình ETL phức tạp. Tham gia vào việc tối ưu hóa hiệu suất của các hệ thống xử lý dữ liệu. Hiểu rõ về cơ sở dữ liệu phân tán và công nghệ lưu trữ dữ liệu lớn.
Có khả năng làm việc độc lập và giải quyết các vấn đề kỹ thuật. 3 Senior Data Engineer : Có khả năng thiết kế và triển khai toàn bộ hệ thống ETL và xử lý dữ liệu từ đầu đến cuối. Làm việc với dữ liệu thời gian thực và hiểu rõ về các hệ thống streaming. Có khả năng tối ưu hóa và mở rộng hệ thống xử lý dữ liệu cho việc đáp ứng nhu cầu tăng cao.
Làm việc chặt chẽ với các nhóm khác như Data Scientists và Data Analysts để đảm bảo dữ liệu đáp ứng yêu cầu phân tích. Lead Data Engineer: Đứng đầu việc thiết kế kiến trúc dữ liệu và hệ thống xử lý dữ liệu cho toàn bộ tổ chức. Có khả năng định hình chiến lược dữ liệu và đưa ra các quyết định liên quan đến công nghệ. Lãnh đạo và hướng dẫn các Data Engineer trong nhóm.
Tham gia vào việc thảo luận chiến lược kỹ thuật với các bộ phận khác trong tổ chức. Tìm hiểu về Cloud Computing. Cloud computing, hay còn được gọi là "điện toán đám mây", là một mô hình cung cấp và quản lý tài nguyên máy tính (bao gồm máy chủ, lưu trữ, mạng, dịch vụ, ứng dụng và nhiều loại tài nguyên khác) thông qua Internet. Thay vì phải sở hữu và quản lý tất cả các tài nguyên máy tính trực tiếp tại các trung tâm dữ liệu hoặc máy chủ cục bộ, người dùng và tổ chức có thể thuê hoặc sử dụng tài nguyên này từ các nhà cung cấp dịch vụ đám mây.
Cloud computing cung cấp sự linh hoạt và hiệu quả về chi phí cho người dùng bằng cách cho phép họ mở rộng hoặc thu hẹp tài nguyên theo nhu cầu thực tế. Các tài nguyên này thường được cung cấp theo hình thức dịch vụ, tức là người dùng chỉ trả tiền cho tài nguyên thực sự sử dụng, thay vì phải đầu tư mạnh vào việc mua sắm và duy trì cơ sở hạ tầng riêng. Các dịch vụ cloud computing bao gồm cơ sở hạ tầng như dịch vụ máy chủ ảo, lưu trữ, mạng, cũng như các dịch vụ cao cấp như dịch vụ cơ sở dữ liệu, dịch vụ tích hợp, dịch vụ phân tích dữ liệu, và nhiều ứng dụng khác. Các nhà cung cấp dịch vụ đám mây phổ biến bao gồm AWS (AWS), Microsoft Azure, Google Cloud Platform (GCP) và nhiều tên tuổi khác.
So sánh với On-premises. Hình 2: So sánh Cloud Computing với On-premises 6 2. Amazon Web Services. Hình 3: Logo AWS AWS (AWS) là một nền tảng điện toán đám may do Amazon.com cung cấp và phát triển.
Mang tới cho doanh nghiệp các tính năng hữu ích như lưu trữ, tính toán, cơ sở dữ liệu, phân tích,… Được ra mắt từ năm 2006 nhằm cung cấp các dịch vụ trực tiếp cho website và ứng dụng máy khách, tính đến nay AWS đã trở thành nền tảng chiềm thị phần lớn nhất toàn cầu về lĩnh vực điện toán đám mây. Hiện AWS đã phát triển hơn 200 dịch vụ trên nền tảng với hệ thống trung tâm trải dài hoàn toàn thế giới, từ Đông Mỹ, Tây Mỹ, Ireland, Brazil, Úc, Nhật Bản, Singapore,… 2. Serverless là một kiến trúc và mô hình triển khai ứng dụng trong lĩnh vực công nghệ thông tin. Mô hình này tập trung vào việc cho phép các nhà phát triển tập trung vào viết mã và xây dựng ứng dụng mà không cần quan tâm đến việc quản lý cơ sở hạ tầng máy chủ truyền thống.
Mặc dù tên gợi liên tưởng đến việc không sử dụng máy chủ (server-less), thực tế là máy chủ vẫn tồn tại, nhưng việc quản lý chúng được ẩn đi và được thực hiện bởi nhà cung 7 cấp dịch vụ đám mây. Điều này giúp cho việc triển khai và mở rộng ứng dụng trở nên đơn giản hơn, vì chỉ cần quan tâm đến việc viết mã và cấu hình ứng dụng. Các dịch vụ serverless thường cung cấp các hàm chức năng (function-as-a-service) hoặc các điểm cuối (endpoints) cho các API. Khi có yêu cầu đến, hệ thống đám mây sẽ tự động triển khai và chạy các hàm chức năng mà không cần phải lo lắng về việc cài đặt máy chủ hay quản lý tài nguyên.
Mô hình serverless giúp tiết kiệm thời gian và công sức khi triển khai ứng dụng, đồng thời giúp giảm thiểu các vấn đề liên quan đến quản lý cơ sở hạ tầng máy chủ truyền thống. Tuy nhiên, nó cũng có nhược điểm và hạn chế của riêng nó, ví dụ như việc khó kiểm soát chi phí trong môi trường serverless và khả năng tùy chỉnh hệ thống bị hạn chế do sự giới hạn của nhà cung cấp dịch vụ đám mây. Ưu điểm của Serverless. Chi phí: Chi phí không có định và dao động tùy thuộc vào nhu cầu sử dụng.
Kết quả là em chỉ trả tiền cho những gì em sử dụng. Em cắt giảm được từ 70% đến 90% chi phí vì sẽ không phải trả những dịch vụ bổ sung mà không yêu cầu. Khả năng mở rộng: Không giống với điện toán đám mây truyền thống, phải thuê một máy ảo thì với serverless lượng tài nguyên sẽ tự mở rộng khi chạy những tác vụ yêu cầu tài nguyên lớn, và chỉ hoạt động khi có yêu cầu xử lý. Giới thiệu về đề tài thực hiện.
Đề tài em thực hiện có tiêu đề là “BUILDING SERVERLESS DATA PROCESSING PIPELINE AND API PIPELINE ON AWS” tập trung vào việc tạo ra một mô hình hiệu quả và linh hoạt cho việc xử lý dữ liệu và API cho phép các hệ thống khác tương tác với dữ liệu mà không cần quản lý máy chủ trực tiếp. Trong thời đại số hóa hiện nay, việc xử lý và phân tích dữ liệu đang ngày càng trở nên quan trọng, và sự xuất hiện của mô hình đám mây cung cấp các giải pháp tiên tiến để đáp ứng nhu cầu này. Trong đề tài, em sẽ tạo ra một hệ thống đường ống xử lý dữ liệu phi máy chủ tự động trên nền tảng AWS.