Cloud Computing

Cloud computing diagram. Cloud computing refers to a broad set of computing and software products that are sold as a service, managed by a 3rd-party provider and delivered over a network. Infrastructure-as-a-Service (IaaS) is a flavor of cloud computing in which on-demand processing, storage or network resources are provided to the customer. Sold on-demand with limited or no upfront investment for the end-user, consumption is readily scalable to accommodate spikes in usage. To realize full economies of scale and cost advantages, the provider delivers the services using a multi-tenant, virtualized platform. Customers pay only for the capacity that is actually used (like a utility), as opposed to self-hosting, where the user pays for system capacity it is are used or not.

As compared to self-hosting, IaaS is:

  • Inexpensive. To self-host an application, one has to pay for enough resources to handle peak load on an application, at all times. Amazon discovered that before launching its cloud offering it was using only about 10% of its server capacity the vast majority of the time [1]. And because cloud providers make large investments in hardware, and use that hardware more effectively, they cover their costs more easily.

  • Tailored. There’s no need to invest in the next-largest server to provide more resources for an application - bandwidth, processing and storage capability can be added in relatively small increments. Small applications can be run for very little cost by taking advantage of spare capacity.

  • Elastic. Computing resources can easily be added and released as needed. And because clouds are typically designed to host millions of applications and users, one can also add an effectively limitless amount of capacity, making it much easier to deal with unexpected traffic spikes.

  • Reliable. With the cloud, it’s easy and inexpensive to have servers in multiple geographic locations, allowing content to be served locally to users, and also allowing for better disaster recovery and business continuity. Clouds, and applications that run on them, are also built such that individual server instances can come in and out of existence and applications will continue to run. If the application is properly configured, it will not go down unless the entire cloud goes down, too.

Overall, cloud computing provides better agility and scalability, together with lower costs and faster time to market. However, it does require that applications be engineered to take advantage of this new infrastructure; applications built for the cloud need to be able to scale by adding more servers, for example, instead of adding capacity to existing servers.

On the storage layer, traditional relational databases were not designed to take advantage of horizontal scaling. A class of new database architectures, dubbed NoSQL databases, are designed to take advantage of the cloud computing environment. NoSQL databases are natively able to handle load by spreading data among many servers, making them a natural fit for the cloud computing environment. Part of the reason NoSQL databases can do this is that related data is always stored together, instead of in separate tables. This document data model, used in MongoDB and other NoSQL databases, makes them a natural fit for the cloud computing environment.

MongoDB and Cloud Computing

MongoDB is built for the cloud. MongoDB's native scale-out architecture, enabled by "sharding," aligns well with the horizontal scaling and agility afforded by cloud computing. Sharding automatically distributes data evenly across multi-node clusters and balances queries across them. In addition, MongoDB automatically manages sets of redundant servers, called "replica sets," to maintain availability and data integrity even if individual cloud instances are taken offline. To ensure high availability, for instance, users can spin up multiple members of a replica set as individual cloud instances across different availability zones and/or data centers.

10gen has also partnered with a number of leading cloud computing providers, including Amazon Web Services, Microsoft and SoftLayer. To learn more about partner offers, please visit our partners page.

Read our MongoDB overview to learn more about these features.

Learn more about MongoDB