NASA's Ames Research Center

NGÀNH

Tổ chức Chính phủ

ĐỊA ĐIỂM

Mountain View, CA

SẢN PHẨM

Bitbucket

JIRA Software

Bamboo

Confluence

"Chúng tôi đang tiếp tục tạo mẫu và thực hiện các cuộc thử nghiệm môi trường ở đây. Vào năm ngoái, chúng tôi sử dụng Git để theo dõi phiên bản. Chúng tôi đã làm rất nhiều phân nhánh và sát nhập lại. Chúng tôi tạo ra một phân nhánh cho mỗi tính năng, mỗi phân nhánh cho mỗi lỗi. Chúng tôi không muốn các phân nhánh tồn tại vĩnh viễn - chúng tôi muốn chúng hợp nhất lại thành dữ liệu cơ sở chính ngay khi đoạn mã sẵn sàng. Chúng tôi cũng thực hiện rất nhiều đánh giá về các đoạn mã, ít nhất là 1 đoạn của mỗi phân nhánh".-- Michelle Eshow, kỹ sư vũ trụ, Trung tâm Nghiên cứu Ames

Trong hơn 70 năm, trung tâm nghiên cứu Ames đã hướng dẫn NASA tiến hành các nghiên cứu và phát triển mang tầm cỡ thế giới. Với 2,500 nhân viên và ngân sách hàng năm là 900 triệu đô la, Ames cung cấp cho NASA những tiến bộ trong nhiều lĩnh vực như công nghệ nano, sinh học vũ trụ cơ bản, siêu máy tính và các hệ thống bảo vệ nhiệt.

Thử thách


Trong Ames, 150 kỹ sư phần mềm và hàng không đang hợp tác với nhau trong một dự án gọi là NextGen, viết tắt của Next Generation Air Transportation System. Nhiệm vụ của nhóm là để cho hệ thống vận chuyển hàng không của quốc gia phát triển với độ an toàn, độ tin cậy và hiệu quả tối đa. Nhóm nghiên cứu tại Ames hợp tác với Cục Quản lý Hàng không Liên bang (FAA) để phát triển các công cụ tự động hóa tiên tiến cung cấp cho người kiểm soát không lưu, phi công và những người sử dụng không phận khác thông tin thời gian thực chính xác hơn về luồng giao thông, thời tiết và định tuyến của quốc gia. Sự chính xác là chìa khóa cho NextGen.

Do tính chất công việc quan trọng của nhóm NextGen, khả năng phát triển phần mềm hợp tác và an toàn là chìa khóa. Đồng thời, nhóm nghiên cứu phải tuân thủ các quy trình phát triển được NASA chấp thuận, điều này thường dẫn đến khả năng của các công cụ mà họ sử dụng.

Mặc dù Git là một ứng dụng mã nguồn mở rất có tiềm năng, các tính năng quản lý và kiểm soát được tích hợp không đủ cho môi trường của NASA. Nhóm cần một giải pháp an toàn có thể tiếp cận để quản lý các kho Git, đồng thời tuân thủ các quy trình phát triển và thử nghiệm phần mềm của NASA.

Giải pháp


Nhóm NextGen chuyển sang Atlassian. Nó đã chuyển hóa Bitbucket như là người quản lý kho Git, JIRA để theo dõi vấn đề và quản lý vấn đề, Crucible cho việc xem xét mã, FishEye để xem và tìm kiếm các phiên bản nguồn, và Confluence để làm tài liệu.

Việc tích hợp giữa JIRA và Git thông qua Bitbucket và Fisheye là tất cả trong trình duyệt, cho phép tùy chọn giữa các vấn đề và thay đổi mã. Trình xem lịch sử của Fisheye cam kết cho phép theo dõi hoạt động phát triển qua các chi nhánh. Giao diện Bitbucket cung cấp các hình ảnh chi tiết về thay đổi mã cho bất kỳ kho lưu trữ nào. Các khả năng phân phối của Bitbucket cho phép các nhà phát triển và nhà nghiên cứu đưa các đoạn mã vào các thiết bị được ủy quyền thông qua xác thực nghiêm ngặt bởi người dùng ; điều này đã cho phép các nhà phát triển có thể làm việc từ xa mà không cần kết nối với mạng.

Việc sử dụng Bitbucket của nhóm đã tăng từ 3 dự án phần mềm chính lên tới 40 dự án Bitbucket và gần 200 kho Git trong cài đặt Bitbucket. Để duy trì lịch sử phát triển phần mềm của đội, nhóm đã di chuyển lịch sử vào Atlassian để các nhà phát triển có thể sử dụng các công cụ mới để điều hướng những thay đổi lịch sử trong bộ công cụ chung.

Để di chuyển lịch sử thay đổi của các dự án trong quá khứ sang Bitbucket và JIRA (trong thập kỷ 70), nhóm đã nhờ đến chuyên gia Platinum của Atlassian , Go2Group. Do số lượng dữ liệu cũ quá lớn, Go2Group đã phát triển các công cụ tùy chỉnh để di chuyển mọi thứ trong vòng vài tháng.

Lợi ích


Kết quả là chất lượng mã tốt hơn, chu trình cộng tác nhanh hơn, và phát triển nhanh hơn cho NextGen - tất cả trong khi vẫn tuân thủ quy trình của NASA.

Trong vòng hai tháng, nhóm nghiên cứu tại Ames đã và đang hoạt động với Git và Bitbucket đã trải qua những kết quả tuyệt vời: tăng tốc độ và truy xuất các dự án phát triển, quá trình đánh giá mã đơn giản và cải thiện sự hợp tác giữa các nhà phát triển phần lớn do khả năng bình luận của họ ngay trong đoạn mã và chỉnh sửa trong trình duyệt. Trong khi đó, các nhà quản lý có được một bức tranh rõ nét về tình trạng của các dự án thông qua bảng điều khiển JIRA.