The world is moving fast these days, but to truly innovate you need to move even faster than the fastest competitors. So how can cloud computing give you the speed you need to stay ahead of your competition?
Innovation is also one of my passions. I love the (seldom smooth, sometimes painful) process of taking a concept or idea and turning it into a reality. I'm always looking for ways of getting ideas to market as fast as possible and I'm excited to share with you some of the ways that cloud computing can foster better, faster, and easier innovation.
The first key area where cloud computing can greatly enhance innovation is through enabling better collaboration.
Let's say you have an idea, maybe you have the next killer mobile app, or perhaps you want to develop a social enterprise to improve the world. With apologies to any loners out there, you are going to need other people to help bring your idea to fruition. And you'll need to share ideas, discuss and solve problems, and plan and track tasks. And in all likelihood, as time goes by, you'll need to quickly expand the number of people involved in your project. So you will need some sort of online space to provide all these services.
SaaS offerings, such as Basecamp, allow you to quickly and easily set up project rooms where you can track all project-related communication and share files and information among the project team. For those looking for something more advanced I strongly recommend looking at Assembla, which is similar to Basecamp but more powerful, and is especially powerful if you're using Agile or Scrum methodologies.
The beauty of these types of tools is that you just sign up online and you are instantly ready to go. You then invite your collaborators through email. It's cheap, quick to get up and running, and easy to expand as the size of your team expands. And as with most SaaS offerings you pay only for what you use and you can close your account at any time without any fixed term contracts or exit penalties.
If you are looking to develop a software product or service, cloud computing can provide ready-made infrastructure for development and testing. This is applicable whether or not you are developing a cloud-based solution, so even if you are developing something like a native Windows application, a Linux program, or any other type of software that doesn't actually run in the cloud, you can still use the cloud to provide development and testing resources.
For example if you're using a standard software stack such as LAMP, or IBM WebSphere and DB2, you can have a fully working server up and running in minutes with a cloud provider such as IBM SmartCloud Enterprise or Amazon Web Services. No need to install any of the software stack or spend hours ensuring that the various versions of software work together. Simply select a virtual machine image, click a few buttons, and you are up and running.
This means that you can start quickly and test your idea quickly and cheaply. If things don't work out with your idea then you simply stop using the service. The huge advantage here is that you haven't had to spend lots of money up front to invest in servers, bandwidth, and software licenses.
One of my university lecturers used to say that there are only two things that you need to plan for with a start-up business: how you will manage success, and how you will manage failure. Cloud computing allows you to manage both situations very effectively.
Many people who start a new business think that they will take over the world. Most don't quite get that far but if you did manage to become as big as Facebook or Google then you're going to need an awful lot of servers. So should you go out and buy them up front so that when those hundreds of millions of users start rolling in you already have the capacity to service them? Even if you have the funds to do this, which is unlikely, it's not recommended, because if the unthinkable happens, and your idea doesn't quite reach your expectations then you'll have wasted a heck of a lot of money on idle computing and you'll probably end up selling a lot of second-hand computers on eBay.
Of course, because you're using the cloud you probably haven't purchased any computers at all because you're using a cloud provider and paying for the service you use. But the question remains as to how much capacity you should purchase up front. On the one hand you don't want to waste money on capacity you don't need, but on the other hand, if things go really well, you don't want to have too little capacity because users will not put up with a slow or unreachable service; and because you are a new business, you realize that you only get one chance to make a first impression on new customers.
Thankfully there is a solution to this problem and the solution is called elasticity. Put simply, elasticity is the ability of your cloud computing resources to shrink and grow depending on demand. So in times of high traffic the infrastructure can grow to accommodate the extra load and then reduce again when the load reduces. Again this way is perfect for new products and services because you are paying only for the resources that you use and do not have to carry the costs of unused resources.
I offer one word of warning here. Many cloud providers promote elasticity but you need to be aware that there are variations of what this elasticity actually means in practice.
With some cloud offerings, elasticity means that you can manually adjust the resources used. So although this is better than running out of resources, you still need to first become aware of the need to adjust them. And of course you have to remember to adjust them back again.
With some other cloud providers, the elasticity can be automated through an API but you have to write your own code to monitor and adjust the resources used. This brings up the issue that if you have to automatically instantiate a new virtual machine then you probably also need to automatically add it into existing infrastructure such as server clusters, VLAN, and so on. This can prove to be more difficult than it appears.
At the top-end of the offerings, IBM SmartCloud Enterprise+ features automated scaling, meaning that you simply configure some range parameters and IBM SmartCloud Enterprise+ will take care of the rest. This means that IBM SmartCloud Enterprise+ will create and destroy new instances as necessary in response to traffic demands (always within your maximum limits of course). The key differentiator with IBM SmartCloud Enterprise+ is that these instances include the whole software stack including the operating system, server software, database, and middleware. Therefore, when a new instance is automatically created it is also automatically integrated into the VLAN, WebSphere cluster, and so on, and is therefore a completely hands-off way of managing scaling.