Skip to main content

ARCHITECTURE & DESIGN : Software architecture, it is rapidly changing !

Being an Architect over last 18+ years, I revisited myself to understand how my thought process started adapting to the new technology trends. During end of last century and early part of this century my attitude was always giving pragmatic effort towards designing thin client applications and treating server as a giant to handle complete responsibility. Those were monolithic architectures. During architecture phase, I was not really worrying about hosting environment, except designing software for clustered environment and for shared data requirements.
     Later, popularity of Ajax introduced minor changes in the architecture. This impact was in terms of thin clients becoming little smart to improve user experience. But architects did not face new challenges to design server side applications. More or less same monolithic servers continued. More than 10 to 15 years, hosting vendors did not contribute many changes except introducing VMs and shared environments. Architects always gave importance towards - data caching, minimizing database calls, and optimizing connection pool and few more.
    Last 3 to 5 years period was a major break through in the software architectures. Business coined concepts like ‘Pay Per Use’, ‘On Demand Services', etc. These business attractions are derived based on the maturity of Cloud hosting. In fact big players like Microsoft, Amazon, Google are competing to get dominance in Cloud business. 
    So, today’s architectures have to be convincingly answer following questions
        Q1. Is maturity of the Cloud impacting on the software architecture?
        Q2. Is there a serious thought process change required while designing client and server side applications?
    In fact ‘Yes’ is the answer for both questions. Let us deep dive in to the first one. As mentioned earlier in this article, architects were not paying much importance to the Infrastructure side. Today it is very essential to master cloud concepts before designing software architectures. Let us analyze how business concepts like “Pay Per Usage” matters to server side application architecture. When an application client request reaches server, it has to be served faster so that processor allotted to request has be freed as fast as possible. Minimizing processing time reduces Usage meter in turn bill from infrastructure vendor. In fact this is one generic example, but when we understand this carefully, application server side architecture has to be designed with small and not long live functional services. Here where we are getting in to analyze question 2.
    Just like earlier approach, architects cannot treat server side application as a monolithic structure. Rather, visualize server is a pool of “Micro services”. Cloud concepts are also encouraging to design “State less Services” or some thing called “Server-less architecture” 
   In addition, client side designs do not have to be factored for thin or semi-smart clients. With the maturity of technologies like Angular, React, Flutter and few more, architects should be mastered in wisely distributing application load towards client side too. Of course this approach would also boost greater user experience, better location based application behavior, native intelligence etc.  
    All these years we have mastered monolithic architectures. But new challenges have popped-up to design new generation applications for Cloud using advanced frameworks, new best practices and new architecture/design patterns 
   In summary, to be part of current trends, architects might need to unlearn few things and institutionalize new bread of technologies. 
    
Shiva, Chief Architect,
systemWorks consulting services(systemworks.in)

Comments

Popular posts from this blog

Bootstrap your Idea: Best technology roadmap with a quick go to market strategy !

 “People don’t want what you sell – they want what they believe” Best solutions can be derived when we spend good amount of time in understanding customer problem. Again definition of ‘Problem’ is like the story of   “Blind men and an elephant”.   Stakeholders of the end product are truly inspired by the idea what they have believed together. But each one of them have there own problem definition in order to realize in to a successful product.       Here comes the role of solution provider who should have real good attitude and expertise in terms of understanding each stakeholder.       Let us list few prime stakeholders what they might seek...       Investor/CEO : Ideas are always sweet but they have to be tested quickly with end customers. If idea is not right then modify it or ‘Fail Cheaply’      CTO : Technology should help quick prototyping, easy to enable new featur...