Taming the cloud with UNICORN
In 2016, multi-cloud management and cloud cost optimization specialist RightScale surveyed 1,060 tech professionals across a broad cross-section of organizations about their adoption of cloud computing. The subsequent findings (detailed in their “State-of-the-Cloud” report here) were a key inspiration for UNICORN, an EU Horizon 2020 research and innovation project to facilitate the design and deployment of cloud applications and services, improving developers’ productivity by reducing cloud application design time via code annotations and blueprints for security. Although cloud deployment provides a powerful way to automate application and infrastructure management, developers have noted that hybrid deployments raise the complexity of monitoring and management across multiple clouds (according to the 2016 report, SMEs use up to six different clouds on average and one out of five SMEs manage deployments with more than 1000 virtual machines).
Key challenges and UNICORN
From a development perspective, designing secure software and ensuring customer data privacy is challenging enough, but resource scaling (“elasticity”) introduces yet another important cloud deployment issue to tackle as well. Several application management platforms claim to address these issues, including proprietary solutions like AWS CloudFormation and Oracle Exalogic (locking users to their specific providers) and open frameworks like CAMF and Juju (allowing users to choose their cloud provider, including AWS, Google Compute Cloud and Microsoft Azure). However, none of these solutions wholly resolve data protection and privacy concerns or provide the ability to manage the lifecycle of a cloud service distributed across multiple availability zones and/or cloud sites. Techniques to deal with elasticity properties covering resources, costs and quality are also not well-supported. Most significantly, these tools are designed to address cloud management issues after application development, delaying time-to-market and thus hitting especially SMEs and start-ups with smaller development teams hard. By reducing cloud application design time via code annotations and blueprints for security, UNICORN aims to solve all these cloud application and services issues for developers.
ProsocialLearn – a game development example
The Prosocial Learning Digital Game (PLDG) demonstrator is a cloud-based multiplayer game in which players (in particular school-age children) develop their social skills. The overall development process has highlighted several technical issues, including data volume handling, rapid scaling, security/authentication and compliance. Developer Redikod is using a modified version of Unity’s uMMORPG multiplayer game base for the PLDG demonstrator’s client and server. The game client and game server are running together in a docker container along with nginx to host the game client, specifically a WebGL build and nodejs server using expressjs for communication with the demonstrator’s external host server (running the central ProsocialLearn platform infrastructure) that controls the game lifecycle via voice chat using peerjs. One important barrier encountered with Unity is that it does not support secure web sockets, required by the developer to serve content via secure https. To work around this, Redikod included a plug-in with the WebGL build that changes all ws calls to wss calls. That does not work with the server though, so nginx has been used as a reverse proxy so the Unity server can use unsecure web sockets, but the client connects with secure ones. Redikod has also encountered issues with voice chat not having access to the ssl certificate used to serve secure web pages and services. Since the peerjs server cannot be served from the same location as the game is served, Redikod had to set-up a peerjs server on a separate web server. There are also some issues with getting peerjs and voice sensors to work simultaneously, especially in a push-to-talk environment. ‘ UNICORN-enhanced cloud computing applied to the PLDG demonstrator enabled a rapidly scalable, cost-effective IT infrastructure on demand, coping with rapidly growing user demand at different times and with enormous, fluid and constantly updated datasets by applying elasticity policies through annotations within the game’s source code, while satisfying particularly strict security needs with enforcement annotations, and privacy requirements via mechanisms that restrict data movement between different geographic regions.
Join the dev competition!
UNICORN has also launched a contest to test and validate the platform by developing software or use-cases using the UNICORN framework, with twelve selected SMEs and start-ups to each receive 10,000 EUR in funding. The submission deadline is 28 February – so learn more about UNICORN and the contest at unicorn-project.eu and apply now!