Self-Service Microservices as Entry Point to Digital Transformation
In my last blog, I attempted to articulate the value of agile, fail-fast development for digital transformation. Many cloud providers are incentivizing companies to try out cloud-based development platforms as a way to focus on creating business applications instead of managing servers and/or data warehouses. This is both what I see from personal experience and my view of the market.
New products or businesses are tasked with bringing innovative solutions to the market, piggybacking on what was an iteration on business learnings from typically a legacy product. It could be a tweak, a process re-design or an entirely new product or service. What’s important to note is that it is different from existing systems, innovation, IT systems and processes.
The market is starting to value Vertical AI Startups, that is, solving industry-specific problems by combining AI and Subject Matter Expertise. It combines full stack products, subject-matter or domain expertise, proprietary data with AI delivering the core value. AI could be loosely defined as digitizing a small process or rules-based Machine Learning Classification problem to more complicated Deep Learning approaches.
The issue for most SMEs as well as Vertical AI organizations, or companies that are digitizing portions of value or solutions to problems is the lack of programming and software expertise. If it is a skunkworks project, 2-pizza team or nimble group, they are tight-knit group that bypasses the typical matrixed company that creates inertia but does not have all the technical skillsets to accomplish what they need to get done. The democratization of microservices in this agile playground is creating a level playing field for those organizations wanting to accelerate their development.
Instead of building a single monstrous, monolithic application, the idea is to split your application into set of smaller, interconnected services.
Let’s start by defining a microservice. Microservices architectures are an approach to software engineering in agile development, service-oriented architecture, API design and continuous delivery. Characteristics include decentralized, independent or de-coupled processes, do one thing well, not a one size fits all solution, black box and you build it; you run it. Microservices are decentralized in that they are distributed systems with decentralized data management that do not rely on unifying schema in a central database; it follows a lot of big data decentralization and parallel process themes. Microservices are independent in that different components in a microservices architecture can be changed without affecting the functions of other components and they do one thing well (that is the essence of a microservice) in that it is designed for a set of capabilities and focuses on a specific domain. They they do not follow a “one size fits all”, masks the complexity from other components and communication in a “black box” format and communication is via well-defined APIs and that you build it, you run it you maintain in addition to building the application. As you can see from the abovementioned, it is really a deeper dive to address limitations on agility and scalability. IBM states Microservices is an application architectural style in which an application is composed of many discrete, network-connected components called microservices:
- Large monolithic applications are broken into small services.
- A single network-accessible service is the smallest deployable unit for a microservices application.
- Each service runs in its own process. This rule, sometimes stated as "one service per container," might be a container or any other lightweight deployment mechanism, such as a Cloud Foundry runtime. Popular containers include Docker and Kubernetes.
In the real world, tech-savvy business lines are starting to experiment with microservices as IT departments and legacy systems cannot change fast enough. While one sees the future digital transformation and the end state, traditional businesses must “mind the store” while looking to the future. Whether security, on-premise, current offerings, siloed data warehouses, skills, people are migrating to the cloud in a hybrid fashion according to the business units’ appetite for risk and ability to take on change.
I personally fought for a wholescale cloud shift and development strategy. Guess what? It did not happen at the exact moment I wanted and at the same time, tasked with bringing certain results in and remaining relevant in a world of Predictive Analytics, Machine Learning and Data Visualization in the Industrial IoT. I had the domain experts, the product, the value proposition and data, but I had to piece the puzzle together. I had to break down the critical components that drove value and it led me to microservices. I discovered that there was a world of tools and technologies that allowed me to be agile and experiment very quickly on top of my existing systems and deliver the value I wanted for customers. It really allows one to reduce the IT complexity with self-service flexibility of microservices.
You can read about Walmart, Spotify and Amazon and the development with microservices. There is more case studies on Uber, SoundCloud, Karma and Groupon. Finally, you can find even more tutorials and blogs with Yelp, fiverr, iHeartRadio, Safari. Our approach was to utilize our code to trigger other services such as real-time stream processing of sensor data to process it, run code to detect trends in sensor data, identify anomalies and take our specified action (in our case, vibration sensors to gain continuous visibility and proactive measure on rotating industrial assets ((pumps, fans, motors)) grease and lubricate, visually inspect, take offline, bearing defects, etc.).
The benefits were many, specifically it made our team focus on the enabling layers of technology that would ultimately provide value to our customers. Rather than wholescale change for change sake, we broke down the constituent parts the value we felt necessary to automate and integrate into workflow. Secondly, we were able to experiment with this innovation or experiment due to the fact it lays outside our legacy system but can work and integrate with it. Thirdly, experimentation and production were cost-effective, only paying for what compute resources we use. This way, we can deploy and field test hypotheses quicker, cost-effective and be at the forefront of digital transformation.
Look for ways to jump into the game and start playing with the technology. IBM is offering $12K of free IBM Cloud credits that can be used to develop with any of their cloud services, including AI. It's worth a look at https://ter.li/7p0l90.