DaaS/SaaS: Why DevOps Is Important For ETL Microservices

Tapish Pawnesh
9 min readApr 17, 2021

Introduction

Data is the new oil. It’s valuable, but if unrefined it cannot really be used. It has to be changed into gas, plastic, chemicals, etc to create a valuable entity that drives profitable activity; so must data be broken down, analyzed for it to have value.” — Clive Humby, 2006

“Information is the oil of the 21st century, and analytics is the combustion engine.” — Peter Sondergaard, 2011

I think data is no longer the new oil, it’s the world’s most valuable resource. We’re in the 21st century where data has become more valuable than ever-before. Data can be viewed as a valuable resource only if we can find a way to extract meaningful information from it. We’re in such a digital era where every digital device is generating tons of data in the form of videos, audio, textual, tabular etc. The headline from the recent IDC white paper, “Data Age 2025: The Evolution of Data to Life-Critical” was that the data generation rate will grow from 16 ZB per year (zettabytes or a trillion gigabytes) today, to 160 ZB per year in 2025.

To make meaningful data available for AI-based report generation, it goes through various steps: data loading, data cleaning, data processing and machine learning algorithms which demand a fault tolerant environment. The data available in such a huge amount may have inconsistent or inaccurate information, may have missing information or data which is available may not represent the meaningful information. These types of data are not good for further consumption. Data needs to be redefined to impact some business value, a quality of data can be used for analytics, predictive modelling, business intelligence reporting or other AI-driven services. Such huge amounts of rapid data needs a stable scalable infrastructure with rapid deployment. The traditional approaches are not adaptable for such services, they are difficult to scale, are expensive, need high maintenance, less availability, and have tightly combined components, as everything is interconnected it’s difficult to scale or we may end up by upgrading server resources which will cost us. To overcome such issues microservices can play a vital role by breaking a broad objective in smaller parts with each one being responsible for an individual feature. In microservices architecture, applications are loosely coupled and independent of each other which makes it easier to scale(load balancing). Following are the few advantages which can achieve with Microservices Architecture:

  1. Rapid deployment with CI/CD
  2. Deployment is independent as components are loosely coupled.
  3. Easy to deploy, test, maintain and modify as it has small code.
  4. Easy fault isolation. If memory leaks from service, it alone gets affected.
  5. High availability, reliability and consistency.
  6. Convenient horizontal system scaling.
  7. Easy to scale, migrate and upgrade.

With above advantages to make our product SaaS, implementing a microservies will be a proper solution for data integration, management, cleaning, AI-based report generation and mailing delivery. This will improve the agility of data workloads, reduce time-to-insight and increase the reliability and integrity of data. Microservices running on cloud will make a huge impact on business value as it will add several key advantages regarding scalability, speed , reliability and performance.

Fault Tolerant:- With cloud infrastructure distributed computing and microservices it’s easy to again make services available if a machine suddenly fails. However cloud services are less likely to fail or have downtime.

Cost Effective:- Services can be used on-demand basis or resources can be increased or decreased based on workloads.

Minimal Setup:- Microservices are plug & play, and they have their own environment i.e isolated from others so no dependency easier to integrate.

Computation & Networking:- Data loading, cleaning, preprocessing, running AI-based algorithms need heavy computation power, with availability of GPU on cloud infrastructure computation becomes much faster. With high bandwidth it’s easier to send bulk emails.

Data Storage:- With availability of on-premise data lakes and data storages, it’s easier to collect and store data for analytics.

DaaS/Saas Implementation:

In order to generate AI based reports stakeholder have to request types of report generating services like number of reports on monthly basis, interactive reports with graphs and charts, forecasting based reports, format of report(PDF/Word), Publish-Subscribe Service, Computer Vision based, Natural Language processing based etc. Each feature has its own microservices running on a cloud platform, with availability of cloud we can do unlimited scaling-up or scaling-out of all services. All blocks in the above C&C Diagram are referred to as microservices.

Data Ingestion:- Services like Apache Kafka, AWS Kinesis, Apache Storm can be used for livestream feeder to data lake. Big Business are generating tons of data daily which needs to be ingested in real time, the true value of data lies in processing it in real-time and taking decisions accordingly. Such decisions may impact business value to the next day. All above mentioned services are able to handle huge amounts of data flowing with high velocity. If loads increase on any available microservices let’s say kubernetes, they themselves are capable of auto scaling within a virtual machine or can use multiple clouds if needed.

Data Storage:- To maximize benefit of modularization architecture each microservices should have it’s own database. Each microservice will work as an independent application for solving a specific business problem. This approach makes a lot of sense for the data lake. For example, one microservices which is used for recommendation systems is getting structured raw data from a source that can be directly stored to MySQL database. However other microservices getting unstructured data for natural language processing can be stored on NoSQL databases. The storage database can also have its own microservices. Suppose MySQL storage service is running for a recommendation system, suddenly database storage gets filled, then one more microservices created parallelly on another cloud and gets connected with the same recommendation system service.

Streaming Analytics:- Services like forecasting algorithms, clustering, exploratory data analysis, deep learning based algorithms require too much computation, sometimes may need GPU computation to speed-up the process. Large computations require heavy resources and It’s possible in peak time resources may get full and with lack of resource availability any services may fail. If traditional monolithic architecture got this situation the whole analytics process would be stopped but with microservices distributed computing, there will be a rare chance of failing any microservices as it will scale-up, Even if any microservice fails, it will create a replica of original services. That’s a huge advantage of shifting from monolithic architecture to distributed microservice architecture.

