@manhng

Welcome to my blog!

AWS Amplify

August 4, 2021 22:30

AWS Amplify (edit)

Như chúng ta đã biết, cloud platform đã trở thành xu thế lập trình phổ biến từ nhiều năm nay, việc sử dụng các service như:

   - Google Cloud Storage hay Amazon S3 để lưu trữ file
   - Google Cloud Datastore/Cloud Bigtable hay Amazon DynamoDB để lưu trữ dữ liệu không cấu trúc(NoSQL)
   - Google Cloud Stackdriver Logging hay Amazon CloudWatch Logs đễ ghi log
   ...

gần như đã trở thành kỹ năng quen thuộc với mỗi developer.

Cùng với sự phổ biến của cloud platform, thì thời gian gần đây kiến trúc serverless trên nền tảng cloud cũng đang là 1 chủ để khá nóng với những lợi ích như:

   - Giảm bớt khâu maintain hệ thống, giúp khách hàng tiết kiệm chi phí và giảm sự phụ thuộc vào bên cung cấp dịch vụ outsourcing
   - Tính năng tự động scale hệ thống để tương thích với lượng truy cập bất thường từ users
   - Dễ dàng tích hợp với các service mới đang ngày càng được mở rộng trên nền tàng cloud

Nhưng kiến trúc này cũng đòi hỏi developer ngoài việc biết sử dụng các dịch vụ cơ bản của cloud như đã nêu ở trên, thì cũng phải có ít nhiều kiến thức về các cloud service cần thiết khác dùng để setting kiến trúc serverless.

Ví dụ như trên môi trường AWS, để setting được kiến trúc serverless, bạn cần biết cách setting lambda, api gateway, cognito, cloudfront và có thể là cả cloudformation nữa.

Một bài toan đặt ra là làm sao để 1 frontend developer vốn chỉ quen với các code Js hay native app (iOS, Android) có thể ngay lập tức xây dựng được 1 ứng dụng serverless theo yêu cầu của khách hàng?

Cũng có thể đặt vấn đề theo 1 cách khác là: Giải pháp nào để xây dựng một ứng dụng nặng về giao diện và cloud service với chi phí thấp nhất và thời gian nhanh nhất?

Ví dụ:

Khách hàng yêu cầu tạo 1 website vẽ biểu đồ điện tim đồ của bệnh nhân với dữ liệu lấy từ AWS Athena. Với cách tiếp cận thông thường, chúng ta cần xây dựng team dev cới các thành viên sau:

  - frontend dev chịu tránh nhiện xây dựng giao diện
  - backend dev xây dựng API lấy dữ liệu từ AWS Athena và trả về cho tầng frontend
  - devops dev cài đặt cấu hình web server, quản lý deploy, release, mornitoring.
  - cloud dev tạo/quản lý tài nguyên trên AWS

Sau khi release hệ thống cho khách hàng xong thì vẫn cần giữ lại ít nhất 1 dev để maintain hệ thống. Với dự án to thì cấu trúc team như này có thể vẫn cần thiết, nhưng với dự án nhỏ thì sẽ khá là cồng kềnh và tốn kém.

AWS Amplify có thể sẽ là lời giải cho bài toán này. Một ông frontend dev dành 1, 2 tuần tìm hiểu về AWS Amplify, đọc thêm một chút về AWS SDK cho Athena là có thể tự mình thực hiện tất cả các role nêu ở trên.

Vậy AWS Amplify là gì?

- Là bộ framework và công cụ hỗ trợ tích hợp backend (sử dụng các service cua AWS) với frontend trên các nền tảng:
   iOS
   Android 
   Web (React, Angular/Ionic, Vue)
   Đa nền tảng (React native)
- Hỗ trợ tự động cấu hình tài nguyên AWS cần thiết, deploy code, gen code tự động

Thành phần

AWS Amplify cho iOS:

