App Development in the Cloud: 3 Things You Need to Know
- select the contributor at the end of the page -
One of the most exciting services that the cloud model offers right now is the ability to build, create and maintain applications using its framework. But before you jump onto the bandwagon, here are some things you need to know:
1. What is happening?
As the benefits of cloud computing become more and more evident, there is a move to bring application development to the cloud. Strictly speaking, this means that software applications are created in the cloud. But because of some issues, this concept has not really taken off. Right now, we're seeing developers coding and testing on their own private machines, and then deploying the final application on the cloud.
2. What are the benefits of developing apps in the cloud?
Remember the old way of doing things when it comes to application development. A team would first need to study the feasibility of the project, find out if they have both the manpower and the technology to carry it out, and if not, define what needs to be acquired and at what cost. It involved a cumbersome and extensive process that took a lot of time.
Cloud computing took care of that. It provided a way where infrastructures are easily made available on to anybody interested, and on a very cheap, pay as you go model. What once took months to prepare, can now be started in weeks or maybe even less. This is the primary advantage of developing in the cloud: speed
You do not have to worry about the infrastructure, the storage, the horsepower and even some of the services related to the maintenance and upkeep of this infrastructure and some resources you need to build and deploy the applications. Development teams can focus on creating the application itself, rather than these extraneous issues.
3. What are the things to look out for?
With the speed, flexibility, agility and cost savings one gets from developing applications in the cloud, why then are people hesitating?
Reliability is a big issue for cloud app developers. If your service provider goes down, so will your applications. The sad truth is that even if you sign up with the biggest or leading provider, it is not a guarantee that your applications will be accessible 100% of the time. For instance, several high profile websites such as Netflix, Pinterest and Fast Company were down because of a hacking attack on Amazon's data centers.
As with any IT project and investments you have, be sure to have a disaster/backup plan. You should be able to deploy your applications to the cloud with a clear view of what to do just in case an outage occurs. Most companies have a disaster recovery plan for their on-site systems, so why not adopt that same plan for your cloud applications as well?
It is understandable that companies would be a little bit uncomfortable if not downright antsy about putting their data and applications in the cloud, especially the public cloud.
As an IT or business professional, you would need to simply draw the line as to which application you could put in the cloud. Remember that not all apps are ideally created or put in the cloud.
Then there are those little differences that come into the mix. For instance, the configurations you use locally may be a little difficult to replicate in the cloud, so if it's your first time developing apps using a cloud infrastructure, be prepared for some surprises and learn some new things, such as SQL, XML and command line tools.
You can see cloud development as a disruptive technology or you could embrace it and learn how to harness its powers to your advantage.
Silly deployment and licensing restrictions
When it comes to app development in the cloud, be sure to read what you are signing. Some providers are very strict with what you agree to do, and what NOT to do on their platforms.
Difficulty integrating cloud-based apps with onsite apps
If you have existing applications that you need to work with your new cloud-based apps, you may run into some challenges when integrating them. This is because, you are more likely to have no access to your provider's own applications, infrastructure and other platforms. You could get around this by using your provider's APIs.
On the other hand, there is the issue of lock-ins. If you create an app in the cloud using APIs and other infrastructure patterns, you may be writing code that works only on that specific platform. You can work around this by choosing a cloud technology that is adopted broadly or a service provider that allows you to be independent.
Re-inventing the wheel
Granted that developing for the cloud might take a little getting used to because of the differences from traditional app development, but do take it to heart. A lot of middleware and tools are already available out there for you to use. This could help solve some problems when it comes to cloud architecture as well as save you a lot of development time.
Some tools worth looking at:
- Code2Cloud: a "turnkey" suite of collaboration tools
- CloudSwitch: cloud migration tool
- CollabNet: a suite of tools for application development in the cloud
- Rightscale: cloud provisioning tool
- Coderun: integrated development environment
There are a lot of service providers that allow you to easily develop applications in the cloud. The top providers include:
- Google App Engine
- Amazon EC2
- Salesforce.com Platform
- Windows Azure
App development in the cloud may be fraught with challenges that you need to be aware of in order to plan effectively. It may need a little getting used to, especially for first timers because of the differences between cloud and traditional app development. But the benefits are clear. More than cost savings, agility and speed, cloud app development is the future. If you want to have a career as a developer, you should learn how to create applications in the cloud.
Develop solutions for your business by customizing Microsoft SharePoint 2010 applications.