Skip to Content
Guide

What Are Modern Apps? A Definitive Guide

Modern apps leverage cloud-native technologies like containers with agile and DevOps best practices to deliver portability, reliability, and agility at scale.

What Is a Modern App?

A modern app is any application built and deployed with the latest technologies, development methodologies, and best practices available for delivering an optimal user experience. Today's modern applications are cloud-native. They’re architected as microservices that communicate with each other through APIs, as opposed to tightly coupled monolithic applications. These microservices-based applications typically leverage cloud-native technologies such as containers and Kubernetes.

Modern applications are built with agility, scalability, portability, and reliability in mind.

They’re microservices rather than monolithic, making them scaleable, reusable and easier to use.

They’re often built in accordance with agile development methodologies and DevOps best practices, with a heavy emphasis on automation throughout the continuous integration and delivery (CI/CD) pipeline.

So what does that look like in terms of today’s technologies? In this guide, we’ll take a closer look at the various features that make an app modern.

Read more: Modern App Development Demystified.

What Is a Microservices Architecture?

In the traditional approach to application development, applications are built with singular, tightly integrated code bases. In contrast, a microservices architecture involves designing an app as a collection of loosely coupled services.

This development approach has many advantages:

  • Highly testable code
  • Easier to debug, maintain, and update
  • Granular control over provisioning of storage and compute resources
  • Better fault isolation, which leads to more resilient applications
  • Portable and independently deployable. Components can be decoupled from software and hardware environments with virtualization technologies such as containers.

Because you’re dealing with a collection of independently deployable, modular services, it’s possible to work on one service without disrupting the others. The ability to build, test, deploy, maintain, and upgrade on a service-by-service level also greatly cuts down on development time.

Virtualization through Virtual Machines and Containers

Microservices architecture enables developers to unlock the full potential of virtualization technologies such as containers and virtual machines. Let’s take a look at some of these core virtualization technologies:

  • Virtual machines (VMs): Enable virtualization at the hardware level (including OS and hardware). A hypervisor allows a single server to run multiple apps with different operating system dependencies.
  • Containers: Enable virtualization at the software level (still dependent on a host OS kernel). Standardized units of software that contain all the code and dependencies, including binaries, libraries, and configuration files, are needed for a service to run.
  • Virtual volumes (vVols): Are decoupled data stores. Containerized applications can benefit greatly from containerized storage. vVols can map 1:1 to containerized microservices preventing bottlenecks at the central database.

Virtualization can help enhance the benefits of a microservices architecture for modern application development by giving you granularity over the degree of isolation you impart on your microservices.

You can take advantage of virtual machines to run services with different OS dependencies on the same machine. Or, you could use containers and vVols to greatly increase the number of services you can run on a single machine.

Most importantly, virtualization makes it easier to automatically scale the provisioning and deployment of microservices and their resources on demand.

Learn more about the tradeoffs between virtual machines and containers.

Stateless Containers Meet Serverless Architectures

To understand why you might want to pair stateless containers with serverless architectures, we’ll have to define a few terms:

  • Stateless: An application is stateless if it doesn’t read or store information about its state from one runtime to the next (e.g., a calculator app reads zero when you reopen it, with no recollection of the last time a calculation was performed).
  • Serverless: An application is serverless if a developer relies on a third party, such as a cloud provider, for managing server resources, abstracting away the details of server management.

By design, the first containers were stateless because it allowed them to pop into existence when needed, do their job, and disappear, freeing up resources for the rest of the application. Similarly, modern apps keep containers simple, allowing them to pop into existence on an as-needed basis.

When paired with a serverless architecture, it’s possible for application developers to call functions that provision resources on demand without having to manage the underlying infrastructure themselves. Combining stateless containers with serverless architectures greatly simplifies the development of highly scalable applications. This is particularly well suited to edge computing environments where edge devices are constantly streaming data in response to events. The stateless/serverless combination makes it easy for apps to make adjustments on the fly in response to real-time information.

