Application Services provides a platform for IT Development and Maintenance professionals to discuss and gain insights into best practices, process innovations and emerging technologies that will shape the future of this profession.

November 15, 2016

Things are Getting Chattier - Chatbots

 

In today's world messaging is ubiquitous and defaults to our preferred way of communication. From Pigeons to Chatbots, this service has undergone a phenomenal change in terms of it usage and capability. Modern era messaging was initially pioneered by telecom industries in the form of paging service and then later as SMS which now is fondly called as texting. With the advent of technology messaging service has broken the boundary, the service which was once a bread and butter of telecom industry is now provided by various digital platforms.

Modern digital messaging platforms have extended the traditional vanilla messaging service to being more feature based and affordable. Gone are the days when you just messaged plain text in abbreviated form, today message can contain any forms of media. With ever growing user base being engaged in this medium messaging as a platform was bound to leap to the next level of innovation - Chatbots. Chatbots or Conversation Interfaces are computer programs that are capable to respond to human conversation. Chatbots are the outcome of convergence between Messaging platforms and AI (Artificial Intelligence), the advancement of both of these fields has made this happen. If you consider initial SMS era as Messaging 1.0, the advent of digital messaging platform could be considered as Messaging 2.0 and current rising era of Messaging bots augmenting a well-established platform could be considered as Messaging 3.0.     

Chatbots are obvious evolution for our quest for Artificial Intelligence and simplified User Experience. Instead of developing an application that needs to be navigated specific way for getting the desired response, Chatbots gives us a more natural approach of getting the desired results or response by using natural conversation that we are so much used to. Unlike conventional interface, Chatbots makes systems more intuitive and flattens the learning curve. One of the beauty of this application user experience is the natural documentation that any Chat trails or Chat History would provide for other users for their efficient usage.

The concept of a bot responding to your message is not totally new. The well-established text banking which allowed you to text specific commands for particular actions on your accounts are the predecessors to today's Chatbots. Appeal for Chatbots comes from the fact its morphs to our basic and convenient method of interaction - Messaging. Imagine what mobile apps have done to website today by porting their functionality to native apps, Chatbots today have a similar potential of porting apps functionality to messaging platform. With mobile being core to our life today and messaging being our primary interaction, Chatbots is evolving to be as Messaging or Conversation first approach for our Application Systems..

Facebook and Skype are going big time in exploring and dominating this space, today they are providing platforms that business can use to onboard their solutions to conversation platform. Skype already have many bots that help you from finding cheap airline tickets to getting weather updates by mere conversation. Facebook with its extensive reach is well positioned to give enterprise the required platform that could keep their users engaged and translate it to business opportunities. There are also solutions where some businesses have leveraged this avenue in a unique way, ICICI bank has introduced 'iMobile SmartKeys' which is a keyboard that you can use in your chats to transfer fund without having to move away from your messaging app. Similarly Google's GBoard is a custom keyboard that has search integrated to it and ensures that users does not have to move away from his messaging experience to get search results into their conversation.

Though revolutionary, Chatbots have their own challenges and strengths. With Chatbots the interface becomes simpler but the design gets complicated. Efficient Chatbots have to be fronted by robust Natural Language Processing (NLP) engines to handle wide variations of human conversation and channel them to respond efficiently. Everything need not be built from scratch, the ecosystem to build these solutions are growing and becoming more efficient. Facebook, Skype and other prominent messaging platform are providing the required platform to develop bots. IBM Watson, Google and others are providing robust NLP capabilities. New frameworks are springing up making developers task easier. So things are getting geared up for systems to get chattier.

Like any other application model, certain use cases are better served through Chatbots when compared to others to start with, for example Chatbots are well suited to get answers to questions "How far is New Delhi from Bangalore" rather than "Show me the nearest route to New Delhi", the later use case would rather be well triggered through conversation rather than being served through it.

This trend is just the beginning of new avenue of opportunities that is ripe for business to harvest to extend their reach and enable further their business. In today's new world of emerging AI, it's time for conventional systems to start conversing to humans and leave browsers behind.

October 13, 2016

The art of choosing the right product for business transformation

Author: Ravi Narayan Vishnubhotla, Senior Technology Architect

As part of the future-state architecture of IT transformation, certain business requirements need specialized IT applications. These could mandate newer technology systems or migrating from legacy technology platforms. As part of buy versus build evaluation, products that can address such requirements need to be identified.

Continue reading "The art of choosing the right product for business transformation" »

October 4, 2016

Indoor Localization

Author: Varun Singla, Technical Test Lead

Location these days carry a lot of importance in indoors as well as outdoors. Outdoor localization, these days is, widely used in many applications with the help of versatile sensors and technologies like GPS, accelerometer, gyroscope etc.

Continue reading "Indoor Localization" »

September 16, 2016

Future of enterprise web applications: Pervasive next-generation JavaScript

Author: Arshad Sarfarz Ariff, Technology Architect

