The “Cloud” Will Save Us!
You hear about it every day, “cloud services”, “cloud storage”, “the cloud as a platform”. But what is the “cloud” really? The definition of what the “cloud” is, is different for everyone. Some believe it is the implementation of a certain group of technologies, such as web servers, virtual hosts, and GUI frameworks. Others believe it is a philosophy for modern software development and implementations – in particular web-based and mobile implementations. Others still see the “cloud” as simply a way of out-sourcing infrastructure – yet still somehow see the need to have dedicated “Cloud Administrators”.
So what is the “Cloud” really? I offer my humble opinion below.
In With Old, Out with the New
Virtualization has been around for a very long time, so has Software as a Service (SaaS) and Platform as a Service (PaaS). These technologies have been with us in different forms and iterations since the time of X11. Of course, these technologies have evolved significantly over time, but that does not make them revolutionary, merely evolutionary.
I keep hearing phrases and comments to the effect of “the cloud changes everything”, when in fact it really doesn’t. It is simply another form of outsourcing. The real benefit of todays’ “cloud” technology is that it makes (or seems to make) management of infrastructure easier. But convenience always come with a price.
Easier? Maybe Not So Much.. Especially For Seasoned Professionals
The easier things are, the more often you are likely to do them. If it becomes easier to deploy apps via Amazon EC2/S3, or to a DotCloud instance, then there is a strong likelihood your organization will deploy more of them. Instead of managing infrastructure, you are now concerned with managing deployment practices, configuration standards, and code-bases. Not to mention the human resources required to maintain those applications going forward.
The infrastructure “problem” doesn’t go away, it’s just relocated – it’s now someone else’s problem.
Over-Reacting and Under-Utilizing
When organizations frantically down-size their teams in a drastic attempt to remain modern, it bothers me; saddens me really, because deep down I know that the new cloud-based technologies these organizations are hoping to take advantage of are simply re-iterations and re-implementations of the same technologies they’ve always had to deal with. HTTP, CSS, SSH, and Linux, for example. It is quite likely that most companies with significant IT resources already have people who are skilled enough to rip through the implementation of “cloud” technologies, armed only with their previous experiences, and the core “problem-solver” attitude that they’ve always had, that doesn’t go away with time.
“Not enough Cloud experience.” Really? Do you mean using a GUI web interface to setup a remote host? Or perhaps you mean the command-line configuration that needs to be done to YAML formatted text files in order to get a Rails application up and running? Of course old-hat Systems Administrators or Web-Application developers don’t know “precisely” how it all works – the first time around. But after the effort is put in to get the application up and running, to document the setup and check it into version control, and to automate as much of the time-consuming or repetitive manual tasks as much as possible, the rest is, as they say, “cake”. What you need to focus on is developing the kind of people who can do all of this, and have fun with it. This is how you effectively re-train. This is how you retain good talent. You have to allow the people you have to show you they can adapt. It is a waste of experience to let people go because their experience is not up-to-date. That’s not their fault.
More Of The Same, Spot The Patterns
Newer scripting languages and frameworks are being hyped as if they can do things that have never been done before. I’ve seen this with the likes of Ruby, Python, and Perl. Despite the fact that Perl has one of the largest, organized, stable, and well-tested libraries of any programming language to date (the CPAN), it doesn’t get the same kind of love that newer languages like Ruby and Python do, especially in corporate environments. Sometimes it in fact does pay to re-invent the wheel, but most often it does not.
If you are still trying to figure out what the “cloud” really is, know that it is simply a string of technologies that have been around for a long time, re-branded to look new and cool (for marketing purposes), and bundled with some new management tools and remote storage to make things “easier”.
To sales and marketing folks, it could simply mean trendy and cool. To developers, it may mean LAMP or MEAN. To systems and infrastructure people it could mean hyper-visors, virtual machines, and software containers. To DevOps folks, it may involve Puppet, Chef, and Ansible automations, or Continuous Integration.
To recruiters and hiring managers, it often means Amazon AWS and Spring Framework Experience. And to end-users, it typically means anything they can access from all of their phones, laptops, tablets, and PCs simultaneously.
The “Cloud” means many things to many different people. My humble opinion? At it’s core – at the heart of the all the technology and implementation that has made it all possible; are tools, software, and individual experience that have been around since the beginning, and it is ALL based on the concept of Open Communication, and the spirit and foundation of Free and Open-Source Software.