Google giới thiệu phiên bản dùng thử của phần mềm xây dựng và kiểm thử Bazel

Ngoc Huynh

Bazel là một hệ thống kiểm thử và xây dựng phần mềm nội bộ của Google và hiện tại đã trở thành mã nguồn mở với phiên bản dùng thử mà Google vừa phát hành.

Công cụ mã nguồn mở mới nhất của Google có tên gọi là Bazel, tự động xây dựng và kiểm thử phần mềm, giống với Ant hay Maven.

Nhưng hiện tại, Bazel chỉ mới là phiên bản dùng thử, nhưng vượt trội hơn các công cụ hiện có của Google. Bazel còn là một ngôn ngữ lập trình độc lập (language-agnostic), với khả năng co giãn cao, và có khả năng tạo ra các bản build (chuỗi phiên bản cấu tạo) khá chính xác trên cả máy móc của lập trình viên và hệ thống build cluster.

Bazel được viết bằng Java và trở thành mã nguồn mở theo  giấy phép Apache – một giấy phép phần mềm tự do của Quỹ Phần mềm Apache, và theo trang GitHub thì Bazel được sử dụng để xây dựng phần lớn các phần mềm của Google.” Giống như Kubernetes, đây là một công cụ nội bộ mà Google đã phát hành nhằm mục đích tìm kiếm sự phát triển và các nỗ lực cộng đồng – mà không cần phải từ bỏ lợi thế chiến lược quan trọng dựa trên vai trò của Google.

Giống như nhiều các công cụ xây dựng khác, Bazel có một tập hợp các giả định “khăng khăng” (opinionated assumption) về cách mà các đề án được xây dựng. Các đề án của Bazel được mô tả là sử dụng một ngôn ngữ tùy chỉnh có tên gọi là BUILD, ngôn ngữ này là một phiên bản rút gọn đến mức đơn giản của Python. Tuy nhiên, bộ tính năng rút gọn của BUILD giúp Bazel bảo đảm các bản build có tính khả lặp (khả năng lặp lại); ví dụ như: trong một đoạn script (kịch bản lập trình) của BUILD chỉ có I/O (Input/Output: Nhập xuất) được thiết kế dành cho đề án.

Một tính năng quan trọng khác của Bazel là khả năng hỗ trợ nhiều ngôn ngữ. Các file dạng binary (nhị phân), file library, và file test dành cho các ngôn ngữ khác nhau được giữ riêng rẽ thông qua quy tắc của các không gian tên (namespace) – chẳng hạn như cc_binary dành cho các file binary của C++, và java_library dành cho các file  library của Java. Các hoạt động xây dựng cũng được lưu trữ, để làm tăng tốc quá trình xây dựng và giúp Bazel có khả năng khai thác song song.

Hầu hết các lợi ích của Bazel sẽ được thấy cùng với các ngôn ngữ đã được biên dịch (compiled language) như Java, C++, và  Objective-C, tất cả các ngôn ngữ này hiện nay đều được sự hỗ trợ từ Bazel. Sự hỗ trợ dành cho ngôn ngữ Go có trong lộ trình của Bazel sẽ thực hiện vào cuối năm nay, nhưng sẽ không có sự hỗ trợ dành cho Python hay PHP.

Bên cạnh đó cũng chưa rõ ràng về việc khi nào hay làm thế nào mà Bazel sẽ được phát triển thành một công cụ xây dựng mang tính toàn cầu dành cho tất cả các sản phẩm của Google. Ví dụ như: hiện tại Bazel hỗ trợ ngôn ngữ Java, nên điều này có nghĩa là Bazel cũng sẽ hỗ trợ Android. Tuy nhiên, việc thay thế công cụ Grade mặc định dành cho Android sẽ phải cần sự ủng hộ của các lập trình viên Android.

Tương tự Kubernetes, Bazel cũng là một công cụ dành cho nội bộ của Google, điều này hàm ý rằng nó phù hợp cho tất cả các công ty lớn, và như vậy nó có thể đáp ứng các nhu cầu của hầu hết những người khác. Có khả năng Google sẽ thất bại rất ít về mặt chiến lược bởi việc phát hành miễn phí Bazel kể từ khi hãng này cạnh tranh công nghệ đám mây dựa vào tính quy mô và sự thuận tiện, chứ không phải chỉ là công nghệ.

Một sự thiếu sót lớn của Bazel đó là: Windows không được hỗ trợ. Hiện tại Bazel chỉ hỗ trợ Ubuntu Linux và Mac OS X, và Google cũng đang cố gắng cải tiến Bazel để có thể hỗ trợ Windows, nhưng hiện tại thì Bazel cũng đã có sự hỗ trợ dành cho nhiều nền tảng lớn khác.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.infoworld.com/