Most enterprises are struggling to innovate and are not investing enough into new technologies to counter disruptive measures. As a result, in a few years, their products are becoming irrelevant in the market. Examples of Blackberry, Nokia, Kodak, Blockbuster have been quoted numerous times. Technology has lowered the entry barrier to innovation, and new entrants can easily disrupt the entire business models in a matter of months. Geographical borders do not guarantee any competitive advantages anymore. Any breakthrough or new idea travels around the world in a matter of minutes.

For an enterprise embarking on the digital transformation, following key things need to fall in place for building digital capability within the enterprise:

  • Business vision – digital transformation initiatives are cross division or cross-functional, as a result, having a common business vision to drive the transformation is very important
  • Leader led – the digital initiatives need to be top driven and led by a senior leader. The cross-functional team should report to the leader
  • People skills – cross-functional team needs to be staffed with people that bring varied experience and are adept at defining and refining digital journey focused on the customer experience. In case, the team is relatively new to digital, then hiring for appropriate skills need to be undertaken. Existing team members can undergo training for required skills. People that bring multiple skills to the table are core to the team
  • Platform approach and Automation - when looking for technology choices in implementing the identified projects, start thinking in terms of platforms instead of systems. Digital transformation is not about one project or program, the continuous iterations and interconnection of functionality, requires platforms that provide the requisite services to build such experience in a rapid manner. The implementation team should not get bogged with scalability and performance issues, things that mar the customer experience. The platform should handle the scalability and performance aspects of the application. Similarly, horizontal capabilities like data analytics, data aggregation, content services, logging services should be viewed and built as platform services. Again, if platform building skills are not available in-house, they need to be hired from market to jumpstart the process. Another key capability is to automate the Development to Operations application lifecycle (DevOps). When you working on scale, manual processes and intervention is error prone and not at all feasible. Investment in automation of all the DevOps process is an important part of the building digital capabilities
  • Open source software – in the digital products and services space, given that the product(s) can become viral overnight, scalability and performance of the product/service is a key criterion. Use of commercial proprietary products limits the ability of the enterprise to scale the product. Licensing cost is also the key factor for handling user base in excess of 100 thousand. Open source software allows benefiting from the larger community, cutting down on the costly license, use of commodity hardware and ability to dig deeper into code (if required). The platform approach is executed using a combination of open source software.


Enterprises threatened with changing business models have already built or started building digital capabilities. Companies like Walmart are no longer just brick and mortar players but giving tough competition in the online e-commerce space also. Investment into future is required for enterprise to reinvent them for the digital era.

This post originally appeared at www.techspot.co.in
For enterprises disrupting the marketplace, technology is the key enabler that is helping them create new business models and processes. Open source software has played an enabler role in developing these new scalable and high-performing systems. From the digital transformation perspective, following four levers play an important role.


  • Connected – with the advent of IoT everything is getting connected. All this data is being transmitted over mobile and fixed bandwidth networks where the enterprises are making sense out of it leading to real-time decision making. New service models are being created around data. E.g. Rolls Royce aircraft engines capture data around the engine performance which can be given as subscription to airlines for predictive maintenance. This data can also be used to develop models for better engines.
  • Data – All the data from Things, device location, social interactions etc needs to be captured, processed and analyzed for patterns, behavior discovery to allow better predictions and decisions to be made.
  • Automation – Given the scale of the systems and data being emitted/generated for analysis, automation is the key enabler. Traditional technologies need to be combined with Artificial intelligence and machine learning models to increasingly create systems that can work autonomously. Lots of supervisor roles can be automated using the AI models. E.g. Uber has eliminated the complete middle management role found in a traditional taxi services company.
  • Users First – All the data and automation need to be used to build and provide contextualized products and services for the users. Enterprises or intermediaries can get direct access to users/customers via mobile apps. Users can have fully transparent access to their data and enterprises can offer services around that. E.g. Tesla have built a model for direct selling of cars to the end customer bypassing the franchise/dealer network. This allows them to understand the customer behavior and usage of car. They can sell additional services based on the user context.


It is still early days of digital transformation. Lots of enterprises are taking steps with digital as digital marketing which is a very narrow and siloed focus. Digital transformation is about rethinking the business, operational and technology processes (e.g. customer onboarding, customer cross/up sell, customer service, core products/services etc). Technology is the key enabler and drives the entire business model in the digital economy. Every company is being transformed in a technology company where technology is enabling all these digital interactions.