No one would have ever thought that a 10-day project, created at Netscape by Brendan Eich in 1995, would turn out to be the frontrunner for building enterprise web applications after 20 years. Today, JavaScript leads the race for building isomorphic web apps. An isomorphic application is one whose code can run both on the server and on the client. This was primarily made possible by Node.js - an open source, cross-platform JavaScript runtime environment built on Chrome's V8 JavaScript engine, which opened the doors of JavaScript to server-side coding. 

Continue reading "Future of enterprise web applications: Pervasive next-generation JavaScript" »

September 14, 2016

Minimizing risks implies investments in automation for next-gen underwriters

Author: Naveen Sankaran, Senior Technology Architect 

One of the main objectives of software is to automate work that would otherwise be done manually. This has multiple benefits including cost reduction over the long term, increase in productivity and profits, and the ability to channel human effort towards more important work.

Continue reading "Minimizing risks implies investments in automation for next-gen underwriters" »

July 18, 2016

My experience with Bare metal provisioning: OpenStack Ironic

Cloud! The name itself says a lot. No need to explain. But just think about what were there before cloud. Guess!! Yes, it is virtualization. Entire community was amazed with the capabilities and the feature virtualization technology provides. The ease of maintaining infrastructure and reducing burden on the cost was truly awesome. No doubt about it.

However, when technology evolves further and started new edge on the research and technology, cloud came up. And surprisingly, it started roaming all over the IT sky in a very short time span, it grew like anything. Now everyone talks about the cloud, what why, how and so on. Most of the organizations and products are now moving to clouds and using its benefit.

So, what next! Yes, when we talk about cloud, many people raises their eyes and ask, what about computing performance and for that I have answer, bare metal provisioning in openstack, aka Ironic!!!

Ironic: the openstack bare metal hardware provisioning service

Today, I will shed lights on the setup and challenges faced while implementing the same across projects.

As you might be already aware, the main purpose of Ironic service is to provision the hardware based on the configuration and let the guest operating system be installed on that remotely to have the E2E infrastructure provisioning done.

Components:

·         Ironic has three major components

o   Ironic API

§  Talks to Nova compute service

o   Ironic conductor

§  Talks to other openstack services  

o   Ironic DB

§  Talks to the different drivers.

Configuration:

·         Make sure that authentication system is in place before executing any openstack command.

·         You need to download the rc file from horizon dashboard and source it.

·         Actual command  : source server-openrc

·         This file contains all the variables required to locate each service and url. It asks for the password once you enter the command. you need to enter the admin password if you are using rc file of admin user

·         Every user has its own RC file which contains information related to its tenant, projects and credentials etc.

·         You need to create the endpoint for service. The service type is baremetal and service name is Ironic

·         Ironic API and Ironic conductor service can be on different machines. Ironic conductor can be installed on many machines but there version should be same to have exact function properly.  

Database:

·         Mysql DB gets used to store all data. mariaDB prompt comes for all the mysql commands.

·         Ironic database and ironic user has to be created.

RabbitMQ configuration:

·         In the first attempt, we see that rabbitMQ portal was not working. To fix that, we have to install management plugin and then it started working.

·         Get the RabbitMQ username and password from nova configuration file.

Key challenges:

·         While creating ironic database, faced the issue with sql connection. The issue was, while creating database, service was not able to access the mysql connection. The reason being, in the /etc/ironic/ironic.conf file, in the connection section the IP of controller where identity service is running was provided. Instead, it should contain that entry which is there in /etc/mysql/my.cnf

Drivers:

·         Ironic supports plenty of driver to provision the hardware and install the OS. There are various 3rdparty providers who have their own proprietor software's and drivers to work with Ironic.

o   The popular one is IPMI

o   Installed the IPMI utility.

o   Configured the service as it is and restarted the service.

·         It seems that IPMI-tool need IPMI controller hardware to be present on the machine which is being provisioned.

Configuring Compute service:

·         Nova.conf file needs to be modified to add the parameters required for Ironic to work.

·         Sometimes nova.conf file present on the both the boxes. Compute node and controller node. This is bit confusing. The file which is present on the node on which nova-scheduler service is running is the main file and is responsible for all the changes related to Ironic.

·         Once all the configuration are in place, restart nova-scheduler on controller node and nova-compute on compute node.

Enrollment process:

·         While enrolling any node, we need to provide the ironic api version. set the environment variable : export IRONIC_API_VERSION=1.11

·         Need to register the MAC address with ironic service. If there are multiple NICs , get the MAC address of that NIC which is connected to LAN

·         Node should be in available state so that compute service can see it to provision the hardware. If the node is in any another state then compute service won't see it and cannot be provisioned.

·         Node cannot be moved directly from enroll state to available state. First they should move to manageable state and then to available state.

