Categories
Software Architecture

Bắt Đầu Với Azure 1: Giới Thiệu Azure

Azure có thể làm gì cho bạn?

Cho dù bạn mới bắt đầu, viết mã để giải trí hay là một nhà phát triển chuyên nghiệp, việc phát triển với Azure sẽ đặt công nghệ đám mây mới nhất và các công cụ dành cho nhà phát triển tốt nhất trong tầm tay bạn và giúp bạn dễ dàng xây dựng đám mây bằng ngôn ngữ ưa thích của mình.

Với Azure, bạn có thể hoàn thành công việc nhanh hơn, nâng các kỹ năng của mình lên một tầm cao mới, tưởng tượng và xây dựng các ứng dụng ngày mai ngay hôm nay.

Hãy đi sâu vào và xem bạn có thể làm gì.

Nơi lưu trữ ứng dụng của bạn?

Azure cung cấp các dịch vụ được thiết kế để cung cấp những gì bạn cần để cung cấp và mở rộng quy mô mọi ứng dụng. Khi bạn sử dụng các dịch vụ Azure để chạy ứng dụng của mình, bạn sẽ có được khả năng mở rộng, tính sẵn sàng cao, nền tảng được quản lý đầy đủ và các dịch vụ cơ sở dữ liệu. Azure cũng cung cấp các tùy chọn sau để chạy ứng dụng của bạn.

Dịch vụ ứng dụng Azure (Azure App Service)

Bạn có thể lưu trữ các ứng dụng của mình trong một nền tảng ứng dụng được quản lý đầy đủ được tất cả các nhà phát triển yêu thích: Dịch vụ ứng dụng Azure. Azure App Service là một tập hợp các dịch vụ lưu trữ và điều phối chia sẻ các tính năng và khả năng. Ví dụ, tất cả các dịch vụ trong Dịch vụ ứng dụng đều có khả năng bảo mật ứng dụng bằng Azure Active Directory và có thể sử dụng các miền tùy chỉnh.

Dịch vụ ứng dụng Azure bao gồm:

Dịch vụ Ứng dụng web (Web Apps): Là một trong những dịch vụ Azure được sử dụng rộng rãi nhất, Dịch vụ Ứng dụng web có thể lưu trữ các ứng dụng web hoặc API của bạn. Ứng dụng web về cơ bản là một bản tóm tắt của máy chủ web, chẳng hạn như Dịch vụ Thông tin Internet /Internet Information Services (IIS) hoặc Tomcat, được sử dụng để lưu trữ các ứng dụng hướng HTTP. Dịch vụ Ứng dụng Web có thể lưu trữ các ứng dụng được viết bằng .NET, Node.js, Python, Java hoặc Go và bạn có thể sử dụng các tiện ích mở rộng có sẵn để chạy nhiều ngôn ngữ hơn nữa.

Tạo ứng dụng web ASP.NET Core trong Azure

Dịch vụ Ứng dụng dành cho thiết bị di động (Mobile Apps): Cung cấp phần mềm hỗ trợ (back end) cho các ứng dụng di động của bạn với Dịch vụ Ứng dụng dành cho thiết bị di động. Khi bạn lưu trữ một API trong Dịch vụ Ứng dụng dành cho thiết bị di động , các ứng dụng di động của bạn sẽ kết nối với nó thông qua bộ phát triển phần mềm ứng dụng khách đa nền tảng /cross-platform client software development kit (SDK). Tính năng này có sẵn cho iOS, Android và Windows. Dịch vụ Ứng dụng dành cho thiết bị di động cung cấp các tính năng như đồng bộ hóa ngoại tuyến và thông báo đẩy (push notifications) để giúp bạn tạo trải nghiệm di động hiện đại, hiệu quả và an toàn.

Các tính năng của Dịch vụ ứng dụng Azure

