Guest Blog: Preparing for public cloud migration
This blog is authored by UKFast AWS DevOps engineer Leyton Reed.
Whether you’re looking at moving to AWS, Azure or a smaller public cloud platform such as UKFast’s eCloud®, migration brings a common set of challenges. Being prepared for cloud adoption means being prepared to change the way you operate. And before you even get started, there are several things you’ll need to consider in order to ensure migration goes as smoothly as possible.
If this is your first voyage into public cloud it’s likely you’ll never have checked if your applications are ready to run in the cloud. Running workloads in the public cloud means moving away from reliance on a single server – you may need to scale out at any time, at which point it’s essential that your applications are ready to work across multiple servers. Rather than manually maintaining your servers, you must prepare for dynamic, scalable deployment before embarking on your cloud journey. Amongst DevOps engineers we use the analogy ‘cattle, not pets’ to describe this.
Top considerations for scaling:
- Consider session persistence: For example, if a customer places something in their basket and you need to scale out, will it still be in their basket when their request is handled by a new server?
- File level state: Think about the sharing of files between servers. If all data is stored locally to each server, when you scale out to multiple servers, does each need to have access to some of that data? The application design needs to consider this prior to migration.
- Scaling scheduled tasks: Timed events that run on a schedule are often local to each server. Scaling out can cause the task to duplicate, so you end up with multiple executions each time. This could result in double reporting or sending duplicate emails.
2. Time and expertise
If you want cloud done right, it’s important not to rush it. Plan a realistic timeframe that accounts for the lead time to prepare resource, build an environment, test it and ultimately carry out the migration itself. This isn’t something that can be actioned in a couple of weeks – so be wary of anyone who advises it can. The right expertise will make all the difference when it comes to the success of your solution, so it’s not an area to compromise on.
Common challenges for facilitating migration:
- Cloud skills gap: Unless you have team members in-house that are experienced with running internet–facing workloads, performance debugging, mitigating cyber–threats and automating builds, you’re going to need to look elsewhere for support. Hire in a specialist or consider a managed service provider to make sure your solution is well architected, secure and scales correctly.
- Operational excellence: One of the cornerstones of AWS and Azure’s well-architected frameworks, ensuring operational excellence can only be achieved by following the right instructions. You need to prepare to take a different approach than if you were dealing with your own server(s) or internal network, and abandon the traditional methods towards access controls, security etc. When it comes to public cloud, strict policies need to be put in place to ensure access privileges are respected and only specified people can make configurations.
3. Support and autonomy
Following on from the last point, if you need to bring in outside expertise to make sure your solution is optimal, be prepared for a certain amount of dependence on that contractor moving forward. In an ideal world, your in-house team would be proficient enough to manage your solution in the future, so you retain total autonomy – but given the current cloud skills gap, this is unlikely. Having the right support on hand for migration and beyond is simply invaluable.
Key support advice:
- Reliable and familiar: Big public cloud providers such as AWS or Azure will provide support – up to a point. Response times may not be fast and it’s likely that they’ll only be able to offer advice related to your core infrastructure. Migrating to one of these platforms via a managed service provider (MSP) adds an extra layer of support. You can deal directly with the MSP instead, who are certain to be more responsive, more helpful and more knowledgeable about your solution. At UKFast you’re allocated your own dedicated support pod, so you’re guaranteed to talk to someone familiar and who knows your solution inside out if you ever need help.
- Key dependency: If you use a contractor to support your migration, what happens when they leave? Even if you have a developer or specialist on your IT team whose core responsibility is to look after your solution, there’s always a possibility that they’ll move on eventually. Where does that leave you? Once again, working with an MSP from the offset could offer the safety net you need to protect the efficiency of your solution – no matter what, you’ll have access to the right expertise.
Working through the considerations above should give you a good idea of how ready you are to embark on migration. It’s important to remember that AWS or Azure are just toolkits – it’ll fall to you to put the services together, network them safely, configure them to scale, bug fix issues and overcome any other challenges. Luckily, we’re here to help.