Google’s wildly popular Chromebook laptop was designed around a very simple concept – provide a platform whose only application is a web browser. This allows Google to provide a very cost-effective, energy-efficient, and extremely user-friendly platform. But with only a web browser, is it possible to use a Google Chromebook to do development work? White Stratus Development Lead Wes Dean spent a week using only a Chromebook and found that it didn’t slow him down in the least!
White Stratus has a core focus on using Google products in the enterprise to provide 100% Google-centric solutions. Typically, these involve using Google Apps, Google Cloud Platform and Google Map Engine to save organizations money by reducing capital (e.g. data center construction costs), and operational (e.g. energy, IT staffing) expenditures. A common question posed to White Stratus is how an organization can use Google Chromebooks to help with these costs.
A common misconception is that Google Chromebooks are only useful for surfing the web. Fortunately for all of us, more and more tools are being developed around using web browsers to provide user interfaces – there is a decreasing need to install a different software package on a computer for each and every task the end-user wishes to accomplish.
Google is leading the charge for moving more and more applications to the web. It wasn’t long ago that millions of users were on the office application suite purchase and patch treadmill, easily spending hundreds of dollars every year simply to have access to software that allowed them to accomplish very simple tasks like writing documents. Now, with free applications like Google Docs, anyone with a web browser and a connection to the Internet has access to a word processor, a spreadsheet application, etc…
While it’s great that Google provides these free tools, there still exist software packages that don’t have web interfaces. Google Chromebook critics often point at these as proof that Google Chromebooks won’t work in their environments. Fortunately, there available solutions that allow users to use these non-web applications from their Chromebooks.
To demonstrate the viability of using a Chromebook in a demanding environment requiring a variety of non-web applications, White Stratus Development Lead Wes Dean took on the challenge of working exclusively from ChromeOS devices (i.e. a Google Chromebook and a Google Chromebox) for an entire week.
To prove that the Chromebook was a usable platform, six tests were crafted that relate to software development. If those tests were passed, the experiment would be deemed a success. These tests included:
Basic Functionality (web browser, email access)
Media Support (voice and video conferencing)
Source Code Editing
Command Line Access
Test #1: Basic Functionality
The first goal was to achieve basic functionality for a usable platform. At a minimum, this included two monitors, keyboard, mouse, webcam, microphone, speakers, and local storage. While a Chromebox was ultimately chosen, the setup for a Chromebook would work just as well.
The Chromebox had six USB ports (four on the back and two on the front), a standard (3.5mm) audio output jack, and two DisplayPort ports. Adding the keyboard, mouse, webcam and microphone were simply a matter of plugging the devices into available USB ports. Similarly, the speakers connected to the standard audio output, as expected. The two monitors required separate cables. As the monitors had HDMI inputs, DisplayPort to HDMI cables
were used (HDMI
) although DisplayPort to VGA cables
were also available. Local storage was added via a 32 GB flash drive
attached to an available USB port. Lastly, the Chromebox was connected to the office’s existing wired network; however, both the Chromebox and the Chromebook have on-board wireless network adapters, so using the office wireless network was also an option.
The keyboard, mouse, webcam and microphone were all recognized and made available for use without any configuration.
This setup allowed basic web browsing, email access (via Gmail) and office productivity (via Google Docs).
Test #2: Media
White Stratus conducts most meetings online using Google+ Hangouts. This allows White Stratus developers in New York, London, Tokyo, etc. to collaborate face-to-face, despite being scattered across the globe without any cost to the organization. As such, supporting media beyond simple text and web pages (e.g. video, sound, etc.) is critically important.
Because the Chromebox recognized the webcam and microphone, video conferencing (via Google+ Hangouts) and telephone usage (via Google Voice) were also possible without any configuration. Moreover, work from the Chromebox was made a little more comfortable by streaming music stored on Google Play Music.
Test #3: Source Code Editing
Moving beyond simple web applications, the next goal was to get to work developing software by facilitating the editing of source code.
The first concept that was explored was the use of a Google Drive application that would provide a web interface to access source code stored on Google Drive, much like Google Docs, but for source code. For this, Neutron Drive
was selected. Neutron Drive provides an editor with many common programming aides, like syntax highlighting. Furthermore, Neutron Drive implements the Google Drive SDK’s Realtime API
; this allows multiple developers to collaborate on the same files at the same, just like with Google Docs. Lastly, Neutron Drive allows developers to synchronize files between Google Drive and a server using Neutron Beam. This allows developers to work in the cloud while having their files synchronized back to a development server for compilation, revision control, deployment, etc…
Test #4: Command Line Access
After source code has been written and edited, it often needs to be processed somehow. For example, Java source needs to be compiled, tested, archived, JARed, deployed and placed into revision control systems. As none of these applications traditionally involve web interfaces, a different interface mechanism is required. As development work at White Stratus typically involves a UNIX or Linux environment for these tasks, Secure Shell (SSH) is typically employed to provide access to development tools.
Google provides a free SSH Client extension for Chrome
that uses Native-Client to communicate directly with SSH servers without relying on SSH to HTTP proxies. As the Chromebox came loaded with the Google Chrome web browser, an SSH client was only a click away.
The Chromebox had no issues running the SSH Client extension. The extension can run in a tab like any other web page, or it can hide the browser interface completely and appear like any other application (including fullscreen).
Test #5: Graphical Applications
The last test was to determine if graphical applications – not just applications with web or command line interfaces, but applications that were full-blown graphical applications – could be run or accessed from the Chromebox.
It turns out that there are several options available to provide access to graphical applications.
For applications that reside on a server running Microsoft Windows, there are several extensions to Google Chrome that provide Remote Desktop capabilities. Google provides Chrome Remote Desktop
, a free extension that allows users to connect to computers that they’ve previously enabled Chrome Remote Desktop access. The protocols used with this extension allow secure, encrypted access to any computer that can browse the web, even through firewalls or network address translation. That is, if a computer can launch Chrome and bring up a web page on the Internet, they can use Chrome Remote Desktop as either a client or host, regardless of platform (i.e. it runs on both Windows and Mac platforms).
Another Google Chrome extension is Chrome RDP
which provides a true RDP client. Therefore, if the server being accessed is running RDP already, Chrome RDP can access it without further configuration. However, unlike Chrome Remote Desktop, Chrome RDP is not a free Google Chrome extension.
Yet another option is to use VNC. RealVNC provides a free Google Chrome extension called VNC Viewer for Google Chrome
. This allows access to systems running a VNC server, such as the freely available TightVNC
package which runs on Windows and UNIX / Linux. Mac OS X provides a Screen Sharing feature based on VNC, so you may use the VNC Viewer for Google Chrome extension without having to install a VNC server.
For systems that are running an SSH server (e.g. UNIX / Linux systems), you may use port forwarding to tunnel a VNC session, effectively encrypting everything that goes between the client and the server. (Use port forwarding so that a local port (e.g. 5901) is forwarded to the port that the VNC server is listening on on the server; for OpenSSH and the SSH client extension for Google Chrome, the flag is “-L 5901:localhost:5901″ (no quotes), then use the VNC Viewer for Google Chrome to connect to localhost instead of the actual server.)
As most users’ devices are under-loaded or idle most of the time, it’s possible to consolidate multiple users’ desktops down to a smaller number of centrally-managed servers.
To take that concept to the next level, Google Cloud Platform includes Google Compute Engine, a cloud-hosted virtual Linux server. Google Compute Engine allows you to allocate processing power, memory, network interfaces, temporary and durable storage, and more through a web interface. So, instead of purchasing new servers every few years, an administrator need only click through a web interface and provide the most effective amount of computing power possible.
The Chromebox had no problems running the Chrome Remote Desktop, Chrome RDP or VNC Viewer for Google Chrome extensions. Like with the SSH Client extension, the browser interface can be hidden so that the application appears like a traditional application. Moreover, by making the VNC Viewer fullscreen, using the remote system looks and feels just like using a local system.
Test #6: Printing
There’s a strong push to ‘Go Paperless’ by eliminating as many tasks that require paper as possible. While Google Forms and online web applications can be used to facilitate paperless input, there are still times when people need to print documents.
Printing from the Chromebox was accomplished using Google Cloud Print. Google Cloud Print is a free service provided as a part of Google Apps. Just as users can share documents using Google Docs, users can share access to printers using Google Cloud Print.
To use Google Cloud Print, a user with a printer attached to their computer registers the printer to Google Cloud Print. Then, they share the printer with whomever they wish to allow the ability to print. Then, use the print dialog to select the printer you wish to use under Google Cloud Print and continue as usual.
In addition to allowing individual users to share their printers, it’s also possible to use Google Cloud Print in conjunction with print servers – dedicated computers configured to allow multiple users to print to one or more printer attached to the print server rather than the end-user’s computer. Google provides Google Cloud Print services for both Windows
and UNIX / Linux
The six tests prove that it’s definitely possible to deploy Google Chromebook and Google Chromebox devices while providing all of the tools needed for users to work effectively.
Basic Functionality (web browser, email access) : PASS!
Media Support (voice and video conferencing) : PASS!
Source Code Editing : PASS!
Command Line Access : PASS!
Graphical Applications : PASS!
Printing : PASS!
By deploying systems running ChromeOS – including Google Chromebook and Google Chromebox devices – organizations can save money through reduced energy consumption, simplified IT support and management, and reduced costs associated with the end-users’ devices.
Written by Wes Dean, Development Lead, White Stratus. For more information visit www.whitestratus.com.