The cloud is here to stay. As software gobbles each part of our world, economy and personal lives, cloud providers become the compartmentalized brains of our collective operations. Hints of dystopia coexist with learning potential without precedent.
Take a look at the cloud basics, and the terms you need to know whenever you are considering in your next project.
Someone else’s computer
What is the cloud?
Up until very recently (and still today in some ideological pockets) the distrust for the cloud was prevalent. With the prices of storage and processing power falling year after year, why would I want to place all my files on the web? Not to mention my favorite applications: Why would I choose to access them online, making my productivity prey of a lagging connection?
Technically, all of these concerns still remain. But one by one, and through monumental efforts of infrastructure, it started to make sense to place our eyes on the cloud, and for the enterprise to rely on it even further. Yes, computing prices keep falling, but they are racing towards zero on the cloud. The internet can still falter, but connectivity and reliability only gets better across the world. And with 5G, worrying about being online would be as ludicrous as worrying about whether gravity will run out.
A SaaS is born
We are only starting to see “quirky” new ideas for the cloud. We are at an early, conservative state, where technology companies are focused more or less on translating the current software and user experience into the online realm. Not unlike online learning experiences, where only exceptionally they are leveraging the powers of the digital world.
Among those who have started to paved the way are the “SaaS” or Software-as-a-Service providers. By delivering their software from the cloud, they have more control over the environment. This and other attributes allow for features not commonly found on traditional applications:
- Real-time collaboration: Several people working on the same file or project simultaneously
- Work saved instantly
- Integration with complementary tools or systems
- Server-side processing: For highly demanding computational tasks, you are no longer limited on your computer’s RAM
- Granular permissions: An admin can determine which features and which data are allowed to view or edit by any type of user in a system, if not by any individual users.
CI/CD: Highway to heaven
Looking into the internal practices of software development, cloud has encouraged agile development in concrete ways. A small change or a major upgrade can be ready, then uploaded to the production code base in the cloud, and then any number of users will have access the latest features and updates in an instant.
This is the key behind CI\CD, or “Continuous Integration\Continuous Delivery” (or Deployment). The cloud does not make a company automatically capable to adopt the agile team organization and product development approach that makes CI\CD possible, let alone desirable. In fact, most companies continue to focus on scheduled releases. (Although this could also be due to a marketing strategy.) But the reality is that, as companies begin to “get” the cloud, it will make much more sense to align towards a more agile project management framework.
A few key concepts
The cloud will speed up some processes, but it brings a new set of elements and properties to applications.
- Instance: The actual, “living” application which you use.
- Image or Snapshot: A set of the application with everything it needs for deployment. It makes it easier to launch one more instance right away, or to save a configuration for another project or application.
- Memory, CPUs (or Cores), Storage, Network bandwidth: In the world of SaaS, the physical specs an application run become attributes of the system, therefore the companies become responsible, not just for the amount of power and bandwirth they offer to their applications, but for a software application that can takes advantage of them. (Turns out adding more cores to a system may do nothing for your performance if your app is “monocore”; and switching to a multicore development paradigm can be very difficult). Consumer-facing products do not usually reveal this information, but for enterprise level they can be essential for financial, auditing and security reasons. Conversely, a clean cloud spec list speaks wonders of a SaaS company, regardless of its size.
- Backup, “Cold,” “Warm” and “Hot”: The data hosting architecture can be designed in a way that makes it easier (but costly) to retrieve, or more basic and therefore cheaper. A “cold” backup takes longer to access so it is recommended for long term archive.
- Fault-tolerance and redundancy: Related but independent elements that speak to the fail-safes put in place by the cloud architect. A “fault-tolerant” system makes sure there are secondary systems that stay closely synchronized with the main cloud instance, and can take over once the primary one fails. “Redundancy” refers to the solutions put in place that guarantee not only fault tolerance, but constant backups. Usually a fault-tolerant solution takes advantage of the different data centers available by the cloud company, which lowers the odds or correlated casualties.
- Resource monitoring (for regular and malicious usage): SaaS companies face the challenge of packaging and pricing their products in understandable ways, even thought they may differ completely from the cloud cost structure. A typical infrastructure solution charges for storage, operations and access to data, and availability of memory and processing power. Value added features include tools to manage and notify unusual or milestone usage, or automatic prevention of suspicious access. But from a license-based pricing point of view, user access to the application can vary greatly. Casual users tend to subsidize heavier ones. Most SaaS today price their services to guarantee even intensive use is profitable, meaning their returns on casual users is several times higher. This boon is unlikely to last as new competitors enter the field. It’s no coincidence the founder of the most successful cloud company today’s motto is “your margin is my opportunity.”