What is Application Infrastructure?
When we interact with software applications in our private lives, we usually see only the presentation layer of the application known as a graphical user interface (GUI). A user interface makes it easier for a human user to interact with the features and functions of an application in a logical way. Without a user interface, application users might have to input their requests in text or code instead of filling in fields with parameters or clicking on buttons.
What many users don't see, and what exists beyond the GUI, is a complete application infrastructure whose components support all of the features, services, and functionality offered by the application. Application infrastructure includes all of the computational and operational infrastructure and components that are necessary to manage the development, deployment, and management of enterprise applications.
There is no general model for application infrastructure design. Rather, the developers of an application design an application infrastructure that is suitable for supporting the unique features, capacity, and demands of the application. Application infrastructure components may include things like servers, data storage, networking, application monitoring, and logging capabilities, and application security services. Application infrastructure can be developed as an on-premise IT infrastructure, or delivered as cloud-based infrastructure by a third-party public cloud service provider.
Application Infrastructure and the Layered Application Model
An application is a compilation of various functions and features that may be delivered as a monolithic application or a group of individual services or microservices that interact using APIs. The application infrastructure that will be needed to support a given application depends on its functionality as well as its architecture. Many developers use a layered application architecture model to define various services within the application and how they interact.
The most common type of layered application architecture includes three tiers of services, with each one typically developed and maintained independently and on separate platforms: the presentation layer, the logic layer, and the data layer.
The presentation layer of an application is the top-most layer that users and clients interact with. It consists of a GUI through which users can access application services and functionality. The presentation layer of a web-based or cloud-based application may be accessible to customers with an internet connection via a web-based page or portal. This requires infrastructure components such as web servers and networking equipment, as well as security services that can be used to authenticate user access.
The logic layer of an application does most of the heavy lifting when it comes to dealing with user requests. The logic layer may be divided into business logic and application logic. The logic layer is responsible for coordinating application activities, performing evaluations and calculations, solving problems, and facilitating the transfer of data between the presentation tier and the data tier.
Business logic and application logic are the rules that govern how an application will interpret and respond to requests from users. You might think of application logic as the programming rules that govern how an application functions. A piece of application logic might say "When the user clicks next, check whether the form fields were adequately filled. If they were, the user may advance to the next page" or "When the user requests to check their account balance, find their account balance in the database and present that information in the GUI". Business logic might include things like "Do not allow the customer to withdraw more money than they have in their account".
The logic layer consists of rules, operational procedures and workflows that help ensure an application works how it is supposed to. Ultimately, the role of the logic layer is to connect the presentation layer with the database layer. The application logic layer may depend on underlying infrastructure like servers that provide the computational power needed to manage requests, especially when they occur at a high volume.
The data layer of an application is a back-end system that stores all of the important information that the application needs to deliver services to users. The data layer may include encrypted user data, such as user names, passwords and other authentication details. It may also contain data and files that users may access by querying through the presentation layer. The data layer depends on application infrastructure such as SQL servers that store application data.
What are the Components of Application Infrastructure?
Application infrastructure consists of all the components that are needed to deliver an application and its functions and services to the customer. While each application is unique, we can still highlight some of the most common application infrastructure components that are commonly implemented to support application features and service delivery.
Intrusion Detection System (IDS) - IDS systems monitor network traffic for suspicious activity. They can be used to alert application managers and developers when a cyber-attack may be underway against the application, or when a user is attempting to gain unauthorized access to the application.
Web Server - Web-based applications are delivered through a web server that sends HTML and PHP files using the HTTP communication protocol. A webserver typically hosts the GUI through which users engage with the application.
Firewalls - Applications are segmented based on user trust levels, ensuring that customers can only access parts of the infrastructure that are meant for them. Firewalls are used to restrict access to unauthorized assets and services, ensuring that users interact with the application exclusively through the web portal and may not access other application infrastructure components.
Application Server - An application server houses the application and business logic that make the application work. The application server is typically hidden behind a firewall such that users can only interact with it through the presentation layer. Application servers provide the computing power necessary to fulfill requests and deliver services that users request through the GUI.
File Storage/SQL Servers - Some applications that store data in files may incorporate a file storage server as part of their application infrastructure. Applications that need to access data in relational tables might use SQL servers to fulfill their database function. In either case, application infrastructure typically includes a database that supplies the information requested by users.
Secure Your Cloud-based Application Infrastructure with Sumo Logic
For web-based applications that are deployed in the cloud, many additional components of application infrastructure may be located in the cloud and some may be managed by a third-party cloud service provider. Data assets and servers in the cloud require continuous monitoring for their security posture and operational performance, especially for organizations that operate several cloud-based apps across more than one cloud environment.
With Sumo Logic's cloud-native platform, organizations can aggregate and centralize event logs from applications and their infrastructure components throughout private, public and hybrid cloud environments. With our robust log analysis capabilities powered by artificial intelligence, organizations can turn their machine data into actionable insights that drive security, business, and operational performance.