XenonStack

A Stack Innovator

Post Top Ad

Monday, 23 December 2019

12/23/2019 05:33:00 pm

AWS Big Data Pipeline on Cloud and On-Premises

What is Data Pipelines?

Data pipelines refer to the general term of movement of data from one location to another location. The location from where the flow of data starts is known as a data source, and the destination is called as the data sink.
What makes ETL so important is that in the modern age ETL there are numerous data sources as well as data sinks.
The data sources can be data stored in any of the data locations such as database, data files or data warehouse .such data pipelines as called batch data pipelines as the data is already defined and we transfer the data in typical batches.
Whereas there are some data sources such as log files or streaming data from games or real-time application, such type of data is not well defined and may vary in structure as well. Such pipelines are called as streaming data pipelines. Streaming data requires a special kind of solution, as we have to consider late data records due to network latency or inconsistent data velocity.
We may also like to perform some operations/transformation on the data while it’s going from the data source to a data sink, such kind of data pipelines have been given a special kind of names -
ETL — Extract Transform Load
ELT — Extract Load Transform

Batch Data Pipeline Solutions

What is AWS GLUE?

AWS Glue is a serverless ETL job service. While using this, we don’t have to worry about setting up and managing the underlying infrastructure for running the ETL job.

How AWS GLUE Works?

AWS glue has three main components -

Data Catalog

Glue data catalog contains the reference to the data stores that are used as data sources and data sinks in our extract, transform, load (ETL) that we run via AWS Glue. When we defined a catalog, we need to run a crawler which in turn runs a classifier and infers the schema of the data source and data sink. Glue provides built-in classifiers for data formats such as databases, CSV, XML, JSON, etc. We can even add our custom classifiers according to our requirements. Crawlers store data in a metadata store which is an AWS RDS table so that it can be used again and again.

ETL Engine

The ETL engine is the heart of AWS Glue. It performs the most critical task of generating and running the ETL job.
In the ETL job generation part, the ETL engine provides us with a comfortable GUI using which we can select any of the data stores in the data catalog and define the source and sink of the ETL job. Now as we have selected the source and sink, we now choose the transformation we need to apply to the data. Glue provides us with some built-in transformation as well. After we are all set, the ETL engine generates the corresponding pypspark / scala code. We can edit the ETL job code and customize it as well.
Now moving onto the ETL job running part the ETL engine is responsible for running the above-generated code for us. ETL engines manage all the infrastructure ( launching the infrastructure, underlying execution engine for the code, on-demand job run, cleaning up after the job run). The default execution engine is Apache Spark.

Glue Scheduler

Glue scheduler is more or less like a CRON on steroids. We can periodically schedule jobs or run jobs on-demand based on some external triggers, or the job can be triggered via AWS Lambda functions.
A typical AWS Glue workflow looks something like this -

Step1

The first step for getting started with Glue is setting up a data catalog. After the data catalog has been set up, we need to run crawlers on the data catalog to scrap the metadata from the data catalog. The metadata is stored in a table that will be used for running the AWS glue job.

Step2

After the data catalog has been set up, its time to run the ETL job. Glue provides us with an interactive web GUI (graphical user interface ) using which we can create the ETL job. We have to select the source, destination, and transformation we want to apply to the data. AWS Glue provides us with some great built-in transformation. Glue automatically generates the code for ETL job according to our selected source, sink and transformation in pyspark or scala based on our choice. We are also free to edit the script if we want to and add our custom transformations.

Step3

This is the last step. Since now we have all the arsenal ready to run the ETL job it is time to start the job. AWS Glue provides us with a job scheduler, using which we can define when to run the ETL job, define the triggers upon which the job will be triggered. Glue scheduler is a very flexible and mature scheduler service.
Glue under the hood runs the jobs on AWS EMR (Elastic Map Reduce ) and chooses resources from a pool of hot resources so that there is no downtime while running the jobs. AWS Glue will only charge for the measure used when the ETL jobs are running.

Why Adopting AWS Glue Matters?

  • We can reliably schedule data pipelines from time to time.
  • The trigger-based pipeline runs.
  • All the AWS features are supported such as IAM, service roles, etc.
  • Bare minimum coding experience required to get started with making data pipelines.