This post originally appeared at www.techspot.co.in
New forces are impacting the entire value chain of an enterprise. Availability of large amounts of digital data, automation of the production processes, inter-connectivity of the supply chains, and digitization of the customer experience is re-organizing entire industries leading to the transformation of business models.

Let’s look at the some of the critical pieces of the value chain and see the impact of the new technologies.


  • Manufacturing – For any enterprise that is manufacturing or sourcing raw materials/parts/products, global sourcing has become the norm. Inter-connectivity of the entire supply chain via telecom networks has synchronized supply chains and shortened the production cycles. The advent of the Internet of Things (IoT) has enabled this inter-connectivity across the value chain
  • Distribution and Logistics – the distribution model is moving online, market boundaries are blurring, business and people are ordering from all over the world, leading to changing dynamics in the distribution and logistics part of the supply chain. The advent of 3D printing will bring changes in the way logistics are managed. Parts can be printed on location, saving on costly logistics and [asks for differential] warehousing strategy from today. Third party warehouse and fulfillment centers (e.g. Amazon fulfillment) changes the whole cost model. The advent of Geo location has allowed real time tracking of the item enabling more transparency allowing faster decisions.
  • Customer, Employees – With smart devices everywhere, consumers are starting to ask for information that is contextual, real-time and pushed to them. When the same individuals go to work in their companies, they expect the same quality of customer experience. The entire social revolution focused only on the social aspects of the customer journeys, but what digital millennial need is the digital transformation of the end to end customer journey. Large amounts of customer from social networks combined with knowledge of the customer from internal systems needs to be combed for creating a personalized, contextualized customer experience - a 720 degree of the customer.
  • Enterprise Systems – Businesses are not investing enough in Change to keep pace with the digital transformation happening all around them. Digital transformation is being enabled by technology and enterprises need to upgrade/enhance their legacy systems and technologies to support the new digital processes/models. Availability of SaaS solutions, open source software, big data, cloud computing is changing the enterprise landscape. The skill sets required to manage and make sense of these new plethora of technologies is driving the transformations.

The impact of the transformation can be seen in pioneering industries such as music (digital products are delivered via digital channels), media (traditional print news media is already on downward spiral, media giant Facebook does not create any content), retail (brick and mortar stores are getting replaced with online eCommerce stores, today largest retailer Alibaba does not own any inventory), taxi services - online ride aggregators are changing the dynamics of traditional taxi services, Uber does not own any taxis and electric cars are changing the dynamics of entire auto industry - imagine no car recalls but OTA software updates to fix the issues. Signs of similar digital transformation can be seen across most of the industry domains.

What signs are you seeing impacting your industry value chains?


This post originally appeared at www.techspot.co.in
Enterprises have been struggling for years to develop applications that are agile and quick to change. Microservices architecture provides a way to address this challenge and has therefore caught the attention of enterprise IT teams. Beyond the initial enthusiasm, proof of concepts and pilot implementations, enterprises are struggling to adopt this architecture. In this blog, I explain why enterprises need to consider a strategic approach to Microservices architecture and suggest a four pronged approach to adoption.
Microservices Enable Evolutionary Architecture
There are quite a few architecture styles that have emerged over the last few years from the internet companies that don’t have the constraints of legacy systems. One of the key characteristics of these architectures is their ability to respond to changing business needs, known as evolutionary architecture.Microservices architecture is one such architecture style that can address variety of concerns that effect the agility of systems. From a technical standpoint, Microservices uses service orientation principles and functional partitioning to “monolithic” applications to make systems function as relatively independent services. From a business benefit standpoint, it makes enterprises digital ready and offers multiple advantages to them. Some of which are:

  • Allows experimentation & innovation, leveraging cutting edge technologies, but localize the related risk only to a specific service.
  • Because of independent services, scaling of teams is easier, as Microservices reduces coupling between teams and enables more autonomy and accountability.
  • Improves resiliency of mission critical systems, by scaling and replicating parts of systems rapidly. In case of failure of a specific service, rest of the system can continue to run.
  • Enables cloud adoption and cloud native architectures by deployment of services over multiple VMs or containers working together
