This blog entry is a continuation of the articleAMP for E-Commerce Part 1. Before we start exploring Alibaba Cloud ApsaraDB for MongoDB, we will discuss why we chose this as the backend for the proof of concept (POC).
In general, there are two types of databases:
In relational databases, we need to know exactly what data we are going to manage. We need to model the database and then create the query corresponding to the data model and fetch accordingly. A typical example of a very popular relational databases is MySQL. MySQL has become an inexpensive option for so many organizations. Although relational databases are powerful, they do have certain limitations. Relational databases are unsuitable for processing high data volumes and is not good at addressing the needs of the changing data.
In the digital Era we see a fluid data where we don't know the exact representation of the data. The data model keeps changing for a particular entity, and that's how the NoSQL data model came into existence. One of such popular NoSQL databases MongoDB. NoSQL is quite a hot topic in the industry now. It is mainly suited for the small and medium level organizations where they want to start up their business but are not clear about what the data might be. NoSQL doesn't have any predefined schema. As a developer, you do not need to worry about having the expertise of a DBA to maintain a well performing backend if you opted for NoSQL.
Now we will talk more about the MongoDB and the benefits of using the MongoDB over relational databases like MySQL.
In relational databases, we define the table schema before any other data operation. Whenever we insert some data into the table we need to make sure we adhere to the schema of the table. If you think there is a change in the model of the data then we need to change the entire table schema or we need to create a new table and normalize it. But in MongoDB the data is stored in JSON like structures.
In relational databases we have table which consists of rows of data; in MongoDB we have collection which consists the data as documents. A typical document would be nothing more than a JSON like structure. The interesting part in MongoDB is that multiple documents can consist multiple field with multiple data types. Initially, it may seem a little confusing to use MongoDB, but after getting used to it, you will enjoy the flexibility it offers.
We can all agree that relational databases available in the market are backed by years of research and proven industry adoption. However, we should also notice that the MongoDB is also adopted by big companies like T-mobile, Sony, Surveymonkey, Foursquare, Invision, and many others.
Sharding refers to dividing your dataset up over multiple MongoDB servers. You pick a field to act as a division point in your dataset, referred to as a shard keys. Based on this shard key, data is distributed across multiple servers. Sharding allows for horizontal scaling, which is difficult to implement in MySQL.
There are two scenarios that might ultimately motivate you to shard MongoDB: your dataset has become truly massive and indexes cannot fit in memory any longer, or your application is write-heavy and you need to distribute writes over multiple servers
MongoDB supports built-in replication sharding and auto-elections. Using auto-elections, you can set up a secondary database to automatically take over if the primary database fails. MongoDB uses replica sets to create multiple copies of the data. Each member of the replica set can have the role of primary or secondary at any point in the process. Reads and writes are done on the primary replica by default and then replicated to the secondary replicas.
Replication and sharding makes mongo DB very easy to scale.
MongoDB supports dynamic queries on documents using a document-based query language that's nearly as powerful as SQL. From the security perspective, MongoDB is more secure because traditional databases can suffer with the SQL injection attacks. For MongoDB, the likelihood of having injection attacks is much lower because of the variable data it stores in the name of its documents.
Alibaba Cloud ApsaraDB for MongoDB is a secure, reliable, and elastically scalable cloud database service. It currently supports the ReplicaSet and Sharding architectures and can be quickly deployed in just a few steps. The benefits of using Alibaba Cloud ApsaraDB for MongoDB include:
Alibaba Cloud ApsaraDB for MongoDB supports both ReplicaSet Architecture & Sharding Architecture. There will be minimum of three nodes operating in the replica set architecture by default, where one will be primary, another will be secondary and other will be the hidden. If the primary files the system will choose the secondary, for some reason if the secondary is not available then the system switches to the hidden database to make sure the service is available.
The fractional service (shard) and configuration service (configserver) adopt the stable and reliable three-node ReplicaSet architecture.
Alibaba Cloud is well known for its security measures across all its products. ApsaraDB for MongoDB provides built-in backup mechanism and recovery which helps in preventing Data loss and minimising the cost of in proper operation it is also equipped with and Anti-DDoS and supports IP whitelist configuration which supports a maximum of 1000 whitelist rules and performs risk control from the access source.
ApsaraDB for MongoDB also comes with visualized operations and management platform. You can monitor the instance information, such as youth CPU utilization connections, and obtain other information visually. The visualized IT management platform simplifies high-frequency and high-risk operations, such as instance restart. ApsaraDB for MongoDB makes data recovery into a single click operation. It also proactively performs subgrade for database kernel version management, and quickly repairs the defects, freeing you from daily version management.
Now we will create the actual setup for our e-commerce store backend and little bit of networking. We create an architecture something like this going further. Please find the diagram for reference
This is the recommended architecture from Alibaba Cloud for accessing the MongoDB instances.
If you are connecting from the Internet then you need to use the following credentials
IP Address/Host Name: 18.104.22.168 or
Username : Administrator
If you have connected using the Remote Desktop protocol then you should be able to see the Windows connected.
Now we will create backend database of the ApsaraDB for MongoDB Service in Alibaba Cloud. On the console, navigate to Products > ApsaraDB for MongoDB.
You will be taken to this screen where I am creating the instance in the same location of the ECS Instance (Singapore). Click on create Instance. For this demo we are creating a "Replica Set Instance"
Once you click on the Create Instance Button You will be taken to the below screen. Don't panic if you didn't see the below screen. You will be by default taken to the Subscription (Replica Set). You need to change to the Pay-As-You-Go (Replica Set) model where you can see all the default values are populated. You need to select the VPC model of connection
You can see the VPCID and the VSwitchID are populated automatically along with the default configuration. If your configuration is missing the VPCID/VSwitch ID then your ECS Instance or the MongoDB instance is not at the same region. Provide a password and remember it future use for logging into database
Once you have done all the steps correctly you should have an active MongoDB service on Alibaba Cloud. You will see the following instance running under the "Singapore" region.
Once you click on the instance ID then you will be navigated to this screen where you will see the Intranet & Public IP connection protocols. Before accessing, we need to whitelist the IP address of the ECS instance by clicking at the "Set the whitelist and the address will be displayed".
Once you click, you will be navigated here. You have to click on the "Import ECS intranet IP" this will automatically detect the Intranet IP address of the ECS Instance
Then there you go the connection details for the Intranet will be displayed we will use this details for the Intranet connection. We will be using the connection String URI to connect. We will using the same in the next tutorial
We will create a simple Express based node API to query data for our database and serve the E-Commerce App built by leveraging the open source templates provided by the AMP Site. The whole integration will happen in the next tutorial, so please be sure to check it out.
Alibaba Clouder - May 3, 2018
Alibaba Clouder - April 18, 2018
Alibaba Clouder - September 6, 2019
Alibaba Clouder - April 17, 2018
Alibaba Clouder - April 16, 2018
Alibaba Clouder - July 30, 2019
More Posts by Alibaba Clouder