Datastores supported by AWS Glue are -
Amazon S3, Amazon RDS, Amazon Redshift, Amazon DynamoDB, JDBC.

AWS Data Pipeline

What is the AWS Data Pipeline?

AWS Data Pipeline helps you sequence, schedule, run, and manage recurring data processing workloads reliably and cost-effectively. This service makes it easy for you to design extract-transform-load (ETL) activities using structured and unstructured data, both on-premises and in the cloud, based on your business logic.

How the Data Pipeline Works?

The main components of Data pipeline are -
  • Pipeline Definition
  • Task Runner
  • Pipeline Logging

Pipeline Definition

The pipeline can be created in 3 ways -
  • Graphically, using the AWS console or AWS pipeline Architect UI.
  • Textually, writing a JSON file format.
  • Programmatically, using the AWS data pipeline SDK.
A Pipeline can contain the following components -
  • Data Nodes — The section of input data for a task or the location where output data is to be collected.
  • Activities — A description of work to perform on a program using a computational means and typically input and output data nodes.
  • Preconditions — A conditional statement that must be true before action can run.
  • Scheduling Pipelines — Marks the timing of a planned event, such as when an action runs.
  • Resources — The computational resource that performs the work that a pipeline defines.
  • Actions — An action that is triggered when specified conditions are met, such as the failure of an activity.

Task Runner

It is responsible for the actual running of the task in the pipeline definition file. Task runner regularly polls the pipeline for any new tasks and executes them according to the resources defined, task runner is also capable of retrying the tasks in the case the tasks fail during execution.

Pipeline Logging

Logging is an essential part of data pipelines as it provides an insight into the internal working of the pipeline. The logging is done to the AWS cloud trail, and we can see the logs.
AWS data pipeline service leverages the following compute and storage services -
  • Amazon DynamoDB — Fully managed NoSQL database with fast performance.
  • Amazon RDS — It is a fully managed relational database that can accommodate large datasets. It has numerous options for the database you want, e.g., AWS aurora, Postgres, Mssql, MariaDB.
  • Amazon Redshift — Fully managed petabyte-scale Data Warehouse.
  • Amazon S3 — Low-cost highly-scalable object storage.

Compute Services

  • Amazon EC2 — Service for scalable servers in AWS data center, can be used to build various types of software services.
  • Amazon EMR — Service for distributed storage and compute over big data, using frameworks such as Hadoop and Apache Spark.

Why Enabling Data Pipeline Matters?

  • High integration and support for the existing AWS services.
  • We can create complex pipelines within a brief period.
  • Monitor the pipeline with AWS CloudWatch.
  • Supports a lot of data sources and sinks.

Continue Reading: XenonStack/Blogs

Saturday, 21 December 2019

12/21/2019 06:07:00 pm

Interaction Design Principles and Methods

What is Interaction Design?

Interaction design is a designing process that focuses on creating engaging web Interfaces with logical thoughts, behaviors, and actions. Interaction designers create a meaningful relationship between the user and the products & services they are using (Products means app or Websites here).
The Interaction Design Foundation said.”The goal of design is to build products that facilitate the user to achieve their goals in the best possible way,”

Interaction Design Principles and Concepts

Goal-driven design — Goal-driven design focuses first and foremost on satisfying specific needs and desires of the end-user.
Interface as magic — You don’t even really see the best interfaces. “The best interaction designs don’t exist: they don’t take a long time to load/respond; they don’t make users think, and they don’t give user’s cause for grief.”
Usability — “Interfaces that facilitate the understanding and use of the underlying system state are favored.”
Affordances — “The best designs are those that speak for themselves; in which, as the saying goes, form follows function.”
Learnability — “Every time a similar design challenge arises, the best interaction designers don’t reinvent the wheel. They call on a set of patterns instead.”

Five dimensions of Interaction Design

The concept of dimensions of interaction design defines what interaction design involves. Initially, the idea of four aspects of an interaction design language was introduced by Gillian Crampton Smith. These dimensions are the interaction between a user and the screen. The original four dimensions are words, visual representations, physical objects or space and time. More recently, IDEXX Laboratories senior interaction designer Kevin Silver added a fifth dimension, behavior.
1D (Words) — Words should be simple to understand, and written in such a way that they communicate information quickly to the end-user.
2D (Visual representations) — Visual representations are all graphics or images, mostly everything that is not text. They should be used in moderation, not to overwhelm.
3D (Physical objects or space) — Physical objects or space refers to the physical object a user interacts with, whether it’s a mobile device, mouse, and keyboard.
4D (Time) — Time is the length that the user spends interacting with the first three dimensions. It includes how the user might measure progress, as well as sound and animation.
5D (Behavior) — It is the emotions and reactions that the user has when interacting with the system.

Role of an Interaction Designer

An interaction designer is a person associated with design, development or marketing team that helps to create an interactive and creative design. The interaction designer performs a set of activities that are keys to interaction design. These activities include forming a design strategy, wireframing interactions, and prototyping interactions.
Continuing Reading: XenonStack/Insights
12/21/2019 06:03:00 pm

Role and Applications of AI in Telecom


Role of AI in Telecom

The complexions of communications networks appear to extend inexorably with the deployment of the latest services, such as -Software-defined wide-area networking (SDWAN) and new technology paradigms, such as network function virtualization (NFV). This Insight discusses the advantages of enabling AI in Telecom.
To meet ever-rising client expectations, communications service providers (CSPs) got to increase the intelligence of their network operations, planning, and improvement.
To move to period time closed-loop automation, CSPs would like systems that square measure capable of learning autonomously. That is solely doable with AI/ML.
Researchers in communication networks square measure are trapping into AI/ML techniques -

Best trends in Communication Networks and Services

  • Characterized requirements
  • Multimedia services
  • Precision management
  • Predictable future
  • Intellectualization
  • More attention to security and safety
  • Trends of mobile network
  • Big data for development and ICT monitoring

Potential AI Use Cases in Telecom

Artificial Intelligence for Telecommunications Applications identifies seven critical telecom AI use cases -
  • Network operations monitoring and management
  • Predictive maintenance
  • Fraud mitigation
  • Cybersecurity
  • Customer service and marketing virtual digital assistants
  • Intelligent CRM systems
  • CEM
  • Base station profitability
  • Preventive maintenance
  • Battery Capex optimization
  • Trouble price ticket prioritization

Network Operations Monitoring & Management

Increased quality in networking and networked applications is driving the necessity for redoubled network automation and lightness. Applications of AI/ML include -
  • Anomaly detection for operations, administration, maintenance and provisioning (OAM&P)
  • Performance watching and optimization
  • Alert/alarm suppression
  • Bother price ticket action recommendations
  • Automated resolution of bother tickets (self-healing)
  • Prediction of network faults
  • Network capability designing (congestion prediction)
AI/ML might use clustering to search out correlations between alarms that had antecedently been undiscovered or use classification to coach the system to rank alarms.
The following potential use cases with AI and ML algorithms in a very mobile context -
AI at the RAN -
AI at the core — Autonomous VNF scale in\out, up\down.
  • Provision of elasticity.
  • Intelligent network slicing management
  • Service prioritization and resource sharing.
  • Intelligent fault localization and prediction.
AI at the front haul — Traffic pattern estimation and prediction; Versatile, practical split
Different general AI applications (RAN, core or end-to-end network) -
Continue Reading: XenonStack/Insights

Friday, 20 December 2019

12/20/2019 05:59:00 pm

Graph Visualization Tools and Best Practices 


What is Graph Visualization?

In-Network Visualization, a network dataset structure contains interconnected entities. When networks visualized, the entities are called nodes, and the connections are called links. Graph visualization is the visual representation of the nodes and edges of a graph. Any dataset that contains information about connections can be modeled and visualized as a graph, sometimes data initially stored in a tabular way.
Graph visualization is a better way to understand and manipulate connected data. Tabular data shows the nodes or edges in isolation, but it is difficult to understand the dynamics and connections within the data. Networks see how entities in data are connected, adding new information to understand visualizations. Add the links in the node-link diagrams. Apply a layout to the network to disentangle the connections and show structure. Algorithms (forceAtlas2 Based, physics), called layouts, calculate the node positions and display the data on two-dimensional spaces. This way of representing the data required for scenarios that involve connections. Example: Social Networks, Telecommunication Networks, and Relationship Diagrams. Social network graphs are a network of nodes and edges — of entities and the connections between them.

