Evolution towards Cloud Native Architecture & Development Part - I
I started my software journey in late 90’s as an Oracle developer, dabbling with database, Oracle forms and Unix with touch of Ç Programming, I was enthralled at the immense possibilities with these tools. But it was short lived, early 2000 with big bang web revolution came in JAVA with it is promise of ‘Write once and run anywhere’ paradigm. There was lot excitement in development community, those days, theServerside.com was one of the best resources for anything and everything on J2EE. Focus shifted towards segregation of the front end, business logic and database layers.
At the same time, there were rapid advancements on hardware front as well, availability of higher memory capacities, faster CPU's and IO devices. Monolithic application architecture was predominantly used for building enterprise applications. With a large database becoming a storehouse for the applications, it was easy for IT team to cater to limited business needs. Enterprise resource planning (ERP) became popular with SAP and other vendors selling to enterprises.
However, with more users getting on Web, there was a need for faster, quicker deployments, quicker changes to business needs, response time, etc. Distributed architecture came in, promising better response, load balancing and allowing loose coupling of applications. Middle tier applications gained prominence with service Oriented architecture, enterprises were able to orchestrate services, both internal and external to provide seamless user experience.
With advent of smartphones android and IOS providing digital gateway to large user base through their play store and marketplace. Mobile apps become popular and business saw huge opportunity to tap into large customer base. Users base increased exponentially, with access across variety of form factors. Key focus was on high availability, sub second response times and maintaining high user stickiness
With higher usage of Mobile apps, users accessing apps, placed greater loads on servers. This required key focus on availability, response time and coverage across devices. Cloud computing promised to deliver these capabilities. Hardware and software have become commodities with Infrastructure as a service (IAAS), Software as a service (SAAS) and Platform as a service (PAAS) providing support various class of users and business
Though, not a practicing architect, but having involved with large software development projects and products for past 20 years, I have seen technologies, architecture evolving from client server, ERP, web applications, content management, portals, search engine, business transformation, business intelligence, cloud computing, AI, machine learning and digital transformation
In this series of articles, I would share my personal thoughts, experiences both from past and current learnings in evolution of architecture landscape from monolithic to cloud native.....