- AWS Amplify CLI: Tạo/quản lý serverless backend, web hosting. Gen code tự động
- AWS SDK cho iOS

AWS Amplify cho Android:

- AWS Amplify CLI: Tạo/quản lý serverless backend, web hosting. Gen code tự động
- AWS SDK cho Android

AWS Amplify cho Web/Đa nền tảng:

- Amplify CLI: Tạo/quản lý serverless backend, web hosting. Gen code tự động
- Amplify JavaScript library: Thư viện hỗ trợ truy cập AWS resources
- UI component libraries: Thư viện UI tương thích với React, React Native, Angular/Ionic, Vue
- AWS SDK cho JavaScript

Tính năng và tiện ích

Tính năng:

Analytics: 
- Cho phép thu thập analytics data từ Amazon Pinpoint, Amazon Kinesis
Interactions:
- Tích hợp Amazon Lex, cung cấp AI-powered chatbots
API:
- Cho phép xây dựng REST API và Graph API:
      - REST API được tích hợp từ AWS API Gateway và AWS Lambda:
         - Là trái tim của hệ thống
         - Thông qua ́REST API có thể tương tác với mọi service của AWS
PubSub:
- Tích hợp AWS IoT và Generic MQTT Over WebSocket Providers, cung cấp tính năng gừi/nhận message đến AWS IOT
Authentication: 
- Tích hợp Amazon Cognito, cung cấp API cho việc quản lý users
Push Notifications:
- Tích hợp Amazon Pinpoint, cung cấp tính năng Push notifications
Storage: 
- Tích hợp Amazon S3, cung cấp tính năng lưu trữ files
- Tích hợp Amazon DynamoDB, cung cấp tính năng lưu trữ dữ liệu nosql
XR:
- Tích hợp Amazon Sumerian, hỗ trợ thực tế ảo (VR) và thực tế tăng cường (AR)

Tiện ích:

Cache: 
- Cung cấp LRU cache cho JavaScript
Hub:
- Local event bus system theo mô hình Publisher-Subscriber, cung cấp tính năng chia sẻ dữ liệu giữa các modules và components trong ứng dụng
I18n:
- Hỗ trợ giao diện đa ngôn ngữ
Logger:
- Hỗ trợ ghi log
Service Workers: 
- Hỗ trợ Push APIs, cho phép nghe và nhận message từ Push events.

Bắt đầu học AWS Amplify từ đâu?

iOS: https://aws-amplify.github.io/docs/ios/start
Android: https://aws-amplify.github.io/docs/android/start
Web/Đa nền tảng: https://aws-amplify.github.io/docs/js/start?platform=purejs

AWS

October 27, 2017 12:28

Amazon thực hiện một thay đổi "nhỏ" với mảng kinh doanh điện toán đám mây 12 tỷ USD của mình, nhưng có thể hạ gục Microsoft và Google

Đây sẽ là đón knock-out hạ gục Microsoft Azure và Google Cloud, hai đối thủ đang cố gắng bám đuổi Amazon trong cuộc đua điện toán đám mây.

Khi Amazon ra mắt nền tảng điện toán đám mây Amazon Web Services vào năm 2006, nó đã tạo ra một cuộc cách mạng đột phá. Để rồi sau hơn 10 năm, AWS đem về cho Amazon 12 tỷ USD doanh thu một năm và trở thành nền tảng điện toán đám mây lớn nhất thế giới.

Cuộc cách mạng điện toán đám mây đã giúp cho các lập trình viên không còn phải xây dựng và duy trì các máy chủ riêng của mình. Bây giờ, các nhà phát triển có thể trả phí cho Amazon theo giờ, để tận dụng dung lượng lưu trữ dữ liệu và khả năng xử lý tính toán của những siêu máy tính trên nền tảng AWS.


Amazon thực hiện một thay đổi nhỏ, nhưng sẽ làm ảnh hưởng lớn tới cuộc chiến điện toán đám mây.

