@manhng

Welcome to my blog!

Azure Functions

November 3, 2020 22:36

Azure Functions (edit)

Bạn sẽ được tìm hiểu về:

  • Cloud Computing (công nghệ điện toán đám mây)
    • Ppublic cloud là gì?
    • Private cloud là gì?
    • On-premises là gì?
    • Hybrid cloud là gì?
    • Backend as a Service – BaaS
    • Platform-as-a-Service - PaaS
    • Software-as-a-Service - SaaS
    • Infrastructure-as-a-Service - IaaS
    • Function-as-a-Service - FaaS
  • Xu hướng Digital Transformation (chuyển đổi số)
  • Azure Functions
    • HTTP trigger
    • Time trigger
    • Blob storage trigger
    • ...
    • Stateful Serveless: Kết hợp với Durable Function
  • Serverless architecture 
  • Azure Cosmos DB
    • Azure Cosmos DB Emulator
  • Azure Stack
  • Visual Studio Mobile Center

Azure Functions - Dịch vụ điện toán serverless trên cloud (lionpham.com)

Azure Cosmos DB là gì? Dịch vụ NoSQL database của Azure (lionpham.com)

Azure Stack - Nền tảng hybrid cloud của Microsoft (lionpham.com)

Visual Studio Mobile Center là gì? (lionpham.com)

C# 7.0 có gì mới? (lionpham.com)

1) Azure Stack

On-Premisesmô hình mà các công ty sẽ thuê hoặc mua các máy chủ và đặt tại các datacenter riêng của họ (tự xây dựng hoặc đi thuê)

Hybrid cloud là mô hình điện toán đám mây được cấu thành bởi sự pha trộn giữa public cloud, private cloud và on-premises, với khả năng điều phối giữa các hạ tầng trên, cho phép di chuyển workload giữa chúng khi cần, giúp tối ưu hóa chi phí & mang lại cho người sử dụng nhiều lựa chọn triển khai giải pháp phần mềm hơn.

Hybrid cloud phù hợp với những bài toán có workload có tính chất thay đổi lớn như hệ thống đặt hàng chẳng hạn, hệ thống này sẽ phải đối mặt với lượng giao dịch lớn trong những dịp lễ, khuyến mãi. Hybrid cloud là một lựa chọn phù hợp khi hệ thống đặt hàng nói trên ở những ngày bình thường có thể chạy trên private cloud hoặc on-premises, tuy nhiên khi có yêu cầu cần sử dụng tài nguyên máy tính lớn hơn như để xử lý lượng giao dịch lớn vào dịp lễ, khuyến mãi, có thể lấy từ một dịch vụ public cloud. Một ví dụ khác của việc sử dụng mô hình hybrid cloud đó là trong các bài toán big data, khi dữ liệu có thể được lưu ở private cloud hoặc on-premises và sử dụng tài nguyên máy tính trên public cloud để thực hiện tính toán, phân tích với khả năng scale để thực hiện các tác vụ tính toán lớn.

Tuy nhiên hybrid cloud không đơn giản chỉ là việc kết nối hạ tầng on-premises, private cloud hay public cloud với nhau, việc triển khai mô hình hybrid cloud đối mặt với nhiều thách thức về mặt kỹ thuật và quản lý:

  • Đảm bảo tính ổn định, độ trễ (latency), băng thông (bandwidth) phù hợp của đường truyền mạng cũng như xây dựng một kiến trúc mạng hợp lý (điều hướng, thiết lập firewall) là một thách thức rõ ràng trong việc triển khai mô hình hybrid cloud.
  • Việc quản lý giữa các dịch vụ cloud khác nhau cũng là một thách thức lớn. Mỗi một nền tảng cloud hay hạ tầng on-premises có một cơ chế quản lý riêng và độc lập với nhau do vậy rất khó để có được 1 cái nhìn tổng quan về tổng số lượng các dịch vụ được triển khai và trạng thái của chúng.

Để giải quyết được thách thức về mặt quản lý, xây dựng một lớp orchestration (điều phối) là một giải pháp có tính khả thi cao. Lớp orchestration này sẽ cung cấp một giao diện duy nhất cho các tác vụ liên quan tới cloud và nó sẽ tương tác với các nền tảng cloud, hạ tầng on-premises thông qua API, có khả năng theo dõi và kiểm soát các hoạt động tập trung, mang đến một cái nhìn tổng quan hơn về các dịch vụ được sử dụng.