Azure App Service là một trong những dịch vụ chính trong Azure mà bạn có thể sử dụng để lưu trữ các ứng dụng của mình được tạo bằng các khuôn khổ (frameworks) phổ biến—.NET, .NET Core, Node.js, Java, PHP, Ruby hoặc Python — trong container hoặc chạy trên bất kỳ hệ điều hành (OS) nào. Azure App Service cũng bổ sung sức mạnh của Azure cho các ứng dụng của bạn, bao gồm bảo mật, cân bằng tải, tự động mở rộng quy mô và quản lý tự động.

Mỗi dịch vụ này mang đến bàn ăn những khả năng riêng biệt, nhưng tất cả chúng đều có chung một số tính năng:

Mở rộng quy mô (Scaling)

Dịch vụ ứng dụng Azure chạy trên các gói Dịch vụ ứng dụng (App Service plans), là các gói trừu tượng từ máy ảo (VM). Một hoặc nhiều máy ảo chạy Dịch vụ ứng dụng Azure của bạn, nhưng vì Azure quản lý chúng nên bạn không cần biết máy nào. Tuy nhiên, bạn có thể mở rộng quy mô tài nguyên chạy Dịch vụ ứng dụng Azure của mình.

Bạn có thể chọn mức giá cao hơn (từ miễn phí đến cao cấp) hoặc tăng số lượng phiên bản ứng dụng đang chạy. Thậm chí, có thể có Dịch vụ ứng dụng Azure tự động mở rộng quy mô số lượng phiên bản cho bạn, dựa trên lịch biểu hoặc số liệu, chẳng hạn như CPU, bộ nhớ hoặc độ dài hàng đợi HTTP.

Vị trí triển khai (Deployment slots)

Sau khi triển khai phiên bản mới của ứng dụng vào vị trí triển khai, bạn có thể kiểm tra xem nó có hoạt động như mong đợi hay không và sau đó chuyển nó vào vị trí sản xuất (production slot) của bạn.

Bằng cách thiết lập môi trường dàn dựng (staging environments) trong Azure App Service, bạn có thể định tuyến phần trăm lưu lượng truy cập từ ứng dụng sản xuất của mình đến vị trí triển khai. Ví dụ: nếu bạn chuyển 10 phần trăm người dùng sang phiên bản mới của ứng dụng trong vùng triển khai, bạn có thể xem liệu các tính năng mới có hoạt động như mong đợi hay không và liệu người dùng có đang sử dụng chúng hay không.

Khi bạn hài lòng với cách phiên bản mới của ứng dụng của bạn đang hoạt động trong vùng triển khai, bạn có thể thực hiện “hoán đổi”, trao đổi ứng dụng trong vùng triển khai với ứng dụng đó trong vùng sản xuất của bạn. Bạn cũng có thể hoán đổi từ vị trí phát triển sang vị trí dàn dựng, sau đó đến vị trí sản xuất. Trước khi thực hiện việc này, thao tác hoán đổi xác minh rằng phiên bản mới của trang web của bạn đã được khởi động và sẵn sàng hoạt động. Khi điều này đã được xác nhận, hoạt động hoán đổi sẽ chuyển các vị trí và người dùng của bạn giờ đây sẽ thấy phiên bản mới của ứng dụng — mà không có thời gian chết. Bạn cũng có thể hoán đổi và hoàn nguyên việc triển khai phiên bản mới.

Bạn sử dụng các vị trí triển khai trong các môi trường như phát triển, thử nghiệm hoặc sản xuất. Bạn không sử dụng các vị trí triển khai làm môi trường vì tất cả chúng đều nằm trong cùng một gói Dịch vụ ứng dụng.

Chúng phải được tách biệt để bảo mật, mở rộng quy mô, thanh toán và hiệu suất. Bạn có thể hoán đổi các vị trí triển khai theo cách thủ công thông qua giao diện dòng lệnh Azure (CLI) và API quản lý Azure. Điều này cho phép các công cụ DevOps thực hiện các hoạt động hoán đổi trong quá trình phát hành.

Triển khai liên tục (Continuous deployment)