That said, the more complex your application, the more likely it is that you’ll still require persistent storage for your containerized microservices. For this reason, container data storage solutions such as Portworx® simplify persistent storage delivery to stateful containerized apps. 1:1 mapping of agile data stores can improve scalability and allow state to be preserved as your application runs.

What Is a Cloud-Native Deployment Model?

Modern apps are cloud-native apps. Loosely coupled to the underlying infrastructure needed to support them, they can reap the full benefits of cloud ecosystems such as Amazon Web Services (AWS), Google Cloud, and Microsoft Azure.

So what makes an app cloud-native under the hood? The combination of a microservices architecture with virtualization technologies and serverless computing means modern apps can be dynamically provisioned based on user demand. These microservices can communicate independently via APIs managed through a services layer.

Cloud-native apps take full advantage of cloud computing deployment models such as software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). These models replace the traditional CAPEX payment model where you pay a fixed price for resources you may or may not use with OPEX payment models where you pay for resources as you use them.

Learn more about what it means to be cloud-native.

Agile and DevOps Ready

A big difference between modern apps and legacy apps lies in their development and deployment philosophies.

In the traditional approach to app development, you start with a linear overarching plan and stick to it. Development flows from requirements gathering through clearly defined phases until you deploy the full application to production. Communication between developers, operators, stakeholders, and end users is throttled by long software development life cycles (SDLC). Code bases are monolithic; patches are bigger; and attempts to roll out a bug fix, add a new feature, or update underlying technology are vulnerable to lengthy disruptions of services or unexpected side effects that can be difficult to troubleshoot.

The modern app solution? Moving from monolithic systems to microservices with agile and DevOps best practices.

Agile development takes an iterative approach to software development. When paired with microservices, this allows developers to build, test, and deploy features incrementally over multiple design iterations. The SDLC is kept tight, allowing for tighter feedback loops of communication between end users, stakeholders, and developers. Popular agile development methodologies include Scrum, Extreme Programming (XP), and test-driven development (TDD).

DevOps is a software development practice and culture that tightly integrates developer and operations teams within an organization. The SDLC is reimagined as a CI/CD pipeline that uses configuration management, automation, and real-time monitoring to streamline development, testing, and deployment of software.

Modern apps are expected to be highly available and performant at all times. They can’t afford to have disruptions in service caused by monolithic patches, updates, or bugs. For this reason, modern apps leverage agile development methodologies and DevOps best practices to ensure they remain up to date and competitive in a rapidly changing digital landscape.

Learn more about how modern apps reduce time to market.

What Are the Data Protection Benefits of Modern Apps?

In an increasingly digital world, data protection is top of mind. The data protection benefits of modern apps include:

  • Code isolation, which makes it difficult for hackers to compromise the entire system 
  • Modular architecture, which allows for tighter incremental security testing throughout the SDLC. 
  • CI/CD pipelines, which ensure tighter feedback loops between developers and users—enabling  developers to quickly patch vulnerabilities as they appear
  • Streamlined disaster recovery—microservices can be independently backed up and restored with minimal to no disruption of the entire application
  • Enhanced security best practices such as DevSecOps

Modern apps are equipped to deal with modern security threats. Tighter development cycles and communication feedback loops enable developers to identify and address bugs and vulnerabilities before they can be exploited.

Read more: The Data Protection Benefits of Modern Apps

ご相談・お問い合わせ
ご質問・ご相談

ピュア・ストレージ製品および認定についてのご質問・ご相談を承っております。ご連絡をお待ちしております。

デモのご用命

ライブデモのご用命を承っております。ピュアがいかにしてデータを成果に変えるお手伝いができるかをご説明します。 

ピュア・ストレージ・ジャパン株式会社

〒100-0014 東京都千代田区永田町 2 丁目 10-3 東急キャピトルタワー 12 階

 

一般: info-japan@purestorage.com

メディア: pr-japan@purestorage.com

03-4563-7443(総合案内)

閉じる
このブラウザは現在サポートされていません。

古いブラウザには、セキュリティ・リスクが存在する場合があります。ピュア・ストレージの Web サイトをより快適にご利用いただけるよう、最新のブラウザにアップデートしてください。