Unicorn Framework: The rise of DevOps as a Service (DaaS)
Cloud Computing has reached virtually all areas of society and its impact on service development, production, provision and consumption is manifold and far-reaching. Inevitably, as recent studies and our Stakeholder and Requirement Analysis study of 20 personalized interviews with potential stakeholders suggest, Small and Medium Enterprises (SMEs) and Startups tend to embrace cloud computing to run parts of their applications. In addition, our study and other industry surveys show that there is an increasing trend among DevOps teams within SMEs to adopt the microservice architecture paradigm in the development and deployment of their applications. This paradigm allows them to break big ‘monolithic’ applications into smaller services deployed within containers onto cloud providers.
Challenges for SMEs and Startups
By adopting microservices, SMEs and Startups manage to lower innovation barriers and gain significant benefits. However, as our Stakeholders and Requirement Analysis study shows, there are still a number of challenges that need to be overcome to make this adoption simpler and faster. In particular:
- High dependency on cloud infrastructure provider (vendor lock-in).
- Orchestration and management of the lifecycle of Multi-Cloud Application Deployments.
- Management and effectively projecting cost budgets of their services and core products distributed across multiple clouds.
- Tackling security, compliance and code vulnerabilities by designing software security mechanisms to prevent data breaches and ensure customer privacy.
- Tackling data protection privacy constraints and restrictions due to national and EU directives for data movement across application tiers, availability regions or multiple cloud sites.
Unicorn Framework, our DevOps as a Service solution.
To overcome these challenges and take full advantage of this rapidly evolving landscape containing the aforementioned technologies, the Unicorn Project aims to provide DevOps teams within SMEs and Startups with the ability to simplify the design, deployment and management of secure and elastic by design, multi-cloud services. To achieve this, the novel DevOps as a Service (DaaS) Unicorn framework, will be developed. Unicorn will address different DevOps phases, ranging from Development, Continuous Integration & Testing, and Continuous Deployment & Packaging, to Orchestration, Management & Monitoring in a solid and consistent manner.
In respect to microservices, Unicorn will facilitate the DevOps teams in adopting the microservice architectural paradigm by providing a unified web IDE for development, deployment and management of cloud applications. Going beyond the offerings of the existing platforms, Unicorn puts particular emphasis on security, scalability and elasticity control enabled through policy and constraint definition, as well as through continuous risk and vulnerability assessment, and complements its solution with advanced orchestration and monitoring capabilities.
Unicorn Reference Architecture
Unicorn consists of three distinct layers, each based on different technologies and projects and each contributing a different set of functionalities to the overall Unicorn Framework.
- the Unicorn Cloud IDE Plugin
- the Unicorn Platform
- the Multi-Cloud execution environment
Overview of Unicorn Related Technologies:
The Unicorn Cloud IDE Plugin
The Unicorn Cloud IDE Plugin is the focal point of interactions between the members of the DevOps team and the underlying Unicorn Platform. It uses an intuitive graphical user interface completely built on top of the popular and open-source cloud IDE Eclipse Che.
The Unicorn Cloud Plugin IDE is organized into two perspectives. At the Development Perspective, Application Developers, via the Annotated Source Code Editor develop secure, elastic, and privacy-aware cloud applications using the annotative Design Libraries and Product Managers define design-time, run-time and privacy policies and initiate the deployment process. At the Management Perspective, Application Administrators, using the intuitive Graphical User Interface of the plugin, can monitor and manage deployed applications.
The Unicorn Platform
The Unicorn Platform acts as link between the Unicorn Cloud IDE Plugin and the Multi-Cloud Execution Environment and is the layer where the business logic of Unicorn is applied. Its main tasks include:
- the validation of cloud applications submitted for deployment
- the interpretation of the design-library annotations on the source code
- the enforcement of privacy, security and elasticity policies at runtime and compile-time based on the aforementioned annotations
- the application lifecycle management of deployed applications
- orchestration and management of resources and containers on the Multi-Cloud Execution Environment.
Unicorn uses Kubernetes, an open-source orchestration tool for containers running on a cluster of virtual hosts. While Kubernetes is an orchestration tool for containers, it lacks the ability to (de-)provision infrastructure resources. To address this limitation, the Unicorn Platform relies on the Arcadia Smart Orchestrator, which is a complete framework for software development, orchestration, deployment, and execution.
The Multi-Cloud Execution Environment
Unicorn micro-services are deployed to the Multi-Cloud Execution Environment which consists of the following:
- resources (CPU, memory, network, storage etc.) in the form of VMs bound on the infrastructure of multiple cloud providers and/or availability zones and regions
- an overlay cross-cloud networking fabric
- a lightweight operating system
- a container engine
- a container management and orchestration tool.
Unicorn relies on the Docker Container Engine, which, as industry surveys indicate, is the top ranked container engine of preference among SMEs. Docker containers are lightweight self-contained systems that run on a shared underlying operating system. Unicorn uses CoreOS as the operating system for the VMs. CoreOS is a unikernel-like lightweight and library-based operating system that provides secure out-of-the-box support for container runtime engines such as Docker.
At the time being Unicorn is under development. You can follow the progress of the project by visiting our website http://unicorn-project.eu/ or you can follow us on Twitter using our Twitter handle @Unicorn_H2020. For more in-depth technological information about the Unicorn framework you can read our first two deliverables D1.1 Stakeholders and Requirements Analysis and D1.2 Unicorn Reference Architecture.