Service Hub:- Service hub is a publish/subscribe (Pub/Sub) based asynchronous messaging system which enables event driven architecture (EDA), Event driven architecture basically consists of 3 key components i.e event producer, event router and event subscriber which uses events to trigger and communicate between decoupled microservices. Decoupling the components of an application enables microservices to be scaled easily and independently of each other across the network which means services are interoperable, even if one service has a failure, the rest will keep running. Developers can easily upgrade their system by adding or removing event producers and subscribers dynamically without needing to change any logic in any of the microservices. Service hub will help organizations to achieve a flexible system that can adapt to changes and make decisions in real time based on events here events means important business decisions (demand, cash-flow, tracking in supply chain, forecasting, sales, etc). This will remove the traditional request/response type system, if stakeholder don’t want in real time it will also facilitates to save all information on blob storage systems such as Azure Blob, AWS S3. Blobs facilitate uploading data in chunks with the ability to retry or resume downloads, all historically data reports can be easily accessible for stakeholders from blobs. Service hub will help organizations to achieve a flexible system that can adapt to changes and make decisions in real time. Amazon EventBridge, Amazon SNS, Google Eventarc can be used to build high throughput EDA services with auto load balancing features. Facebook, Netflix, Uber are great examples which are using EDA and running successfully.

Why Distributed Microservices?

It’s possible that many organizations don’t even know the basics of Big Data ETL process, How to extract meaningful information, how to process it efficiently, what infrastructure they need? Without understanding the problem they just start implementing the Big Data pipeline and after using lots of resources and time in the end projects may reach to its failure stage, just because organizations don’t want to change the existing processes.

Using a distributed microservices based SaaS platform for ETL process could be a better choice for Big Data ETL pipeline and reporting. With a traditional monolithic approach scaling big data is a herculean task. This distributed platform removes that bottleneck easily by providing scalability, fault-tolerance, observability, decoupling microservices, real-time processing data reporting, and management of streams of events, schemas, and metadata. Adding Event Driven Architecture will enhance scalability of microservices supporting hundreds of applications and thousands of engineers working independently with streams of trillions of events. SaaS will eliminate companies’ preparation work associated with building an on-premises data processing solution. They don’t even need an expert for maintenance of SaaS because of availability of technical support. DevOps makes the whole deployment process with one click install, just choose your daily or monthly requirement and subscribe to it.

Steps to Subscribe DaaS/SaaS:

  1. Sign up: Login to activate 14 days trial or subscribe package
  2. Choose Package: Based on price, infrastructure (batch/stream processing), scalability, reliability, flexibility, data storage, historical data, analytical reports, BI dashboards
  3. Add On Services: 24 x 7 customer support, GUI based reports, Group Subscriber Services, Forecasting Reports, Customized Timely Reports.

Why DaaS/SaaS:

SaaS leveraged to speed and simplify the process of obtaining insights from data, and to achieve better data integration, it also simplify easy set-up and provide cost optimization opportunities. Data Loading, Data Cleaning & Data Preprocessing and extracting meaningful data is the core asset of a company, producing a good quality of data and scaling their data services is the need of SaaS. This will directly impact compelling value to organizations, such big organizations may have multiple data sources, distributed microservices based ETL SaaS is a good option for reporting data in a single window. SaaS will work as a comprehensive scalable data platform which will be a key for customers as it can be scaled even during peak hours. With availability of auto scaling horizontally, DevOps doesn’t have to put much effort in scaling services, which results in faster delivery.

How Deployment Accelerated:

Agile refers to an iterative approach which focuses on collaboration, customer feedback, and small, rapid releases. DevOps comprises a collection of “continuous” practices that include continuous integration, continuous testing, continuous deployment and continuous delivery. Microservices emerged from a common set of DevOps ideologies, they further broke agile pieces into smaller pieces of microservice apps allowing for the rapid development of new capabilities that don’t require large teams or major deployments for implementation. The universal goal of any tech or software company is to release high quality products frequently and predictably to satisfy, even exceed, the expectations and needs of customers. This is pretty much what we get when joining microservices and DevOps principles. A benefit of this modularity is that multiple DevOps teams can build and deploy microservices in parallel. Moreover, microservices can be deployed in any cloud which saves developers from writing platform-specific code, which further save time and money, and provide new levels of development and deployment flexibility.

Advantages of DevOps with Microservices:

1. DevOps provides the necessary functionality to monitor & detect faults rapidly and apply bug fixes or rollback to previous versions as needed. However with microservices, Devops development team can also test while in production keeping other services isolated.

2. To speed-up processes DevOps teams building microservices take advantage of automated continuous delivery pipelines that enable them to experiment with new features. Such as adding a new messaging system to deliver reports.

3. It will increase agility which leads to short build, test and deploy cycles which tends to shorter time to deliver a new version.

4. External data sources may have different database architecture, as microservices provide modifiability there is more flexibility to consume new data sources. No need for a big team to modify those kinds of changes, and every service is independent of each other so no DevOps teams got affected by changes.

Pic Credits:https://www.mulesoft.com/resources/api/microservices-devops-better-together

--

--