Amazon thực hiện một thay đổi nhỏ, nhưng sẽ làm ảnh hưởng lớn tới cuộc chiến điện toán đám mây.

Nó đã làm thay đổi hoàn toàn cách thức hoạt động của những công ty công nghệ, tạo bàn đạp cho các startup phát triển. Có thể nói rằng điện toán đám mây đã sinh ra những công ty như Dropbox hay Airbnb và giúp họ tồn tại cho đến tận bây giờ.

Amazon đã từng thay đổi thế giới công nghệ một lần, và giờ đây gã khổng lồ thương mại điện tử lại một lần nữa tạo ra một cuộc cách mạng mới. Amazon sẽ thực hiện một thay đổi nhỏ, nhưng sẽ có ảnh hưởng vô cùng lớn và làm thay đổi hoàn toàn cuộc chiến đám mây hiện nay.

Đó là Amazon EC2 - công cụ tính toán và xử lý dữ liệu chính trong nền tảng đám mây AWS. Amazon EC2 sẽ chính thức chuyển từ thu phí theo giờ, sang hình thức thu phí theo từng giây.

Thay đổi nhỏ của Amazon sẽ ảnh hưởng lớn tới cuộc chiến điện toán đám mây

Năm 2014, Amazon ra mắt một công cụ điện toán đám mây mới có tên là Lambda. Đây là một dịch vụ tính toán nơi mà bạn có thể upload code của mình lên, và dịch vụ AWS Lambda sẽ giúp bạn chạy đoạn code đó bằng việc sử dụng các tài nguyên sẵn có của AWS. Sau khi bạn upload code, và bạn tạo ra một Lambda function, AWS sẽ cung cấp và quản lý các server mà bạn sử dụng để chạy code.

Điều quan trọng là AWS Lambda cung cấp cho các lập trình viên sự linh hoạt hơn. Ví dụ có một ứng dụng dịch ngôn ngữ được phát triển dựa trên AWS Lambda, các máy chủ có thể không tồn tại cho đến khi người dùng ấn nút OK và các máy chủ cũng biến mất sau khi quá trình này hoàn tất, kết quả được hiển thị trên màn hình của người dùng.

AWS Lambda giúp tiết kiệm rất nhiều chi phí cho các nhà phát triển. Và quan trọng hơn, cách tính phí của Lambda được đo theo một phần nghìn giây.


Và đó sẽ là đón knock-out hạ gục Microsoft Azure và Google Cloud, hai đối thủ đang cố gắng bám đuổi Amazon trong cuộc đua điện toán đám mây.

Và đó sẽ là đón knock-out hạ gục Microsoft Azure và Google Cloud, hai đối thủ đang cố gắng bám đuổi Amazon trong cuộc đua điện toán đám mây.

Bạn sẽ thấy sự khác biệt lớn, khi biết rằng toàn bộ phần còn lại của Amazon Web Services vẫn tính phí theo mỗi giờ đồng hồ.

CEO Jeff Bezos của Amazon chia sẻ: “Rất nhiều khách hàng của chúng tôi mong muốn sử dụng sức mạnh xử lý vượt trội của AWS EC2, mà có thể xử lý và tính toán một lượng lớn dữ liệu chỉ trong thời gian ngắn. Đôi khi chỉ là vài phút”.

Việc tính phí theo giờ đang gây ra một sự lãng phí rất lớn không cần thiết và nó khiến các khách hàng của Amazon đắn đo khi muốn sử dụng dịch vụ EC2. Với thay đổi bằng cách tính phí theo giây, chắc chắn sẽ rất nhiều khách hàng từ những startup nhỏ cho đến doanh nghiệp lớn muốn sử dụng AWS EC2.

Và đó sẽ là đón knock-out hạ gục Microsoft Azure và Google Cloud, hai đối thủ đang cố gắng bám đuổi Amazon trong cuộc đua điện toán đám mây.

Categories

Recent posts