Search This Blog

Sunday, January 31, 2016

Enterprise Application Architecture overview

Application Architecture, one of the core components that act as one of the core pillars for the entire enterprise. When i think about application architecture, i think about the architectural layer that binds all the other layers, such as business, information, technology.
Application architecture and the architect who works in this domain is responsible for the overall applications within an enterprise. It becomes very important then to be able to size the entire applications within the organization ensuring that they can work in sync with each other.
As noted in our Lesson 2 discussion, as an Enterprise Application architect, below are some of the important things that need to be kept in mind
  1. understanding all the applications within the organization
  2. ensuring that these applications are in sync with each other
  3. keeping a close watch to the workings of these applications
  4. being up to date with the technology to ensure that the applications are compliant with the organization.
  5. Sizing and scalability needs to be determined, so as to ensure that there are enough servers to support the different applications, to prevent server crashes resorting into disaster recovery situations.
In short, application architectural layer according to me is the core pillar that builds an enterprise and includes all the applications within the organization. Very close attention is needed in the working of the application architectural layer.

As addressed in wiki "Applications architecture is the science and art of ensuring the suite of applications being used by an organization to create the composite architecture is scalable, reliable, available and manageable. Simply put, if this layer is flexible, and easily manageable, it will ensure the success of an organization and increase in the efficiency.

Lets talk about the major components that are integral for a successful application architectural layer;

Components that build Application Architectural layer


Enterprise Application Integration & Application Architect

After discussing about Application Architecture and the future trends in this architectural layer, now lets talk about enterprise application integration. I have been mentioning application architect in my previous posts as well, and I will try to involve the Application Architect in this post as well.

Enterprise Application Integration is a very new concept. I think of it as a mix and match activity, where as an organization you hash out the various components you need to make your application architectural layer, and then shop for those in the outside world. Essentially rather than reinventing, utilizing the resources from vendors, and then molding them to best work with your organization.
While this sounds exciting, a lot of work is done behind the curtain to create such type of solutions.
As an architect working with the concept of EAI (Enterprise Application Integration), he/she needs to keep some things in mind;
  • what is the goal/ objective of this activity?
  • what type of solution are we looking at?
  • assessing the internal organization, and then researching external market for options?
  • what will be the return on investment (ROI). Would this be cheaper or an internal engineering might be cheaper for us?
  • Once the goals are hashed, the architect needs to start matching these goals with the vendor applications. Are the applications flexible and easy to be maintained?
  • what will be the knowledge curve once installed within my enterprise?
  • short term versus long term advantage of this solution?
Lets talk some more about a basic approach to tackle some of these questions as mentioned in one of the Gartner artciles (ref: https://www.gartner.com/doc/2005116/identify-right-basic-approach-application), these are
  • Custom Point to point integration
  • On Premises Integration Platforms
  • iPaaS
  • Integration brokerage
However, there are four basic approach, which one is right for your organization is something that needs to be explored and researched upon.

Lets shift our focus and talk about application architect , role and why they are essential to an organization.Referencing the Gartner article; https://www.gartner.com/doc/2407415/defining-roles-responsibilities-application-architect  and another blog https://www.future-processing.pl/blog/role-of-the-application-architect/
Application architect comes after Enterprise Architect, and systems architect. They are also known as Software Architect as they are very close to the development/ IT layer. Since the application architect is very close to the technology layer, he/she has a better understanding of the applications and their dependencies within the organization, and they are able to better work on guiding the organization towards a more robust and an efficient application architectural layer.

Different architect roles


Application Architecture - Current Trends

In my previous post, i talked about the overview of Application Architecture and how it performs a critical role within the organization, in this post i will share my thoughts on the current trends of the application architectural layer.

With the emergence of cloud computing and technology, it is very evident that the future of application architecture is tapping into cloud space. SaaS, cloud computing is the answer for this, and that more and more enterprises are going towards this solution. I am a big supporter of cloud computing, and might sound biased by saying that if somebody wants their enterprise to be on the cutting edge of technology and reach the masses, cloud is your road to take. The infrastructural cost is very minimal, and the share of knowledge is as fast as the speed of light.
There was a time in our lives, atleast when i was growing up that we shared information on the floppy disc, CD roms, and then came USB devices and now everything is in the cloud. The ability for me to access my documents and talk to my grad school peers sitting in India, share my documents over the inter-webs is something more than extraordinary. Just thinking about this solution on an enterprise level, as an application architect, my work would be less busy as their is one less thing i have to worry about (the physical servers). To be able to size my servers on the go, add solutions like ERP, CRM to manage my stakeholders, i go from 0 to 60 in much less time than physical architectural setup. This goes without saying that more focus is needed around compliance and security, but atleast we got our applications all in sync and flexible that can be molded in any form an organization wants in.
Although i went on and on about the advantages of cloud computing as a future trend setter, good things always come with some cautions. Some of the impediments as also mentioned in a cloud computing article (ref: http://www.cio.com/article/2431187/cloud-computing/the-case-against-cloud-computing--part-one.html) are;
  • Some enterprise apps are so native that they cant be migrated conveniently
  • Risk with legal, regulatory, business areas, basically not being compliant
  • management of cloud applications
  • lack of SLA
  • Lack of cost advantage for cloud computing
In order to work on these impediments, as an Application Architect, one has to do a thorough research of the enterprise apps, and organize them between the ones that can be migrated conveniently versus the ones that are legacy apps, and cant be moved. Then the process of prioritization comes into picture where it needs to be decided whether the legacy apps are important for the company and/ or if they can be upgraded to newer and faster solutions. Compliance is another component that needs to be factored in this research process. Once all this is determined, money or topic of cost to the company is the biggest topic of conversation. Questions like "whether it makes sense for the company to move to the cloud? " , " how many apps are legacy apps, and cant be migrated to the cloud?", " how much money its going to take to move the entire apps to the cloud?", etc. These questions need to be answered and the plan needs to be put in place to ensure that the application architecture of an organization can align with the current trends of technology.