Site icon TAPIT

Vitual WTTC – Quản lý hạ tầng Amazon Web Services cho các dự án Internet of Things

Đầu tháng tám này là sự quay trở lại với sự kiện chia sẻ Online WTTC tại Cộng đồng Kỹ thuật TAPIT. Buổi chia sẻ lần này mang chủ đề “QUẢN LÝ HẠ TẦNG TRÊN AWS CỦA CÁC DỰ ÁN INTERNET OF THINGS”.

Đến với buổi chia sẻ, các bạn được tiếp cận với góc nhìn của một người anh: Cao Hoàng Phúc – Cựu học viên TAPIT 2016, anh hiện tại là một Python Developer tại công ty Hitachi Vantara cở sở Thành phố Hồ Chí Minh, anh đã có nhiều kinh nghiệm làm việc với AWS trên các thiết bị IoTs. Với mục đích mong muốn giúp cho các bạn sớm tiếp cận đến những công nghệ, công cụ làm việc mới và hiệu quả trên AWS, tạo ra môi trường trao đổi kinh nghiệm từ các anh chị đi trước. Cảm ơn anh Phúc và các anh chị đã sắp xếp thời gian của mình để tham gia chia sẻ đến các bạn thành viên trong Cộng đồng. 

Buổi chia sẻ gồm hai nội dung chính:

TÓM TẮT NỘI DUNG BUỔI CHIA SẺ:

1. Công cụ Terraform

Trước hết, chúng ta cùng nhắc đến thuật ngữ Infrastructure As Code. Thông thường, việc quản lý các web applications khá là phức tạp. Lấy ví dụ bạn đang quản lý load balancer, vài web servers, database servers,… Bạn có thể sẽ phải mất hàng giờ để provisioning và quản lý những hệ thống này. Lúc này chúng ta cần một công cụ để Infrastructure As Code, thuật ngữ này có thể được hiểu là bạn có thể thiết lập/quản lý những stack trước kia của hệ thống thông qua việc định nghĩa chúng trong 1 file script chẳng hạn, thay vì tốn thời gian và công sức setup manual từng thứ.

Terraform là một trong những công cụ giúp bạn quản lý, xây dựng và thay đổi Infrastructure (servers, vpc, storage …), deploy code tự động một cách an toàn và hiệu quả. Lý do tại sao chúng ta nên sử dụng Terraform sẽ được trình bày ở phần sau.


2. Gitlab CI/CD

Nếu bạn đang làm việc với một project có nhiều người cùng tham gia, mỗi ngày hàng chục, hàng trăm commit. Thì những công đoạn như tạo một image cho app, chạy tất cả các test dựa vào image, đẩy image lên registry, deploy vào server… sẽ tốn thời gian biết chừng nào. Thay vào đó, bằng việc tận dụng những công cụng được cung cấp sẵn của các nền tảng (Gitlab) hỗ trợ CI/CD, mọi thứ được làm tự động, đảm bảo code của chúng ta chạy đúng, test đủ và ra production càng sớm càng tốt để user được trải nghiệm tính năng mới.

Khái niệm CI/CD (Continuous Integration/Continuous Delivery – tích hợp liên tục / triển khai liên tục):

3. Ưu điểm của Terraform là gì?

4. Cách thức hoạt động

Khi làm việc với một project terraform, chúng ta cần quan tâm đến file .tf và file .tfvars. 

Terraform hỗ trợ 2 loại Biến (Variable) trong quá trình sử dụng Terraform gồm: Input và Output

Khi bạn chạy Terraform tại folder chứa mã chương trình người dùng, Terraform sẽ tạo file .tfstate và lưu tại S3. Tệp này ghi lại thông tin về Infrastructure và mã chương trình với mục đích khi bạn thực hiện deploy, Terraform sẽ thực hiện so sánh dữ liệu chương trình với dữ liệu trong file .tfstate, Terraform tiến hành deploy lại nếu có sự thay đổi.

Khi triển khai hạ tầng với Terraform, các bạn cần chú ý đến các comment sau:

=> Cách giải quyết: Revert code và tiến hành deploy lên Terraform. 

5. Câu hỏi thảo luận

  1. Thông thường, khi người dùng làm thủ công phải dựa vào giao diện của Amazone Web Service, khi giao diện được update, hay bổ sung các tính năng, những vị trí mình cấu hình ban đầu có thể được thay đổi, mình có cần cập nhật lại code hay không? 

