Haven’t you already become modern, by simply being in the cloud? By scaling down your on-premise data center, and jumping on the cloud bandwagon? What more modernization can there be, for citizens of the cloud world?
So what is the cloud? I know this is a rhetoric question and has been answered a zillion times by everyone, including Siri and Alexa. Why waste perfectly good kilobytes of storage, typing about it again? Bear with me, and it will make sense.
So what is CLOUD? : As in cloud computing, it simply means unification of all the computing resources so that everyone can get a piece of it at the right price. Just like mercury, you can play with it, utilize its properties and let go, and it will merge back into its pool. Using this, everyone has assured a guaranteed service, as long as one continues to pay. As the business heats up, the services can expand (mercury expands on heating, remember!) or scale-back when it cools down. Anything and everything can be put into the pool, when someone requires it and pays for it. This will be without permanently owning it, or having the liabilities associated with it.
Image source: https://www.slideshare.net/steffz/cloud-computing-in-e-commerce
10 years ago, you saw that your servers were maxed out, unable to serve during peak hours, impacting business adversely. You went for some sort of virtualization, and that was helpful, but it just wasn’t enough. There were always troubles with higher licensing, increased storage usage and VM proliferation. There were costs with server maintenance and patching, legal compliances and mandatory certifications. Those requirements meant, that these costs could not be shaken off.
This is when you started paying more attention to online services called cloud vendors. Logically, you start to address those liabilities of having an on-premise data center. You identified a Pool maker, say Amazon, or Azure or Alibaba or GCS, and then offloaded your website hosting for starters. Rewards to the organization were instant! No customer complaints, no hassles of maintaining expensive servers, no legal compliance issues, no more overworked understaffed & unhappy IT Department.
This goes on for 2-3 years, and now what? What about payroll processing? What can you do about staffing/recruitment, admin department, the training & learning portal, the procurement department?
You can feel the high costs of IT services & applications end of these departments, but can’t really do much because:
- These departments use proprietary software, which was highly customized for you.
- Some of these applications have been created by your organization, and they are must for the smooth functioning of the business.
- Getting rid of these legacy apps will have short term, but a considerable impact, which you can’t afford.
- There are teams which have developed these applications, and there is already a roadmap of adding features to these applications. Feature addition is more important than spending time on perfectly working app to send it to cloud.
- There is simply no equivalent of these applications in the current cloud SaaS or PaaS.
- These applications are created such that, there is no advantage of hosting them in the cloud. They have the same weaknesses like tightly coupled modules, inter-process communication via shared memory, APIs that are not ready for cloud setup.
- Apps provide no automatic way of delivering inferences or suggestions
- Apps cannot simulate trends and predict business alignments, in short, they are dumb!
So, all things considered, how can you make use of whatever advance cloud technologies are provided by Amazon, Azure, GCS & Alibaba? What will it take to modernize yourself for these cloud technologies? That is what this terminology is all about. Cloud Modernization, is not upgrading your cloud vendor, but using your cloud vendor such that their advancements make a real positive impact on your business needs. It reduces your CAPEX/OPEX and prepares you to roll forward to whatever comes next.
Here are some technologies you must explore:
- Application Modernization: A legacy application working on your virtual machine, will still be a legacy application. Even if you develop a WebUI, it only solves the problem partially. Application modernization would involve:
- Reviewing application architecture, identify components – assessment phase
- Resolving and redefining component communications from IPC/Shared memory to HTTP
- Coding to make every component compliant to REST API/WebAPI callable
- Deploying and testing component communication, while ensuring transactions are secure
- Validating all the functionalities at scale, stress & negative scenarios
- Mapping the components to cloud vendor workflows to achieve efficient scale-out/scale-back of resources
- Accounting for new feature deployment, bug fixes & upgrade scenarios
- Making the new application future-ready!!
E.g. several financial applications such as customer management, Forex management, etc. are still stuck in the single VM, unable to scale-out or scale-up because they have hit the upper ceiling of how much stress they can take without crashing. Containerization and taking advantage of Kubernetes could resolve most of these issues. Every service would have a REST end-point, independently scalable in a Kubernetes hosted containers/pods, providing security, resiliency and load balancing, in the days of higher loads. Saving the costs of hiring an entire server or a VM.
- Serverless Computing: A batch processing application, working on your virtual machine, is still a legacy application. It will sit and do absolutely nothing but burn through XX watts of power per hour, waiting for next batch of data. Even if you somehow manage to schedule the power cycles, just before the batch, it won’t be enough.
You can, however, use function computing (AWS Lambda or Azure functions)
- Map the existing batch processing functionality to identifiable functions
- Re-code pre and post-processing aspects
- Use cloud VMs or some other SaaS services for any actions that need to be done on the processed data
E.g. Large scale payroll calculations or video analytics would be excellent candidates for using serverless computing. A function designed for scanning millions of images, finding patterns and creating a dataset, could very well use Amazon Lambda, or Azure Functions. The advantage being, you are able to set storage and analytics pipelines within the confines of these platforms, giving you exceptional performance. Also, it saves you costs by using computing services, without having to setup, scale, maintain or decommission backend server farms.
- Data Analytics: Say, you have been running a business for more than a decade, and have garnered customer, sales, ERP and various kinds of data over the years. This data might be just sitting there waiting for its legal compliance period to end, consuming storage, and giving back nothing. Your own mind has inferred by looking at the broad data, that Christmas and Diwali are times of large shopping sprees, followed by lull in overall business as everyone starts planning for the year ahead. You have seen nothing yet! Data mining and data analytics, with awesome visualization, can let you address the business cycle more efficiently, making your business more profitable. You will need to consider:
- How to gather the data from various sources – Online/offline
- How to store the data – Databases
- How to understand co-relations between various data sources
- Which queries and what logic will bring out most value
- How to represent the data as visualizations, for quick and accurate decision making
By the way, analytics is extremely cost-effective, and ROI is typically very short. Say, implementing Azure Analysis Service, to use for your data, you can use all the ready tools, which are well integrated to work nicely, and provide great data insights.
- Robotic Process Automation: Application-oriented implementation of Artificial Intelligence (as against academic/research project), subset of which are Machine Learning & Natural Language Processing. A traditional business model can make use of these philosophies which are now well known and maturing products.
Functions every business have, are customer engagement and backend technical support. Natural language processing (NLP) or as Amazon describes it, Natural Language Understanding (NLU) can go a long way to start customer engagement early on, generate credible leads and detect opportunities by simulating a meaningful customer engagement.
Simulating, because it’s the application of NLU, that understand the context, detects interest level (customers page views, clicks, time spent of pages…), suggest relevant content and finally shortlist them as potential customer.
- Implementing a Virtual Assistant (aka VA/chatbot), that can refer to tracking data & keep customer engaged, long enough not to lose them, and brings in human for next level of interaction.
- A VA that can help potential customer, by referring to tracking data. Typically works during offline hours.
- A VA-enabled customer engagement. Algorithm that works as VA, generates suggestions based on tracking data, for a human technical support person for customer interaction. Some of the aggressive implementations have gone as far as reading the type-in text box, and generating suggestions even before human customers have pressed the “Send” button. Although there are some ethical questions around it, from an engineering stand point, this is similar to pre-fetch or read-ahead cache.
A business can use, Amazon Lex which is the same technology behind Alexa, which works using NLU. Azure bot framework provides similar offering, by accelerating building & deploying a chatbot within short span of time.
Other kind of RPA is, environment based decision making, to achieve a task. This interaction is more on a physical level, where data coming in, is in the form of sensor readings, event & alerts, based on what decisions are made. Sensor based network is typically an IoT setup, with some of the processing being done on the Edge computing systems. Another use case could be of an automated or AI assisted farming.
- IoT sensor network comprises of a grid of humidity, temperature, pH, nutrients (electrochemical) & Optical sensors
- All data is sent to edge computing device, which reduces anomalies and compacts the data (map/reduce)
- Data received by central systems process it against ideal data set and suggestions and actions are delivered. E.g. automatic watering/fertilizers/pesticide delivery systems, or information related to unusual colours (possible plant infection) detected by optical sensors
A business can use, AWS IoT offering, to complete their IoT and analytics journey right from FreeRTOS which works at microcontrollers & Greengrass that works at Edge computing to a gamut of IoT based services like, analytics, visualizations (IoT Things Graph) & device management.
A similar offering with varied capacities and value-adds exist with GE Predix platforms. A vertical integration in any of these cloud platform supported services, offloads most processing of data, maintenance of devices, security compliance of end-points and Edge devices, and still provides cost savings by providing useful insights into business functions. These services can scale right from home automation/security to large industrial automation and predictive maintenance.
Summary: Cloud Modernization may be used in varied sense of its meanings. However for businesses, it means, transforming your infrastructure and applications so that cloud provides best ROI on an ongoing basis. Using cloud modernization to unlock the value of your applications and data, by synergizing them with modern tools of analytics and AI.