Đưa ứng dụng ASP.NET của bạn lên Google Cloud Platform.

Google Cloud Platform được biết đến với các dịch vụ như BigData, Machine Learning và các dịch vụ hạ tầng toàn cầu được phát triển bởi Google. Nhưng bạn có thể chưa biết Google Cloud Platform đã bắt đầu hỗ trợ ASP.NET, một nền tảng hỗ trợ phát triển ứng dụng web mã nguồn mở của Microsoft.

Windows Server trên Google Compute Engine

Để chạy được ASP.NET 4.x bạn cần 1 Windows Server chạy IIS và ASP.NET. Để làm điều này, Google hỗ trợ tạo mới Google Computer Engine VMs từ cả Windows Server Data Center 2008R2 và 2012R2.

Thứ nhất bạn có file image (IMG) của Windows Server, chỉ mất vài phút để tạo và khởi động, bạn có thể khởi tạo tài khoản user, mở cổng với Firewall, bạn nên định nghĩa sử dụng ASP.NET image trên the Cloud Launcher.

Nếu các phần mềm được bao gồm trong IIS và ASP.NET, sử dụng RDP để kết nối remote đến máy và cài đặt những gì bạn muốn:


Không chỉ tạo Windows Server cho bạn, nó còn cài đặt cả SQL Server 2008 Express, IIS, ASP.NET 4.5.2 và mở các cổng để cho phép HTTP, HTTPS, WebDeploy và RDP

SQL Server trên Compute Engine

SQL Server Express nằm trong gói của ASP.NET trên Cloud Launcher rất có ích cho việc phát triển nhưng khi chúng lên production bạn sẽ muốn có 1 phiên bản production cho SQL Server. Vì thế Google đã hỗ trợ version SQL Server trên Google Computer Engine.

  • SQL Server Standard (2012, 2014, 2016)
  • SQL Server Web (2012, 2014, 2016)
  • SQL Server Enterprise sẽ được cập nhật sớm (2012, 2014, 2016)

Ba phiên bản của SQL Server đã có mặt trên Google Compute Engine bên cạnh Windows Server. Đây là lần đầu tiên Google sử dụng các phiên bản này của SQL Server, vì thế họ rất vui khi lắng nghe ý kiến người dùng!

Thư viện Google API trên NuGet

Với Windows Server, ASP.NET và SQL Server, bạn đã có tất cả mọi thứ để đưa ứng dụng ASP.NET 4.x và các Service của mình lên Google Cloud Platform.

Hơn nữa, Google đã nhận được các phản hồi rất tích cực từ các khách hàng của họ về việc cung cấp hơn 100 Google APIs, tất cả chúng đều có sẵn trên nhiều nền tảng và ngôn ngữ, bao gồm cả .NET, trên Nuget. Hơn thế, họ đã làm việc rất cố gắng để đảm bảo các API này dễ hiểu cho các .NET Developer. Cuối cùng, Google muốn thông báo về việc quản lý tài nguyên giống VMs và lưu trữ. Điều đó được thể hiện trong công cụ Google Cloud Tools for Visual Studio tại  in the Visual Studio Gallery.

Hơn nữa để tăng tính hữu dụng của các thư viện này, Google đã tạo ra các thư viện wrapper cho mỗi Cloud API cho từng ngôn ngữ. Các thư viện này đang ở bản thử nghiệp và bao gồm các wrapper cho Google BigQueryGoogle Cloud StorageGoogle Cloud Pub/Sub vả Google Cloud Datastore, và nhiều thứ khác. Google StackDriver Logging cũng hỗ trợ thư viện log4net, cung cấp cách đơn giản cho việc theo dõi nhật ký ứng dụng của bạn. Các thư viện này đã có sẵn trên nuget cũng như GitHub, nơi bạn có thể tạo bug, tạo các yêu cầu tính năng mới.

Cloud Tools cho Visual Studio

Một trong các lý do chính để Google tạo tất cả các thư viện đó lên Nuget là bạn có thể đưa chúng vào dự án dễ dàng thông qua Visual Stdudio. Tuy nhiên bạn biết rằng bạn muốn nhiều hơn thế với dự án cloud hơn là viết code, bạn cũng muốn quản lý tài nguyên như VM và các kho lưu trữ. Google cũng cung cấp extension Google Cloud Tools for Visual Studio, bạn có thể cài đặt tại Visual Studio Gallery.

Bạn cũng có thể triển khai ứng dụng ASP.NET 4.x lên Google Compute Engine thông qua Visual Studio với chức năng Publish có sẵn nhưng với extension Cloud Tools, bạn sẽ dễ dàng quản lý các thông tin đăng nhập được liên kết với VM và tạo ra các cài đặt cho publish bên trong Visual Studio

