Mandar Marulkar, CIO, KPIT Technologies
Whichever way you define it, the term “server-less” is actually a misnomer. The servers are not being replaced – We continue to use servers involved in running our app; it’s just that we’re not managing these servers (our cloud provider takes care of them). Serverless computing allows us to build and run applications and services without thinking about servers. Serverless applications don't require us to provision, scale, and manage any servers like typically in the IaaS. We can build them for virtually for any type of application or backend service, and everything required to run and scale the application with high availability is handled by the provider.
In that sense the focus of the software developer becomes the app at hand rather than the infrastructure that is needed to deploy and run that app. I believe this is a welcome improvement as it allows the energies and efforts of the developer remain focused on his/her own competencies. Key benefits are that there is no need to provision or maintain any servers. There is no software or runtime to install, maintain, or administer. Applications can be scaled automatically or by adjusting its capacity through toggling the units of consumption (e.g. throughput, memory) rather than units of individual servers. Serverless applications have built-in availability and fault tolerance. We don't need to architect for these capabilities since the services running the application provide them by default and most important we don't have to pay for idle capacity. There is no need to pre or over-provision capacity for things like compute and storage.
Your question, about whether this is a step towards pure development, well I have my doubts. What is ‘Pure development’ is a relative term. There are languages like Angular JS and R that inherently don’t set any infra parameters so are they more pure than a Java or C++? My belief is that going Serverless makes economic sense that is the most influential lever in choosing it in the enterprise application portfolio.
Microservices are fast becoming the architecture pattern of choice for most enterprises. We are amongst the early adopters of this paradigm and began our shift to this form of architecture two years back. The journey began by choosing the right PaaS solution (Pivotal Cloud Foundry)and we have never looked back after that. Our Smart Enterprise platform that powers our Intelligent ERP and Smart Campus platforms. The points which influenced our choice of microservice architecture were - Faster and simpler deployments and rollbacks, ability to have multiple parallel deliveries (by different teams) and the resultant predictability in the overall availability of functionality. I believe that Microservices cannot be seen in isolation, what is driving up the adoption is a combination of the following factors – evolution of PaaS, autonomous teams, Continuous Delivery and overall push for agile business processes. Every service must be small enough to be handled by a single team. This will help reap the benefits like selective scaling, high resilience against failure and reduction in risks by way of smaller yet incremental changes being brought in. I believe all these benefits can be reaped if architected right!
Technologies like AWS Lambada or Google Computes etc. don’t directly influence the microservice adoption, they rather act as catalysts. At KPIT we are using the on premise version of Cloud Foundry and are able to reap benefits that microservices have to offer. However, we have been using Lambada for quite a few scenarios and have also exploredAzure functions to demonstrate quick design turn arounds for new ideas. In the moment analytics, persona and context based content and stream based analysis of data are the areas where we at KPIT are at the forefront. We have been early adopters in many of these technologies and are setting the benchmark as to what can be achieved using the digital technologies. We see API market place becoming mainstream soon and on the IoT front too, the overall IoT platform capabilities are expected to improve by leaps and bounds. I personally feel that in a couple of years the IoT platforms will become as omnipresent as the operating systems are today.
KPIT’s Journey through Monolithic to Microservices
As mentioned earlier, we took the leap towards microservices architecture two years back. It began with the choice of the right PaaS i.e. Cloud Foundry. We then set about creating our digital platform using this PaaS. We named this platform ‘Smart Enterprise’. This platform helped us deliver our award winning digital transformation initiative ‘Smart Enterprise’. We have identified seven pillars of Digital Transformation – Smart Campus, Smart Collaboration, Smart Business Processes, Smart Insights, Smart Workforce, Smart Relationships and Smart Infra. We have gone about creating this platform from the ground up and have followed the twelve factor app ideology for microservice development. What has helped is that the embracing of DevOps and Agile methodology. A strict adherence to the Agile rituals, use of CI/CD tools and use of digital technologies has led to us developing a platform that now hosts hundreds of microservices. As we speak, we are moving away from our existing monolithic application stack to microservices based stack to deliver new age Systems of Engagement & Intelligence.As part of this project we are in the process of rolling out the new intelligent ERP (i-ERP) based user engagement system that provides our colleagues a context aware application that is easy to use and interacts with the SAP S/4 HANA based Systems of record. This entire application is based on the microservice based framework running on pivotal cloud foundry. We are using cognitive services from the public cloud providers like Google, Microsoft and Amazon Web Services.