051.3 Lesson 1
Certificate: |
Open Source Essentials |
---|---|
Version: |
1.0 |
Topic: |
051 Software Fundamentals |
Objective: |
051.3 On-Premises and Cloud Computing |
Lesson: |
1 of 1 |
Introduction
Everyone is talking about the cloud nowadays. Businesses are evaluating services from a range of vendors — including major companies such as Amazon.com and Microsoft — to see what the cloud can offer.
But the idea of cloud computing goes back only to the late 2000 decade. And the term is a vague one — so vague that many people, including the Free Software Foundation, discourage the use of the term.
However, the idea of cloud computing embodies some specific useful concepts, and is a crucial trend in modern computing. This lesson looks at what the cloud is and, at a high level, how it works both technically and financially. We’ll look at benefits and risks of the cloud. Along the way, we’ll see why this topic is related to open source.
On-Premises and Cloud Computing
If you work or study in an organization that has more than a couple computer systems, it almost certainly has a data center: a separate room to hold the organization’s servers, usually locked and air-conditioned. An on-premises (or on-premise) data center is simply one that the organization maintains for its own use.
There are several alternatives to running a data center on-premises. For decades before the trend we call “cloud computing,” businesses would set up data centers that hosted computers on behalf of clients. Thus, you might license five servers from the business, and give the business various specifications for CPU, memory, and storage, and then upload your software to the servers. This business model is remote hosting.
Remote hosting offers many advantages. The organization can effectively outsource the administrative expertise of buying and setting up servers to the remote hosting business, which could get bulk purchases. In other words, you avoid the responsibility of having an on-premises IT infrastructure. The remote hosting business ensures physical security, also freeing the client from that worry. Finally, setting up a new server on a remote hosting business is much faster than buying, shipping, and setting up the server on-premises.
An organization can also maintain an on-premises data center while licensing more servers in the remote environment to recover from disasters or provide extra compute power during periods of heavy use.
Note that remote computing assumes the presence of a fast and reliable network. We’ll explore this issue along with other benefits and weaknesses in another section.
All the advantages of remote hosting apply also to cloud computing. Cloud computing is technically different because no particular physical computer is devoted to your organization. Instead the cloud vendor runs multiple systems for multiple clients on each physical system, using an extra layer of software known as virtual machines.
Thus, a cloud service runs a data center like any other organization, but serves other organizations instead of (or in addition to) itself. The data center stores thousands of physical computers. On each physical computer it runs an operating system (usually called a hypervisor) that supports multiple virtual machines. Each virtual machine can be spawned and deleted quickly. Each virtual machine supports one operating system run by a client (Cloud computing).
Where does free software and open source come in? When a business is running huge numbers of computers and deploying operating systems on the fly, it’s important not to get bogged down dealing with licenses. Although there are licensing models for proprietary operating systems in the cloud, they are more complicated than simply running an open source virtual machine and operating system. Open source is usually cost-free, too.
The beginning of cloud computing is usually traced to Amazon.com’s launch of Amazon Web Services (AWS) in 2006. There are now dozens of cloud companies, including offerings from such big vendors as Microsoft, Google, Alibaba, and IBM. AWS is still the largest offering. The vendors compete fiercely on developing new features and services, because they are all strong on cost and reliability.
The advantages of cloud computing build on those of remote computing. Costs are lower because one physical system can run many servers for many clients, and can be kept busy constantly. A client that needs more computing power quickly for a spike in usage can spawn new systems in seconds. The systems can be managed automatically through an application programming interface (API). Again, we’ll take a closer look at benefits and risks later.
Common Cloud Operation Models
Before detailing operation models, it’s worth noting that many companies have adopted cloud models that totally change their way of programming and offering services. Instead of updating each application once or twice a year, the companies allow rapid updates. They can do this because the cloud allows them to shut down virtual machines and start up new ones almost instantly with the new version of the application. The organization can also scale up and down quickly, so they like to break applications into many modular parts, sometimes called microservices.
But in this section we’ll focus on everyday cloud models.
The cost model for the cloud is very different from on-premises costs. On-premises data centers require the one-time purchase of a server, along with routine costs for power, air conditioning, and administration. These disappear when you license systems from a cloud vendor. Instead, you are charged for what you use. Cloud vendors divide your computer usage into time periods and charge you for each period. They also charge by the amount of data you store on their systems.
So far, we’ve been talking about vendors who offer compute power to customers; this is called the public cloud. But there can also be a private cloud. Some large organizations run their own on-premises data centers like a cloud. They provide services only to their own departments or subdivisions, but they treat each of their departments like a client of a cloud vendor. The data center keeps track of how much compute time, data, etc. is used by each department and charge it for that usage.
Many organizations use multiple cloud services for various reasons, such as to protect against vendor failures, keep data in a certain geographic region, or take advantage of special features offered by a particular vendor. In addition, it’s common to maintain both an on-premises data center and servers in the cloud, a practice called hybrid computing.
A client who signs up for a cloud service can choose which geographic regions to run in. For instance, Amazon curently offers regions in the US West, US East, several regions in Europe, and more regions in every part of the world. Normally, you’d choose the region closest to you. But many organizations want to operate in multiple regions because they are international in scope. The organizations sometimes need to keep data in a particular place to adhere to Europe’s General Data Protection Regulation (GDPR), or China’s Personal Information Protection Law (PIPL).
Each region normally is further subdivided into zones or availability zones. Running in multiple zones is recommended in case a disaster causes one zone to go down.
Although the cloud is notable for sharing physical computers among multiple clients, some vendors can devote a single computer to a particular client who is worried about security. Because no other organization is using the computer, the client feels a bit safer running their sensitive services and uploading their data to the cloud. This option brings cloud computing closer to old-fashioned remote hosting.
Common Types of Cloud Services
At different levels, cloud computing looks very different and is aimed at different types of users.
Infrastructure as a Service (IaaS) is the category that system administrators usually deal with. IaaS provides just hardware and the software that supports virtual machines. It’s up to system administrators of the client to load an operating system and their desired applications onto the virtual machine. The system administrator handles nearly everything the same way as on an on-premises data center.
Platform as a Service (PaaS) is a more recent invention, used mostly by programmers. Here, the programmer doesn’t worry about the operating system and doesn’t have to load the libraries that the program uses. All of that is provided by the cloud vendor. The programmer just uploads functions that run on the platform. A related concept is serverless computing.
Software as a Service (SaaS) is an application running on a cloud system. Every time you log into a social media site, order an item from an online store, visit a web page to enter your hours into a job tracking system, or enter a form on a government site, you are using SaaS. The bulk of the application is running on the remote system, and the only part of the application running on your computer is the web page displayed by your browser.
Database as a Service (DaaS) is often added to the preceding categories. A data service, Amazon’s S3, was actually the first cloud offering. A DaaS offering can simply be an instance of a popular database server such as MySQL, Oracle, or MongoDB running in the cloud. Big cloud vendors also offer propriety databases that run only in their cloud offerings. In any case, you read and write the database as if you had it on your systems.
Other variations on those basic categories are offered by some companies, such as Security as a Service.
Major Benefits and Risks of Cloud Computing and On-Premises IT Infrastructure
Before examining cloud computing in detail, let’s try an analogy. Running an on-premises data center is like buying a house. If the basement floods or the boiler stops working, you need to find someone to fix it. In contrast, remote hosting and cloud computing are like renting an apartment: The landlord is responsible for fixing the boiler. Furthermore, in the cloud you can quickly add and remove data loads, just as you can change apartments more quickly than you can change which house you own.
In an apartment, a landlord might even provide appliances and furniture. In our analogy, this is like the numerous services that cloud providers offer, such as databases and analytics.
Now we can look at the benefits and risks of using the cloud, instead of or in addition to your own data center.
Flexibility is probably the most compelling reason to move to the cloud. If you’re a retailer who needs to run more servers near Christmas, or a tax preparation accountant doing most of your business at tax season, you’ll want the cloud in order to spin up new servers at a moment’s notice and then delete their virtual machines later.
Costs can be lower in the cloud for several reasons. You are sharing a physical server with many other applications, so the computers are used more efficiently. Because cloud vendors are large, they can achieve economies of scale in purchases, administration, cooling, and other infrastructure requirements. Finally, the clients are freed from many administrative tasks—although system administration is by no means going away. Clients still need system administrators to create and upload their software (known as instances in the cloud), to authorize users, and other tasks related to business operations. System administrators have to learn the vendor’s API and the rules for using the service, a training cost you should factor into your plans.
On the other hand, you have to be careful how much use you make of the cloud. It can be hard to keep track of how much computer power you’re using when you can quickly spin servers up, especially if you automate your scaling. You might find an unpleasantly large bill at the end of the period.
Is the cloud more carbon-efficient than running our own computers? Research finds that cloud vendors can run their systems much more efficiently than you or I can. But we have to communicate with those systems over a network, which requires a lot of electrity to power all the networking equipment. So unfortunately the cloud increases our carbon footprint.
Service availability is sometimes better with the cloud. Certainly, if you depend on your own on-premises data center, you are vulnerable to all kinds of problems ranging from natural disasters to malicious internal saboteurs. But data centers in the cloud also go down. So you should take advantage of the different availability zones and spread out your risk. There are tools that allow you to switch your services from a failed zone to a working one.
If you use the services offered by the cloud vendor, such as a database in the cloud, you are vulnerable to bugs in that service. Of course, you can also suffer from bugs in the software you load into your system.
A greater risk in using vendors' services is lock-in. You can usually find an automated conversion tool to move your data out of the vendor’s system and into a new one, but the tool might not do a complete job.
Security can be better in the cloud because the vendor’s staff are probably more expert than your security staff. On the other hand, cloud vendors are big and well-known, furnishing obvious targets for attack. Also, adding an extra piece of software -— the hypervisor that controls the virtual machines -— introduces a new potential hazard. Researchers have found vulnerabilities in hypervisors.
Although the client remains the legal owner of its data, storing the data in the cloud theoretically leaves it more vulnerable. Usually, the client encrypts the data to protect it in case of a break-in. Privacy regulations, such as the previously mentioned GDPR, require data to be stored in a data center in a region considered to be safe.
Ultimately, most security attacks start at a high level, such as sending email with malware to an unsuspecting employee. It doesn’t matter whether you’re running on-premises or in the cloud. But a malicious intruder who takes over an employee’s account will not get much farther unless they can take advantage of vulnerabilities in your servers; again it’s not clear whether running in the cloud makes much difference because most vulnerabilities are found in the software rather than the cloud service.
Finally, consider your bandwidth and networking costs. Your customers, and probably your staff, are communicating with servers that might be hundreds of miles away. If the network connecting is unreliable or slow, the performance of cloud servers will be worse than your on-premises data center. But nowadays, everybody is connecting with remote workers, SaaS services, and other systems that are geographically removed. Your network performance will affect nearly everything you do, whether or not you’re in the cloud.
Guided Exercises
-
Why is a physical computer in a cloud center used more efficiently than a computer in a traditional on-premises data center?
-
What is a hybrid cloud?
-
What type of cloud computing most often requires work on the part of a system administrator at the client side?
-
How should you protect your service from going down if you use a cloud vendor?
Explorational Exercises
-
Compare the different kinds of costs you experience when running your servers in a cloud to the costs of running them on-premises.
-
You operate out of the Middle East, but have many customers in Europe and the Far East. Describe where you would place your services in a cloud offering.
Summary
This lesson outlined how cloud computing works and the trade-offs of using the cloud versus running systems in your own data center, on-premises. You learned different business and cost models, including the differences between public, private, and hybrid clouds. You also learned the different major types of cloud offerings and what each is used for.
Answers to Guided Exercises
-
Why is a physical computer in a cloud center used more efficiently than a computer in a traditional on-premises data center?
In the cloud, each computer can run multiple instances of operating systems, and even run instances uploaded by different clients. Therefore, the computer is more often in use.
-
What is a hybrid cloud?
A hybrid cloud uses both data centers at a cloud vendor and one or more on-premises data centers.
-
What type of cloud computing most often requires work on the part of a system administrator at the client side?
Infrastructure as a Service (IaaS) requires the client to perform system administration for tasks such as creating and uploading instances of the operating system and applications.
-
How should you protect your service from going down if you use a cloud vendor?
Choose several zones in each region where you run your service, because it’s highly unlikely that many zones will fail simultaneously.
Answers to Explorational Exercises
-
Compare the different kinds of costs you experience when running your servers in a cloud to the costs of running them on-premises.
In a cloud, you pay for your CPU use and data storage for each period measured by the vendor. But you don’t pay any hardware costs. On-premises, you have the fixed cost of the hardware, along with other equipment such as air conditioning, plus recurring costs such as power and physical maintenance.
-
You operate out of the Middle East, but have many customers in Europe and the Far East. Describe where you would place your services in a cloud offering.
Use a Middle Eastern region for your own offices and Middle Eastern clients. A region in Europe is important in order to comply with the General Data Protection Regulation (GDPR). You might need a region in China to comply with China’s Personal Information Protection Law (PIPL). In any case, having Far Eastern and European regions is valuable for better performance when interacting with customers in those places.
Within each region, choose several zones to protect against the failure of a single zone.