Thinking about Microservices Adoption & Challenges
Embracing Microservices architecture at an enterprise level poses unique challenges especially if we consider large enterprises that have complex application landscapes. Some of the common questions that both large and mdi-size organizations ask are:

  • Where do we start the adoption of Microservices?
  • Coupling within existing systems can be complex. Is there a way to prioritize application portfolio?
  • What capabilities do we need to start adopting this architecture style at scale?
  • What practices should we use to ensure successful adoption and get best of Microservices architecture?
  • There are no proven enterprise adoption patterns, as there is very little enterprise wide adoption outside Internet native companies. How do I do enterprise wide adoption?
Approaching Adoption Strategically
Often enterprises take a tactical approach and use Microservices to douse fires in specific problem areas. Such thinking will do more harm than good. Hence, I recommend a logical and strategic four pronged approach towards adoption. These activities need not happen in the mentioned order though. Necessary capabilities will have to build systematically, which will help realize full benefits of Microservices.

Discover: Articulating the business benefits and creating a case for Microservices adoption. Based on the maturity of enterprise this can be optional. However, one might have to build a case to get the necessary investments and budget allocation.
Plan: Assess the current state capabilities and identify the gaps in terms of capability that is required for adoption at scale. These capabilities include frameworks, technology choices, governance etc. Another important activity is to identify the applications of priority where Microservices architecture can be applied.
Act: Build the base capabilities needed for Microservices. Choose the right technology stacks. Build out platform capability. Setup guidelines and prepare playbooks. Put forward service design guidelines and start implementing services.
Optimize: Take Microservices architecture into production at scale. Ensure services are organized per domains. Automate the deployment processes. Bring in strong management & monitoring capabilities. Keep an eye for potential pitfalls.


This post is cross posted from www.wipro.com to www.techspot.co.in
Application architectures are evolving from the era of large monoliths to a more distributed design based model. One of the key initiators of this movement is the advent of cloud computing and the ability it brings in terms of handling ever increasing scale. When an enterprise primarily soaked (people and processes) with the model of building and managing monolithic applications, the journey to build new distributed systems requires re-learning some of the older design techniques and adopting some new patterns. As part of this, I will detail certain architecture concerns that become prominent when moving to a distributed model of application

  • Scheduler/Orchestration management – From managing 100s of instances to managing 1000s of instances require the ability to orchestrate/schedule service instances/containers across hosts in a seamless manner. To handle increasing scale, workload scheduling/orchestration is a key ingredient of distributed system. Products like Docker Swarm, Kubernetes, Mesos, Marathon etc are some of the leading products in this space 
  • Service Discovery/Registration – As the container based services go up and down, there need to be mechanism to register/unregister the services along with the mechanism to discover the service end points at run time. Products like Consul, Zookeeper, etcd, Confd, Eureka are some of the leading products in this space. Most of these products support load balancing of the incoming traffic across the service instances. 
  • System State Management / Cluster Management – As the cluster grows, there is a need to manage the system state of the cluster. What are the SRV for each of the services, how many instance, on what hosts, what is load etc. To manage this, there is a need for cluster management that keep track of the system state. Products like Docker Swarm Agents, Kubernetes Nodes/Masters, Mesos Slaves, Containership etc are some of the leading products in this space 
  • Data storage – the container storage is ephemeral, which means the any data that needs to be retained beyond the container lifecycle need to be persisted outside. Projects like Docker Volume Plugin, Flocker, Kubernetes Persistent volumes etc are some of the key products 
  • Network – with each of the containers running different processes, there is a need to manage and at time isolate which container services can access which other services. Multiple containers are running on same host sharing the network resources might require security groups to be created for container isolation. Similarly, containers might want to discover services that are hosted across hosts and need simple model to access those. Products like Flannel, Weaveworks, Calico are some of the products in this space. 
  • Monitoring/Auditing/Logging – With 1000s of containers running, monitoring/auditing /logging each of the containers become a tough problem. Data/Logs need to be pulled from each of the container for analysis. Products like Loggly, Fluentd, logentries, datadog, ELK stack are some of the key products in this space. 
Besides this, other factors that need to be considered are Container OS and Container Runtime when architecting a distributed application. Other factors like application runtime, deployment management, DNS, Security, SSO/OAuth, API Gateways, Circuit breakers, Performance/Scalability Patterns etc still need to be handled. In your experience, anything else that is a key architecture concern for distributed application, please do share.

This post originally appeared at www.techspot.co.in