Để xuất bản ứng dụng của bạn lên Dịch vụ ứng dụng, bạn có thể sử dụng các dịch vụ như Jenkins và Octopus Deploy. Bạn cũng có thể sử dụng tính năng triển khai liên tục (CD) trong Dịch vụ ứng dụng. Điều này giúp bạn có thể tạo đường dẫn xây dựng-thử nghiệm-phát hành ngay trong Dịch vụ ứng dụng.

Quy trình thực hiện như sau:

  1. Truy xuất mã nguồn mới nhất từ kho lưu trữ mà bạn chỉ định
  2. Xây dựng mã theo mẫu mà bạn chọn (ASP.NET, Node.js, Java, v.v.)
  3. Triển khai ứng dụng trong môi trường dàn dựng và thử nghiệm tải (load-tests) nó
  4. Triển khai ứng dụng vào phiên bản sản xuất sau khi được phê duyệt (bạn có thể cho biết bạn có muốn sử dụng vị trí triển khai hay không)

Kết nối với các tài nguyên tại chỗ (Connect to on-premises resources)

Bạn có thể kết nối các tài nguyên bên ngoài như kho dữ liệu với Dịch vụ ứng dụng của mình. Những tài nguyên này không cần phải được đặt trong Azure; chúng có thể ở bất cứ đâu, chẳng hạn như tại chỗ hoặc trong trung tâm dữ liệu của riêng bạn. Tùy thuộc vào yêu cầu của bạn, bạn có thể kết nối với các dịch vụ tại chỗ thông qua nhiều cơ chế, chẳng hạn như Azure Hybrid Connections, Azure Virtual NetworksAzure ExpressRoute.

Miền tùy chỉnh và chứng chỉ Dịch vụ ứng dụng Azure (Custom domains and Azure App Service certificates)

Khi bạn tạo một ứng dụng trong Dịch vụ ứng dụng Azure, nó sẽ hiển thị một URL — ví dụ: https://<tên tùy chỉnh của bạn>.azurewebsites.net. Rất có thể, bạn sẽ muốn sử dụng miền tùy chỉnh của riêng mình, bạn có thể thực hiện bằng cách ánh xạ tên miền đó với Dịch vụ ứng dụng. Đây là cách để làm điều đó.

Ngoài ra, bạn có thể đảm bảo rằng ứng dụng của mình được phân phát qua HTTPS bằng cách sử dụng chứng chỉ SSL / TLS. Chỉ cần mang theo chứng chỉ của riêng bạn, mua một chứng chỉ trực tiếp từ cổng Azure hoặc tạo Chứng chỉ được quản lý dịch vụ ứng dụng miễn phí . Khi bạn mua chứng chỉ SSL từ cổng Azure, bạn mua chứng chỉ Dịch vụ ứng dụng Azure. Bạn có thể định cấu hình điều này để được sử dụng bởi các ràng buộc miền tùy chỉnh của bạn.

Chứng chỉ Quản lý Dịch vụ Ứng dụng là miễn phí, do DigiCert cấp và cung cấp tùy chọn để bảo mật các ứng dụng web của bạn được lưu trữ bằng miền phụ tùy chỉnh. Chúng cũng được quản lý bởi Dịch vụ ứng dụng và được gia hạn tự động.

Mua và định cấu hình chứng chỉ SSL trong bộ hướng dẫn này

Môi trường dịch vụ ứng dụng (App Service Environment)

Trong một ứng dụng web nhiều tầng, bạn thường có cơ sở dữ liệu hoặc các dịch vụ được ứng dụng của bạn sử dụng trong Ứng dụng web. Lý tưởng nhất là bạn muốn các dịch vụ này chỉ được hiển thị với ứng dụng chứ không phải internet. Tuy nhiên, cho rằng nó cung cấp điểm truy cập cho người dùng của bạn, bản thân ứng dụng thường trực tiếp sử dụng internet.

Để cách ly các dịch vụ hỗ trợ này với internet, bạn có thể sử dụng Azure Virtual Network. Dịch vụ này kết hợp các dịch vụ hỗ trợ của bạn và kết nối chúng với ứng dụng của bạn trong Ứng dụng web để các dịch vụ hỗ trợ chỉ hiển thị với ứng dụng chứ không phải internet.

