As developers seek to provide better applications and/or systems to the end user, choosing the correct application stack is crucial. Cloud computing offers a wide range of services and computing ability without the heavy lifting of the entire assembling operation. Cloud architectures allow us to fulfill almost every imagined deployment architecture for our application foundation, starting from data services to security and integration with third-party services to provide any processing needed.
One approach to cloud computing architectures is a service-oriented cloud architecture that is built around cloud computing stacks. In this article, we will explore what cloud computing stack means and how MongoDB and MongoDB Atlas can power your cloud computing stack.
Let's start by understanding the cloud computing stack and what it is.
TABLE OF CONTENTS
Cloud computing can be described as a stack that is formed by layers, similar to a cake. Those layers will be built using cloud computing services, servers, and components, which can leverage several different clouds forming a single application stack. The network stability and scalability of the stack will determine its resilience and high availability.
Let’s get more familiar with the types of cloud stack components and concepts that are common in the cloud world.
Software as a Service is providing a piece of technology (usually a software) that can be consumed as a service — for example, GitHub source control. You could choose to host and manage Git source control on-premises, or you could use GitHub's hosted source control.
One of the new variations of “Software as a Service” is “Data as a Service.”
Data as a Service combines a few software services to form a data platform.
MongoDB Atlas is a data platform with different services to provide a single holistic solution for your data requirements. This type can power the different stack layers focusing on data processing/storing and visualization.
Platform as a Service provides several well-integrated software products/technologies to form solutions that power application development and maintenance.
Heroku and Google App engine are examples of Platform as a Service. These host and integrate your code to other coupled services.
MongoDB Realm cloud services form a similar concept to Platform as a Service where you host your cloud functions and application content as a service.
Infrastructure as a Service is currently one of the low-level services you can expect from a cloud computing provider. Essentially, it provides servers, network, and virtual resources to run the compute and cloud storage power you need.
An example for this type is an AWS EC2 offering, where you deploy your servers/network and security policies managed by the AWS cloud API.
MongoDB consumes IaaS when providing you with its MongoDB Atlas clusters, for example.
To visualize the hierarchy of these types, we can view the following image:
In some cases, users will choose one of the cloud computing types for the entire application stack. However, in other cases, they might use any of the types to form the application stack, which is common in the microservices world.
The green squares in the diagram represent cloud services that form the application stack. The security layer must expand across the communication and activity of all the components, validating and securing the network to trusted parties.
MongoDB Realm, MongoDB’s mobile database, and Application Development Services are part of the Atlas platform, boosting the MongoDB Cloud Stack.
Let's look at the available options.
Almost everyone — well, at least on a consumer basis. Nearly every online application uses cloud services either directly or indirectly. Companies today are on a journey to push every aspect of their operations to the cloud and into a services-oriented methodology. Whether you use GitHub to manage your code lifecycle or you provision servers on cloud providers, you are using cloud services.
MongoDB Atlas is quickly growing and we can see more developers utilizing the MongoDB cloud stack to power their applications. One example is the WildAid O-Fish application, which uses MongoDB Atlas, MongoDB Charts, and MongoDB Realm with iOS- and Android-based clients (SDKs).
To dive into the O-Fish architecture, please read the following blog post.
The main benefits of using a cloud stack for your application stack are:
For those reasons, the MongoDB data platform is highly adopted by developers to boost their productivity using modern platforms to innovate modern applications.
Answering this question is not simple as there are multiple factors involved in choosing the right service to use for what you are aiming to build. However, the MongoDB Atlas platform has the foundation for building modern, scalable applications.
If you are looking for low-level services like virtual machines and networks where you will have a wider agility to customize it for your needs, IaaS is the best choice for you. However, if you need a quicker and more managed solution to focus your efforts and developer productivity on developing the business logic, SaaS and PaaS might be a better fit. Since an application stack might have different security and deployment requirements for its modules, it might use several different types of the cloud stack.
One of the advantages of using Atlas is the variety of pricing models allowing you to choose if you require a steady compute rate via our dedicated computing infrastructure or you need a serverless environment that grows and shrinks with your workload to fit your use case. Moreover, you are not locked into any of the cloud providers. The ability to perform simple cloud migrations or span across multiple clouds is at the core of MongoDB Atlas.
The flexibility of MongoDB's data model is key to modern application’s fast evolving requirements. Additionally, the flexible schema architecture and MongoDB Atlas data platform agility help you adjust application to microservices concepts. This means that you can change or upgrade your cloud stack with new services easily as your journey progresses.
Most of today's applications, especially web and mobile internet applications, are deployed and run on cloud computing services. Please read the following article on cloud architectures for more information.
The three common types are: