Choosing the right cloud provider that covers 100% of your project needs and resolves all problems is a task that can be influenced by subjective opinion when really it is something that should be analysed more objectively, given that it is the starting point of a journey with important implications for the future of an organisation.
In this guide, I wish to highlight certain points to bear in mind when choosing the best option for particular requirements. Although everything centres around the big three providers of the public cloud (Amazon Web Services, Azure, Google Cloud Platform), our aim is for this guide to be applicable to any cloud provider.
We will look at 10 points that I consider key when reflecting upon the most suitable cloud platform for a technological project, including aspects such as services offered (these may be very similar but the fine details could make a difference); security and compliance; the flexibility of issues such as APIs or community; the importance of the SLA as well as the need to consider the strategy and vision of the business in the decision-making process.
One of the most important aspects to bear in mind when choosing a public cloud provider is the portfolio of services on offer. Although the offer of services between the different providers may be very similar, the implementation of each in detail is different and it could be these details that are decisive.
Undoubtedly, this is fundamental. The three aforementioned providers, AWS, Azure and GCP, provide the necessary security measures to ensure that cloud application development and architecture are secure and reliable. Usually, each provider implements a model of “shared responsibility” which guarantees that all managed services and the physical infrastructure used for each service is secure and further provides additional layers of security for protection against specific threats.
This concept is closely linked to the issue of security. If the project or architecture has very specific requirements in regard to legislation or security, we must be assured that our public cloud provider can satisfy these requirements to ensure full compliance with all policies required.
When designing software architecture there are certain points and good practices that should always be considered and as well as ensuring that we meet these requirements, we must also ensure that the chosen provider guarantees their compliance.
Whilst from a purely technical point of view, price should not condition the choice of a cloud provider, it is certain that for a number of other factors we must bear this in mind when making a decision. Fortunately, as users, developers or SysAdmins it is an advantage that the large cloud providers are competing to offer the best price for each of their services.
For developers, architects and SysAdmins, it is very useful for the provider to have an API with which to interact.
Support and community
As with any other tool we wish to use, the availability of a wide community is essential when choosing the right provider. When we are working on the infrastructure, something will go wrong at some point and at this time it is vital to be able to rely on the help of those who may have had the same problem, enabling us to resolve the issue quickly, efficiently and without cost.
The dreaded Vendor Lock-In. In most projects we undertake in the cloud, this concern always raises its head at some point (or from the start of the project). Vendor Lock-In refers to using the particular technologies of a specific cloud provider that are totally incompatible with those of other providers; so that we are ‘tied’ to this provider and migrating our architecture to any other becomes too complicated and difficult to take on for time and cost reasons.
It is important to know which strategy we wish to implement for our cloud environment since we must guarantee that whichever strategy we choose, the provider must meet all requirements. There are various types of strategy to consider, such as testing/PoC, migration, hybrid cloud and cloud-native applications.
Deciding to migrate our business model to the cloud involves aspects other than the purely technical. If we want migration to be successful and the new cloud model productive, we have to be able to rely on all departments in our organisation given that the journey towards the cloud involves the whole company and we have to make adjustment on all levels. Two important perspectives to be looked after are Business and People.