What is โThe Cloudโ?
The cloud is synonymous with modern computing. A majority of businessesโfrom startups to massive corporationsโuse it in some capacity to augment or streamline their existing operations, data storage, hosting, and app deployment. So what is the cloud and how is it changing traditional server setups across the globe?
The U.S. National Institute of Standards and Technology (NIST) defines the cloudย as โa model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.โ
In short, itโs allowing companies to reengineer their back-end architectures (servers, databases, application software, and more) and put them in virtual environments where they can be accessed remotely, without requiring physical server hardware of their own. Cloud services (also known as web services) are a blanket way to describe these computing capabilities.
The benefits of using cloud and web service providers
Adopting anย infrastructure-as-a-service (IaaS)ย platform like Amazon Web Services (AWS) or aย platform-as-a-service model (PaaS)ย from a provider like Heroku can take some of the responsibilities of hosting, maintaining, updating, and scaling up server operations off the hands of developers and IT managers. An IaaS will provide you with all the components you need to build a backend architecture, offering flexibility and plenty of scalability. Note that deploying a site or appโs back end to the cloud with an IaaS requires more configuration, while deploying with a PaaS doesnโt require as much configurationโjust enable the services you need within the platformโs environment, push the code to it, and it handles the rest.
While their clients benefit from a virtual environment, cloud service providers themselves have massive data centers that are as big as multiple football fields. These servers are usually set up in a way that some can fail (or, even a majority of them), but not in a way that all of the services will be taken down. Itโs important to know that itโs still possible for cloud computing to have a single point of failure, or to have certain services fail.
This has brought about the need for more engineers who know how to integrate, work with, and fix cloud-based operations. You may not need a full-time network engineer if youโre operating in the cloud, but youโll definitely need a skilled development operations professional to ensure things run smoothly.
Hereโs a look at a few of the top providersย in the cloud services market:
- Amazon Web Services (AWS): Popular with startups looking to get things going in the cloud for cheap, this platform is also powerful enough for large, enterprise operations.
- Google Cloud Platform: This popular PaaS offers cloud computing, storage, big data and API services so you can build and launch sites or complex applications in the cloud. It offers things like SQL and NoSQL database services, analytics, virtual machines, all of which can be mixed and matched to suit your needs.
- Microsoft Azure: An enterprise-level Paas and IaaS cloud provider, it offers mobile and web app deployment and scaling, database services, virtual machines, mobile back ends, machine learning, and more.
- Heroku: A popular PaaS where applications can be completely built, deployed and run in the cloud.
- Rackspace: This PaaS offers cloud computing through its infrastructure (either dedicated servers, public cloud, or private cloud, all of which can be mixed and matched for a hybrid environment), or their partnerships with Azure and AWS.
- Cloud Foundry: This open-source PaaS written in Ruby and Go offers cloud computing services with an enterprise-grade option, Pivotal.
- Xen Cloud Platformย (XCP): This open sourceย virtualization solution that provides cloud computing and back-endย virtualization. XCP includes an enterprise-ready set of tools with theย Xen Hypervisor, with theย Xen API for cloud, storage and networking operations.
- Oracle: This enterprise giant has made recent updates to its cloud capabilities, helping big businesses leverage the cloud, but also offering small- to medium-sized businesses cloud computing services.
- Apache Cloudstack: a free, open-source cloud software for creating and deploying cloud services that has excellent support for virtualization and the AWS API.
Beyond data centers: making the move to the cloud
With the rise of the cloud, the server landscape is rapidly changing, with more server-side operations being pushed off-site. Small, medium, and enterprise-level companies can easily expand the size, storage, and processing power of their servers in a way that takes less time, and less money.
For startups in particular, these cloud-based platforms take server upkeep and support off their plates so they can focus on growing their businesses. They also offer flexibility and speed, with the ability to scale up quickly when needed. Scaling up can be hard to do in a physical data center: ordering new hardware, provisioning, and racking, and stacking can take anywhere from three to six weeks. In the cloud, you can provision capacity on the fly.
The key to moving to the cloud is striking the right balance for your organizationโwhether thatโs a hybrid approach or all-in.
Adopting a hybrid cloud approach
A majority of businesses are finding that aย hybrid approachย works best, leaving some things on traditional, local servers and moving more resource-heavy applications to the cloud. This can be a permanent strategic solution, or a stop along the way to going 100% cloud-based. There are benefits to leaving certain portions of your back-end infrastructure on virtualized local servers or co-located data centers, while moving more resource-heavy applications to the cloud.
For example, migrating a back-end architecture to Amazon Web Services (AWS) allows for automatic scaling, the ability to fail over multiple availability zones, its accommodations for peaky traffic and intensive operations (e.g., some of our machine learning models), and the ability to free up a team to focus on application-specific work rather than solving problems Amazon can address.
Public cloud vs. private cloud
A common approach is to divvy up a serverโs workload with a mix of private (onsite) and public (cloud services) clouds. Larger, enterprise companies often opt for a private cloud/onsite server architecture. One reason? Protecting sensitive data.
For some organizations in regulated industries, like finance, there are restrictions on what information they can store in the cloud. Because of this, they have to strike a balance between storing sensitive information on-site while still making it available in the cloud, so they can take advantage of the agility and scalability the cloud offers.
Critical appsย are often better suited for a private cloud for security and reliability reasons. The main concerns with critical apps are performance (speed, reliability, and no downtime) and security of your information. A privately hosted cloud is a good bet for these, giving you more control along with the flexibility you want.
Less critical appsย like web servers, backup services, and infrastructures are safer in the public cloud. There, youโll get servers that allow you to free up space on-site, plus the benefit of temporary scalability if you need it, with increased capacity just a click away. Also, a public cloud configuration can even be treated like software code and placed in a repository where developers canย edit, adjust, and run tests against your current configuration, which is helpful for ensuring a successful deployment, and for getting the most out of the cloud.
Should you move to the cloud? What to consider before deploying to the cloud
For small businesses, there are some clear advantages to using the cloudโwhether itโs going entirely to the cloud, or using a hybrid approach that breaks up your server workload between an on-site infrastructure and the cloud.
The benefits? Itโs an invisible, offsite server that you can scale up when and how you want. If you have an application that requires a lot of space, data, or resources, you can shift that over to the cloud while freeing up space in your current setup.
Small businesses can strike a strategic balance between traditional on-site servers and cloud servers, so itโs important to ask yourself a few questions about your setup before choosing the one thatโs right for you. And if you're not sure you can always seek the advice from cloud consulting specialists.
- Take a look at your existing back-end infrastructure.ย What are your requirements, and what are your end-userโs requirements? What will diversifying to the cloud do to help with these? Consider compatibility of your server-side software. While some businesses donโt move all of their server-side architecture to the cloud, itโs helpful to ensure cloud compatibility in the components they keep on-site.
- Decide what should go where.ย Plan how youโll virtualize your back end. If youโre a small business, basic server functions like an email server or an app server could probably stay on-site. Or, apps that donโt require as much data storage could stay local, too. Be sure to prioritize your needs. You may opt to divvy up the workload with a hybrid cloud environment, keeping mini servers on-site to handle smaller workloads, like file sharing servers. These can even be designed to sync up with cloud drives.
- Whatโs your budget?ย This will help narrow down which cloud service is right for you. The great thing about the cloud? Flexibility. If you start out small and find you need more, you can easily upgrade subscriptions or buy more dataโno need to switch out hard drives.
- Who should you hire or have on your team to help?ย Do you have a server professional available to help with maintenance or fixes? Because you donโt have to worry about hardware with cloud servers, it can be a more seamless integration for IT professionals, but itโs not without its quirks. Make sure you have a dev ops engineer who has plenty of experience integrating with the cloud and handling issues with network reliability that can arise.
- How scalable does it need to be?ย How much growth you anticipate in terms of traffic and data for your application or siteโs server play a very important role in how you decide to set up your server. Youโll want to be able to expand your server space without having to totally replace it, whether that means starting with a setup that allows you to switch out hard drives for hard drives with more memory, or virtualizing your setup across numerous smaller servers.
- Security. Security is always a big concernโif you have very sensitive information being stored on your server, you may opt to keep that on-site while moving less sensitive information to the cloud. Or, go for a private cloud/hybrid cloud environment that allows you to maintain a more secure environment, and lets your IT professionals keep tighter control on what data is stored/shared where.
The need for cloud engineers
From a talent standpoint, running your server operations in the cloud means you wonโt need the same network and storage engineers on hand to take care of day-to-day server issuesโbut maintenance and support wonโt be totally off the table.
Look for a cloud server architectย with plenty of experience deploying operations to the cloud. Some key skills and expertise to look for in a dev ops engineer are:
- Configuration management skills: Chef, Puppet, Ansible, etc.
- Virtualization experience: VMware, Kernel-based Virtual Machine (KVM), Xen, etc.
- Public cloud experience: Amazon Web Services, Google, Rackspace