Develop and Test Online in Lab Cloud
By Jakob Engblom
Last week, we released the fully-featured Wind River Helix Lab Cloud service. This follows up on the preview of the Lab Cloud that we released in the Summer, fleshing out the feature set and providing more ways to use the Lab Cloud. This blog post will go through what Lab Cloud is in a bit more detail, and how you can use it in your development work.
Lab Cloud provides you and your team with unlimited and instant access to virtual hardware. Instead of relying on managing a hardware lab or building your own simulation infrastructure, you just go to https://lab.cloud.windriver.com, and create an account.
The target access provided by Lab Cloud is a web service, which means you can access it at any time, from any browser, on any platform, anywhere in the world. The target system state is stored in the cloud, enabling the collaboration and sharing features described below, as well as total location-independence for the user. No matter where you login, even from mobile devices, you can review your sessions in the user interface as shown in the screenshot below.
To see how quick it is to get started with the Lab Cloud, please look at our two-minute demo video on Youtube.
Lab Cloud provides you with a variety of targets to test software across different types of hardware. Basic access is free, and you can buy more simulation time and additional features by setting up an Enterprise account. In Lab Cloud Enterprise accounts, you pay for simulation time and not target access. This completely changes how you think about accessing virtual platforms. Rather than procuring one platform at a time, you get access to all the available standard platforms. You can instantiate any number of simulations using each platform, and shift work from platform to platform as needed.
You can also provide access to your own work using Lab Cloud. You can upload new custom platforms, or simply load your software and data onto existing Lab Cloud platforms and share with other people. Lab Cloud gives you an environment where you can distribute hardware and software platforms, as well as software setups, for any purpose you can think of. For example, Lab Cloud is an excellent carrier for training materials, where you could set up particular training scenarios and have students simply clone them off and start working immediately. No installation or copying of files needed.
Collaboration Between Users
Any cloud platform is perfect for collaboration, and Lab Cloud is no different. With the state of the target system stored in the cloud, anybody can gain access to it immediately just by going to an URL – instead of having to copy the state from one user to another. In the Lab Cloud a user can share the state of their simulation session with anyone, who can then immediately look at the state and even collaborate live with the other user! A demonstration video of the collaboration aspects of the Lab Cloud can be found on Youtube (just click this link).
In live sharing, several users can simultaneously interact with the same session and jointly build the future state of the system. The session still belongs to a particular user, who invites other people to collaborate around a problem:
In addition to live sharing, where two users essentially talk to the machine at the same time (a bit like collaborative editing in Google docs), Lab Cloud also supports offline work for a shared session. In offline sharing, one user can work on the shared system while the other is doing something else. Having both modes, both live sharing and offline sharing, creates a versatile sharing platform.
One example of how offline sharing can be used to resolve problems has been described in a previous blog post. Sharing can also be used as a way to distribute interesting software setups. A set of uploaded software can be shared to other users, who can then clone off the session and have their own local setups based on what you provided.
One important feature to support Lab Cloud’s collaboration is the always-on recording of all inputs to the virtual platforms. The recording is automatically saved every time a user saves a snapshot, ends a session, or is logged out due to inactivity. There is never any risk of losing inputs by forgetting to save. The screenshot below shows how this looks in the user interface. You have a sequence of snapshots, where each snapshot includes the target time (time on the left), the real-world time when the snapshot was taken (the small timestamp next to the target time), and an optional user-added description (which is being edited for the third snapshot in the screenshot below). The control buttons lets you replay the execution from a certain snapshot, clone the snapshot into a new session, and delete it. To see a bit more about how you can work with record and replay, please look at this demo video.
Collaboration with the Ecosystem
One particular aspect of collaboration that is enabled by Lab Cloud is the collaboration between suppliers and users of hardware platforms. Using the Lab Cloud, a company can upload virtual platforms, complete with target software stacks, and make them available to users. Traditionally, when using virtual platforms to provide early access to hardware, users have had to install and run the simulations locally. When using the cloud, on the other hand, the installation is managed by the provider, as illustrated below. What was earlier a “simulation developer” now becomes a “simulation provider”.
This makes it so much easier for a user to get started, and also leaves the platform provider in control of the target. Updates to the target platform model can be deployed immediately, and the platform provider does not have to wait for their users to install the latest version. The latest version is simply there immediately. The Lab Cloud collaboration features apply just as well between the simulator provider and the simulator user, making support much easier. When you can see what somebody else is doing as well as the state of the system they are using, debugging and analysis is greatly simplified.
It does not matter if the users are internal or external. An internal simulation group can use Lab Cloud to distribute their platforms to their users, just like a company can use it to distribute platforms to other companies. A demonstration of how this can work is found in this video.
Automation and WebAPI
With Lab Cloud, you also get a cloud service web API that allows you to start and control targets in the cloud. Compare this to the standard way to run many Simics simulations. As illustrated below, a user (or automated test system) would start Simics runs themselves and directly control the Simics processes. This requires a bit of infrastructure work.
In contrast, the Lab Cloud provides the API to control the simulations and the infrastructure to run them. A user does not need to build the infrastructure – it is already there, provided by the Lab Cloud. This makes it possible to build dynamic automatic test systems where targets are activated and provisioned as they are needed. For example, a Jenkins test server could use the Lab Cloud to start up machines to run tests on when needed – all that is needed is an account on Lab Cloud, no hardware lab or even server park to run Simics on!
Network Access to and from Cloud Targets
Lab Cloud platforms are connected to the Internet, and can access services on the Internet such as the Wind River Helix Device Cloud device management system. A user of Lab Cloud can also connect to their Lab Cloud targets from their local machine. This means that local tools such as Eclipse and web browsers and ssh clients can connect to the targets running in Lab Cloud, providing richer interaction capabilities than the serial port that is presented in the Web interface.
Network access is also very useful to drive tests running on Lab Cloud targets from a local test execution and test management system – it is a good complement to the ability to automate the creation of sessions using the web API.
A video demonstrating the networking capabilities of Lab Cloud is available on Youtube.
Adding New Platforms
Lab Cloud includes a set of standard virtual platforms to enable you to try it out and understand how it works. In addition, users can be enabled to upload their existing Simics platforms to Lab Cloud, including both hardware and software. Lab Cloud in this way serves as an extension of Simics into the cloud, making it much easier to provide access to your simulation platforms to your colleagues and partners.
Enterprise Accounts Get Additional Features
Lab Cloud offers two account types, a free account and an enterprise account. The free account provides access to a set of free-to-use platforms, and a specified amount of Lab Time (simulation run time) per month and a limited number of concurrent sessions. If you want to be able to run more simulations simultaneously and have more simulation time, you need to get an Enterprise account. With an Enterprise account, you gain the ability to upload your own virtual platforms built with Simics, as described above, and provide access to them to the people you select (including free users if you want to). The administrator of an Enterprise has full control over who is in the Enterprise, and what they are allowed to do in the Lab Cloud system.
The Wind River Helix Lab Cloud is a new way to access simulated target systems, offering instant access to any number of systems. Lab Cloud enables entirely new types of collaboration and ecosystem enablement, where sharing a system state or the activities leading up to an error is as simple as sending an email. You do not need to install any software or maintain an installation, a web browser is all that is needed. For advanced users, Lab Cloud provides automation APIs and the ability to network to the target and upload new platforms. For existing Simics users, Lab Cloud offers a new way to distribute simulated platforms and collaborate within and outside the organization.