Trả lời: Khi chương trình báo lỗi Phiên bản cũ, mình chỉ cần lựa chọn update version. Chương trình sẽ tự động được cập nhật theo version mới.

  1. Có cần một hạ tầng để mình build và deploy lên Terraform không?

Trả lời: Gitlab Ci/CD hỗ trợ việc build, change và destroy hạ tầng docker trên Cloud.

  1. Ưu điểm của Gitlab so với Github là gì?

Trả lời: Github mặc định là public. Những công ty khi sử dụng muốn Private thì sẽ sử dụng Gitlab. Gitlab cập nhật tính năng phát triển nhanh hơn Github.

  1. Ví dụ có 2 người đang tiến hành commit trên cùng 1 nhánh, nếu chương trình của người thứ nhất đang thực thi lệnh terraform plan và file .tfstate đang được cập nhật nhưng chưa hoàn tất, thì người thứ hai cũng tiến hành tương tự, Terraform có cơ chế nào để quản lý việc này?

Trả lời: Trong quá trình build, chương trình thứ 1 sẽ được build trước, Gitlab CI/CD có cơ chế đưa chương trình thứ 2 được build vào trạng thái chờ.

MỘT SỐ CÂU BỔ SUNG:

  1. So sánh chi phí của một dự án triển khai trên Cloud và On-Premise.

Trả lời: Tuỳ thuộc vào nhu cầu dự án do mỗi loại có mỗi điểm mạnh yếu riêng biệt.

  1. How to choose the right EC2 instance to build a IoT network with about 200 nodes, data rate via MQTT is about 100 Bytes/node/second

Trả lời: 

  1. Khu vực (region) AWS địa phương và vùng (zone) AWS địa phương có gì khác nhau?

Trả lời: 

  1. Vấn đề và giải pháp bảo mật cho các ứng dụng IoTs? (so với máy chủ vật lý)

Trả lời: AWS đã xây dựng đầy đủ các giải pháp bảo mật cho người dùng. Thay vì việc phải xây dựng 1 Server có tính bảo mật chúng ta cần đầu tư rất nhiều thời gian cũng như chất xám, cần có 1 team đảm bảo vấn đề an ninh đủ mạnh.

  1. Cách tiếp cận và sử dụng các dịch vụ của AWS

Trả lời: AWS có rất nhiều dịch vụ cho người dùng, bạn có thể tham khảo tài liệu AWS cung cấp khá trực quan cho người mới tiếp cận.

  1. Ứng dụng của EC2 trong việc build web và có thể demo được không ạ?

Trả lời: Bản thân EC2 là máy chủ ảo nên ta có thể cài đặt tất cả môi trường cần thiết để build web.

  1. Giải pháp AWS đem lại cho IoTs là gì?

Trả lời: Aws IoTs core, secure AWS cung cấp đầy đủ các quy tắt bảo mật, IoTs,…

  1. Ưu điểm của AWS so với GCP?

Trả lời: Các dịch vụ về iot AWS cung cấp khá đầy đủ và hướng dẫn trực quan cho người dùng

  1. Cách xây dựng cơ sở hạ tầng và ứng dụng AWS IoTs

Trả lời: AWS cung cấp khá nhiều dịch vụ IoTs cho người dùng. Phải hiểu rõ các dịch vụ AWS cung cấp, thông qua đọc các tài liệu của AWS về IoTs, chúng ta mới bắt đầu triển khai xây dựng trên AWS.

  1. Sự quan trọng của AWS trong lĩnh vực IoTs

Trả lời: AWS hỗ trợ đầy đủ các dịch vụ IoTs nên rất tiện lợi cho người dùng phát triển hệ thống IoTs trên AWS.

Các bạn có thể tham khảo 1 số bài viết hướng dẫn liên quan đến AWS, GCP, Azure tại tapit.vn: https://tapit.vn/tong-hop-huong-dan-internet-things-voi-nodemcu-esp8266-va-esp32/

 

Cộng đồng Kỹ thuật TAPIT chia sẻ đến các bạn video đã được thu lại tại buổi chia sẻ. Nếu bạn đang quan tâm đến chủ đề này, hãy nhấn like và subcribe để nhận thông báo về những video với các nội dung liên quan nhé! 

 

Tìm hiểu thêm:
Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32
Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
Fanpage Cộng đồng Kỹ thuật TAPIT: TAPIT – Learning, Research and Sharing Community