Software is modern. By its very nature in the total universe of spacetime and all worldly matter, code-based software and the applications and data-centric services we get from it are modern. Blindingly obvious statements notwithstanding, the notion of software modernism it’s not quite as ridiculous as it sounds. The technology industry is extremely fond of talking about tools to build so-called modern applications, but what does this idea mean and how do the engineering tools in this space function?
If there is no formalized definition of modern software as such, then (initially at least) we can take this term to mean cloud-native applications.
Additionally, we can take it to mean Artificial Intelligence (AI) and Machine Learning (ML) accelerated applications with all their autonomous self-awareness and control. We can also take it to mean applications with big data analytics, mobile-first applications and those that are perhaps pre-engineered to scale up and out to the new cosmic force that will come from quantum computing, as and when it arrives in a form outside of the prototyping lab.
What modern software really means
But all those modernisms are actually quite cerebral superficial elements of the IT stack in a sense. What we reality mean by modern applications are those that can rely on an ‘intelligent backend infrastructure’ to provide all the provisioning and management and updates and changes they need in order to serve the new always-on world of computing.
Enterprise open source NoSQL database management specialist MongoDB has specifically called out the need to design software engineering tools to address the growing data needs of developers to build modern applications. Taking perhaps some of the above-offered definitions to heart in the way it has now expanded its own technology. The firm says calls its latest updates part of its developer data platform vision.
The suggestion here is beyond the comparatively straightforward notion of software applications using data i.e. they have always done that, it’s in their basic nature. This is a point where we are thinking about a far wider set of use cases for data inside a massively expanded infinite variety of apps.
It’s also about servicing more of the data lifecycle (data is created, lives, morphs, expands, deduplicates, degrades and eventually dies) and making it optimized for modern architectures with sophisticated levels of data encryption – all within a single integrated developer data platform.
“Hundreds of millions of new applications will be developed over the coming years that deliver compelling customer experiences, enable new capabilities to transform businesses and increase operational efficiency via more sophisticated automation – and these applications all require a highly scalable, cloud-native, globally distributed data platform,” said Dev Ittycheria, president & CEO of MongoDB. “Our vision is to offer a developer data platform that provides a modern and elegant developer experience, enables broad support for a wide variety of use cases and delivers the performance and scale needed to address the most demanding requirements.”
Beyond simple data services
This is beyond ‘simply’ giving developers data infrastructure services to be able to build operational and transactional use cases i.e. those parts of the IT stack that we might consider to be bread and butter building blocks needed for an enterprise to actually physically trade and keep the lights on.
Beyond this foundational level, MongoDB has extended to now also serve search and analytics use cases, all within a unified platform. Given the rise of dedicated enterprise search vendors such as Algolia, Elasticsearch and Yext alongside tech behemoth offerings like IBM Watson Discovery and AWS OpenSearch Service, it makes sense that MongoDB would table this related type of functionality at an infrastructure level.
These enhancements allow teams to accomplish more while preserving a consistent developer experience and reducing the complexity of the data infrastructure required to support modern applications.
The extensions and developments MongoDB has created are surfaced in its core product MongoDB Atlas. This is a fully-managed cloud database that handles all the complexity of deploying, managing and healing software application deployments on the cloud service provider of a customer’s choice (the big three obviously being AWS, Microsoft Azure and Google Cloud Platform).
“Every application today needs a search bar/function if we want it to gain widespread and positive user acceptance – and with the new release of MongoDB Atlas we have shown just how easy it is to ‘stand-up’ [i.e. create and add] search into an application,” said Mark Porter, MongoDB CTO. “If users don’t get that kind of functionality along with in-app analytics and the other core building blocks of modern sophisticated applications then they will not come back for more.”
In terms of actual enhancements referenced here, MongoDB has announced a number of capabilities that make it easier for developers to build in-app analytics and power richer application experiences. As an example, column store indexing (available later this year) will enable users to create and maintain a purpose-built index that dramatically speeds up many common analytical queries without requiring any changes to the document structure or having to move data to another system.
MongoDB has also announced new products and capabilities that enable development teams to better analyze, transform and move their data in Atlas while reducing reliance on batch processes and ETL (Extract, Transform & Load) jobs that can create delays, limit productivity, and increase costs.
Atlas Serverless is now generally available and allows users to support a wide range of application requirements with little to no initial configuration and ongoing capacity management. Users benefit from the ability to scale to zero and deploy in all three major cloud providers, and tiered pricing automatically reduces the cost for large workloads without upfront commitments.
Beyond a kitchen sink
In addition to supporting a wide range of workloads, organizations need to have the flexibility to deploy the right application architectures to serve their needs.
“A lot has been done to extend MongoDB and Atlas to an even higher level of engineering, but we shouldn’t think of this technology as some kind of ‘kitchen sink’ solution, it’s more nuanced and sophisticated than that,” said Andrew Davidson, MongoDB VP of cloud.
“What I mean by that is, we do a lot to make sure that day #1 of any developer job starts better. Let me balance that by saying that we realize that every day #1 will be different for every developer because every software engineer will be aiming to build towards a different goal with their application and services – and, perhaps obviously, every developer will start from a different ground zero in terms of their own ability to draw upon application data infrastructure provisioning and preparedness,” added Davidson.
He continued, “A platform built to serve this space needs to be able to ‘unfurl’ and reveal deeper functionalities throughout the development lifecycle when software engineers need those extended powers… and MongoDB Atlas does that. The data is hard part – the business logic by comparison is the easy aspect here – data schemas and types and workloads can change a lot as an application evolves – so developers need a platform built to serve the application (and therefore the business) needs at all times.”
Among the long list of other product updates now brought forward by MongoDB is news that Atlas Data Lake will now feature fully managed storage capabilities that provide the economics of cloud object storage while optimizing for high-performing analytical queries. Atlas Data Lake reformats, creates partition indexes and partitions data as it is ingested from Atlas databases, creating a highly performant companion data lake.
We can also note Atlas’s Data Federation capabilities, which allow teams to create virtual databases so that they can work with data that resides in a range of different sources. Development teams can query, transform, or create views across one or more collections, MongoDB clusters and storage buckets.
CEO Ittycheria defines modern apps
Keen to provide additional clarifying context upon all of this discussion, MongoDB president & CEO Dev Ittycheria asks us a simple question – what would an application be without data?
“If we think about any application, the reason developers spend so much time working with data is to make sure it is timely, deduplicated, managed and presented [to the relevant part of an application’s execution] at the right point. Thinking about what it means to build a modern application, the ‘old way’ involved moving data in and out of database tables (maybe as many as 15 to 25) – but by using the document model, everything is stored in one area – so a modern application is characterized by the fact that we have moved the data infrastructure management burden (we call it the undifferentiated plumbing) out of the way so that developers don’t have to jump through hoops,” explained Ittycheria.
Going further, he notes that a modern application has a wide range of functions compared to ‘old fashioned’ apps that may have existed before the web and the cloud that we know today. Those functions could include operational data functions and transactional components, plus in-app analytics capabilities, as already suggested in this analysis.
“Think about Google Maps as a good example,” enthused Ittycheria.
“We used to just use paper maps, then we got online maps on our smartphones, then we got real-time analytics functions to provide us with directions and tell us if we make a wrong turn… then we got live traffic updates too. This is a case of a modern application being able to bring more and more layers of data to bear embedded into the user interface level over time to automate more of the manual processes that humans used to have to think about. Now, Google can afford to employ thousands of software engineers to do that, but most companies can’t – so MongoDB provides a route to that kind of application richness by abstracting away the application plumbing required,” added Ittycheria.
A toolset of its time?
Advocates of MongoDB have suggested that the firm has shown impressive foresight i.e. it has created a layer of data infrastructure services to reduce developer friction when software programmers are building applications in the cloud-native world. That friction element is made up of all the chores related to infrastructure engineering that developers don’t want to have to focus on i.e. they actually just to build us great apps.
The parallel here is simple to illustrate if we think about driving a car. If you had to change the oil, tighten the suspension, rotate the tires and replace your windscreen every time you wanted to get in your automobile, you probably wouldn’t be too happy.
It’s the same for cloud-centric developers building modern applications (remember our initial definition?), they want to be able to create modern apps that have sophisticated data infrastructure engineering services running beneath them. The modern app might pop up on your smartphone and provide you with really intuitive touchscreen functions and AI-like features, but it’s only truly modern if its modernized beneath.
As it is in people it is in software, it’s what’s inside that counts.