Introduction

Enterprise software landscape has evolved from running batch jobs in mainframe computers to run a SaaS application from your mobile phone to on-board an employee. The software you run within the enterprise needs to be carefully selected and architected. The role of an enterprise software architect has become more prominent and important in the era of cloud computing and data privacy regulations. You have to consider many different aspects when designing an enterprise software architecture. Here are some of the key factors you need to put your close attention to.

If we consider all the above mentioned factors, it is evident that we cannot have the best of all always. We have to compromise some features to support the other. Let’s try to understand the software which is running on the enterprise in more detail.

Enterprise software architecture

Everything starts with the bits and bytes running on a set of electronic circuits which we called as hardware. From that point onwards, there are a plethora of software components which hides the complexity of the bits and bytes and abstract it away for various users based on their knowledge and expertise and expectations. There are many organizations who offers different levels of enterprise software capabilities as cloud services or “as a Service” offerings. Here are some of the common cloud services offered as services which are fully hosted and managed by the respective vendors.

The figure below showcases how each of these components are layered up.

Enterprise Software Stack

Figure 1: Enterprise software architecture stack

As depicted in the above figure, there are various cloud offering available in the market which can help you to delegate your responsibilities of IT infrastructure maintenance to a third party technology vendor. Depending on the requirements and the capacity of your IT staff, you can select the best possible abstraction layer. Here are some ways on how you can decide which cloud abstraction is better suited for your enterprise.

In addition to the above mentioned categorization, there are some other offerings coming through to simplify the IT operations within enterprises. One such an approach is “Serverless” platforms where they run your programs for you in the cloud as and when necessary instead of running them all the time in the case of a PaaS or PCF. Another cloud offering which is getting popular these days is “IDaaS” which is “Identity as a Service” which provides various Identity and Access Management capabilities as a cloud offering. Another such service is “MBaaS” which expands to “Mobile Backend as a Service” which will provide you a platform to run your mobile backends for various mobile applications running on different platforms.

Here is a list of vendors under each layer which are available in the market.