Still not sure which cloud deployment or service model would be a match for your business needs? Or maybe you’re not really at home with all the cloud-related concepts and need a straightforward guidebook that will make cloud computing clearer for you? You’ve come to the right place.
We’ve combined all cloud-related articles from our blog into this comprehensive guide for everyone who considers building a cloud-based solution or migrating their software to the cloud.
Without further ado, let’s move on to the first important concept you’ll surely come across when considering cloud adoption: the choice of a cloud deployment model.
What are the cloud deployment models?
Cloud comes in various shapes… or rather deployment models. Each one fits different business needs and it may be tricky to choose the most suitable one if you’re not well-versed in the topic.
A cloud deployment model specifies who has access to the infrastructure and uses it: whether it’s for your exclusive use or it’s a shared solution. It may also be a combination of both.
So, let’s now take a close-up look at four main cloud deployment models: public cloud, private cloud, hybrid cloud and multicloud and see how they differ in cost, easiness of setup, control level as well as scalability.
A public cloud is hosted by a third-party provider who manages the whole infrastructure: both the hardware and software. You can also manage it to a certain extent, but not like in a private cloud. The name “public cloud” means that the cloud service is accessible to the public, but the data stored in a public cloud isn’t available to everyone.
What level of control does a public cloud give? You can configure and to some extent manage the network, load balancing, or routers, but you can’t decide about what machine is allocated to you.
Some of the main pros of a public cloud in comparison to other deployment models are:
- no need to invest in and be responsible for hardware,
- cost efficient pay-per-use model,
- very high scalability,
- software licence included in the price
However, it’s important to remember that there may be some government policies, industry standards or legal requirements specific to your business niche that public cloud platforms may not be compliant with.
In the private cloud, you have the cloud infrastructure for your exclusive use. The servers are provided by a third-party vendor, for example, a data centre.
The key advantage of a private cloud deployment model is that it can be tailored to your needs thanks to flexible configuration options, allowing your solution to meet very specific business or legal requirements.
There’s another side to the coin, though. In the private cloud, you only get virtual machine and network access for a start. If you want to set up and manage the environment, you’re left to do it on your own. The SLA can be lower than in a public cloud and there are no pre-built solutions or additional services to help you make the setup and management easier. Therefore, to have everything up and running you’ll need the help of IT specialists.
If one of your needs is high scalability, a private cloud may be a less favourable option for you. The limited possibility of hardware extension makes it less scalable in comparison to a public cloud.
A hybrid cloud is a combination of a private and public cloud or a cloud with on-premise infrastructure. In this model all the infrastructures are connected, enabling data flow and integration.
A hybrid cloud offers the benefits, but also the downsides, of the two worlds. It’s cost-efficient because if you don’t need part of your resources, you can move it to on-premise and vice-versa. However, configuring a hybrid cloud and making sure that everything is smoothly linked together for example through a VPN is not easy and requires expert knowledge and skills.
It’s worth noting that a hybrid cloud model can be useful when migrating your business to the cloud as it ensures the continuity of processes.
Multicloud refers to using more than one cloud from multiple vendors.
Multicloud may be a model worth considering if you’re looking to optimize the cost or to gain a competitive advantage. One cloud deployment model may better address your requirements for solution A, while the other one – for solution B. The only challenge is a tricky cross-cloud connection that requires expert knowledge and skills.
What are the cloud service models?
A cloud service model specifies the scope of control over and responsibility for the infrastructure and data that can either be more on your side or the provider’s side, depending on your needs.
SaaS vs PaaS vs IaaS: pros and cons
Infrastructure as a Service (IaaS)
IaaS (Infrastructure as a Service) model gives you access to servers, storage, network and includes virtualization. Your developers’ job is to take care of the operating system, middleware, runtime, data and application itself.
The advantages of IaaS are:
- It’s easier to manage than on-premise things related to security or configurations are handled by a vendor.
- It offers flexibility as it’s the most customizable option out of the three cloud service models.
- You don’t have to worry so much about vendor lock-in because you aren’t so closely tied to a specific cloud provider.
- IaaS is a good solution for migrating legacy apps that aren’t cloud-ready because it’s flexible to configure.
However, high flexibility entails additional responsibility on your side. In IaaS your developers are in charge of keeping the environment up to date and do regular backups as part of the maintenance tasks.
Platform as a Service (PaaS)
PaaS provides your developers with the components for developing your software. You don’t have to worry about servers, storage, operating system, runtime, or virtualization. Your developers can instead focus their efforts on developing software.
The benefits of PaaS include:
- Shorter deployment time because you don’t have to create and configure your own work environment. You can use ready-made tools or options to do some routine tasks.
- No need to worry about system or component upgrades. It’s all vendor’s duty.
- In many cases, PaaS solutions are easier to scale than IaaS or SaaS.
PaaS solutions also have some limitations. The older applications may not work well in this model, and eventually, during the migration, they may need to be refactored or rewritten. Also, with PaaS, in most cases, you become tied to and dependent on a single vendor.
Software as a Service (SaaS)
In SaaS, the provider develops and manages the software in the cloud environment and takes care of its maintenance. As a customer, you get a ready-made product. Everything else is the provider’s responsibility.
SaaS offers two main benefits:
- It’s an up-and-running solution that doesn’t need development or handling the hosting by your team.
- There are no initial setup costs because everything is covered within the monthly subscription.
As with any ready-made solution, SaaS also has its downsides. The major one is limited customization. You can’t really have it tailored to your specific business needs. The other disadvantage of this model is no control over the infrastructure. You have to trust the vendor in everything.
Is the cloud secure?
This is one of the most fundamental questions that comes up in almost any discussion about the cloud.
No matter if you keep your data in a private or public cloud, you need to make sure that all the security procedures and standards are in place. Public cloud providers adhere to the shared responsibility model: they give you the tools to keep your data secure, but you as a user need to know how to make use of them in the right way.
Very often public cloud providers have the highest security standards as well as the knowledge of and access to various, complex security solutions, which makes public cloud even safer than on-premise infrastructure.
What does the cloud migration process look like?
Let’s now take a look at what lies ahead of you if you plan to move your application to the cloud.
There’s no one-size-fits-all approach and everything depends on your specific needs. However, without getting into too much detail, we can put together a high-level cloud migration plan.
Step #1: Establish the cloud migration scenario
At this step, you need to make a decision whether you want to do a full or partial migration to the cloud and choose a cloud deployment model.
Step #2: Identify your needs
Since during the migration the access to some data may be hampered, decide which infrastructure elements you absolutely need to have access to. This will also help you more accurately determine the size of cloud infrastructure, what impacts the costs.
Step #3: Implement a cloud migration strategy that fits your needs
There are six approaches to cloud migration (also known as 6Rs):
- Rehost (Lift & Shift)
- Re-platform (Lift & Reshape)
- Repurchase (Drop & Shop)
Before the migration starts, you should also have a plan on how to prevent or address possible challenges on the way. Below you can read about a few common ones.
What are the challenges of cloud migration?
The two top challenges that may disturb the success of migration are: insufficient preparation and too much data to migrate at once.
To avoid them, first of all, you need to go through your ecosystem and identify all elements that are to be migrated to the cloud, analyse their cloud readiness and determine which migration method is the most appropriate. Secondly, you should check if the bandwidth of your internet connection allows transferring a required amount of data at a fixed time. If not, cloud vendors offer special services that will accommodate large amounts of data for it to be transferred in and out of the cloud.
Successful migration may not be possible if there’s not enough knowledge and skills to handle it properly. If you don’t have qualified specialists in your team, you should consider outsourcing the process.
How are cloud solutions evolving in 2020?
We asked this question to one of DevOps Engineers, Marcin Szremski:
“The focus is on serverless, simply due to the fact that the lack of servers takes away the burden of having to manage and maintain data centre infrastructure. Dispersed cloud environments offer flexible solutions that guarantee effectiveness and scalability.”
Are there any limits to what cloud solutions can handle?
According to Marcin Szremski, the sky is the limit:
“It’s difficult to find a solution where cloud can’t be applied. Even government institutions are using cloud services. There are limits to what cloud can do but these are almost non-existent and they are mostly caused by the legislative regulations and policies of each country.”
Hopefully, the theoretical part of this guide, has made the cloud less confusing for you. Now, let’s take a look at the real-life case of the cloud implementation, that we’ve conducted for one of our clients: TakTo.
TakTo is a financial company located in Wroclaw, Poland. Using their services, the customers can take loans through an online chat and repay them via a dedicated customer platform.
For many years, TakTo has been using servers that needed to be maintained and scaled up at a physical location outside of their headquarters. It became troublesome in the long run and the team needed to be able to access the servers more conveniently. Also, the physical space where they kept the servers was costly and had to be kept in optimal conditions, so a technical staff was employed to take care of the machines. The outdated infrastructure needed near-constant investments.
Our team at Spyrosoft analysed the needs and available solutions and quickly concluded that migration to the cloud would be the way to go. The challenge was that customers had to be able to use the application without any interruptions, at all times. Therefore, the migration was divided into a few stages. We also took the ‘lift and shift’ approach where the whole process is completed with little to no changes.
The final stage of the process was focused around TakTo’s databases which were extensive and from the technical point of view, the trickiest element to move to Amazon’s virtual servers. All data had been preemptively secured through a series of backup transfers that would allow Spyrosoft’s team to access and upload them easily if any of the services would not operate as expected.
As a result, TakTo has been able to stop using physical servers and can now add virtual machines if they need to. This allowed them to save money and gave a lot of flexibility, so they can act faster and shorten the time to market for new services.
What is virtualisation and is it the same as the cloud?
Together with our Head of DevOps - Marcin Szremski, we dive deep into the topic to answer that question and show how these two are linked.
Virtualisation came from the need to utilise resources effectively and can be simply defined as shared resources. It means that we can run multiple virtual servers on one physical server. That solution provides us with many benefits like testing our applications on multiple environments (e.g., different OS platforms) without the need to buy additional computers.
HOW DOES IT WORK?
For Virtualisation, we need something called a hypervisor. You may know some popular hypervisors such as Microsoft Hyper-V, VMware ESXi, or Xen, but did you know that Microsoft Virtual PC or Oracle VM VirtualBox are hypervisors too? Generally, we can say that all of them are doing the same thing, which allows us to run multiple operating systems on a single physical host. All hypervisors can be classified into two groups:
Type 1 - hypervisors, which are installed directly on the host hardware, and they control it.
Type 2 - hypervisors, which are designed as software for a traditional operating system.
Cloud computing is another step in the evolution of virtualisation.
First, what you must know is that all Cloud providers use virtualisation to host their services.
- AWS - Xen and Nitro Hypervisor (rebuilt by AWS for their needs KVM)
- Azure – Rebuilt by Azure Hyper-V
- GCP - KVM
So, as you can see, we cannot say that Virtualisation and Cloud Computing are the same thing. Cloud is a solution built on virtualisation.
There are cloud services, in which we don't have to care about servers, networks, storage etc. Cloud is not only virtual servers which we can create in a second and a few minutes later remove. It also gives us the opportunity not to worry about licences, space in the server room, or even unused servers which we bought. We will pay only for what we use and when we use it. In the cloud, we can find many services that are ready to use. We don't have to care about the underlying infrastructure. Of course, under the PaaS service, we will still find hardware and hypervisor systems, but responsibility for that part is on the cloud provider site. We can focus on our core business.
Ready for cloud adoption?
Moving to the cloud is a multi-step, complicated process that may require expert help to avoid difficulties and overcome possible challenges, one of them being insufficient knowledge and skills. Our team of experienced cloud engineers can advise you on cloud infrastructure and take care of the whole process, including code and documentation review as well as producing high-level architecture.