Bài viết này mô tả chi tiết hơn về dịch vụ này và hướng dẫn bạn cách sử dụng nó.

Đôi khi, bạn muốn kiểm soát nhiều hơn nữa. Có thể bạn muốn ứng dụng của mình được bao bọc trong một mạng ảo để kiểm soát quyền truy cập vào nó.

Có lẽ bạn muốn nó được gọi bởi một ứng dụng khác trong Ứng dụng web và trở thành một phần của back end của bạn. Đối với trường hợp này, bạn có thể sử dụng Môi trường dịch vụ ứng dụng Azure. Điều này mang lại cho bạn một quy mô rất cao và cho phép bạn kiểm soát sự cô lập và truy cập mạng.

Snapshot Debugger cho .NET

Việc gỡ lỗi ứng dụng có thể khó khăn, đặc biệt nếu ứng dụng đang chạy trong phiên bản sản xuất. Với tính năng Trình gỡ lỗi Ảnh chụp nhanh của Thông tin chi tiết về ứng dụng /Application Insights Snapshot Debugger của Azure Monitor, bạn có thể chụp nhanh các ứng dụng đang sản xuất của mình khi mã mà bạn quan tâm đến thực thi.

Trình gỡ lỗi ảnh chụp nhanh cho phép bạn xem chính xác điều gì đã xảy ra mà không ảnh hưởng đến lưu lượng truy cập của ứng dụng sản xuất của bạn. Snapshot Debugger có thể giúp bạn giảm đáng kể thời gian cần thiết để giải quyết các vấn đề xảy ra trong môi trường sản xuất. Ngoài ra, bạn có thể sử dụng Visual Studio để đặt các điểm chụp nhanh để gỡ lỗi từng bước. Bạn có thể xem kết quả trong cổng Azure hoặc trong Visual Studio.

Bản vá hệ điều hành và .NET Framework tự động

Bởi vì bạn đang sử dụng một nền tảng được quản lý hoàn toàn, bạn hoàn toàn không quản lý cơ sở hạ tầng của riêng mình, nhưng bạn được hưởng lợi từ việc vá hệ điều hành và khuôn khổ tự động.

Máy ảo (Virtual machines)

Lưu trữ ứng dụng của bạn trong một máy ảo trong Azure Virtual Machines cung cấp cho bạn nhiều quyền kiểm soát đối với cách bạn lưu trữ ứng dụng của mình. Tuy nhiên, bạn có trách nhiệm duy trì môi trường, bao gồm vá hệ điều hành và cập nhật các chương trình chống vi-rút.

Bạn có thể sử dụng máy ảo để kiểm tra phiên bản xem trước mới nhất của Visual Studio mà không làm cho máy phát triển của bạn bị “bẩn”.

Azure DevTest Labs và Azure Lab Services cung cấp khả năng thiết lập môi trường lab trong Azure. Các dịch vụ này cho phép nhóm nhà phát triển dễ dàng quản lý tài nguyên và chi phí máy ảo của nhà phát triển trên đám mây.

Azure DevTest Labs cho phép bạn thiết lập môi trường cho nhóm của mình. Người dùng kết nối với máy ảo trong phòng thí nghiệm và sử dụng chúng cho công việc hàng ngày và các dự án ngắn hạn của họ. Điều này cho phép quản trị viên phòng thí nghiệm phân tích chi phí và việc sử dụng, cũng như thiết lập các chính sách để tối ưu hóa chi phí của nhóm.

Azure Lab Services cho phép bạn tạo các loại phòng thí nghiệm được quản lý. Dịch vụ xử lý tất cả việc quản lý cơ sở hạ tầng cho phòng thí nghiệm, từ quay vòng máy ảo đến xử lý lỗi và mở rộng cơ sở hạ tầng.

Leave a Reply

Your email address will not be published. Required fields are marked *