The most important part of cloud computing is understanding all of its buzzwords and where and how they may apply. Hang on, there are a lot of them.
- Cloud Computing: Wikipedia’s definition of cloud computing is “the delivery of computing and storage capacity as a service to a heterogeneous community of end-recipients.” I look at it as a paradigm shift in the way we architect and build dynamically scalable systems where everything may soon become a service.
- CaaS: Compute as a Service.
- IaaS: Infrastructure as a Service.
- DaaS or DNSaaS: DNS as a Service.
- STaaS: Storage as a Service.
- PaaS: Platform as a Service.
- VaaS: Video as a Service.
- EaaS: Everything as a Service.
- SaaS: Software as a Service.
- SaaS: Security as a Service (I know, I just said it was Software as a Service but in a different context it can mean something else. Same applies to all of these “as a service” items).
- CDN: Content Delivery Network
- DNS: Domain Name Service (translates IPs into host names) — Critical to everything.
- CNAME: Canonical Name Record (used as an alias within DNS records).
- Caching: Holding on to “hot requests” for period of time to aid in performance.
- Proxy: Used as a “gateway” for performance in systems that utilize caching. There are several types, like Reverse Proxies and Transparent Proxies.
- Memcache: In memory data cache sitting in front of Web apps.
- Queues: A way of messaging or communicating between systems.
- Tasks: Typically a small discrete unit of work.
- Cron: Wonderful ole friend that allows you to schedule units of work.
- VIPs: Virtual IPs — used with Load Balancers.
- Load Balancer: Software/hardware versions that typically balance load requests to different servers via VIPs.
- Roles: Worker, Web, Service, etc. — more platform-specific, but not all platforms utilize roles in the way described here.
- Multitenancy: An architecture where a single instance can service multiple organizations and keep them completely separate.
- SQL: In this context, it refers to RDBMS like Oracle, SQL Server, MySQL, etc.
- NoSQL: In this context, it refers to Data Stores that use name/value pairs to store data instead of traditional row/column formats like SQL databases.
- Vertical Scaling: Growing systems up, usually by adding more memory, capacity, etc.
- Horizontal Scaling: Growing systems out using lower-cost commodity equipment where the “secret sauce” manages the growth transparently.
- Sharding: Used in horizontal scaling, it’s a technique mainly employed with SQL and NoSQL data.
- JBOD: Just a bunch of disks — a term used a lot in the cloud computing world to reference commodity hardware.
- Origin Pull: Term used in the CDN world where the source of an object may not reside on the actual CDN, so when a user requests the object via a Web page hosted on a CDN for acceleration, the CDN must go get the object from the origin to fill its cache.
- Replication: Depending on the vendor, plan, etc., data from the ingest point is copied to an alternate location.
- Geo Fencing: Usually using geographic location (latitude and longitude) of a given DNS server (if captured), or possibly information from the location service of the mobile device to restrict access to or from a service. Most often used by CDNs.
- Geo Proximity Routing: Based on the geographic location of the DNS, the request is routed to the closest egress point.
- oAuth: Allows a user to grant a third-party limited permission to access a Web app on their behalf. Apps that interface with Facebook and Twitter are good examples of this.
- MapReduce: Model to distribute large data sets, process them and finally recombine them into a reduced result set.
- Web Service: Architecture to allow devices to communicate between themselves. It also acts as entry point into most cloud offerings.
- RESTful: Representational state transfer — A way to architect communication to use standard HTTP protocol. Typically low-overhead.
- SOAP: Simple Object Access Protocol. A nice binding envelope that also uses HTTP and others, but is typically heavier than REST. Tip: Try not to use SOAP if you are using a mobile device. Use REST instead.