The advantages of hosting software systems in the cloud have been widely discussed, with an increasing number of businesses choosing to migrate to cloud hosts such as Amazon AWS, Microsoft Azure, or Google Cloud. The cloud offers flexibility, reliability, and scalability, allowing you to effectively support your users/customers around the clock.
However, if you are considering migrating your software systems from physical servers to the cloud, there are some important factors that you may want to consider.
1. Uncertain Costs
As cloud computing continues to grow in popularity, there is a common belief from many organisations that migrating to the cloud will automatically reduce costs, be that on hardware, people, or both.
Whilst it’s true there are opportunities to save costs in some areas, we also know that if you perform a straight ‘lift and shift’ of services to the cloud, simply replicating the setup from your physical environment, you are likely to see operational expenditure actually increase, perhaps significantly. After all, you’re now running your services on someone else’s hardware! Depending on your specific needs, the costs relating to processing and storage can quickly scale out of control and need to be managed carefully.
2. Cloud-First Architecture
Alongside the need to consider costs is the need to properly architect applications and processes for the cloud.
Often, your business-critical processes are supported by monolithic software systems that were designed to run across one or more physical servers. As the usage of these applications increased, hardware would be added to maintain performance and availability.
In contrast, one of the greatest benefits of the cloud is the ability to scale up hardware and services when demand is high and then scale back during quieter periods. This gives you the flexibility to continuously meet user/customer demand without incurring significant capital and operational expenditure.
However, many established enterprise applications aren’t architected to take advantage of this ability to dynamically scale and require significant investment to allow them to do so. The result is that you are forced to over-provision hardware to maintain availability and performance during peak periods.
Finally, one of the most significant challenges that you need to consider is skills and training.
For software developers, architecting applications and services to take full advantage of the cloud presents new challenges and a different way of thinking than traditional web and Windows-based development.
For systems administrators, provisioning hardware and configuring security may suddenly require an understanding of software APIs and definition files (known as “Infrastructure as Code” or IaC).
Furthermore, systems administrators also need to manage expenditure and become accountable for the costs incurred. Historically, after the initial capital expenditure, it was very difficult to enumerate the day-to-day running costs of a physical server, but now the cloud hosting costs are itemised on a separate invoice. A systems administrator needs to gain a deep understanding of how cloud hosting costs are calculated by their cloud provider, ensuring that the services are properly configured to strike the right balance between performance and price, avoiding nasty surprises.
There are many other factors to consider, including:
- Choice of cloud hosting platforms.
- Misconceptions within the organisation that disaster recovery (DR) is no longer a concern, leading to a false sense of security.
- Misconceptions around the security of data and the need to be concerned with regulatory compliance.
Cloud Migration and Koderly
At Koderly, we develop and support bespoke software systems for medium and large enterprises and market–leading brands. We have extensive experience migrating complex software systems from physical servers to the cloud, and we’d be happy to discuss your requirements and to support you during your migration to the cloud.