Modern Application Development

An IT Perspective

Nainesh Agarwal
4 min readJan 12, 2021

Summary

Over the last decade, the development of applications and digital services has evolved due to dramatic shifts in the structure and delivery mechanisms of the underlying technology services that the applications rely on. Over the next decade, these trends will continue to mature and enable a new paradigm of software development that brings even greater flexibility, scalability, reliability, security and cost efficiency. However, this poses a great challenge to enterprises as the advantages of this new ecosystem can only be unlocked by fundamental changes in how the organization operates and conducts business. Organizations will need to evolve their culture, processes, policies, standards, and tools.

There are a number of technology trends that are affecting the development and delivery of digital services. First, there is a push towards leveraging prebuilt platforms for developing and deploying applications and movement away from the provisioning of infrastructure level services. This is called “moving up the stack,” and this trend will continue. Second, there will continue to be a push towards public cloud services. These services are able to provide economies of scale and deliver several key advantages over on-premise environments. Finally, every aspect and step of the build, deploy and operate pipeline is being automated resulting in dramatic efficiencies.

As a result of the general trends above, we can start to look at the specific trends being observed in the various levels of the technology stack.

Infrastructure Services

Compute, network and storage services will continue to be virtualized to enable end-to-end automation in provisioning, configuration, and scaling. We are moving towards seamless integration of on-premise, cloud and edge environments, where policies determine where workloads should be deployed without specific user intervention. As we begin to leverage multiple technology environments, we will require a single management and control interface across all ecosystems.

Platform Services

The use of containerization in compute environments has enabled a new wave of prototypical services which provide highly configurable ecosystems where applications can be quickly deployed and scaled. Containerized environments have paved the way for pre-configured application delivery environments which are highly customized for specific technology stacks such as .Net, Java, Node.js, Python, etc. Using these environments for application development, deployment and delivery is straightforward, fast, and reliable. Platform services have now evolved to include serverless services, which require no specific “containers” to be created for application workloads. Serverless services such as Amazon Lambda and Azure Functions rely on the development of microservice functions that communicate with each other through triggered events and Application Programming Interfaces (APIs).

Another trend that will continue and mature is the use of enterprise software platforms for developing and delivering digital services. Some examples of these platforms include Salesforce, ServiceNow, Microsoft Dynamics, and Workday.

Virtualization and abstractions in data storage has enabled a wide array of platform level options for data storage that range in speed, cost, and durability. These storage options are enabling more efficient and cost effective data management, aggregation and analytics.

Application Services

As compute environments continue to evolve, most organizations are left with several legacy applications that will require transformations so they can continue to operate and provide value. This will require applications to be rehosted, rearchitected or rebuilt.

Modern application development leverages Agile practices that require code to be developed, tested and deployed very rapidly to provide extremely short development iterations. This agility relies on a fully automated tool chain that enables Continuous Integration/Continuous Deployment (CI/CD). To further enable this rapid development and maintenance of systems, a cultural shift is needed in the organization to enable teams that collectively provide development and operations. This is called DevOps and relies on a set of tools, processes and standards that can significantly improve the efficiency of software development and issue management.

In response to changing compute environments, architectural design patterns need to be updated. Modern applications are built using very small components that are responsible for one small, specific task. These are called microservices and this design pattern forms the de-facto standard for applications deployed in modern environments. These microservices communicate with each other using APIs. As enterprises build microservices and integrate them through communicating APIs, it becomes critical to have robust standards and mechanisms for API development and management.

Software Services

There is a large and rapidly growing market of Software as a Service (SaaS) application services for a variety of requirements and scenarios. When a SaaS application is available that can fulfil a set of requirements for an organization, it will usually provide the best flexibility, scalability, and reliability with extremely fast time to implementation and low operational costs.

--

--

Nainesh Agarwal
Nainesh Agarwal

No responses yet