Nguồn mở và nguồn gốc đám mây
Có thể nói, cloud native và open source có mối quan hệ cộng sinh. Các ứng dụng gốc đám mây được xây dựng dựa trên công nghệ nguồn mở khi có thể, tập trung vào mô-đun kiến trúc và cho phép chúng độc lập với nền tảng. “Cloud gốc” có nghĩa là tính linh hoạt của các mục tiêu triển khai. Microsoft đầu tư vào phần mềm mã nguồn mở theo nhiều cách để giúp người dùng Azure xây dựng các giải pháp tốt nhất có thể. Có một số lĩnh vực đầu tư:
- Đảm bảo các công nghệ nguồn mở hoạt động tốt trên Azure
- Cộng đồng nguồn mở (Apache, Linux, .NET Foundation)
- Các công cụ và tích hợp để trợ giúp triển khai Azure
- DAPR – Thời gian chạy ứng dụng phân tán (Distributed Application Runtime), một khuôn khổ nhẹ để xây dựng các ứng dụng phân tán hiện đại
Với các cam kết bổ sung về việc hỗ trợ chức năng nguồn mở trong Azure cũng như sự ra đời của các thời gian chạy hiện đại hơn cho các ứng dụng dựa trên dịch vụ như DAPR, công nghệ nguồn mở là nền tảng thiết yếu cho các cá nhân và tổ chức đang tìm cách xây dựng các giải pháp chạy trên Azure.
Tổng quan về mã nguồn mở trên Azure
Nguồn mở đã thay đổi cơ bản sự phát triển phần mềm. Với sự gia tăng áp dụng mã nguồn mở, nó phải chạy trơn tru trên Azure.
Hơn một nửa số lõi trên Azure đang chạy Linux và Microsoft đã đầu tư rất nhiều vào việc nâng cao hiệu suất, độ tin cậy, bảo mật và khả năng phục hồi của nó. Azure cung cấp cho bạn cơ sở dữ liệu phần mềm nguồn mở được quản lý cấp doanh nghiệp như MySQL và MariaDB, hệ điều hành Linux, phân tích và dịch vụ học máy để đưa AI vào ứng dụng của bạn.
Những đóng góp của Microsoft trải dài trên một số lĩnh vực: Linux, hệ sinh thái Kubernetes với các dự án như DAPR hoặc Open Service Mesh, ngôn ngữ lập trình, khuôn khổ web và công nghệ như .NET, Node.js, Python, PHP, v.v.
Các dự án đám mây mã nguồn mở
Ba dự án mã nguồn mở, định hướng đám mây mà Microsoft tham gia như sau:
- Kubernetes: Microsoft hợp tác chặt chẽ với dự án Kubernetes, chia sẻ kiến thức, đóng góp và định hình tương lai của dự án. Microsoft hiện là nhà đóng góp hàng đầu của công ty và đang nỗ lực để làm cho Kubernetes thân thiện hơn với doanh nghiệp và dễ tiếp cận hơn.
- Java: Microsoft tham gia và đóng góp trở lại cho cộng đồng Java. Microsoft’s Build of OpenJDK là một bản phân phối hỗ trợ dài hạn (LTS) của OpenJDK là mã nguồn mở và miễn phí cho bất kỳ ai có thể triển khai ở bất kỳ đâu. Điều này cho phép bạn tập trung vào việc phát triển các ứng dụng Java và mang lại giá trị mà không cần quan tâm đến các yêu cầu cấp phép hoặc chi phí.
- .NET Framework: Nó là một nền tảng phát triển đa nền tảng và mã nguồn mở. Bạn có thể phát triển nhiều loại ứng dụng với .NET, trên tất cả các hệ điều hành và bất kỳ thiết bị nào. Bạn cũng có thể chọn từ các ngôn ngữ hướng đối tượng như Visual Basic và C# hoặc bao gồm lập trình chức năng với F#. Ngoài ra còn có hỗ trợ được quản lý cho C++. Với .NET, bạn có thể xây dựng một lần và chạy ở mọi nơi. Hệ sinh thái mã nguồn mở .NET được hỗ trợ trực tiếp bởi .NET Foundation, một tổ chức phi lợi nhuận chuyên phát triển một cộng đồng sáng tạo và thân thiện với thương mại xung quanh .NET.
Tính linh hoạt của các lựa chọn cho các công cụ, ngôn ngữ và tích hợp
Azure cho phép bạn xây dựng và chạy ứng dụng của mình theo các điều kiện của bạn, trong bất kỳ môi trường nào, với hỗ trợ tích hợp cho các công cụ, ngôn ngữ và khuôn khổ nguồn mở. Bạn có thể phát triển ứng dụng của mình bằng cách sử dụng các công cụ, ngôn ngữ yêu thích và tích hợp của bên thứ ba. Ngoài ra, bạn có thể triển khai các vùng chứa dựa trên Docker chạy bất kỳ ứng dụng nào tới Dịch vụ ứng dụng Azure, tập lệnh PowerShell tới Hàm Azure, các trang web tĩnh và nhiều ứng dụng khác.
Với AKS, bạn có thể chạy hầu như bất kỳ mã nào bằng cách cài đặt bất kỳ thư viện hoặc thời gian chạy nào. Thậm chí nhiều dịch vụ được quản lý như Azure Functions cung cấp hỗ trợ cho nhiều loại ngôn ngữ lập trình.
Ngoài ra còn có các tích hợp trong Visual Studio và Visual Studio Code cho phép bạn triển khai, kiểm tra và chạy các ứng dụng trên đám mây.
Thời gian chạy ứng dụng được phân phối: DAPR
Các dịch vụ vi mô không trạng thái (Stateless) là một hình mẫu phổ biến để cấu trúc các ứng dụng gốc đám mây hiện đại và DAPR có thể giúp bạn đẩy nhanh quá trình phát triển.
DAPR là một dự án mã nguồn mở có mục tiêu là đơn giản hóa việc viết microservices bằng cách cung cấp các khối xây dựng giúp loại bỏ những thách thức phổ biến của các ứng dụng phân tán như lệnh gọi dịch vụ đến dịch vụ, yêu cầu HTTP và gRPC, quản lý trạng thái và bí mật cũng như các ràng buộc đầu vào và đầu ra . Nó cung cấp hỗ trợ cho nhiều ngôn ngữ lập trình, chẳng hạn như .NET, Java, Python hoặc Go. Các ứng dụng DAPR có thể được chạy tại chỗ, trong bất kỳ đám mây nào hoặc trên thiết bị biên mà không cần phải thay đổi dòng mã từ dòng này sang dòng mã khác.
DAPR đơn giản hóa các ứng dụng phân tán và hoạt động như một chất keo kết dính ứng dụng với các khả năng của cơ sở hạ tầng.