Published: October 2019
The mastery of parallel processing opened many exciting new possibilities, lowering the time necessary to solve complex computational problems while simultaneously raising the amount of computational power that can be leveraged to solve such problems. One of the developments to arise out of parallel processing technology is cloud computing, a proposal for large pools of available processors that could be borrowed by users in processing a large job then released to other users after the job is finished in a sort of “rental car” approach to processing. This was tremendously exciting for the computing industry as it meant that tasks that once required an enormous investment of processing time and could monopolize an individual machine for hours, weeks or months could now be completed quickly without having to individually purchase and maintain the necessary infrastructure. Many companies moved to capitalize on the excitement and billed their applications as using “the cloud,” such that the term became a buzzword, fell out of favor and has now faded from marketing or promotional materials.
This is unfortunate because, with the rise of a subscription model of software distribution rather than the traditional model where software was sold as a good, more and more modern applications can rightfully lay claim to using “the cloud.” Cloud applications have become ubiquitous in modern life even if they no longer advertise themselves as such; examples of popular cloud products include Smartsheet, Google Drive, Dropbox, YouTube, Gmail and GoDaddy.
In this third installment in a series of white papers, we’ll introduce some of the common terms used when describing cloud applications and discuss some basic principles of software architecture, the abstract organization of software that are integral to a functional and secure cloud solution.