The cloud broken down

The cloud broken down

Over 15 years ago the internet, technology, and the business world was a much different place. Companies had servers at their offices and possibly in the data centers as well. But having IT infrastructure was cost prohibitive creating a high barrier of entry for many business and entrepreneurs. Technology usually builds on itself, the advent of virtualization was able to make having a large data center obsolete in a large number of cases. Helping to move away from the need to have a physical servers that did multiple tasks or God forbid individual servers that only performed one task. Vitalization simplified that by allowing multiple workloads share the same hardware without having to invest in large amounts of expensive servers. Virtualization then led way to the cloud. The cloud allows someone else to run data centers that you can put your workloads in.

The cloud can easily be broken down into 3 different deployment models. They include SaaS, PaaS or IaaS. Each type has use cases that have positives and negatives.

SaaS

SaaS is probably the model that you are most familiar with as a consumer. SaaS (pronounced Sas, rhymes with pass) is an acronym which stands for Software as a Service. You use SaaS software all the time and may not even realize it. Some examples of SaaS software are Dropbox, Microsoft's Office 365, even Gmail could be considered a SaaS product.

The positives for SaaS include the fact that once it's setup, there is no need for IT staff, or in some cases, setup is so simple anyone can do it. There is no need for expensive servers, as long as you have an internet connection you can probably use the software.

While the negatives are that you have to work within the confines of the SaaS providers vision and timelines. For example, if you would really like a text field for a middle name in your SaaS CRM you may have to wait till it's added in Q2. SaaS solutions can also be expensive because you are paying for the hosting of the services as well as the development of the software.

IaaS

IaaS (pronounced "I az") stands for Infrastructure as a service. Most simply it is virtual machines and networking. It the closest thing to the old paradigm of having virtual or physical servers that are separated to do different workloads. IaaS is considered by some to be the most powerful option, but also has the most overhead. To leverage IaaS it is best to have a understanding of IT infrastructure. This is because you are responsible for almost all the security and design.

There are some things that you can lean on the cloud vendors for. The days of a IT employee rushing to the data center at midnight because of a failed hard drive are over with IaaS. That's now the cloud vendors problem.

At the end of the day they give you so much flexibility that you can really get yourself in trouble. You are also totally responsible for the "care and feeding" of the servers. You need to apply all security patches and manage resources like RAM and CPU. You are also responsible for networking security, making sure to keep the bad guys out of the network and off the servers.

IaaS is the most expensive of the cloud models for many factors: leaving VM's on 24/7 is very expensive, you will need to be or have IT professionals available to help with the architecture as well as maintaining the servers to keep them running and secure.

PaaS

PaaS (pronounced "Paz") stands for Platform as a service. This one has been one of the most transformational aspects of the cloud. PaaS allows anyone that can write code to deploy software easily without having to deal with all the complexities of configuring Operating Systems, installing applications, opening ports, or understanding SNI. So someone still needs to be technical, but they don't need to know everything. They can even make things like resiliency to failure as easy as checking a checkbox on a web page. Another nice thing about PaaS is it can encompass many different things. PaaS can include a web server, or a database platform, or even just a simple repeatable process. When entire servers don't need to be dedicated and PaaS can be used, this is often called "cloud native". Cloud Native just means the application was written specifically to take advantage of the PaaS offerings.

PaaS also allows someone to try a new technologies fairly easily and for a reasonable price. For example; AI considered to be the next big thing. If a small software company that used servers in a data center wanted to add LLM's (one of the main technologies behind AI) it could cost a small fortune to get all the hardware necessary to run it, but with PaaS, you can easily implement these technologies and the cost is spread amongst all the cloud providers customers.

PaaS also allows for offloading some of the security to the cloud vendor. Cloud vendors simplify the setup and handle basic security, adding additional security options for a fee. That does not mean that you don't need to write secure code, but it does mean that you don't have to have someone spending their evenings patching servers outside of business hours to impact the fewest customers.

Some of the downsides to PaaS include lock in. Moving some things between cloud vendors is not possible without rewriting some of all of your code. You are also at the mercy of the cloud vendor when they have an outage, and they will have an outage. That is not a question of if, but when.

In Conclusion

Choosing how to deploy to the cloud depends on a lot of things. What your ultimate goals are, how technical you or your team is and what technical discipline those skills exist in. SaaS is great for non technical people that just want to get work done easily. IaaS is ideal for moving a workload from the data center to the cloud or or if the application is not cloud native. PaaS works really well for quickly deploying new tech or for startups that just want to get a minimum viable product up. The stage in the life cycle of the company or project will really help decide which path is best. Other things can impact this decision as well, like budget. Lastly, nothing stops you from using different models at the same time.  There is nothing wrong with have a web server running in a VM, using IaaS, while the backed database runs in a PaaS.  Ultimately these are all different tools in your toolbox that can be used to make the best experience you can.

At Nixpar we want to help you on your cloud journey.  We have years of experience with multiple cloud vendors for each of the deployment models above and can help you plan your deployment or migration. Please fill our or contact us page and we will reach out to you and see how we can help.