Part 3 – How is development in the cloud different – application management?
The Motifworks Blog has focused its last few posts on issues surrounding cloud and developing your application in the cloud. And for good reason – cloud development is moving faster than ever as more organizations and companies see the value in using the cloud to be more productive, efficient and successful.
For today’s post, I want to focus on how deploying and managing your application is different in the cloud compared with traditional app and product development in an on-premise hosted environment. So, consider these seven points:
- Multiple storage options: Mostly all cloud platforms provide multiple storage options to meet your needs. You need to understand how different cloud storage services can be used to support different tasks like application development and delivery, backup, archive, disaster recovery and virtualized computing.
- Understanding database options: Similar to different storage options, you get many choices for databases in the cloud. You could continue to use your favorite relational database (yet only with IaaS platforms) or you could consider other relational databases vs. non-relational (also known as NoSQL). If you’ve decided to move your applications to the cloud, I strongly recommend you consider different database options. And this is especially so with NoSQL, which has some advantages in the cloud and may be more suited for certain types of functions and applications in the cloud.
- Backup and disaster recovery: backup and planning/implementation of disaster recovery is not same in the cloud compared with an on-premise host. And in fact, disaster recovery differs in different cloud platforms. You should approach backup and disaster recovery in the cloud such that it improves efficiency and flexibility for your company.
- Managing and optimizing cloud infrastructure costs: This is a big paradigm shift from on-premise applications in which developers seldom worry about resource costs due to fixed and sunk costs for the hardware. In the cloud, you pay for what you use, which is very different compared with on-premise applications. So, you need to understand how to optimize your usage of resources and, in turn, achieve lower costs.
- Application monitoring and management: Unlike on-premise applications, in the cloud you not only have to monitor and manage applications for performance, reliability and errors but also for optimizing your costs. You need to learn new tools for monitoring and managing your cloud resource usage and implement new features like cost allocation reporting, detailed usage reports, billing alerts, on-demand vs. Reserved Instances and idle resource detection.
- Latency issues: This is not an easy one and different layers in the cloud make it even more complex to reduce latency. While tools like Radar and Gomez provide insights and benchmark different cloud providers, having direct connections to your on-premise network using features like AWS and Azure Direct Connect are of particular importance for building hybrid applications or connecting to the cloud within your internal infrastructure.
- Security policies of the cloud provider: Organizations need to use their security policy to drive their security. Make sure you fully review and are aware of risks based on the security policies of your cloud provider. You need to review the changes to security policies very regularly as it may have direct impact on your own security policies.
- Service Level Agreements: Like security policy, it is very important to create a SLA after careful review of the SLA of your cloud provider. Many cloud offerings are built on top of other cloud offerings — this is great for flexibility and power but each additional provider makes the system less reliable. As the number of layers increases, you’re affected not only whenever one of the systems goes down, but also if the network between them goes down.
As always, I welcome your feedback and ideas!
Image courtesy of KROMKRATHOG at FreeDigitalPhotos.net