The National Institute of Standards and Technology defines cloud
computing as "a model for enabling convenient, on-demand
network access to a shared pool of configurable computing resources (e.g.,
networks, servers, storage, applications and services) that can be rapidly
provisioned and released with minimal management effort or service
provider interaction." Honing in on the key defining
terms, you may recognize the key features of the "cloud" include on-demand
access, shared compute resources and dynamic provisioning.
Clearly this type of dynamic accessible processing can be
useful in many ways and has already ushered its way into many applications. For
those companies that have begun using cloud computing, the benefits include
rapid reprovisioning, reduced upfront costs, "anywhere" access, pooling
resources across users through multi-tenancy, load spike handling and better
reliability, uptime and maintenance than they could have achieved on their own.
However, this is not the entire story.
Critics will say that utilizing the cloud opens companies
and IP to security threats, failing to offer enough benefit in many
circumstances to justify the risk. Nevertheless, there are a number of areas
which have begun to emerge as high-level uses for cloud computing in the
general engineering space. Details on
these areas follow.
Data
Aggregation
|
Data is the lifeblood of engineering. From the definition of cloud computing, it
is clear that one of the scalable computer resources is storage-the backbone of
a data aggregation strategy. Data aggregation using the cloud is most effective
when data sources are globally distributed and require convenient on-demand
access. Looking at a windfarm monitoring example, it turns out that one of the
most expensive parts to fix on a wind mill, if it fails catastrophically, is the
large rotating assembly behind the blades. There is a whole science behind
monitoring rotating machinery vibrations to predict normal maintenance and
analyze warning signs for future sudden events.
Using an acquisition system for monitoring coupled with cloud-based
storage, companies can aggregate the data in a central scalable location,
automatically sweep the data for alarm conditions and serve the data to any
user globally that needs access. This can all be done without spending large
capital investments on onsite servers. A central tenant of the cloud allows for
dynamically changing computer resources as your business grows (or shrinks).
Software
as a Service (SaaS)
Many
self-hosted operations report that their servers run at 10-20 percent
utilization under normal operating conditions to account for periodic extraordinary
usage patterns. Using cloud computing, engineers can mitigate this
underutilization of a resource for their Web application. As an example of
this, a company at Solidworks World 2010 showcased previews of upcoming
technology that facilitate game-changing levels of collaboration on design
using cloud backends. The design is "alive" in the cloud and any person
involved, from design engineer to executive management, can work with a design
on any device. Also, at NI Week 2010, National Instruments previewed a
completely hosted LabVIEW Web UI Builder which is a browser-based development
program for creating Web user-interfaces, connecting the custom interface to Web
services and exporting the UI as a thin-client to embed essentially anywhere on
the Web. These examples provide a glimpse into how engineering applications can
completely run in the cloud or utilize a hybrid approach where there are cloud
applications available that augment a locally-running application.
High
Compute Power
Simulation
sweeps on large ASIC designs or dynamic analysis of mechanical models are only
a few of the computationally intensive tasks one might want to target at a
rented bank of computer resources that will scale up quickly to handle the load
and scale down quickly when not utilized. In some FPGA simulations, a
nanosecond of simulation time can mean minutes of real time churning. One does not
need to be a mathematician to understand the time an FPGA video algorithm
high-fidelity simulation could take to crunch a one minute clip.
EDA tools are already experimenting with this type of
system for highly computational tasks. One of the promises of cloud computing
is the virtually unlimited scalability of the processor cycles engineers can
have at their disposal. Of course, this is an oversimplification as not all
intensive tasks can be parallelized. But in theory, the cloud represents infinite
open lanes of instruction crunching. In practice, companies are already seeing
benefits. For example, National Instruments is targeting FPGA compilation to
cloud-based computers. In fact, the prototypes shown at NI Week display a user selecting
the NI Hosted Services compilation server and subsequently using the LabVIEW FPGA
tools in the same way. The only difference being that compilation is happening
on an optimized high-RAM dedicated computer in the cloud rather than a locally
maintained server. The transfer of files and statuses are handled in the
background on high security web service connections to a set of cloud machines
that take care of authentication, license checking, scheduling and the
specialized work of an FPGA compile. For more on this, see the
Design News Automation & Control
blog entry on the topic at:
http://bit.ly/DNCloud.
Security
Concerns
Many
critics of cloud computing are quick to point out the drawbacks of cloud technology for certain engineering tasks.
While complex display (such as rendering 3D models) is nearly impossible solely
through a network connection to the underlying data, security concerns are the
most cited drawback to putting more of an organization's important, sensitive
engineering work in the cloud. With the LabVIEW FPGA Cloud Compile server,
National Instruments has worked through a lot of these issues, including:
-
All calls to the server should use a secure
user ID and all access to customer data on cloud servers should be gated by
services on the server side which re-check the end user's permissions on each
access;
-
All passwords, as a security best practice, should
be stored using strong one way encryption and never stored in any other way,
especially plain text;
-
Even the service provider should not be able
to decrypt a user's password;
-
Users who forget their password must be reset;
-
All calls from the user to the cloud should
also be made securely over encrypted HTTP (HTTPS) with added security
mechanisms for login authentication and data protection;
-
The service provider should have a
CISSP-certified security engineer on staff or be consulted with to audit the
security of the solutions from design through implementation; and
-
The cloud infrastructure provider, such as
Amazon Web Services, should have high security data centers as well. For
example, Amazon's data centers have SAS 70 Type II certification.
In the consumer world, the shift toward hosting all types
of data, applications and computationally intensive tasks on scalable on-demand
systems is clear. It is only a matter of time until the research and
development community starts using similar technology in related use cases for
their day-to-day work.
Rick Kuhlman is LabVIEW FPGA product manager at National
Instruments.
For more information, visit: http://zone.ni.com/devzone/cda/tut/p/id/11573