Industry: Software Development
JetBrains products used: PyCharm
Organization Size: 500+
Country: International
OpenStack is one of the most widely deployed open source cloud software in the world. It is developed by the community, for the community with more than 200 projects being actively contributed to in the ecosystem spread over 187 countries. OpenStack was voted the ‘PyCharm Project of the Decade’.
“PyCharm has tons of advantages when compared to text editors in terms of supported functionality. With respect to Python development, PyCharm definitely stands out with features like remote debugging, code quality checks, and integrations with third-party software like Docker and Kubernetes.”
— Swapnil Kulkarni, Active Technology Contributor, OpenStack
I have over 12 years of software development experience. I have been working with the containers team in the OpenStack community for more than 4 years, and have worked on multiple use cases to utilize the container ecosystem in OpenStack such as the entire containerized deployment of OpenStack with the project Kolla. I also work as a core reviewer with the OpenStack requirements team.
OpenStack started as an open source cloud operating system with initial contributions from NASA and Rackspace. It provided a much-needed alternative platform for enterprises looking for an open source private cloud. It started with only a Compute (Nova) and Object Storage (Swift) component and has since then acquired more than 250+ active technology partners with active developers contributing to different features to make it a viable private cloud deployment player.
OpenStack operates in more than 187 countries and has a developer community as well as an operator base on every continent. There is a diverse user base from small development clusters with single digit nodes to large scale clusters with thousands of nodes such as one of the largest CERN labs.
The different projects, initiatives, and events in the OpenStack ecosystem are governed by the OpenStack Foundation. The source code is mirrored on Github from source code managed on OpenDev repository, and everything is reviewed with Gerrit. The technical decisions related to the projects and community are done by the Technical Committee, which is formed by a community-wide open election process from all active contributors.
There are over 200 projects that are being actively contributed to in the ecosystem. The projects can be categorized into multiple streams such as Compute, Storage, Networking, QA, Deployment, Security, AI/ML, etc. With thousands of incoming reviews every week the community relies on the infrastructure contributed by companies like Vexhost to perform the continuous integration and delivery jobs.
Each OpenStack project has its own core team. The size is dependent on the number of contributors and incoming project reviews. It could range from a small core team of around 5, to a team of 50 or more for larger project groups. Each project group is part of a broader stream with community-wide goals. Apart from the development teams, there are special interest groups like the Operators group, who collaborate and focus on requirements and issues with OpenStack deployments. We have a user-committee for getting feedback from OpenStack users and a Technical Committee that works as a catalyst between the users, developers, operators, and the Foundation board members.
More than 95% of the entire OpenStack codebase is in Python. For any requirements related to web development, we use the Django framework.
First of all, Python is great for rapid development. It is much faster to develop a new feature with Python than from any of the other languages around… Ok, it’s not the only one, but the point is: deliverability. OpenStack has a very fast paced development model and it often needs to work with subsystems which require a language that has rich technical features and robust libraries. The language is required to be object-oriented and dynamically typed. Python satisfies those needs 100%. It’s also clean and easy to read and comprehend, that’s why we absolutely love it.
There are multiple streams of Python development in OpenStack teams. We have the APIs for each module, the scheduling algorithms, the components to give native calls to different hardware components, such as hypervisors, and storage subsystems. Python is also used for different requirements in the web dashboard development with the Django framework.
Working with a huge project like OpenStack requires integration points at multiple internal projects as well as external supporting components. It requires single as well as cross-project debugging, integration with Git/Gerrit, managing requirements, real-time debugging, using integrations like Vagrant, Docker, Ansible, and Kubernetes. These are just some of the major challenges. A tool like PyCharm which has integration points or plugins available for such requirements definitely helps developers overcome a lot of them.
PyCharm has tons of advantages when compared to text editors in terms of supported functionality. With respect to Python development, PyCharm definitely stands out with features like remote debugging, code quality checks, and integrations with third-party software like Docker and Kubernetes. The features most prominently used with PyCharm within my team are the remote debugging and Docker integration.
PyCharm works very well for most users. It provides support for project-wide code style conformance and version control. Many developers also find the quick-fixes quite useful and save a lot of time when fixing small bugs and doing code reformatting. Additionally, the debugging support makes it easier for development teams to verify the feature development. You can also use the Gerrit plugins to manage your code reviews from the IDE itself.
I am a contributor to multiple containerization projects within OpenStack, to start with, having an IDE with support for Docker integration really makes it a lot easier for me. It also helps me do some additional tests with containers for projects which are not containerized yet.
Yes. I always encourage my friends or colleagues to use not only PyCharm but the whole suite of JetBrains products as per their requirements. As I mentioned earlier, whether you are a newbie or a seasoned developer the features like intelligent code editors, smart code navigation, support for integrations with support tools like Git, Docker, and so on will help. Developers have a reliable tool that gives them the support they need to do their activities and they can concentrate on their development.
Swapnil Kulkarni, Active Technology Contributor, OpenStack
Matt Lucas, Head of Product, RoadBotics
We switched to WebStorm in part because a lot of the premium features come prepackaged, which let us get started quickly while reducing our dependence on additional third parties. Besides, having all of our software licenses in one place made it easier to manage access to our development tools.
Garth Gilmour, Head of Learning, Instil
When the social distancing restrictions were introduced in March 2020, we needed a tool that would let us collaborate online with students as part of virtual deliveries, and Space was the obvious choice.
Ben Asher, iOS Developer, Autodesk
With Kotlin Multiplatform an engineer can build out a new feature and test it on one platform, and then other platforms can just hook up the data models and business logic to the UI on their platform and reuse most of the groundwork. Now that we’re working in a shared codebase, we collaborate more across platforms.