Tuy nhiên, mỗi nền tảng cloud hay hạ tầng on-premises có những tập API riêng do vậy lớp orchestration cần phải có những thành phần kiểu driver (hoạt động giống driver được cài đặt để sử dụng được các thiết bị ngoại vi như chuột, bàn phím cho máy tính) để chuyển đổi tập API riêng của từng nền tảng cloud, hạ tầng on-premises sang một chuẩn chung để có thể sử dụng được.

Azure Stack

Microsoft Azure Stack là một thành phần mở rộng của Microsoft Azure, mang đến cho người sử dụng khả năng triển khai & chạy các dịch vụ Azure ngay trên hạ tầng on-premises của họ, từ đó cho phép xây dựng một môi trường hybrid cloud có “tính nhất quán” cao.

Hệ sinh thái One Azure

Tính nhất quán ở đây được thể hiện qua việc đảm bảo một phương pháp phát triển giống nhau khi xây dựng các ứng dụng chạy trên Azure và Azure Stack, cùng tập API, cùng các công cụ DevOps, giao diện quản lý giống nhau, từ đó giúp nâng cao năng suất làm việc của lập trình viên. Với tính nhất quán của Azure & Azure Stack, người sử dụng sẽ có được sự linh hoạt trong việc lựa chọn sử dụng hạ tầng để chạy ứng dụng cũng như lưu trữ dữ liệu dựa trên các yêu cầu như luật pháp, nhu cầu bảo vệ dữ liệu nhạy cảm, khả năng tùy chỉnh hay độ trễ của đường truyền mạng mà từ đó lựa chọn lưu trữ trên datacenter của Microsoft, của nhà cung cấp dịch vụ hay ngay trong datacenter riêng của người sử dụng.

Azure Stack ConsistencyTính nhất quán giữa Azure & Azure Stack

Tính nhất quán cũng được Microsoft thể hiện qua việc đảm bảo mang đến một hệ sinh thái “One Azure” với khả năng nhanh chóng xây dựng các ứng dụng trên cloud sử dụng các giải pháp mã nguồn mở hoặc các phần mềm được phát triển bởi cộng đồng như Mesos, Blockchain, Cloud Foundry, RedHat, SUSE Linux, Chef hay Docker qua các template được cấu hình sẵn trên Azure Marketplace.

Sử dụng Azure Stack như thế nào?

Azure Stack không đơn giản chỉ là một bộ cài phần mềm mà bạn có thể tải về đâu đó trên Internet và cài đặt nó lên máy chủ của bạn. Để sử dụng được Azure Stack cần phải có một sự kết hợp của cả phần cứng lẫn phần mềm dựa trên các tiêu chuẩn cụ thể mà Microsoft đưa ra.

Hiện tại, Microsoft cung cấp Azure Stack dưới dạng “hệ thống tích hợp” (Azure Stack integrated systems) tức là một gói hệ thống bao gồm phần cứng (máy chủ) được cài đặt sẵn Azure Stack và cấu hình theo yêu cầu của khách hàng. Tính đến thời điểm viết bài viết này, Microsoft đã hợp tác với Dell EMC, HPE, Lenovo, Cisco và Huawei trong việc tích hợp Azure Stack vào trong một số dòng máy chủ của họ.

Azure Stack Integrated SystemsCấu hình chuẩn của một số nhà cung cấp phần cứng cho Azure Stack

Ở đợt công bố mở bán, Azure Stack sẽ xuất hiện ở 46 quốc gia trong đó có Việt Nam qua các kênh phân phối của các đối tác phần cứng của Microsoft.

Azure Stack Development Kit

Để tạo điều kiện cho các nhà phát triển có thể xây dựng các giải pháp PoC (proof-of-concept) với Azure Stack, Microsoft cung cấp Azure Stack Development Kit (ASDK), một bộ kit cho phép triển khai Azure Stack trên một node máy chủ hoàn toàn miễn phí với mục đích dùng thử & nghiên cứu. Ngoài ra, Azure Stack Development Kit cũng có thể được sử dụng làm môi trường phát triển.

