CloudStack-UI overcomes limitations of ACS
Native CloudStack can be difficult to navigate for users accustomed to other cloud services platforms. In this interview, Ivan Kudryastev explains the idea behind CloudStack-UI and how this platform makes life easier for cloud services users.
Apache CloudStack (ACS) is an open source virtualization platform widely used for organization of public and private clouds. It provides a wide range of features for organization of IaaS clouds such as reliable compute orchestration, out of the box users and accounts management, network services management, comprehensive and open API, support of most popular hypervisors, resource accounting.
Like any software product, it has downsides of different scale that could or could not be business and operations critical for a certain service provider depending on its requirements. Thanks to the active user community and comprehensive documentation, most of the ACS challenges could be solved relatively easily and make no negative impact on overall service quality.
In 2016, the team came up with the idea to design and implement a convenient and neat end-user interface for ACS covering regular activities that are important for day-to-day VM management. Initially, their main goal was to design UI that would meet identified in practical experience requirements:
- Should be user-oriented, offering clear UX and intuitive navigation
- Should provide additional functionality to enhance VM management, statistics and resource accounting
- Should cover all the productional use cases enabled in ACS configuration with basic zones, since this is the ACS deployment we use for our cloud services proposition.
What they came up with was the CloudStack-UI, which delivers on its promises to overcome limitations of native ACS interface and help cloud services providers to deliver a better experience to their users.
JAXenter: What is the idea behind CloudStack-UI?
Ivan Kudryavtsev: We have an affiliated company that has been providing Apache CloudStack-based public cloud services for three years now. The idea of CloudStack-UI actually came from them.
They have noticed one thing that had a significant impact on overall business results and customers satisfaction with the cloud services. Namely that average users, i.e. customers, who are used to working with Amazon AWS, Digital Ocean and other famous VPS management systems find native CloudStack uncomfortable and make a lot of operational mistakes. This subsequently leads to support team overload, appearance of long help-desk tickets queue, task delays and affects the productivity and safety of operations when providing ACS clouds to end users.
The main explanation for this problem is that the CloudStack platform native interface is actually designed from the point of view of a skilled professional system administrator, therefore it’s hard [or harder] for an average cloud user to work with it.
Another important premise was the native interface’s lack of important operational features such as virtual machine statistics tracking and charting, instruments for sophisticated resource accounting and application management.
To deal with these challenges, our team came up with the idea of designing and implementing a convenient and neat alternative end-user interface for Apache CloudStack covering regular activities that are important for day-to-day VM management.
JAXenter: Was there a need for such a project?
Ivan Kudryavtsev: At first, the project was designed mainly to fill our own operational needs as a public cloud services provider. But among the industry, other Apache CloudStack-based public cloud providers had similar problems. Somehow, they also have to deal with these same challenges. Some of them, just like we did, crafted customized UI, thus allowing users to easily work with their PaaS product. One well-known example of this strategy is Exoscale.
Thus, we thought that sharing our experience and development on open source might be interesting to Apache CloudStack adopters and will help them build better UX for their users.
JAXenter: What is the difference between CloudStack-UI and Apache CloudStack?
Ivan Kudryavtsev: Apache CloudStack is a well-known, widely used open source virtualization platform. It is a great, complex project that provides an all-in-one solution to building public and private clouds. Part of this solution is the CloudStack native user interface with which users manage their clouds.
CloudStack-UI, on the other hand, provides an alternative user interface for Apache CloudStack. If we’re comparing the native CloudStack user interface and the CloudStack-UI, we would say that the latter is designed to be user-friendly, intuitive and clear. This is CloudStack-UI’s the main goal and difference, for that matter. It’s a modern and smart UI for Apache CloudStack cloud services. It includes simplified one-step workflows for VM management, enhanced client-side logics, and wide customization options.
To be more specific, CloudStack-UI supports all the user features of native Apache CloudStack interface for basic zones configuration, but it also provides some helpful extras, like additional functionality for enhanced statistics, VM management and resource accounting. For example, by using CloudStack-UI, users have the ability to widely use tags for their VMs, group and filter-based on a variety of parameters, view visualized interpretation of their resources usage and VM statistics, change security group of a single VM, and more.
SEE MORE: Apache CloudStack allows DevOps teams to seamlessly provision compute, storage, and network resources
JAXenter: The project was developed with Angular 4 — why did you choose this framework?
Ivan Kudryavtsev: Native Apache CloudStack UI was developed with an outdated technology stack. This makes it difficult for developers and adopters to support and customize. Moreover, if a project doesn’t timely move to a new toolset, it gets outdated and quickly becomes a thing of a past.
JAXenter: What lessons did you learn while developing CloudStack-UI?
Ivan Kudryavtsev: Bitworks Software specializes mostly in providing commercial software development services. So, development of an in-house, out of the box product was quite a new experience to us.
These two types of development drastically differ, because when you develop an in-house, out the box product, its lifecycle becomes a critical factor that needs to be taken into account. As a custom software development services provider, in most cases, we concentrate on the delivery of the current version to the client.
CloudStack-UI is our first successful open source product and during development, we realized the real power of open source software and the Apache Foundation community’s approach to development. Finally, GitHub rocks when it comes to open source software; it gave the open source world a new drive to grow and collaborate efficiently.
JAXenter: How important do you think open source is in tech? Should developers contribute to open source?
Ivan Kudryavtsev: First of all, it is important to understand that an open source model is not something unique and brand new that appeared suddenly in the course of a day. More likely, it is a combination of concepts that already existed and ideas that took their current form when certain conditions were met. Inconsistency of laws for intellectual property rights in regard to the reality of the digital world and vast development of communications that enabled the appearance of distributed international development communities represent the origin of open source software. Thus, the existence of an open source software model as we know it today is the logical consequence of rapid changes in tech world, and its importance should not be underestimated.
From a business point of view, we absolutely believe in the open source concept and open source products. Moreover, as a tech company that provides commercial development services, in most cases, we build solutions using open source components. We also think that during the twenty years, open source concepts have proved their maturity and security.
Today, it can be used in a variety of business critical areas without drawbacks. Modern software licenses like Apache 2, GPL, or BSD grant companies their desired level of freedom and quality without having to pay additional royalties. This is especially important for products with critical time-to-market and limited development budgets, which sums up 99% of all commercial tech projects.
From the point of view of open source project authors and contributors, sharing your knowledge and experience is a great way to gain industry recognition. It also allows others to achieve their best results through collaboration with other talented and enthusiastic people.
Despite the benefits, it is important to note that contributing to open source requires a certain level of expertise, time and responsibility, and so it might not be suitable for everyone.
JAXenter: What are the biggest advantages of open source?
Ivan Kudryavtsev: One of the most important advantages of open source software is the combination of high quality and the absence of royalty costs. In most cases, the quality of open source products is on the same level [sometimes even higher] as the quality of proprietary software. However, using open source software components does not guarantee a high quality of the end result on its own. Moreover, without the necessary expertise for its implementation and the necessary skills for modification, it could lead to additional costs.
Another benefit that is especially relevant to qualified IT specialists is the ability to use readily available components and modify them in accordance with the development needs, which accelerates the overall development process.
JAXenter: What are the biggest misconceptions about open source?
Ivan Kudryavtsev: From our point of view, the biggest misconceptions about open source are the considerations that “open source software is unreliable”. Any software project, either proprietary or open source, may have quality and reliability issues. For that matter, big open source projects can guarantee more reliable solutions. This is because they have a solid community that reports issues, as well as a big number of contributors to fix them. Moreover, the fact that the code is publicly available might bring additional reasoning to a developer’s responsibility when writing the code.
JAXenter: What are your favorite open source tools and why?
Ivan Kudryavtsev: We love open source software. Especially software donated to Apache Foundation and other products licensed under Apache License 2.0. We use a lot of great Apache open source products that have proven to be solid. Our preferences are based on the purpose of our efforts — development of scalable, reliable and high performance solutions to the businesses. We are a relatively big team and we use a variety of open source tools on a daily basis.
Our personal favorites that we can recommend for certain development areas are:
- for UI: Angular, React, Bootstrap, Material Design, TypeScript language
- for Backend: Spring Framework, Play Framework, Apache Mesos, Apache Kafka, Scala and Java languages
- for BigData and ML: Apache Spark
- for Storages: PostgreSQL, Apache Cassandra, MongoDB, Apache Zookeeper, Apache BookKeeper, RocksDB
- Other: Git, Docker, Vagrant
These tools mentioned above have proved to be very efficient when developing large projects for our customers. As a contractor, we have to provide solutions fast and in a reliable way and they really help with that.
As for CloudStack-UI, Docker, Angular and TypeScript help us in the productivity department and ultimately deliver results.