OpenStack là một trong những phần mềm đám mây mã nguồn mở được triển khai rộng rãi nhất trên thế giới. Nó được phát triển bởi cộng đồng, vì cộng đồng với hơn 200 dự án đang được đóng góp tích cực trong hệ sinh thái trải rộng trên 187 quốc gia. OpenStack được bình chọn là “Dự án PyCharm của thập kỷ”. Dưới đây, chúng ta sẽ cùng khám phá phần mềm OpenStack được phát triển từ PyCharm như thế nào.
“PyCharm có rất nhiều lợi thế khi so sánh với các trình soạn thảo văn bản về chức năng được hỗ trợ. Về phát triển Python, PyCharm chắc chắn nổi bật với các tính năng như gỡ lỗi từ xa, kiểm tra chất lượng mã và tích hợp với phần mềm của bên thứ ba như Docker và Kubernetes.” – Swapnil Kulkarni, người giữ chức vụ Active Technology Contributor trong nhóm phát triển OpenStack cho biết.
Phần mềm OpenStack
Phần mềm OpenStack khởi đầu là một hệ điều hành đám mây mã nguồn mở với sự đóng góp ban đầu của NASA và Rackspace. Nó cung cấp một nền tảng thay thế rất cần thiết cho các doanh nghiệp đang tìm kiếm một đám mây riêng mã nguồn mở. Nó bắt đầu chỉ với thành phần Compute (Nova) và Object Storage (Swift) và kể từ đó đã có được hơn 250 đối tác công nghệ tích cực với các nhà phát triển tích cực đóng góp vào các tính năng khác nhau để biến nó thành một trình phát triển khai đám mây riêng khả thi.
OpenStack hoạt động tại hơn 187 quốc gia và có cộng đồng nhà phát triển cũng như cơ sở điều hành ở mọi châu lục. Có một cơ sở người dùng đa dạng từ các cụm phát triển nhỏ với các nút một chữ số đến các cụm quy mô lớn với hàng nghìn nút, chẳng hạn như một trong những phòng thí nghiệm CERN lớn nhất.
Các dự án, sáng kiến và sự kiện khác nhau trong hệ sinh thái OpenStack được điều chỉnh bởi OpenStack Foundation. Mã nguồn được sao chép trên Github từ mã nguồn được quản lý trên kho OpenDev và mọi thứ đều được xem xét bằng Gerrit. Các quyết định kỹ thuật liên quan đến các dự án và cộng đồng được thực hiện bởi Ủy ban Kỹ thuật, được hình thành bởi một quy trình bầu cử mở rộng rãi trong cộng đồng từ tất cả những người đóng góp tích cực.
Có hơn 200 dự án đang được đóng góp tích cực vào hệ sinh thái này. Các dự án có thể được phân loại thành nhiều luồng như Máy tính, Lưu trữ, Mạng, QA, Triển khai, Bảo mật, AI / ML, v.v. Với hàng nghìn đánh giá đến mỗi tuần, cộng đồng dựa vào cơ sở hạ tầng do các công ty như Vexhost đóng góp để thực hiện liên tục các công việc tích hợp và giao hàng.
Mỗi dự án OpenStack có nhóm cốt lõi của riêng nó. Quy mô phụ thuộc vào số lượng người đóng góp và đánh giá dự án sắp tới. Nó có thể bao gồm từ một nhóm cốt lõi nhỏ khoảng 5 người, đến một nhóm 50 người trở lên cho các nhóm dự án lớn hơn. Mỗi nhóm dự án là một phần của một luồng lớn hơn với các mục tiêu cho toàn cộng đồng. Ngoài các nhóm phát triển, còn có các nhóm lợi ích đặc biệt như nhóm Nhà điều hành, những người cộng tác và tập trung vào các yêu cầu và vấn đề với việc triển khai OpenStack. Chúng tôi có một ủy ban người dùng để nhận phản hồi từ người sử dụng phần mềm OpenStack và một Ủy ban kỹ thuật hoạt động như một chất xúc tác giữa người dùng, nhà phát triển, nhà điều hành và các thành viên hội đồng quản trị Foundation.
Hơn 95% toàn bộ cơ sở mã OpenStack là bằng Python.
Python rất tuyệt vời để phát triển nhanh chóng. Việc phát triển một tính năng mới với Python nhanh hơn nhiều so với bất kỳ ngôn ngữ nào khác xung quanh… Ok, đó không phải là ngôn ngữ duy nhất, mà quan trọng là: khả năng cung cấp. OpenStack có một mô hình phát triển với nhịp độ rất nhanh và nó thường phải làm việc với các hệ thống con yêu cầu ngôn ngữ có các tính năng kỹ thuật phong phú và thư viện mạnh mẽ. Ngôn ngữ được yêu cầu là hướng đối tượng và được gõ động. Python đáp ứng những nhu cầu đó 100%. Nó cũng rõ ràng, dễ đọc và dễ hiểu, đó là lý do tại sao chúng tôi thực sự yêu thích nó.
Có nhiều luồng phát triển Python trong các nhóm OpenStack. Chúng tôi có các API cho từng mô-đun, các thuật toán lập lịch, các thành phần để cung cấp các lệnh gọi riêng đến các thành phần phần cứng khác nhau, chẳng hạn như trình giám sát và hệ thống con lưu trữ. Python cũng được sử dụng cho các yêu cầu khác nhau trong phát triển bảng điều khiển web với khuôn khổ Django.
Làm việc với một dự án lớn như OpenStack yêu cầu các điểm tích hợp ở nhiều dự án nội bộ cũng như các thành phần hỗ trợ bên ngoài. Nó yêu cầu gỡ lỗi đơn lẻ cũng như đa dự án, tích hợp với Git / Gerrit, quản lý các yêu cầu, gỡ lỗi thời gian thực, sử dụng các tích hợp như Vagrant, Docker, Ansible và Kubernetes. Đây chỉ là một số thách thức lớn. Một công cụ như PyCharm có sẵn các điểm tích hợp hoặc plugin cho các yêu cầu như vậy chắc chắn sẽ giúp các nhà phát triển vượt qua rất nhiều điều đó.
200 nhà phát triển cốt lõi tại OpenStack sử dụng PyCharm
PyCharm có rất nhiều lợi thế khi so sánh với các trình soạn thảo văn bản về chức năng được hỗ trợ. Về phát triển Python, PyCharm chắc chắn nổi bật với các tính năng như gỡ lỗi từ xa, kiểm tra chất lượng mã và tích hợp với phần mềm của bên thứ ba như Docker và Kubernetes. Các tính năng được sử dụng nổi bật nhất với PyCharm trong nhóm của tôi là gỡ lỗi từ xa và tích hợp Docker.
PyCharm hoạt động rất tốt cho hầu hết người dùng. Nó cung cấp hỗ trợ cho việc tuân thủ kiểu mã trên toàn dự án và kiểm soát phiên bản. Nhiều nhà phát triển cũng nhận thấy các bản sửa lỗi nhanh khá hữu ích và tiết kiệm rất nhiều thời gian khi sửa các lỗi nhỏ và định dạng lại mã. Ngoài ra, hỗ trợ gỡ lỗi giúp các nhóm phát triển xác minh sự phát triển tính năng dễ dàng hơn. Bạn cũng có thể sử dụng các plugin Gerrit để quản lý các đánh giá mã của mình từ chính IDE.
Swapnil Kulkarni chia sẻ: “Tôi là người đóng góp cho nhiều dự án container hóa trong OpenStack, để bắt đầu, việc có một IDE với hỗ trợ tích hợp Docker thực sự giúp tôi dễ dàng hơn rất nhiều. Nó cũng giúp tôi thực hiện một số thử nghiệm bổ sung với các container cho các dự án chưa được container…
Tôi luôn khuyến khích bạn bè hoặc đồng nghiệp của mình không chỉ sử dụng PyCharm mà cả bộ sản phẩm JetBrains theo yêu cầu của họ. Như tôi đã đề cập trước đó, cho dù bạn là người mới hay nhà phát triển dày dạn kinh nghiệm thì các tính năng như trình chỉnh sửa mã thông minh, điều hướng mã thông minh, hỗ trợ tích hợp với các công cụ hỗ trợ như Git, Docker, v.v. sẽ hữu ích. Các nhà phát triển có một công cụ đáng tin cậy cung cấp cho họ sự hỗ trợ cần thiết để thực hiện các hoạt động của mình và họ có thể tập trung vào sự phát triển của mình.”
Nguồn: Jetbrains