A Closer Look at the MEAN Stack

The LAMP stack – which stands for Linux, Apache, MySQL, and PHP – has been standard practice for web development at many shops for nearly a decade. Since the one constant in the technology world is its rapid pace of change, it stands to reason a new standard is emerging in this software development space. The MEAN stack leverages many recent innovations in technology, including NoSQL databases in addition to some popular JavaScript libraries.

What follows is a high level overview of the MEAN stack to give you some food for thought before architecting your next web development project. Leverage these insights to make an informed decision on which development stack works best for your needs.

What is “MEAN?”

The MEAN stack is made up of MongoDB, one of the most preeminent NoSQL databases, used in combination with three popular JavaScript frameworks, ExpressJS, AngularJS, and Node.js. The fact that nearly all code for a MEAN project – from database to client – is written in JavaScript is one of the main reasons for its rapid growth. If your organization boasts a lot of JavaScript coding talent, it makes MEAN worthy of consideration on your next web project.

The Four Components of the MEAN Stack

MongoDB is a NoSQL document database widely popular for all kinds of applications. MongoDB is also available through many Cloud service providers, including Amazon AMS, Microsoft Azure, and Google Cloud. It leverages the JSON format for data transfer, making it highly appropriate as the database of choice for MEAN.

A lightweight framework for architecting web applications, ExpressJS was inspired by the popular Ruby library, Sinatra. It is a high performance framework well suited for both scalability and concurrency. It also facilitates the creation of unique APIs specifically for use in a web application.

AngularJS is a Google-developed framework for quickly building web-based user interfaces. It makes the creation of dynamic web pages a breeze; leveraging two-way data binding along with other useful features, including client-side code execution and support for the MVC model. Angular’s extensibility and flexibility enhances its compatibility with other frameworks and libraries, in addition to being a major component of the MEAN stack.

Node.js provides the server side execution environment for a MEAN application. Expect a high scalability factor even with a server farm charged with hosting multiple applications. Built upon version 8 of the Chrome JavaScript runtime engine, Node.js by itself is growing in usage among development teams.

The Advantages of the MEAN Stack

Obviously, the fact that all server and client code is written in JavaScript remains of the major advantages of the MEAN stack. Companies are able to take advantage of their staff’s familiarity with a scripting language that’s been around for two decades. Any overall learning curve is lessened by simply focusing on learning MEAN’s three libraries and MongoDB. 

The scalability features of ExpressJS and Node.js make the MEAN stack suitable for the highly concurrent web applications currently in vogue throughout the technology world. The flexibility of the libraries used in MEAN make it easy to swap out any of the components for a library (or database) more familiar to your development staff. It is definitely worthy of exploration for use in your team’s next web development project.

Keep returning to the Betica Blog for additional dispatches from the wide world of software development. Thanks for reading!

Apache Cassandra – the Highly Scalable NoSQL Database

The NoSQL database movement happened because traditional relational databases simply don’t work as well in the highly distributed environments typical of today’s Web infrastructure. We recently covered the NoSQL graph database, Neo4j, here at the blog. It serves the needs of those looking to find relationships between records within huge Big Data stores.

This time out, we train our eye towards Apache Cassandra. Leveraging a key-value storage model, Cassandra offers high scalability and latency across widely distributed data centers. Read further to see if this NoSQL database makes sense for your organization’s data management needs.

The Genesis of Cassandra

Cassandra began as an internal project at Facebook. It actually powered the auto-complete functionality in the social network’s search box. Facebook released the project into the open source community in 2008. It became an Apache Software Foundation top level project in 2010 after two years in the incubator.

The latest release of Cassandra – 3.10 – became available in February of this year. As a fully open source database, it is downloadable for free. A free application with cross-platform support for most popular operating systems makes it worth checking out on a pilot project at your organization. Driver support exists for many current programming languages, like Java (using JDBC), Python, Node.js, Go, and C++.

Enterprises looking for a commercial NoSQL solution built upon Cassandra need to check out DataStax’s offerings. That company is known as the leading commercial provider of support for the database.

Cassandra’s Features and Functionality

Highly scalable distributed performance is Cassandra’s major calling card. DataStax provides a white paper comparing third-party benchmarks of a few of the most popular NoSQL databases (MongoDB, Couchbase, Hive), which revealed Cassandra as the top performer by a wide margin. Fault tolerance and replication are also seamlessly handled across a multitude of data centers – an important feature considering the modern global business landscape.

Impressive scalability also distinguishes Cassandra from similar NoSQL database products. Many enterprise users of the database boast massive production deployments, highlighted by Apple’s 10 petabytes of data spread over 75,000 nodes. Netflix also stores 420 terabytes of data across 2,500 nodes. Needless to say, Cassandra has rapidly become the database of choice for these enormous chunks of Big Data.

The database’s architecture provides no single points of failure; ensuring access to the data isn’t hampered by large amounts of network traffic. Since every node is identical, an entire data center can go offline without any loss of data. This kind of durability makes Cassandra very attractive to businesses with mission-critical applications – built-in support for multiple data centers is another plus.

Adding new servers to a deployment is also a breeze, according to DataStax’s lead Cassandra evangelist, Patrick McFadin. “You simply boot up a new machine and tell Cassandra where the other nodes are and it takes care of the rest,” said McFadin.

Superior horizontal scalability combined with ease of administration make Cassandra a worthy option for businesses looking to embrace NoSQL for their modern database needs. Its driver support for most popular languages lets developers come up to speed quickly. This is one open source database worth checking out.

Stay tuned to the Betica Blog for additional dispatches from the wide world of software development. As always – thanks for reading!