Why Visualization Matters?

Network diagrams used in the data visualization to visualize how things relate to the other.
  • Fast Decision — Making — Recognize visual patterns in the dataset, network visualizations give faster decisions and efficient processes take the right actions soon.
  • Provide more Intelligence — Graph visualizations help to understand the dynamics in the data from node by node and network by network.
  • Data accessibility — Mostly graph visualizations are interactive and customizable. It makes them impactful, intuitive and helps to put data analysis in the hands of all users.
  • Improve reporting processes — It makes reporting simple and more effective by sharing visualizations.PNG files and interactive charts.

Who needs to Visualize Networks?

  • Security and Intelligence
  • Social Networks
  • Cyber-Security
  • IT infrastructure

12/20/2019 05:55:00 pm

Hyper-Converged Infrastructure Benefits and Tools

What is Hyper-Converged Infrastructure?

Hyper-Converged infrastructure is a software-centric architecture tightly integrated to compute, networking and storing resources into a single system. Hyper-converged systems require at least three hardware nodes at a minimum for high availability, expanded later by adding more nodes according to requirement.

How HCI Architecture Works?

A hyper-converged platform integrates compute, storage and networking with software-defined software that defines the operational aspects of that infrastructure. The general and traditional choice for orchestration is hypervisor for provisioning of resources like storage, compute and network. Kubernetes also used for the provisioning of resources.
Kubernetes is an open-source container-orchestration system for automating deployment, scaling, and management of containerized applications. It sits between the application and the infrastructure, lets application workflows dynamically control storage, compute, and networking resources. Software-defined storage like Rook (Ceph) used for elastic storage.
Ceph is scalable storage which can be scaled up to an Exabyte. Expanded according to a requirement by adding more nodes. Kubernetes and Ceph both are open source solutions run on commodity hardware and avoiding any vendor lock-in. There are several software tools provided by hardware vendors depending on the server chosen.

Benefits of Hyper-Converged Infrastructure

  • Better utilization of resources.
  • Reduced maintenance cost.
  • Horizontal Scaling.
  • Reduced data center footprint.
  • Reduces administrator burden.
  • Cost-efficient.
  • Optimize the Health of Private Cloud.
  • Continuous Real-Time Workload Decisions.
  • Right Storage Right Work Load.
  • Plan Quickly and Easily Scale.
  • Automatable Workload Placement.
  • Software-Defined Storage.
  • Data Protection.
  • Deploys Virtual Desktop Infrastructure.
  • Consolidating Data Center.
  • Remote Management.
  • No Downtime with Software-Centric Approach.
  • Manages Complex Infrastructure.
  • Simplified Vendor Management.
  • Continuous, Portable and Flexible Protection.
  • Enhanced Governance.
  • Ease of Termination.
  • Encryption of Virtual Machines.

Why Hyper-Converged Infrastructure(HCI) Matters?

Hyper-Converged infrastructure consumes less space hence reducing the data center footprint. Using computation and storage from the same node ensures better utilization of resources. The cost of ownership and maintenance reduces due to the number of nodes. Administrators' burden reduces with the reduced number of nodes. The cost of heating and electricity decreases as the required number of nodes are running. It provides horizontal scaling to add more nodes in the cluster according to the requirement enabling users to start with the smaller cluster. In recent years there has been an increase in adopting the hyper-converged strategy in data centers using it in edge locations like local office locations. It is easier for smaller or midsize organizations to adopt Hyper-Converged infrastructure.
  • Lower Cost
  • Smarter, More Efficient Staff
  • Greater Gains Through Automation
  • Simplified Procurement and Support
  • Increased Data Protection
  • Improve Performance
  • Scalability
  • Flexible
  • Software-Defined Storage
  • Agility
  • Workload Consolidation

Read More: XenonStack/Insights