Amazon Web Services’ (AWS) principal web architect has likened the rise of cloud computing to moves to outsource and offshore development work almost 20 years ago.
Speaking at the Agile Australia conference last week, Simon Elisha said computing had become a “fungible resource”, with systems “replaceable by something else of a like type”.
He recalled having a project unceremoniously cancelled after 18 months of internal coding and testing in 1994, when executives realised they could outsource the work to Indian developers.
The new, offshore team would accept change requests via email at night and deliver workable code the next day.
“We were apoplectic and said ‘what about all the quality? What about the process?’” Elisha said.
“But they didn’t care about that; they only wanted a solution,” he said, acknowledging that he and his team were fungible resources as well.
Australia's financial services regulator APRA has also likened cloud computing to outsourcing and offshoring, advising regulated institutions in November 2010 that adoption would be subject to similar requirements.
Infrastructure as code
Internal Amazon statistics from May 2011 revealed that the cloud computing provider was setting up a new virtual server every 11.6 seconds, up to 1000 in an hour and more than 30,000 running at peak demand.
To tap today’s wider pool of infrastructure options, Elisha urged businesses to redesign their systems as stateless applications that may be easily moved between physical machines.
Developers building applications in today’s cloud-oriented market needed to assume that the virtual resources that hosted their applications could change at any time, he said.
He noted that virtual servers could be arbitrarily suspended, destroyed, created or moved, so applications had to be be ready to adapt to environmental changes.
Elisha backed the concept of “infrastructure as code”, in which virtual compute resources were managed using APIs (application programming interfaces).
“We tend to think of infrastructure as boxes, flashing lights, cables, servers, hard drives and memory,” he explained.
“But you don’t have to hug your servers anymore; you can access infrastructure through whatever code set you like.
“You just use APIs to get whatever resources you need. And the nice thing is that existing tools already have the plugins to take advantage of these services.”
Elisha highlighted AWS’ Elastic Beanstalk, a beta service that liaised with other AWS services like the Elastic Compute Cloud (EC2) and allowed applications to provision and deprovision virtual servers based on simple application calls.
“When you talk about automation and management, this gives you a lot of flexibility,” he said.
“If you need 1000 servers you can have them today – and if you want to get rid of them in the afternoon, you don’t have to have them anymore. You can replace things very easily, in a very dynamic way.”