Showing posts with label cloud computing. Show all posts
Showing posts with label cloud computing. Show all posts

Friday, November 25, 2022

Cloud Computing Services Defined

What is the cloud, both qualitatively and quantitatively and why is it called the cloud? 

It's simpler to answer the second part of that first, why is it called the cloud? Simply put, it's called the cloud because, like an electron cloud, you won't not know exactly where an item is located, such as a single e-mail. In other words, like there isn't a clear boundary similar to a the edges of a cloud in the sky.

Qualitative

This segues into a qualitative description of the cloud. In the 1990s, before the cloud, it was simple to point to a single, on-premises, server to identify where a single e-mail resided. Nowadays, with services like Gmail, there's no single server one can point to where an e-mail resides. This is because the subject line of a Gmail e-mail message might be on one server, while the text body of the e-mail is on a different server with each attachment residing on their own servers. A single e-mail is spread out across multiple servers. 

Quantitive 

Qualitatively, the cloud model is composed of five essential characteristics, three service models, and four deployment models defined by NIST.

Five Essential Characteristics: 

  1. On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
  2. Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).
  3. Resource pooling. The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.
  4. Rapid elasticity. Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
  5. Measured service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service. 

Three Service Models:

  1. Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user- specific application configuration settings.
  2. Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
  3. Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).

Four Deployment Models:

  1. Private cloud. The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises.
  2. Community cloud. The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises.
  3. Public cloud. The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider.
  4. Hybrid cloud. The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds). 

Thursday, August 18, 2022

My First Quantum Computer Program

I ran my first program on a quantum computer, today.

I've run programs on quantum computer simulators in the past, but today was the first time I ran a program on an actual quantum computer. It wasn't anything special – my program simply simulated a coin flip. I guess that's the Hello World equivalent on a quantum computer.

About a year and a half ago, I gave a presentation on quantum computing, which has always fascinated me. However, quantum computing is a lot like nuclear fusion or bitcoin in that it's not yet practical. We can see that these technologies are real and feasible, but they'll require some more engineering, both technically and socially, for them to be in widespread use.

Currently, quantum computers are at the stage that personal computers were in the early 1970s. The design and engineering involves circuits. Next step will be programs and then practical applications.

What I Did

Today's program emulated a coin flip by passing a qubit through a Hadamard gate which puts the qubit into a superposition state. A Hadamard gate takes a qubit as input and its output has a seemingly random 50/50 chance of being |0> or |1> when measured. But what's fascinating about a Hadamard gate is that, if you take the output of from a Hadamard gate and pass it through another Hadamard gate then the qubit will always return to its original state.

My code snippet: Simulating the flip of a coin on an actual quantum computer

How I Did It

Like a true script kiddie, I followed a YouTube tutorial. I literally stopped the video when Toby showed her code, took a screen shot, imported the screen shot into the Apple Photos app, and then I copied and pasted the code from the photo into my web based text editor on IBM's Quantum Lab. The code I wrote was in Python utilizing the Qiskit SDK and it was free to run on IBM's system; a bargain at twice the price.

Tuesday, December 1, 2020

macOS on AWS. Finally!

One of my "server farms" (more like a server garden)
with 4 Macs and 1 GSM modem
Finally, after nearly 15 years, macOS comes to AWS. I used to maintain two server farms totaling 11 Macs, mostly Mac minis, running OS X Server with 10 static IP addresses. Configuring and replacing Mac servers was my least favorite and most expensive task.

Amazon's AWS VP for EC2 shared a fun video about how macOS on AWS came to be.

Monday, June 21, 2010

Sudo Make Me A Sandwich

This is about four years old, but it still makes me laugh.


Thursday, December 17, 2009

How to tell it's not a cloud.



People always ask what is cloud computing? - and it's not always simple to explain. Perhaps it's easier to just explain what cloud computing is not.

1. If you can’t buy it on your personal credit card… it is not a cloud

2. If they are trying to sell you hardware… its not a cloud.

3. If there is no API… its not a cloud.

4. If it takes more than ten minutes to provision… its not a cloud.

... and 12 other things that cloud computing is not via James Governor.

Here's what I think cloud computing is all about.