To summarize, bare metal provisioning is really cool stuff when you design the private cloud and planning to deploy an application which requires high end computing and are very sensitive to computing performance. "pxe_wol" is the easiest driver to learn how Ironic service works and get acquainted enough to understand capabilities of Ironic. As I mentioned earlier, there are plenty of drivers, however, they need special hardware support and configuration to get it working. Try with "pxe_wol" first and move forward.

Typical Openstack Ironic conceptual design you can refer here:

http://docs.openstack.org/developer/ironic/deploy/user-guide.html

References:

https://wiki.openstack.org/wiki/Ironic

https://developer.rackspace.com/blog/how-we-run-ironic-and-you-can-too/

https://software.intel.com/en-us/articles/physical-server-provisioning-with-openstack

April 4, 2016

IT Transformation is Business Transformation! Why? How?

Author: Ravi Vishnubhotla, Senior Technical Architect (Insurance - FSI)


Today, IT transformation (IT Strategy/Application Portfolio Rationalization) has become synonymous with business transformation. In this post discusses why has this happened and how can it be achieved.

Why is IT Transformation same as Business Transformation today?
As part of IT Transformation, businesses and clients go through IT strategy for 3-5 years to replace their existing legacy technology with newer or better technology. IT Transformation is assessed in terms of People, Process and Technology. The sponsorship is mostly within IT department and implementation of the strategy is completely IT driven. However, in today's era where growth is measured in terms of revenue / profit / customer service and SLA's, IT becomes an enabler for business to achieve these goals. So when business vision, mission and goals are considered, IT transformation automatically becomes the same as business transformation. Business users play an active role during this process and  act as a key driver for the successful completion.

How can Business Transformation be achieved?
Business Transformation can be achieved by using the following methodology. This methodology is one of approaches based on my experience which can applied to small or medium sized businesses and can vary depending on businesses or industry. The key principle is to define steps using People, Process and Technology perspective.


Ravi Vishnubotla_1.jpg


  • Business Vision
    - Obtain business stakeholders vision of the future of their business; Where do they expect the business to be few years from now (generally 3-5 years depending on the size of business or industry)
    - Understand overall organization and the business
    - Understand the core services and business processes
    - Key concerns / challenges being faced in the business
    - Define key driving factors of the business
    - Create a Vision Document and core stakeholder group to oversee the transformation process
  • Current State Assessment (CSA)
    -Understand the AS-IS business process and business applications
    -Conduct discussion sessions with business stakeholders
    -Document all issues, manual processes, areas of pain points
  • Future State (CSA)
    -Define the 'To-Be State' for IT Systems, Infrastructure and business processes
    -Apply solution(s) to business vision, manual processes and pain points
    -Consider modern business, IT trends, Industry Standards and guidelines
  • GAP Analysis
    -Defines what it will take to go from current state to defined future state
    -Should consider new business processes, new IT applications
    -Apply disruptive IT solutions e.g. Mobility, Automation
  • Define IT Solution Architecture
    -Define solutions for various gaps identified and new processes/applications considered
    -Perform initial Product Evaluation for solutions if needed. Consider Buy vs Build
    -Identify Logical (functional view) and Physical (system view) IT solution and model
  • Develop CBA and Roadmap
    -Estimate the timelines and effort for the various solution defined
    -Perform cost analysis by considering price of infrastructure, IT systems (product / in house development), hiring new people, and introducing new processes
    -Break down solutions into various projects and assign stakeholders either from IT or Business
    -Propose a Road map to rollout the solutions.
  • Review and finalize strategy
    -Review the proposed transformation process as draft via a presentation or a document
    -Conduct sessions with various business unit stake holders and IT stakeholders
    -Agree on the proposed solution and roadmap
    -Refine and resolve any open issues or questions
    -Baseline Strategy for CTO and CEO approval

To summarize, this is how the business transformation process will look:


Ravi Vishnubotla_2.jpg

The steps defined here are based on my experience, working with various customers and clients. The process or approach can vary and will be different depending on the business and industry. This is not a one size fits all methodology but should give you fair idea as to what it takes to achieve business transformation from an IT perspective.

Continue reading "IT Transformation is Business Transformation! Why? How?" »

September 28, 2015

Macro to Microservice Architecture - Shrink or Sink? Part-2

Author: Archana Kamat, Product Technical Architect

In my previous blog, "Macro to Microservice Architecture - Shrink or Sink? Part 1", we explored the basic characteristics of MSA and how it differs from Service-oriented Architecture (SOA). While MSA enables higher service independency, it cannot be applied to all business scenarios. 

Continue reading "Macro to Microservice Architecture - Shrink or Sink? Part-2" »

Macro to Microservice Architecture - Shrink or Sink? Part-1

Author: Archana Kamat, Product Technical Architect

The world of software service architecture is witnessing rapid change owing to a new paradigm named Microservice Architecture (MSA). There are several debates and questions about this newcomer. Sample these:

Continue reading "Macro to Microservice Architecture - Shrink or Sink? Part-1" »

April 28, 2015

Agile Contracts


Continue reading "Agile Contracts" »