Analyzing data is much easier and faster today thanks to cloud computing and on-demand availability of computer system resources such as data storage and computing power. However, the development of cloud solutions requires tools adapted to special characteristics of the cloud and fast time-to-markets demanded by companies and organizations. Cloud distributed systems are highly complex due to the wide variety of technologies and frameworks that can be used in the whole stack, the underlying microservice architectures, or the management of the deployment pipeline. To develop services from scratch is expensive, as well as time-consuming, and one of the main challenges IT companies are facing is reflected in the difficulty to find qualified IT staff in the market to face these challenges.
Makes the development and deployment of data-intensive services for the cloud easier than before.
In this context, the SmartCLIDE consortium proposes the creation of a new cloud-native Integrated Development Environment (IDE) that makes the development and deployment of data-intensive services for the cloud easier than before, aiming at bridging the gap between on-demand business strategies and the lack of qualified software professionals.
Which will be the main features of our IDE?
- Lifecycle support. A software follows a life-cycle, from the specification of features to the deployment of the solution. Each stage requires specific tools and SmartCLIDE will provide these tools to software-crafters just when they need them. For example, it will offer Gherkin tools based on the specification of the behavior of the services to develop and defining the acceptance criteria, enabling future automation of acceptance tests. At the development stage, SmartCLIDE will provide data sources, data transformations, graphics visualization artifacts, or general-purpose abstractions and patterns that can be combined to implement the above-mentioned features. And at a final stage, it can discover specific purpose containers for the deployment of the generated code.
- Insightful source code monitoring. SmartCLIDE IDE will implement visualization features that enable the developer to gain a deeper knowledge about the source code. It will dynamically show the meaning of expressions, or the flow of code at low levels of granularity. It will allow to compare different software states that are achieved, perform changes in states that are reflected dynamically, or to create new abstractions that can be easily reused.
- Version Control and Configuration Management Integration. SmartCLIDE will enable integration with the most frequently used Version Control and Configuration Management Systems such as GitHub or GitLab. Following a DevOps and full-stack development approach, a unique repository shall be used to keep all the implementation items under version control: source code, binary files, configuration files, data, tests, virtual machines, containers, etc.
These are already cool features, but we propose on top some very nice features based on the power of Deep Learning that make SmartCLIDE very special:
- Development by demonstration and text notation. Making use of a Deep Learning Engine, and based on the current features, SmartCLIDE will automatically retrieve resources that it considers relevant for the new development. The end-user will be able to use text notation to enhance the description of the retrieved behavior or algorithm. Based on these new indications, the Deep Learning Engine will dynamically propose programmatic solutions to obtain the desired output. The environment will also enable developers to face programming tasks by manipulating abstractions straight forward, not requiring previous knowledge of the underlying language.
- Automatic software classification. Our Deep Learning Engine will automatically identify and classify already existing and new software abstractions that will be visualized in the IDE for re-utilization, based on the purpose or behavior defined by the end-user.
- Continuous integration and deployment assistance. SmartCLIDE will guide the user through each stage of the lifecycle, ensuring that the generated code has been properly tested, accurately integrated within the corresponding development branch, and automatically deployed in the selected cloud service, implementing the end-to-end responsibility of the DevOps philosophy.
SmartCLIDE will be based on Eclipse THEIA, the cloud version of the Eclipse IDE, offering all the necessary tools for developing in one single place. It will be a rich interface, with a vast range of features to accelerate the deployment of cloud services, improve their quality, and expand the skills of novel and experienced developers.