Để sử dụng được Azure Stack Development Kit, máy tính của bạn phải đáp ứng được những yêu cầu cơ bản về phần cứng, phần mềm và mạng của Azure Stack. Theo yêu cầu phần cứng của Azure Stack được Microsoft công bố, cấu hình tối thiểu để chạy được ASDK là một máy tính có 1 ổ đĩa OS có dung lượng tối thiểu 200 GB cộng thêm 4 ổ đĩa có dung lượng tối thiểu 140 GB/ổ đĩa, CPU có tối thiểu 12 core vật lý, 96 GB RAM tối thiểu, BIOS hỗ trợ Hyper-V + SLAT và trong trạng thái bật. Chi tiết về yêu cầu phần cứng cho ASDK các bạn có thể tham khảo tại đây.

Azure Stack tính phí sử dụng như thế nào?

Giống với Azure, Azure Stack cũng sử dụng mô hình tính phí “pay-as-you-use” (dùng bao nhiêu trả bấy nhiêu). Bạn có thể sử dụng các dịch vụ IaaS và PaaS trong Azure Stack mà không cần trả bất kỳ chi phí nào trước và sử dụng chung subscription (thuê bao), cam kết tài chính và các công cụ thanh toán giống với Azure. Tuy nhiên, mô hình tính phí “pay-as-you-go” này chỉ có thể được mua qua EA (Enterprise Agreement) hoặc qua các kênh phân phối CSP (Cloud Solution Provider).

Azure Stack pay-as-you-use pricingBảng giá dịch vụ tham khảo của Azure Stack

Chi tiết về mô hình pay-as-you-use cùng bảng giá dịch vụ cụ thể của Azure Stack bạn có thể tham khảo thêm tại đây.

Bắt đầu với Azure Stack như thế nào?

Để bắt đầu với Azure Stack, có 3 bước sau được Microsoft khuyến nghị:

  1. Develop: Xây dựng bản prototype của ứng dụng của bạn trên nền tảng điện toán đám mây Microsoft Azure.
  2. Validate: Cài đặt Azure Stack Development Kit để xác nhận tính ổn định, tính khả thi của ứng dụng trên môi trường hybrid cloud với Azure Stack.
  3. Deploy: Mua các hệ thống được tích hợp Azure Stack (Azure Stack integrated systems) để triển khai ứng dụng của bạn ở môi trường thực tế.

Azure Stack Getting Started

Kết luận

Có thể thấy rõ ràng rằng với việc tung ra Azure Stack, Microsoft đã phần nào giải quyết được một lượng tương đối các vấn đề gặp phải của mô hình hybrid cloud khi cung cấp một môi trường có tính nhất quán cao giữa nền tảng public cloud (Azure) và hạ tầng on-premises (Azure Stack) cùng một hệ sinh thái “One Azure” đồng nhất.

Mặc dù đang đứng ở vị trí thứ 2, ngay sau đối thủ là Amazon Web Services, tuy nhiên mình có một sự tự tin rằng Azure Stack sẽ sớm giúp Microsoft thu hẹp được khoảng cách với Amazon hoặc thậm trí là vượt lên dẫn đầu trong thị phần về cloud computing khi xu hướng sử dụng mô hình hybrid cloud đang được cộng đồng vô cùng ưa chuộng.

2) Serverless Architecture

Serverless được dùng để chỉ 2 khái niệm khác nhau (nhưng lại khá liên quan với nhau):

  1. Một số ứng dụng chuyển phần lớn logic về front-end, không có server để làm back-end (serverless)  mà chỉ sử dụng các API của bên thứ 3 để thay thế.
  2. Một số trường hợp khác, lập trình viên phải tự viết code để làm back-end. Với mô hình client-server thông thường, ta phải thuê server rồi deploy ứng dụng lên server. Với mô hình serverless, thay vì deploy code này lên server, ta deploy nó đưới dạng một Function (Function as a Service – FaaS). Funtion này có thể được gọi dưới dạng RestAPI hoặc chạy theo lịch đã sắp sẵn.

3) Visual Studio Mobile Center

Visual Studio Mobile Center bao gồm:

  • GitHub
  • Visual Studio Team Services
  • Xác thực người dùng (Identity)
  • Khả năng kết nối & lưu trữ dữ liệu với khả năng offline-sync (Table)
  • HockeyApp (cung cấp giải pháp tương tự, cho phép theo dõi crash, bug và phân tích dữ liệu sử dụng của người dùng của Microsoft)
  • Push notification
  • Xamarin
  • Beta Distribution
  • Beta Tester
  • Analytics
  • Mobile DevOps
  • Ngôn ngữ: Objective-C, Swift, Java, Xamarin, React Native, Cordova và UWP.

Categories

Recent posts