Chức năng này đã có sẵn bên trong Google Cloud Explore, nó cho phép bạn duyệt và quản lý Compute Engine của bạn, Cloud Storage và Google Cloud SQL

Đây mới chỉ là khởi đầu. Google đã có rất nhiều các kế hoạch để tích hợp Cloud Platform sâu hơn với Visual Studio. Nếu bạn có các gợi ý, báo lỗi hoặc cần sự trợ giúp, vui lòng truy cập Cloud Tools cho Visual Studio được chia sẻ trên GitHub


Cloud Tools cho PowerShell

Visual Studio là một cách tuyệt vời để tương tác với các tài nguyên cloud của bạn nhưng nó không tối ưu cho việc thực thi tự động. Đó là nguyên nhân tại sao Google cung cấp công cụ mở rộng cho PowerShell có tên Cloud Tools cho PowerShell. Với Google Cloud PowerShell, bạn có thể quản lý Compute Engine và Cloud Storage mạnh mẽ hơn.


Google đã khởi động việc phát triển công cụ này cho 2 sản phẩm Cloud Platform phổ biến nhất là Compute Engine và Cloud Storage, nhưng họ sẽ nhanh chóng hỗ trợ các sản phẩm khác nữa. Nếu bạn đã có các gợi ý về những gì Google nên làm tiếp theo, thông báo lỗi cho Google bạn có thể truy cập Google Cloud PowerShell cmdlets được phát triển trên GitHub.

Chuyển đổi từ VMs (Virtual Merchine) có sẵn

Compute Engine hỗ trợ Windows Server và SQL Server, giúp việc tích hợp với Visual Studio và PowerShell dễ dàng hơn, giúp đưa ứng dụng .NET của bạn lên Google Cloud Platform. Nhưng bạn cần thêm gì nữa? Nếu bạn không muốn cài đặt 1 VM mới, cấu hình cúng mà muốn chuyển đổi từ một VM có sẵn? Bạn chỉ cần đưa toàn bộ máy ảo này lên và chạy không có gì khác biệt cả.

CloudEndure mô phỏng Windows và Linux, nên toàn bộ ứng dụng của bạn, dữ liệu và các cấu hình của bạn sẽ được chuyển đổi trong quá trình migration. Để tìm hiểu thêm về các tuỳ chọn migration cho Windows, hoặc giúp đỡ về việc thực hiện migration vui lòng truy cập Google Cloud Platform.

Sẽ sớm có: hỗ trợ cho ASP.NET Core

Nhiều nhà phát triển đang khám phá ASP.NET Core cho phiên bản kế tiếp. Bởi vì ASP.NET Core hỗ trợ cả Linux, bạn có thể đóng gói nó với Docker và triển khai thông qua App Engine Flexible hoặc Kubernets chạy trên Google Container Engine. ASP.NET tuy không hỗ trợ đầy đủ cho tất cả các nền tảng này nhưng nó cho bạn sự trải nghiệm đầu tiên, chúng ta cũng tất cả thư viện Google API Client cho .NET Core. Ví dụ chúng ta có code ASP.NET Core có thể lấy ảnh JPEG từ Google Cloud Storage:
 

public IActionResult Index() {

  var service = new StorageService(new BaseClientService.Initializer() {

    HttpClientInitializer =

      GoogleCredential.GetApplicationDefaultAsync().Result

  });



  // find all of the public JPGs in the project buckets

  var request = service.Objects.List("YOUR-GCS-BUCKET");

  request.Projection = ObjectsResource.ListRequest.ProjectionEnum.Full;

  var items = request.Execute().Items;

  var jpgs = items.Where(o => o.Name.EndsWith(".jpg") &&

                         o.Acl.Any(o2 => o2.Entity == "allUsers"));



  // pick a random jpg to show

  ViewData["jpg"] =

    jpgs.ElementAt((new Random()).Next(0, jpgs.Count())).MediaLink;

  return View();

}

 

Chúng ta đang làm việc để kích hoạt việc triển khai ứng dụng ASP.NET Core trên Linux, hãy tham khảo đoạn code mẫu chạy .NET trên Cloud Platform.

Chúng ta mới đang khởi đầu

Đầu tiên, chúng ta nghiêm túc về việc hỗ trợ Windows và .NET trên Google Cloud Platform. Thứ hai, chúng ta đang mới bắt đầu. Chúng ta có một kế hoạch lớn về việc hỗ trợ Windows/.NET trên mọi mặt và Google luôn mong muốn nhận được các góp ý và báo lỗi từ các nhà phát triển.

Google sẽ ra mắt trang .NET trên Google Cloud Platform liệt kê tất cả những gì mà 1 nhà phát triển cần biết để triển khai .NET  trên Cloud Platform. Nếu có vấn đề gì bạn không tìm thấy hãy note lại vào Google Cloud Developers group.


Trích nguồn từ: (cloudplatform.googleblog.com)

Lên trên