<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Data Meets AI</title>
	<atom:link href="http://udayarumilli.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://udayarumilli.com/</link>
	<description></description>
	<lastBuildDate>Thu, 04 Dec 2025 16:56:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.7</generator>
	<item>
		<title>Talk to Your Database with an AI Agent – No Cloud, No GPT License Needed – Part 2</title>
		<link>https://udayarumilli.com/ai-agent-talk-to-database-2/</link>
					<comments>https://udayarumilli.com/ai-agent-talk-to-database-2/#respond</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Thu, 04 Dec 2025 16:45:17 +0000</pubDate>
				<category><![CDATA[AI for Data People]]></category>
		<category><![CDATA[#AgenticAI]]></category>
		<category><![CDATA[#AI]]></category>
		<category><![CDATA[#AIForDataProfessionals]]></category>
		<category><![CDATA[#AIFreeCourse]]></category>
		<category><![CDATA[#CloudData]]></category>
		<category><![CDATA[#DataAnalyst]]></category>
		<category><![CDATA[#DataEngineer]]></category>
		<category><![CDATA[#DataScience]]></category>
		<category><![CDATA[#DBA]]></category>
		<category><![CDATA[#GenerativeAI]]></category>
		<category><![CDATA[#LearnAI]]></category>
		<category><![CDATA[#Llama]]></category>
		<category><![CDATA[#LLM]]></category>
		<category><![CDATA[#OpenAI]]></category>
		<category><![CDATA[#SQL]]></category>
		<guid isPermaLink="false">https://udayarumilli.com/?p=4738</guid>

					<description><![CDATA[<p>In this post, we’ll walk through your first AI experiment: talking to your database with an AI agent. No cloud or GPT license needed—just a hands-on way for data professionals to start exploring AI. <a href="https://udayarumilli.com/ai-agent-talk-to-database-2/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
<li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li>
<li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/ai-agent-talk-to-database-2/">Talk to Your Database with an AI Agent – No Cloud, No GPT License Needed – Part 2</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h5 class="wp-block-heading alignwide" id="we-re-a-studio-in-berlin-with-an-international-practice-in-architecture-urban-planning-and-interior-design-we-believe-in-sharing-knowledge-and-promoting-dialogue-to-increase-the-creative-potential-of-collaboration" style="font-size:48px;line-height:1.1"></h5>



<p class="wp-block-paragraph"><strong>Your First AI Experiment: Run It Locally, Hassle-Free – Part 2 – Workflow Implementation</strong> </p>



<figure class="wp-block-image size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/006_02_Title.png"><img fetchpriority="high" decoding="async" width="1639" height="484" src="https://udayarumilli.com/wp-content/uploads/2025/12/006_02_Title.png" alt="Illustration of an AI agent interacting with a database, symbolizing natural language queries without cloud or GPT license." class="wp-image-4764" title="Your First AI Experiment – Talk to Your Database with an AI Agent (No Cloud, No GPT License Needed)" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/006_02_Title.png 1639w, https://udayarumilli.com/wp-content/uploads/2025/12/006_02_Title-300x89.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/006_02_Title-600x177.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/006_02_Title-768x227.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/006_02_Title-1536x454.png 1536w" sizes="(max-width: 1639px) 100vw, 1639px" /></a></figure>



<p class="wp-block-paragraph"><strong>Don’t Worry About the Code</strong></p>



<p class="wp-block-paragraph">If you’re thinking, <em>“I’m a SQL Developer or a DBA — how will I ever understand Python or Streamlit configurations?”</em> — don’t worry. The code is intentionally kept very simple with line-by-line comments to guide you. Once you walk through it, you’ll realize how easy it actually is. You don’t need to memorize anything; just sit with it, focus for a little while, and everything will make sense.</p>



<p class="wp-block-paragraph"><strong>Step 1: Install Python (if not installed)</strong></p>



<ol start="1" class="wp-block-list">
<li>Go to: <a href="https://www.python.org/downloads/windows/">https://www.python.org/downloads/windows/</a></li>



<li>Click <strong>Download Python 3.x.x (latest version)</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/001.png"><img decoding="async" width="600" height="281" src="https://udayarumilli.com/wp-content/uploads/2025/12/001-600x281.png" alt="" class="wp-image-4739" style="width:726px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/001-600x281.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/001-300x140.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/001-768x359.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/001-1536x718.png 1536w, https://udayarumilli.com/wp-content/uploads/2025/12/001.png 1773w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<ol start="3" class="wp-block-list">
<li>Run the installer:
<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Check the box</strong>: “Add Python to PATH”</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Choose “Install Now”</li>
</ul>
</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/002.png"><img decoding="async" width="600" height="369" src="https://udayarumilli.com/wp-content/uploads/2025/12/002-600x369.png" alt="" class="wp-image-4740" style="width:726px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/002-600x369.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/002-300x185.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/002-768x473.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/002.png 967w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<ol start="4" class="wp-block-list">
<li>After installation, open <strong>Command Prompt</strong> and run:</li>
</ol>



<p class="wp-block-paragraph">python &#8211;version</p>



<p class="wp-block-paragraph">It should show something like: Python 3.12.1</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/003.png"><img loading="lazy" decoding="async" width="490" height="238" src="https://udayarumilli.com/wp-content/uploads/2025/12/003.png" alt="" class="wp-image-4741" style="width:592px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/003.png 490w, https://udayarumilli.com/wp-content/uploads/2025/12/003-300x146.png 300w" sizes="auto, (max-width: 490px) 100vw, 490px" /></a></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 2: Install Pip (Python&#8217;s package installer)</strong></p>



<p class="wp-block-paragraph">Usually installed with Python automatically. To confirm:</p>



<p class="wp-block-paragraph">pip &#8211;version</p>



<p class="wp-block-paragraph">If it shows a version, you’re good. If not, reinstall Python and make sure &#8220;Add to PATH&#8221; is checked.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/004.png"><img loading="lazy" decoding="async" width="549" height="166" src="https://udayarumilli.com/wp-content/uploads/2025/12/004.png" alt="" class="wp-image-4742" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/004.png 549w, https://udayarumilli.com/wp-content/uploads/2025/12/004-300x91.png 300w" sizes="auto, (max-width: 549px) 100vw, 549px" /></a></figure>
</div>


<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 3: Install Streamlit and Required Packages</strong></p>



<p class="wp-block-paragraph">Open Command Prompt and run:</p>



<p class="wp-block-paragraph">pip install streamlit pyodbc pandas</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> This installs:</p>



<ul class="wp-block-list">
<li>streamlit for building the web UI</li>



<li>pyodbc to connect to a database server (SQL Server)</li>



<li>pandas to display tables nicely</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/005.png"><img loading="lazy" decoding="async" width="600" height="338" src="https://udayarumilli.com/wp-content/uploads/2025/12/005-600x338.png" alt="" class="wp-image-4743" style="width:694px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/005-600x338.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/005-300x169.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/005-768x433.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/005.png 1087w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 4: Install Ollama and Pull LLM</strong></p>



<ol start="1" class="wp-block-list">
<li>Go to: https://ollama.ai/download</li>



<li>Download the <strong>Windows version</strong> and install.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/006.png"><img loading="lazy" decoding="async" width="600" height="322" src="https://udayarumilli.com/wp-content/uploads/2025/12/006-600x322.png" alt="" class="wp-image-4744" style="width:688px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/006-600x322.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/006-300x161.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/006-768x412.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/006.png 1383w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/007.png"><img loading="lazy" decoding="async" width="531" height="724" src="https://udayarumilli.com/wp-content/uploads/2025/12/007.png" alt="" class="wp-image-4745" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/007.png 531w, https://udayarumilli.com/wp-content/uploads/2025/12/007-220x300.png 220w" sizes="auto, (max-width: 531px) 100vw, 531px" /></a></figure>
</div>


<ol start="3" class="wp-block-list">
<li>After installation, open <strong>Command Prompt</strong> and run:</li>
</ol>



<p class="wp-block-paragraph">ollama run llama3</p>



<p class="wp-block-paragraph">It will <strong>download the model</strong> (llama3:8b). This may take a few minutes.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> After the download, it will show a chat prompt like: &gt;&gt;&gt;, which means it’s working.</p>



<p class="wp-block-paragraph">Exit using Ctrl + d.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/008.png"><img loading="lazy" decoding="async" width="600" height="236" src="https://udayarumilli.com/wp-content/uploads/2025/12/008-600x236.png" alt="" class="wp-image-4746" style="width:658px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/008-600x236.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/008-300x118.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/008-768x301.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/008.png 1401w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 4.1: Try Ollama in your PC</strong></p>



<p class="wp-block-paragraph">You have successfully installed an opensource LLM on your PC. Now lets try to ask some questions and see how it responds.</p>



<p class="wp-block-paragraph">Check what are the LLMs installed in your local using list command</p>



<p class="wp-block-paragraph">&gt; ollma list</p>



<p class="wp-block-paragraph">Now, lets try to interact with this model by asking some questions:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/004-1.png"><img loading="lazy" decoding="async" width="549" height="166" src="https://udayarumilli.com/wp-content/uploads/2025/12/004-1.png" alt="" class="wp-image-4747" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/004-1.png 549w, https://udayarumilli.com/wp-content/uploads/2025/12/004-1-300x91.png 300w" sizes="auto, (max-width: 549px) 100vw, 549px" /></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/004_01.png"><img loading="lazy" decoding="async" width="600" height="234" src="https://udayarumilli.com/wp-content/uploads/2025/12/004_01-600x234.png" alt="" class="wp-image-4748" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/004_01-600x234.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/004_01-300x117.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/004_01-768x299.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/004_01.png 981w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/004_02.png"><img loading="lazy" decoding="async" width="1881" height="945" src="https://udayarumilli.com/wp-content/uploads/2025/12/004_02.png" alt="" class="wp-image-4749" style="width:696px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/004_02.png 1881w, https://udayarumilli.com/wp-content/uploads/2025/12/004_02-300x151.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/004_02-600x301.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/004_02-768x386.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/004_02-1536x772.png 1536w" sizes="auto, (max-width: 1881px) 100vw, 1881px" /></a></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 5: Create a Demo SQL Server Database</strong></p>



<p class="wp-block-paragraph">Open <strong>SQL Server Management Studio (SSMS)</strong> or Azure Data Studio and run this script to create a test DB:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/009-1.png"><img loading="lazy" decoding="async" width="600" height="530" src="https://udayarumilli.com/wp-content/uploads/2025/12/009-1-600x530.png" alt="" class="wp-image-4751" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/009-1-600x530.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/009-1-300x265.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/009-1.png 742w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<pre class="wp-block-code"><code>CREATE DATABASE InsuranceDemo;
GO
USE InsuranceDemo;

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY,
    Name NVARCHAR(50),
    City NVARCHAR(50),
    Age INT
);

CREATE TABLE Policies (
    PolicyID INT PRIMARY KEY,
    CustomerID INT,
    PolicyType NVARCHAR(50),
    PremiumAmount DECIMAL(10,2),
    PurchaseDate DATE,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

-- Insert sample data
INSERT INTO Customers VALUES
(1, 'Alice', 'New York', 30),
(2, 'Bob', 'Chicago', 45),
(3, 'Charlie', 'New York', 28);

INSERT INTO Policies VALUES
(101, 1, 'Life', 500.00, '2025-06-15'),
(102, 1, 'Health', 300.00, '2025-07-01'),
(103, 2, 'Auto', 400.00, '2025-06-25'),
(104, 3, 'Life', 700.00, '2025-07-10');
</code></pre>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> This creates two tables and adds a few records for testing.</p>



<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 6: Create the Streamlit App (app.py)</strong></p>



<ol start="1" class="wp-block-list">
<li>Open <strong>Notepad</strong> or <strong>VS Code</strong></li>



<li>Paste this code and <strong>save as</strong> app.py in a folder of your choice.</li>
</ol>



<pre class="wp-block-code"><code>
# =====================================================================
# The One AI - Your First AI Agent (Auto SQL or General Answer)
# - Ask any question in plain English.
# - If it's about your data (SQL-ish intent), the app asks the local LLM
#   to write SQL, runs it on SQL Server, and shows the results.
# - If it's a general knowledge question, the app asks the local LLM
#   to answer directly (no database involved).
#
# Runs 100% locally with Ollama (no cloud APIs, no openai module needed).
# Author: Uday Arumilli
# Date: 04/Dec/2025
# =====================================================================

import streamlit as st
import pyodbc               # Connect to SQL Server
import subprocess           # Call Ollama CLI locally
import pandas as pd
import re                   # Extract clean SQL from LLM output

# -----------------------------
# PAGE APPEARANCE / HEADER
# -----------------------------
st.set_page_config(page_title="The One AI", page_icon="&#x1f9e0;", layout="centered")

# Simple CSS header block for a polished look
st.markdown("""
    &lt;style>
    .title-container {
        text-align: center;
        padding: 20px;
        background-color: #f0f2f6;
        border-radius: 12px;
        margin-bottom: 20px;
    }
    .main-title {
        font-size: 36px;
        font-weight: 800;
        color: #31333f;
        margin-bottom: 5px;
    }
    .sub-title {
        font-size: 18px;
        color: #5c5f66;
    }
    &lt;/style>

    &lt;div class="title-container">
        &lt;div class="main-title">&#x1f9e0; The One AI - Your First AI Agent&lt;/div>
        &lt;div class="sub-title">Ask general questions or query SQL Server with plain English&lt;/div>
    &lt;/div>
""", unsafe_allow_html=True)

# -----------------------------
# DATABASE CONNECTION
# -----------------------------
def get_connection():
    """
    Returns a live connection to your local SQL Server database using Windows Authentication.
    BEGINNER TIP:
      - Make sure you created the InsuranceDemo DB and its tables in SSMS.
      - If you use SQL Authentication (username/password), see the commented option below.
    """
    # Windows Authentication (Trusted_Connection)
    conn_str = 'DRIVER={SQL Server};SERVER=localhost;DATABASE=InsuranceDemo;Trusted_Connection=yes;'

    # --- If you need SQL Authentication instead, use this style (uncomment &amp; edit):
    # conn_str = 'DRIVER={SQL Server};SERVER=localhost;DATABASE=InsuranceDemo;UID=your_user;PWD=your_password;'

    return pyodbc.connect(conn_str)

# -----------------------------
# OLLAMA CALL (LOCAL LLM)
# -----------------------------
def ask_ollama(prompt: str, model: str = "llama3") -> str:
    """
    Sends a prompt to your local LLM via Ollama CLI and returns its text output.
    BEGINNER TIP:
      - This DOES NOT use the internet or paid APIs.
      - Ensure you've pulled a model once: `ollama pull llama3`
      - You can change `model` to "mistral" or others you've pulled.
    """
    cmd = &#91;"ollama", "run", model]
    # We open a subprocess, write the prompt to its stdin, and read the output from stdout.
    process = subprocess.Popen(
        cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
    )
    output, _ = process.communicate(prompt)
    return output.strip()


# -----------------------------
# SQL CLEANUP / EXTRACTION
# -----------------------------
def extract_sql(text: str) -> str | None:
    """
    Cleans an LLM response and tries to extract the FIRST SQL statement.
    Handles extra explanation like "Here is the SQL..." or code fences ```sql.
    Returns the SQL string if found, else None.

    BEGINNER TIP:
      - LLMs sometimes add explanations or Markdown fences.
      - We strip those and capture only the part that looks like SQL.
    """
    # 1) Remove Markdown code fences like ``` or ```sql
    lines = text.strip().splitlines()
    clean_lines = &#91;line for line in lines if not line.strip().startswith("```")]
    cleaned = "\n".join(clean_lines).strip()

    # 2) Remove "Here is the query"/explanations at the start of lines
    noisy_prefixes = ("here is", "sql query", "the query", "this query", "explanation")
    filtered = &#91;]
    for line in cleaned.splitlines():
        if any(line.strip().lower().startswith(p) for p in noisy_prefixes):
            continue
        filtered.append(line)
    cleaned = "\n".join(filtered).strip()

    # 3) Capture the first statement starting with SELECT/INSERT/UPDATE/DELETE up to the first semicolon
    m = re.search(r"(SELECT|INSERT|UPDATE|DELETE)\b.*?;", cleaned, flags=re.IGNORECASE | re.DOTALL)
    if m:
        return m.group(0).strip()

    # 4) Fallback: if no semicolon, but starts with SQL keyword, return the remainder
    m2 = re.search(r"^(SELECT|INSERT|UPDATE|DELETE)\b.*", cleaned, flags=re.IGNORECASE | re.DOTALL)
    if m2:
        return m2.group(0).strip()

    return None  # No SQL found

# -----------------------------
# LIGHTWEIGHT INTENT DETECTION
# -----------------------------
def is_sql_intent(user_question: str) -> bool:
    """
    Guess whether the question is about your demo database (SQL intent).
    BEGINNER TIP:
      - This is a simple keyword check. It's fast and works well enough for demos.
      - For production, you could ask the LLM to classify, but this is fine to start with.
    """
    domain_keywords = &#91;
        "customer", "customers", "policy", "policies", "premium", "purchase", "city",
        "table", "tables", "sql", "database", "report", "count", "sum", "group by",
        "list all", "show me", "get me", "top", "total", "per city", "per year"
    ]
    uq = user_question.lower()
    return any(k in uq for k in domain_keywords)

# -----------------------------
# UI: INPUTS
# -----------------------------
st.caption("Type any question. The agent will automatically choose whether to answer directly or query the database.")

# Using a form prevents running on every keystroke
with st.form("ask_form"):
    user_input = st.text_input(
        "Your question",
        placeholder="e.g., What is the capital of India?  OR  Get total premium per city"
    )
    concise = st.checkbox("Prefer concise answers (for general questions)", value=True)
    submitted = st.form_submit_button("Ask")

# -----------------------------
# MAIN LOGIC
# -----------------------------
if submitted and user_input.strip():
    with st.spinner("Thinking..."):
        if is_sql_intent(user_input):
            # -----------------------------
            # SQL MODE: generate SQL + run it
            # -----------------------------
            st.markdown("**Mode:** SQL (database query)")

            # Prompt tells the LLM your schema and asks for ONLY SQL output
            sql_prompt = f"""
Convert the user's request into a valid SQL Server query.
Return only the SQL, no explanation.

Tables and columns:
- Customers(CustomerID, Name, City, Age)
- Policies(PolicyID, CustomerID, PolicyType, PremiumAmount, PurchaseDate)

User request: "{user_input}"
            """.strip()

            llm_raw = ask_ollama(sql_prompt)      # raw LLM output (may include explanations)
            sql_query = extract_sql(llm_raw)      # attempt to get just the SQL

            # Show raw output for learning/debugging
            with st.expander("&#x1f50e; Raw LLM output (for debugging)"):
                st.code(llm_raw)

            if not sql_query:
                st.warning("I couldn't detect a valid SQL query from the model's response. Please rephrase your request.")
            else:
                st.subheader("Generated SQL")
                st.code(sql_query, language="sql")

                # Execute the SQL safely
                try:
                    conn = get_connection()
                    cursor = conn.cursor()
                    cursor.execute(sql_query)

                    # Fetch rows and column names
                    columns = &#91;col&#91;0] for col in cursor.description]
                    rows = cursor.fetchall()
                    df = pd.DataFrame.from_records(rows, columns=columns)

                    st.subheader("Results")
                    st.dataframe(df, use_container_width=True)

                    # Auto bar chart for simple 2+ column aggregated results
                    if len(df.columns) >= 2 and pd.api.types.is_numeric_dtype(df.iloc&#91;:, 1]):
                        st.caption("Auto chart (if it makes sense):")
                        st.bar_chart(data=df.set_index(df.columns&#91;0]))

                except Exception as e:
                    st.error(f"Error running SQL: {e}")
                    with st.expander("Troubleshooting tips"):
                        st.markdown("""
- Ensure the **ODBC SQL Server driver** and **SQL Server** are installed and running.
- Confirm the **InsuranceDemo** DB and its **Customers** and **Policies** tables exist.
- If using **SQL Authentication**, edit the connection string in `get_connection()`.
- Check that the generated SQL is valid for SQL Server syntax.
                        """)

        else:
            # -----------------------------
            # GENERAL Q&amp;A MODE: answer directly with LLM
            # -----------------------------
            st.markdown("**Mode:** General knowledge (LLM answer)")

            # Keep answers short if the checkbox is enabled
            style = " Answer briefly in one sentence." if concise else ""
            general_prompt = f"Question: {user_input}\nProvide a clear and correct answer.{style}"

            response = ask_ollama(general_prompt)
            st.subheader("Answer")
            st.write(response)

            # Show the exact prompt we sent (good for learning)
            with st.expander("&#x1f50e; Prompt sent to LLM"):
                st.code(general_prompt)

# -----------------------------
# END
# -----------------------------

# QUICK RECAP FOR BEGINNERS:
# - The app auto-detects intent using keywords (fast &amp; simple).
# - SQL intent → LLM writes SQL → app runs it on SQL Server → shows results (and chart).
# - General intent → LLM answers directly (no database call).
# - No cloud APIs. Everything is local via Ollama.
</code></pre>



<pre class="wp-block-code"><code>	</code></pre>





<p class="wp-block-paragraph">Note: I am using VS Code, you can also use notepad++ or Jupytor Notebook or any other idea of your choice.</p>



<figure class="wp-block-image size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/010.png"><img loading="lazy" decoding="async" width="1717" height="969" src="https://udayarumilli.com/wp-content/uploads/2025/12/010.png" alt="" class="wp-image-4752" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/010.png 1717w, https://udayarumilli.com/wp-content/uploads/2025/12/010-300x169.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/010-600x339.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/010-768x433.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/010-1536x867.png 1536w" sizes="auto, (max-width: 1717px) 100vw, 1717px" /></a></figure>



<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 7: Run the App</strong></p>



<ol start="1" class="wp-block-list">
<li>Open Command Prompt</li>



<li>Navigate to the folder where app.py is saved:</li>
</ol>



<p class="wp-block-paragraph">cd path\to\your\folder</p>



<ol start="3" class="wp-block-list">
<li>Run the app:</li>
</ol>



<p class="wp-block-paragraph">streamlit run app.py</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> It will open a browser window at:<br><a href="http://localhost:8501">http://localhost:8501</a></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/010_B.png"><img loading="lazy" decoding="async" width="600" height="384" src="https://udayarumilli.com/wp-content/uploads/2025/12/010_B-600x384.png" alt="" class="wp-image-4753" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/010_B-600x384.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/010_B-300x192.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/010_B.png 657w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/011.png"><img loading="lazy" decoding="async" width="600" height="270" src="https://udayarumilli.com/wp-content/uploads/2025/12/011-600x270.png" alt="" class="wp-image-4754" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/011-600x270.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/011-300x135.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/011-768x345.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/011-1536x690.png 1536w, https://udayarumilli.com/wp-content/uploads/2025/12/011.png 1665w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<p class="wp-block-paragraph"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f539.png" alt="🔹" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Step 8: Ask Questions!</strong></p>



<p class="wp-block-paragraph">Try questions like:</p>



<ul class="wp-block-list">
<li>List all customers from New York</li>



<li>Show policies purchased after July 2025</li>



<li>Get total premium by city</li>
</ul>



<p class="wp-block-paragraph">The app will:</p>



<ol start="1" class="wp-block-list">
<li>Use LLM to generate SQL.</li>



<li>Run it on SQL Server.</li>



<li>Show results in a nice table.</li>
</ol>



<figure class="wp-block-image size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/012.png"><img loading="lazy" decoding="async" width="1360" height="892" src="https://udayarumilli.com/wp-content/uploads/2025/12/012.png" alt="" class="wp-image-4756" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/012.png 1360w, https://udayarumilli.com/wp-content/uploads/2025/12/012-300x197.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/012-600x394.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/012-768x504.png 768w" sizes="auto, (max-width: 1360px) 100vw, 1360px" /></a></figure>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/013.png"><img loading="lazy" decoding="async" width="740" height="485" src="https://udayarumilli.com/wp-content/uploads/2025/12/013.png" alt="" class="wp-image-4757" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/013.png 740w, https://udayarumilli.com/wp-content/uploads/2025/12/013-300x197.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/013-600x393.png 600w" sizes="auto, (max-width: 740px) 100vw, 740px" /></a></figure>
</div>


<figure class="wp-block-image size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/014.png"><img loading="lazy" decoding="async" width="1411" height="921" src="https://udayarumilli.com/wp-content/uploads/2025/12/014.png" alt="" class="wp-image-4758" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/014.png 1411w, https://udayarumilli.com/wp-content/uploads/2025/12/014-300x196.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/014-600x392.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/014-768x501.png 768w" sizes="auto, (max-width: 1411px) 100vw, 1411px" /></a></figure>



<p class="wp-block-paragraph">Now, I want to beautify my streamlit UI, its just a normal HTML markup language, I added to the app.py</p>



<figure class="wp-block-image size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/015.png"><img loading="lazy" decoding="async" width="1582" height="804" src="https://udayarumilli.com/wp-content/uploads/2025/12/015.png" alt="" class="wp-image-4759" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/015.png 1582w, https://udayarumilli.com/wp-content/uploads/2025/12/015-300x152.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/015-600x305.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/015-768x390.png 768w, https://udayarumilli.com/wp-content/uploads/2025/12/015-1536x781.png 1536w" sizes="auto, (max-width: 1582px) 100vw, 1582px" /></a></figure>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/016.png"><img loading="lazy" decoding="async" width="568" height="843" src="https://udayarumilli.com/wp-content/uploads/2025/12/016.png" alt="" class="wp-image-4760" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/016.png 568w, https://udayarumilli.com/wp-content/uploads/2025/12/016-202x300.png 202w" sizes="auto, (max-width: 568px) 100vw, 568px" /></a></figure>
</div>


<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">General Knowledge Questions:</h2>



<p class="wp-block-paragraph">This time, let’s try asking a general question and observe how the system responds. Based on the input, our AI Agent correctly identifies it as a general knowledge query. Instead of querying the database, it uses the general knowledge prompt, passes the question directly to the LLM, and then displays the response returned by the LLM.</p>



<p class="wp-block-paragraph"><strong>Sample Questions:</strong></p>



<ul class="wp-block-list">
<li>What is the difference between a Data Lake and a Data Lakehouse? – Provide a one-line answer.</li>



<li>Can you suggest some of the best cafés in Chicago Downtown?</li>
</ul>



<p class="wp-block-paragraph">Note: You may notice a few minor changes in the Streamlit UI, as I was experimenting with some CSS adjustments. Please ignore them. The latest code file is attached with this blog</p>



<figure class="wp-block-image size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/017_Diff_DataLake.png"><img loading="lazy" decoding="async" width="1186" height="952" src="https://udayarumilli.com/wp-content/uploads/2025/12/017_Diff_DataLake.png" alt="" class="wp-image-4761" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/017_Diff_DataLake.png 1186w, https://udayarumilli.com/wp-content/uploads/2025/12/017_Diff_DataLake-300x241.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/017_Diff_DataLake-600x482.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/017_Diff_DataLake-768x616.png 768w" sizes="auto, (max-width: 1186px) 100vw, 1186px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://udayarumilli.com/wp-content/uploads/2025/12/018_Best_Coffee.png"><img loading="lazy" decoding="async" width="1210" height="876" src="https://udayarumilli.com/wp-content/uploads/2025/12/018_Best_Coffee.png" alt="" class="wp-image-4762" srcset="https://udayarumilli.com/wp-content/uploads/2025/12/018_Best_Coffee.png 1210w, https://udayarumilli.com/wp-content/uploads/2025/12/018_Best_Coffee-300x217.png 300w, https://udayarumilli.com/wp-content/uploads/2025/12/018_Best_Coffee-600x434.png 600w, https://udayarumilli.com/wp-content/uploads/2025/12/018_Best_Coffee-768x556.png 768w" sizes="auto, (max-width: 1210px) 100vw, 1210px" /></a></figure>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Code Explanation:</h2>



<p class="wp-block-paragraph"><strong>1. PAGE APPEARANCE / HEADER</strong></p>



<ul class="wp-block-list">
<li>This section is about <strong>how the Streamlit app looks when you open it</strong>.</li>



<li>You set the <strong>page title</strong>, <strong>favicon icon</strong>, and <strong>layout</strong> (whether it should stretch wide across the screen or stay centered).</li>



<li>Then you add a <strong>big title/header</strong> like <em>“The One AI &#8211; Your First AI Agent”</em>.</li>



<li>This heading acts like a banner for your app, giving users a clear idea of what the app does as soon as they open it.</li>



<li>It’s like setting up the front page of a website — making it neat, professional, and user-friendly.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>2. IMPORTS AND INITIAL SETUP</strong></p>



<ul class="wp-block-list">
<li>In this section, you import the <strong>Python libraries</strong> that your app will use.</li>



<li>For example:
<ul class="wp-block-list">
<li>streamlit → for creating the web interface.</li>



<li>pandas → for working with SQL data results in table format.</li>



<li>pyodbc → for connecting to SQL Server.</li>



<li>ollama (or OpenAI client) → for sending queries to your local LLM (like Llama3).</li>
</ul>
</li>



<li>This section is like gathering your tools before starting the actual work. Without these imports, the code can’t run because Python won’t know what functions to use.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>3. DATABASE CONNECTION FUNCTION</strong></p>



<ul class="wp-block-list">
<li>This section defines how the app connects to your <strong>SQL Server database</strong>.</li>



<li>It usually contains:
<ul class="wp-block-list">
<li><strong>Driver details</strong> (SQL Server ODBC driver).</li>



<li><strong>Server name</strong> (your PC or remote SQL server).</li>



<li><strong>Database name</strong>.</li>



<li><strong>Authentication details</strong> (like Windows auth or SQL login).</li>
</ul>
</li>



<li>The function creates a connection so the app can run queries and fetch results.</li>



<li>Think of it like plugging a cable between your app and the SQL database — once connected, you can ask the database for any data you want.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>4. LLM (AI ENGINE) SETUP</strong></p>



<ul class="wp-block-list">
<li>This section sets up how your app communicates with your <strong>local AI model</strong> (running in Ollama).</li>



<li>It defines the <strong>model name</strong> (like llama3) and the <strong>API endpoint</strong>.</li>



<li>The LLM is the “AI brain” in your app — it helps interpret user questions, generate SQL queries, or even provide extra explanations in natural language.</li>



<li>Example: If a user types <em>“Get me premium collected city-wise”</em>, the AI can generate the right SQL query or provide summaries.</li>



<li>In short: This is the bridge between the user’s plain-English input and the actual database query.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>5. USER INPUT SECTION</strong></p>



<ul class="wp-block-list">
<li>This is the <strong>interactive part</strong> of the Streamlit app where users type their queries.</li>



<li>A text box (st.text_input) is used so the user can enter something like:<br><em>“Get me the total premium amount per city per year.”</em></li>



<li>When the user presses Enter, the input is captured and passed to the AI engine or directly to the database.</li>



<li>This is the <strong>conversation entry point</strong> — it’s where the user tells the AI what they want.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>6. GENERATING SQL QUERY WITH AI</strong></p>



<ul class="wp-block-list">
<li>Once the user provides input, the app uses the <strong>AI model</strong> to turn that input into a valid SQL query.</li>



<li>Example:<br>Input → <em>“Get me total premium per city per year”</em><br>AI Output →</li>



<li>SELECT City, YEAR(PolicyDate) AS Year, SUM(PremiumAmount) AS TotalPremium</li>



<li>FROM Premiums</li>



<li>GROUP BY City, YEAR(PolicyDate);</li>



<li>This step is important because most users don’t know SQL syntax.</li>



<li>The AI translates <strong>natural language → database query</strong>.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>7. EXECUTING SQL QUERY</strong></p>



<ul class="wp-block-list">
<li>The app now takes the generated SQL query and sends it to the database.</li>



<li>It runs the query and fetches the results into a <strong>pandas DataFrame</strong>.</li>



<li>If there are any errors (e.g., wrong column names, missing tables), the app shows an error message instead of crashing.</li>



<li>This part is like the <strong>engine room</strong>: it actually goes to the database, pulls out the data, and brings it back for display.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>8. DISPLAYING RESULTS</strong></p>



<ul class="wp-block-list">
<li>The results from the SQL query are displayed inside the Streamlit app.</li>



<li>This is done using a <strong>table format</strong>, so the user can see rows and columns just like in SQL Server Management Studio (SSMS).</li>



<li>Additionally, you can add <strong>visualizations</strong> (like bar charts, line charts, pie charts) using Streamlit’s charting features.</li>



<li>Example: If the result is <em>Premium per City per Year</em>, you can show both the table <strong>and</strong> a <strong>bar chart</strong> comparing the cities.</li>



<li>This makes the data much easier to understand at a glance.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>9. EXTRA RESPONSES FROM AI (OPTIONAL)</strong></p>



<ul class="wp-block-list">
<li>Apart from SQL results, the app can also ask the AI model to give additional <strong>context or insights</strong>.</li>



<li>Example: If the query result shows Hyderabad collected the most premium, the AI might add:<br><em>“Hyderabad is leading in premium collections consistently for the last 3 years.”</em></li>



<li>This helps users get not just raw data but also <strong>meaningful insights</strong>.</li>



<li>This section makes the app feel more like a real <strong>AI Agent</strong> instead of just a database viewer.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>10. END</strong></p>



<ul class="wp-block-list">
<li>The final part usually cleans up connections or just marks the end of the script.</li>



<li>It ensures everything is wrapped up neatly.</li>



<li>In Streamlit, you don’t always need explicit cleanup since the app reloads on every change, but it’s good practice to separate logic and keep the code modular.</li>
</ul>



<p class="wp-block-paragraph"><strong>Summary</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>Step</strong></td><td><strong>Description</strong></td></tr></thead><tbody><tr><td>1</td><td>Install Python &amp; pip</td></tr><tr><td>2</td><td>Install streamlit, pyodbc, pandas</td></tr><tr><td>3</td><td>Install Ollama + pull model</td></tr><tr><td>4</td><td>Create demo database in SQL Server</td></tr><tr><td>5</td><td>Write app.py using the code above</td></tr><tr><td>6</td><td>Run app via streamlit run app.py</td></tr><tr><td>7</td><td>Start typing questions and get answers!</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Depending on your PC’s computing power, the response from the LLM may take anywhere from a few seconds to a few minutes. The purpose of this blog is simple—to demonstrate how easily and elegantly we can integrate different components with an LLM to build AI agents. Even with a basic agent code, an open-source LLM, and a regular CPU on a local machine, we can achieve meaningful functionality. The same principles can be scaled up to create powerful, enterprise-grade AI systems using licensed LLMs, high-performance compute, advanced programming and millisecond-response APIs.</p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li><li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li><li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li><li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/ai-agent-talk-to-database-2/">Talk to Your Database with an AI Agent – No Cloud, No GPT License Needed – Part 2</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/ai-agent-talk-to-database-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Talk to Your Database with an AI Agent – No Cloud, No GPT License Needed – Part 1</title>
		<link>https://udayarumilli.com/ai-agent-talk-to-database/</link>
					<comments>https://udayarumilli.com/ai-agent-talk-to-database/#comments</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Tue, 30 Sep 2025 07:18:09 +0000</pubDate>
				<category><![CDATA[AI for Data People]]></category>
		<category><![CDATA[#AgenticAI]]></category>
		<category><![CDATA[#AI]]></category>
		<category><![CDATA[#AIForDataProfessionals]]></category>
		<category><![CDATA[#AIFreeCourse]]></category>
		<category><![CDATA[#CloudData]]></category>
		<category><![CDATA[#DataAnalyst]]></category>
		<category><![CDATA[#DataEngineer]]></category>
		<category><![CDATA[#DataScience]]></category>
		<category><![CDATA[#DBA]]></category>
		<category><![CDATA[#GenerativeAI]]></category>
		<category><![CDATA[#LearnAI]]></category>
		<category><![CDATA[#Llama]]></category>
		<category><![CDATA[#LLM]]></category>
		<category><![CDATA[#OpenAI]]></category>
		<category><![CDATA[#SQL]]></category>
		<guid isPermaLink="false">https://udayarumilli.com/?p=4710</guid>

					<description><![CDATA[<p>In this post, we’ll walk through your first AI experiment: talking to your database with an AI agent. No cloud or GPT license needed—just a hands-on way for data professionals to start exploring AI. <a href="https://udayarumilli.com/ai-agent-talk-to-database/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li>
<li><a href="https://udayarumilli.com/ai-agent-talk-to-database-2/"     class="crp_link post-4738"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
<li><a href="https://udayarumilli.com/fascinating-evolution-of-ai/"     class="crp_link post-4691"><span class="crp_title">From Chessboards to Chatbots — The Fascinating&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/ai-agent-talk-to-database/">Talk to Your Database with an AI Agent – No Cloud, No GPT License Needed – Part 1</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/006_01_Title.png"><img loading="lazy" decoding="async" width="1642" height="487" src="https://udayarumilli.com/wp-content/uploads/2025/09/006_01_Title.png" alt="Illustration of an AI agent interacting with a database, symbolizing natural language queries without cloud or GPT license." class="wp-image-4717" style="width:767px;height:auto" title="Your First AI Experiment – Talk to Your Database with an AI Agent (No Cloud, No GPT License Needed)" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/006_01_Title.png 1642w, https://udayarumilli.com/wp-content/uploads/2025/09/006_01_Title-300x89.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/006_01_Title-600x178.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/006_01_Title-768x228.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/006_01_Title-1536x456.png 1536w" sizes="auto, (max-width: 1642px) 100vw, 1642px" /></a></figure>
</div>


<p class="wp-block-paragraph"><strong>Your First AI Experiment: Run It Locally, Hassle-Free – Part 1 – Workflow Explanation</strong></p>



<p class="wp-block-paragraph">Most people think working with AI requires deep knowledge of machine learning, large language models, or cloud services. That’s not true—at least, not for your first experiment.</p>



<h2 class="wp-block-heading"><strong>The goal of this blog is simple</strong></h2>



<ul class="wp-block-list">
<li>To give you a hands-on AI experience right on your personal computer—no cloud, no license, no complicated setup. You don’t need to be an AI expert or even know the fundamentals of ML or LLMs. Instead, we’ll jump straight into building a beginner-friendly AI agent that can talk to your database in plain English.</li>



<li>This experiment is intentionally lightweight. You’ll see how an AI model can take natural language, translate it into SQL queries, run them on a real database, and return structured results—all through a simple Streamlit app.</li>



<li>Of course, in real-world large-scale systems, implementing AI requires more: production-grade models, robust design, enterprise services, clean code, and a strong UI/UX. But before we get there, it’s important to first experience how easy it is to start experimenting with AI on a single PC.</li>
</ul>



<p class="wp-block-paragraph">This blog is your entry point. By the end, you’ll have built your first working AI agent—something you can try, modify, and learn from—without touching the cloud or paying for a license.</p>



<ul class="wp-block-list">
<li><strong>Title</strong>: <em>Natural Language Querying of SQL Server using Agentic AI (Ollama + Streamlit)</em></li>



<li><strong>Environment</strong>: Windows PC (SQL Server already installed)</li>



<li><strong>Goal</strong>: Build a simple Streamlit app where users type questions in plain English, and the app uses a local AI model to convert it into SQL, run it, and show results.</li>
</ul>



<h2 class="wp-block-heading"><strong>Expected AI Workflow Explanation (Step by Step):</strong></h2>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-scaled.png"><img loading="lazy" decoding="async" width="2560" height="1171" src="https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-scaled.png" alt="Illustration of an AI agent interacting with a database, symbolizing natural language queries without cloud or GPT license." class="wp-image-4718" style="width:805px;height:auto" title="Your First AI Experiment – Talk to Your Database with an AI Agent (No Cloud, No GPT License Needed)" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-scaled.png 2560w, https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-300x137.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-600x274.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-768x351.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-1536x703.png 1536w, https://udayarumilli.com/wp-content/uploads/2025/09/ai_agent_workflow_with_agent_Title-2048x937.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></a><figcaption class="wp-element-caption"><strong><em>AI Agent Workflow</em></strong></figcaption></figure>
</div>


<ul class="wp-block-list">
<li><strong>1. User Query the Streamlit Web App: </strong>The journey starts with the user. They open a simple website (built with Streamlit) and type a question in plain English, such as:
<ul class="wp-block-list">
<li><em>“What is the capital of India?”</em> (General Knowledge)</li>



<li><em>“Show me all customers from New York with more than one insurance policy.”</em> (Database-Related)</li>
</ul>
</li>



<li><strong>2. Internally triggers “User Query Understanding”: </strong>Once the user submits the question, the system doesn’t directly jump to answering. Instead, it first activates an internal process that tries to “understand” what type of question this is.</li>



<li><strong>3. Keyword Detection (Intent Classification): </strong>The AI Agent now plays detective. It looks at the <strong>keywords</strong> in the question and tries to figure out the intent:
<ul class="wp-block-list">
<li>Is this a <strong>general knowledge question</strong>? (<em>“What is the capital of India?”</em>)</li>



<li>Or is this a <strong>database-related question</strong> that needs real data from our SQL Server? (<em>“Show me all customers from New York…”</em>)</li>
</ul>
</li>



<li><strong>4. Two Paths Based on the Query: </strong>Depending on the intent, the query flows into one of two pipelines:
<ul class="wp-block-list">
<li><strong>General Query Path</strong> → for common, knowledge-based questions.</li>



<li><strong>Database Query Path</strong> → for questions that require pulling actual business data from the SQL database.</li>
</ul>
</li>



<li><strong>5. Prompt Construction: </strong>Once the path is chosen, the system prepares instructions (a <em>prompt</em>) for the AI model. Think of a prompt as a “well-written request letter” to the AI.</li>



<li><strong>6. Build Simple or SQL-Specific Prompt</strong>
<ul class="wp-block-list">
<li>If it’s a <strong>General Query</strong>, the prompt is short and direct (e.g., <em>“Answer the following general knowledge question…”</em>).</li>



<li>If it’s a <strong>Database Query</strong>, the prompt includes extra context such as the database schema and metadata, so the AI knows how to frame the SQL code correctly.</li>
</ul>
</li>



<li><strong>7. Send Prompt to LLM: </strong>This carefully written prompt is sent to a Large Language Model (LLM), like a powerful AI brain (LLaMA in this case), which interprets and prepares the response.</li>



<li><strong>8. LLM Prepares the Answer: </strong>The AI brain now works on the query:
<ul class="wp-block-list">
<li>For <strong>General Queries</strong> → it produces a direct answer in plain English.</li>



<li>For <strong>Database Queries</strong> → it creates an SQL query to fetch the right information.</li>
</ul>
</li>



<li><strong>9. AI Agent Receives LLM Response: </strong>The AI Agent gets the answer back. If it’s general text, that’s easy. But if it’s SQL code, some extra steps are needed before showing results.
<ul class="wp-block-list">
<li><strong>9.A. Clean SQL: </strong>Sometimes the AI adds extra words like “Here is your query: …” which won’t work in the database. The Agent carefully cleans this so only the valid SQL statement remains.</li>



<li><strong>9.B. Connect to SQL Server: </strong>The Agent then connects to the actual SQL Server database where the actual data is stored.</li>



<li><strong>9.C. Execute SQL Query: </strong>It runs the cleaned SQL code against the database.</li>



<li><strong>9.D. Retrieve Results: </strong>The raw data comes back from the database, but it’s usually not user-friendly.</li>



<li><strong>9.E. Format Results: </strong>The Agent uses “<strong>Pandas</strong>” framework to neatly format the results into a readable table.</li>



<li><strong>9.F. Send results back to the Web UI: </strong>Send the prepared results data to the web UI</li>
</ul>
</li>



<li><strong>10. Display Final Answer on Web UI: </strong>Finally, whether it is a <strong>general knowledge answer</strong> or <strong>database query results</strong>, the system sends the final output back to the web page. The user sees a clear, easy-to-read answer or a table — ready to analyze, without needing to know any coding or SQL.</li>
</ul>



<h2 class="wp-block-heading"><strong>Implementation Workflow</strong></h2>



<ol start="1" class="wp-block-list">
<li><strong>Prepare Your Database</strong>
<ul class="wp-block-list">
<li>Install or use an existing SQL Server database.</li>



<li>Run the provided SQL script to create a schema and load some sample data (e.g., customers, policies).</li>
</ul>
</li>



<li><strong>Set Up Your AI Agent</strong>
<ul class="wp-block-list">
<li>Install <strong>Ollama</strong> to run a local large language model (LLM).</li>



<li>We’ll use <strong>LLaMA 3</strong>, a free and open LLM, running completely on your PC (no internet or cloud required).</li>
</ul>
</li>



<li><strong>Build the Backend Logic</strong>: Write a <strong>Python program</strong> that connects three things:
<ul class="wp-block-list">
<li>Your SQL Server database</li>



<li>The LLaMA 3 model (via Ollama)</li>



<li>A web interface (Streamlit)</li>
</ul>
</li>



<li><strong>Design the Web App</strong>
<ul class="wp-block-list">
<li>Use <strong>Streamlit</strong> to create a simple web application where you type questions in plain English.</li>



<li>Example: <em>“Show customers from New York who purchased more than 1 policy.”</em></li>
</ul>
</li>



<li><strong>How the Query Flows</strong>
<ul class="wp-block-list">
<li><strong>Step 1:</strong> You type the question into the web app.</li>



<li><strong>Step 2:</strong> Agent code determines whether it is a General Knowledge Question or a Database related question.</li>



<li><strong>Step 3:</strong> The app sends your text to <strong>Ollama</strong>, which runs the <strong>LLaMA 3 model</strong>.</li>



<li><strong>Step 4:</strong> If it is a GK question, LLM answer will be displayed in the Streamlit UI and skips the remaining steps.</li>



<li><strong>Step 5:</strong> If it is SQL related, the LLM converts your question into a valid <strong>SQL query</strong>.</li>



<li><strong>Step 6:</strong> Python executes this query on <strong>SQL Server</strong>.</li>



<li><strong>Step 7:</strong> The results are displayed in the <strong>Streamlit UI</strong> in a nice table format.</li>
</ul>
</li>



<li><strong>Run &amp; Enjoy</strong>
<ul class="wp-block-list">
<li>Everything runs <strong>locally on your PC</strong>.</li>



<li>No cloud subscription, no license, no external API.</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">Tools You’ll Use</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><td><strong>Tool</strong></td><td><strong>What It Is</strong></td><td><strong>Why You Need It</strong></td></tr></thead><tbody><tr><td><a href="https://www.microsoft.com/en-in/sql-server/sql-server-downloads"><img loading="lazy" decoding="async" width="150" height="119" class="wp-image-4714" style="width: 150px;" src="https://udayarumilli.com/wp-content/uploads/2025/09/SQLServer.png" alt="SQL Server Logo" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/SQLServer.png 396w, https://udayarumilli.com/wp-content/uploads/2025/09/SQLServer-300x239.png 300w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></td><td>A relational database system where we store and query structured data (like customers, policies).</td><td>To hold your sample insurance data that you’ll query with AI.</td></tr><tr><td><strong>SQL Scripts</strong></td><td>A set of .sql files containing commands to create a database, schema, and insert sample records.</td><td>Saves time — no need to manually type queries to set up data.</td></tr><tr><td><a href="https://ollama.com/download"><img loading="lazy" decoding="async" width="150" height="52" class="wp-image-4712" style="width: 150px;" src="https://udayarumilli.com/wp-content/uploads/2025/09/Ollama.png" alt="Ollama platform for running LLM locally on your PC" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/Ollama.png 1294w, https://udayarumilli.com/wp-content/uploads/2025/09/Ollama-300x104.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/Ollama-600x208.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/Ollama-768x266.png 768w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></td><td>A lightweight tool that lets you run large language models (LLMs) on your computer locally.</td><td>It’s the engine that powers your AI, making natural language → SQL translation possible.</td></tr><tr><td><a href="https://www.llama.com/llama-downloads"><img loading="lazy" decoding="async" width="150" height="61" class="wp-image-4711" style="width: 150px;" src="https://udayarumilli.com/wp-content/uploads/2025/09/LLaMA-Meta-Logo-Vector.png" alt="" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/LLaMA-Meta-Logo-Vector.png 992w, https://udayarumilli.com/wp-content/uploads/2025/09/LLaMA-Meta-Logo-Vector-300x122.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/LLaMA-Meta-Logo-Vector-600x244.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/LLaMA-Meta-Logo-Vector-768x313.png 768w" sizes="auto, (max-width: 150px) 100vw, 150px" /> </a></td><td>A modern open-source LLM created by Meta. Runs through Ollama on your PC.</td><td>The actual “AI brain” that understands your question and generates SQL.</td></tr><tr><td><a href="https://www.python.org"><img loading="lazy" decoding="async" width="150" height="50" class="wp-image-4713" style="width: 150px;" src="https://udayarumilli.com/wp-content/uploads/2025/09/python-logo.png" alt="Python logo"></a></td><td>A programming language widely used in AI/ML and backend development.</td><td>Acts as the glue between the database, LLM, and UI.</td></tr><tr><td><a href="https://streamlit.io"><img loading="lazy" decoding="async" width="150" height="88" class="wp-image-4715" style="width: 150px;" src="https://udayarumilli.com/wp-content/uploads/2025/09/streamlit-logo-secondary-colormark-darktext.png" alt="Streamlit webapp using python " srcset="https://udayarumilli.com/wp-content/uploads/2025/09/streamlit-logo-secondary-colormark-darktext.png 2181w, https://udayarumilli.com/wp-content/uploads/2025/09/streamlit-logo-secondary-colormark-darktext-300x176.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/streamlit-logo-secondary-colormark-darktext-600x351.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/streamlit-logo-secondary-colormark-darktext-768x449.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/streamlit-logo-secondary-colormark-darktext-1536x899.png 1536w, https://udayarumilli.com/wp-content/uploads/2025/09/streamlit-logo-secondary-colormark-darktext-2048x1198.png 2048w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></td><td>A Python library for quickly building web apps with minimal code.</td><td>Provides a simple, interactive interface to type questions and display results.</td></tr><tr><td><a href="https://code.visualstudio.com/download"><img loading="lazy" decoding="async" width="150" height="155" class="wp-image-4716" style="width: 150px;" src="https://udayarumilli.com/wp-content/uploads/2025/09/VSCode.png" alt="VS Code Logo" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/VSCode.png 508w, https://udayarumilli.com/wp-content/uploads/2025/09/VSCode-290x300.png 290w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a></td><td>Text editors/IDEs to write your Python and SQL code.</td><td>Helps you build and edit your app comfortably.</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Continues&#8230;..</h2>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><a>#AI, #GenerativeAI, #AgenticAI, #AIFreeCourse, #OpenAI, #LLM, #Llama, #SQL, #DBA, #DataEngineer, #DataAnalyst, #DataScience, #CloudData, #AIForDataProfessionals, #LearnAI,</a></p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li><li><a href="https://udayarumilli.com/ai-agent-talk-to-database-2/"     class="crp_link post-4738"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li><li><a href="https://udayarumilli.com/fascinating-evolution-of-ai/"     class="crp_link post-4691"><span class="crp_title">From Chessboards to Chatbots — The Fascinating&hellip;</span></a></li><li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/ai-agent-talk-to-database/">Talk to Your Database with an AI Agent – No Cloud, No GPT License Needed – Part 1</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/ai-agent-talk-to-database/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>From Chessboards to Chatbots — The Fascinating Evolution of AI</title>
		<link>https://udayarumilli.com/fascinating-evolution-of-ai/</link>
					<comments>https://udayarumilli.com/fascinating-evolution-of-ai/#comments</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Mon, 22 Sep 2025 06:16:46 +0000</pubDate>
				<category><![CDATA[AI for Data People]]></category>
		<category><![CDATA[#AgenticAI]]></category>
		<category><![CDATA[#AI]]></category>
		<category><![CDATA[#AIForDataProfessionals]]></category>
		<category><![CDATA[#AIFreeCourse]]></category>
		<category><![CDATA[#CloudData]]></category>
		<category><![CDATA[#DataAnalyst]]></category>
		<category><![CDATA[#DataEngineer]]></category>
		<category><![CDATA[#DataScience]]></category>
		<category><![CDATA[#DBA]]></category>
		<category><![CDATA[#GenerativeAI]]></category>
		<category><![CDATA[#LearnAI]]></category>
		<category><![CDATA[#Llama]]></category>
		<category><![CDATA[#LLM]]></category>
		<category><![CDATA[#OpenAI]]></category>
		<category><![CDATA[#SQL]]></category>
		<guid isPermaLink="false">https://udayarumilli.com/?p=4691</guid>

					<description><![CDATA[<p>Artificial Intelligence has come a long way — from basic rule-based systems to advanced models shaping our world today. In this post, we trace the fascinating evolution of AI and highlight its impact on data professionals, helping you understand where we came from and where we’re heading. <a href="https://udayarumilli.com/fascinating-evolution-of-ai/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li>
<li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li>
<li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
<li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/fascinating-evolution-of-ai/">From Chessboards to Chatbots — The Fascinating Evolution of AI</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/005__AI_Evaluation_Title.png"><img loading="lazy" decoding="async" width="600" height="181" src="https://udayarumilli.com/wp-content/uploads/2025/09/005__AI_Evaluation_Title-600x181.png" alt="A realistic visual representation of artificial intelligence evolving over time, showing a transition from early computing to modern AI." class="wp-image-4692" style="width:840px;height:auto" title="The fascinating evolution of AI across generations of technology" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/005__AI_Evaluation_Title-600x181.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/005__AI_Evaluation_Title-300x90.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/005__AI_Evaluation_Title-768x231.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/005__AI_Evaluation_Title.png 1246w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>



<h1 class="wp-block-heading"><strong>How AI Grew From a 1950s Dream to Today’s LLMs, Agents, and Data-Powered Future</strong></h1>



<h2 class="wp-block-heading"><strong>Imagine this</strong></h2>



<p class="wp-block-paragraph">The year is 1956. Computers fill entire rooms. Data is on punch cards.</p>



<p class="wp-block-paragraph">A group of scientists meet at Dartmouth and declare: <em>“<strong>In a generation, machines will think like humans.</strong>”</em> What sounded like sci-fi then is <strong>reality today</strong>.</p>



<ul class="wp-block-list">
<li>AI writes your SQL queries, summarizes execution plans, suggests indexes, and even automates pipeline monitoring — all inside the tools you already use.</li>



<li>But how did we go from <strong>rule-based chess programs</strong> to <strong>Copilot, GPT, and Agentic AI</strong>?<br>Let’s rewind and see how AI’s evolution unlocked this new reality.</li>
</ul>



<figure class="wp-block-image size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/Evaluation-of-AI.png"><img loading="lazy" decoding="async" width="600" height="449" src="https://udayarumilli.com/wp-content/uploads/2025/09/Evaluation-of-AI-600x449.png" alt="A realistic visual representation of artificial intelligence evolving over time, showing a transition from early computing to modern AI." class="wp-image-4693" style="width:805px;height:auto" title="The fascinating evolution of AI across generations of technology" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/Evaluation-of-AI-600x449.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/Evaluation-of-AI-300x225.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/Evaluation-of-AI-768x575.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/Evaluation-of-AI.png 1270w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>



<h2 class="wp-block-heading"><strong>Act 1 — The Birth (1950s–1970s): The Dream of “Thinking Machines”</strong></h2>



<ul class="wp-block-list">
<li><strong>1950:</strong> Alan Turing poses the famous <strong>Turing Test</strong> — can a machine fool a human into believing it’s intelligent?</li>



<li><strong>1956:</strong> The term <strong>Artificial Intelligence</strong> is born at the Dartmouth Conference.</li>



<li>Early systems can play <strong>games like chess</strong> or solve <strong>algebra puzzles</strong> using rules.</li>
</ul>



<p class="wp-block-paragraph">These were <strong>purely symbolic systems</strong>:</p>



<ul class="wp-block-list">
<li>If condition, then action.</li>



<li>Like enormous <strong>stored procedures</strong> filled with IF-ELSE logic.</li>
</ul>



<p class="wp-block-paragraph"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">Limitation:</mark> </strong>Computers were too slow and too small.</p>



<p class="wp-block-paragraph"><em>“The dream was alive, but the machines weren’t ready.”</em></p>



<h2 class="wp-block-heading"><strong>Act 2 — The Expert Systems Era (1980s): Rules Go Corporate</strong></h2>



<p class="wp-block-paragraph">The 1980s brought <strong>Expert Systems</strong>:</p>



<ul class="wp-block-list">
<li>Rule-driven AI for businesses — diagnosing diseases, approving loans, troubleshooting machines.</li>



<li>Knowledge was encoded as <strong>decision trees</strong>:
<ul class="wp-block-list">
<li><em>IF symptom = X AND age > 40 THEN diagnose Y.</em></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">For DBAs and Developers, this felt like <strong>static business rules</strong> hardcoded into logic.<br><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">Limitation: </mark></strong>Every change meant manually editing rules — no “learning,” no “adaptation.”</p>



<h2 class="wp-block-heading"><strong>Act 3 — The Machine Learning Era (1990s–2010s): Data Takes the Wheel</strong></h2>



<p class="wp-block-paragraph">With more powerful computers and the rise of the internet, the game changed.<br>AI moved from static rules to <strong>Machine Learning (ML)</strong> — systems that <strong>learn from data</strong>.</p>



<ul class="wp-block-list">
<li><strong>Algorithms could now predict:</strong>
<ul class="wp-block-list">
<li>Which customers might churn</li>



<li>What credit risk a person posed</li>



<li>Detect credit card fraud</li>



<li>Which email is spam</li>
</ul>
</li>



<li>Techniques like <strong>decision trees, regression, and neural networks</strong> became mainstream.</li>
</ul>



<p class="wp-block-paragraph"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">Limitation</mark>: </strong>ML models were powerful, but:</p>



<ul class="wp-block-list">
<li>Required <strong>data scientists,</strong> heavy math and Custom infrastructure</li>



<li>Were complex for everyday Data people to use</li>
</ul>



<h2 class="wp-block-heading"><strong>Act 4 — The Deep Learning &amp; Big Data Explosion (2010s): Machines Get &#8220;Vision and Voice&#8221;</strong></h2>



<p class="wp-block-paragraph">This is when AI became mainstream.<br>With <strong>Big Data (Hadoop, Spark)</strong> and <strong>GPUs</strong>, neural networks grew deep enough to:</p>



<ul class="wp-block-list">
<li>Recognize images (self-driving cars)</li>



<li>Understand speech (Siri, Alexa)</li>



<li>Translate languages (Google Translate)</li>
</ul>



<p class="wp-block-paragraph">Data People started working alongside:</p>



<ul class="wp-block-list">
<li><strong>Data Lakes, PySpark, and TensorFlow</strong></li>



<li>Handling <strong>huge datasets</strong> for AI training</li>
</ul>



<p class="wp-block-paragraph"><strong><mark style="background-color:rgba(0, 0, 0, 0);color:#eb1212" class="has-inline-color">Limitation:</mark></strong> But the tools still felt <strong>specialized</strong> — not something a SQL Developer, a BI Developer or an Analyst could casually use.</p>



<h2 class="wp-block-heading"><strong>Act 5 — The Transformer Revolution (2017): The Spark for LLMs</strong></h2>



<p class="wp-block-paragraph">Here’s where <strong>everything changed</strong>.<br>In <strong>2017</strong>, Google researchers published a paper called: <strong>“Attention Is All You Need.”</strong></p>



<p class="wp-block-paragraph">This introduced the <strong>Transformer architecture</strong>:</p>



<ul class="wp-block-list">
<li>A new way for AI to “understand” sequences of text.</li>



<li>Instead of reading text word by word, it used <strong>attention mechanisms</strong> to see the <strong>whole context</strong> at once.</li>
</ul>



<p class="wp-block-paragraph"><strong>Why it matters:</strong></p>



<ul class="wp-block-list">
<li>It made <strong>language models scalable</strong>.</li>



<li>It powered the birth of <strong>BERT, GPT, T5, and all modern LLMs</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Think of it as:</strong></p>



<ul class="wp-block-list">
<li>The <strong>indexing breakthrough</strong> of AI — suddenly, AI could “query” massive text quantities <strong>efficiently and contextually</strong>.</li>
</ul>



<h2 class="wp-block-heading"><strong>Act 6 — The Rise of Generative AI (2020–Present): AI That Writes, Codes, and Creates</strong></h2>



<p class="wp-block-paragraph">Post-transformer, <strong>LLMs exploded</strong>:</p>



<ul class="wp-block-list">
<li><strong>GPT (OpenAI)</strong>, <strong>Claude (Anthropic)</strong>, <strong>Gemini (Google), LLaMA(Meta), Grok (xAI), etc.</strong></li>



<li>Models that can:
<ul class="wp-block-list">
<li><strong>Write any programming language</strong></li>



<li><strong>Summarize logs and database health checks</strong></li>



<li><strong>Document ETL pipelines</strong></li>



<li><strong>Generate dashboards or Power BI visuals</strong> on the fly</li>
</ul>
</li>
</ul>



<p class="has-medium-font-size wp-block-paragraph"><strong>Generative AI doesn’t just <em>analyze</em> data. It creates:</strong></p>



<ul class="wp-block-list">
<li>Text</li>



<li>Code</li>



<li>Images, music, videos</li>



<li>Even entire pipeline configs</li>
</ul>



<h2 class="wp-block-heading"><strong>Act 7 — Agentic AI (The Present &amp; Future): AI That Acts Like a Teammate</strong></h2>



<p class="wp-block-paragraph">Today, AI is moving beyond being a <strong>passive assistant</strong> to being an <strong>active agent</strong>:</p>



<ul class="wp-block-list">
<li>An <strong>Agent</strong> can:
<ul class="wp-block-list">
<li>Read a requirement (plain English)</li>



<li>Query databases</li>



<li>Generate SQL or Python</li>



<li>Test and validate results</li>



<li>Trigger actions (alerts, dashboards, emails)</li>



<li>Loop until the task is done</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><strong>For Data People:</strong></p>



<ul class="wp-block-list">
<li>Think of it as a <strong>super-powered stored procedure</strong> that:
<ul class="wp-block-list">
<li>Writes its own code</li>



<li>Executes it</li>



<li>Decides what to do next — all under your supervision.</li>
</ul>
</li>
</ul>



<h1 class="wp-block-heading"><strong>Types of AI You Need to Know</strong></h1>



<p class="wp-block-paragraph">To make sense of today’s buzzwords and the broader AI landscape:</p>



<ol start="1" class="wp-block-list">
<li><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Narrow AI (or Weak AI / Classic AI)</mark></strong> AI systems designed and trained for a specific task or a narrow set of tasks. They excel at their designated function but cannot perform beyond it.
<ul class="wp-block-list">
<li><strong>Example:</strong> Spam filters, recommendation engines (e.g., Netflix, Amazon), voice assistants (Siri, Alexa) for specific commands, image recognition for classifying objects, query tuning, medical diagnosis systems for a specific disease.</li>



<li><strong>Key Point:</strong> The vast majority of AI in practical use today is Narrow AI.</li>
</ul>
</li>



<li><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Generative AI (Gen AI)</mark></strong> A powerful subset of Narrow AI that focuses on creating new, original content (text, images, audio, video, code, etc.) based on patterns learned from vast datasets.
<ul class="wp-block-list">
<li><strong>Example:</strong> Generating human-like text (e.g., for articles, documentation, creative writing), creating realistic images from text prompts, synthesizing new music, generating code snippets, creating synthetic data.</li>
</ul>
</li>



<li><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">Agentic AI (AI Agents) </mark></strong>AI systems designed to reason, plan, and execute multi-step actions to achieve a specific goal, often by interacting with external tools, APIs, or other AI models. They can break down complex problems into smaller, manageable tasks. Agentic AI often leverages and orchestrates various Narrow AI components (including Generative AI) to achieve its objectives.
<ul class="wp-block-list">
<li><strong>Example:</strong> AI systems that can independently research a topic, summarize findings, generate reports, send alerts, perform tests, optimize business processes by coordinating various tools, or even develop and refine software.</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading"><strong>Future (Theoretical Types &#8211; long-term goal of AI research):</strong></h2>



<ol start="4" class="wp-block-list">
<li><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">Artificial General Intelligence (AGI or Strong AI)</mark></strong> A hypothetical type of AI that possesses human-level cognitive abilities across a wide range of tasks, including reasoning, problem-solving, learning from experience, understanding complex ideas, and adapting to new situations.
<ul class="wp-block-list">
<li><strong>Examples:</strong> Currently theoretical. If it existed, it could perform any intellectual task that a human being can.</li>
</ul>
</li>



<li><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">Artificial Superintelligence (ASI)</mark></strong> A hypothetical AI that would surpass human intelligence in virtually every aspect, including creativity, general knowledge, and social skills.
<ul class="wp-block-list">
<li><strong>Examples:</strong> Purely theoretical. Often depicted in science fiction as an entity with vastly superior cognitive capabilities to all human minds combined.</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading"><strong>Why This Evolution Matters for Data Pros</strong></h2>



<p class="wp-block-paragraph">Each phase of AI made it <strong>easier for everyday professionals to use</strong>:</p>



<ul class="wp-block-list">
<li>From <strong>static rules</strong> →</li>



<li>To <strong>data-driven models</strong> →</li>



<li>To <strong>AI that writes and acts for you</strong> →</li>



<li>To Future (<strong>Strong → AI Superintelligence)</strong></li>
</ul>



<h3 class="wp-block-heading"><strong>Now:</strong></h3>



<ul class="wp-block-list">
<li>You don’t need to be a data scientist.</li>



<li>You just need to know <strong>how to use AI tools with your data skills.</strong></li>
</ul>



<p class="wp-block-paragraph">And that’s what this series, <em>“<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">AI The One — With Uday,</mark></strong>”</em> will teach you.</p>



<h3 class="wp-block-heading"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">Coming Next…</mark></strong></h3>



<p class="wp-block-paragraph">Even before diving into AI concepts and internals, try building a simple agent right on your local PC.</p>



<p class="wp-block-paragraph">#learn #ai #sql #dba #llm #dataengineer #dataanalyst #genai #agenticai #openai #llama #aiagent</p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li><li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li><li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li><li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/fascinating-evolution-of-ai/">From Chessboards to Chatbots — The Fascinating Evolution of AI</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/fascinating-evolution-of-ai/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>AI Isn’t Magic — It’s Just Math and Logic with Data</title>
		<link>https://udayarumilli.com/ai-isnt-magic-math-logic-data/</link>
					<comments>https://udayarumilli.com/ai-isnt-magic-math-logic-data/#comments</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Fri, 19 Sep 2025 13:45:36 +0000</pubDate>
				<category><![CDATA[AI for Data People]]></category>
		<category><![CDATA[#AgenticAI]]></category>
		<category><![CDATA[#AI]]></category>
		<category><![CDATA[#AIForDataProfessionals]]></category>
		<category><![CDATA[#AIFreeCourse]]></category>
		<category><![CDATA[#CloudData]]></category>
		<category><![CDATA[#DataAnalyst]]></category>
		<category><![CDATA[#DataEngineer]]></category>
		<category><![CDATA[#DataScience]]></category>
		<category><![CDATA[#DBA]]></category>
		<category><![CDATA[#GenerativeAI]]></category>
		<category><![CDATA[#LearnAI]]></category>
		<category><![CDATA[#Llama]]></category>
		<category><![CDATA[#LLM]]></category>
		<category><![CDATA[#OpenAI]]></category>
		<category><![CDATA[#SQL]]></category>
		<guid isPermaLink="false">https://udayarumilli.com/?p=4685</guid>

					<description><![CDATA[<p>AI often feels like magic, but in reality, it’s powered by math, logic, and data. In this post, we break down the myths and explain AI in simple, practical terms for data professionals who want to truly understand how it works. <a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li>
<li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li>
<li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
<li><a href="https://udayarumilli.com/fascinating-evolution-of-ai/"     class="crp_link post-4691"><span class="crp_title">From Chessboards to Chatbots — The Fascinating&hellip;</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/">AI Isn’t Magic — It’s Just Math and Logic with Data</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/004_AI_Is_Not_Magic_Title.png"><img loading="lazy" decoding="async" width="600" height="180" src="https://udayarumilli.com/wp-content/uploads/2025/09/004_AI_Is_Not_Magic_Title-600x180.png" alt="Professional man analyzing data and formulas representing artificial intelligence as math and logic." class="wp-image-4686" style="width:783px;height:auto" title="AI isn’t magic — it’s the power of math, logic, and data" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/004_AI_Is_Not_Magic_Title-600x180.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/004_AI_Is_Not_Magic_Title-300x90.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/004_AI_Is_Not_Magic_Title-768x230.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/004_AI_Is_Not_Magic_Title-1536x461.png 1536w, https://udayarumilli.com/wp-content/uploads/2025/09/004_AI_Is_Not_Magic_Title.png 2000w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>



<h2 class="wp-block-heading"><strong>Interpreting AI for Data People</strong></h2>



<p class="wp-block-paragraph">When people hear “AI,” they often imagine something mysterious — almost like magic. A black box that <em>thinks</em> and <em>decides</em> on its own. But the truth is much simpler:</p>



<p class="has-text-align-center wp-block-paragraph" style="font-size:23px"><strong><em><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">AI isn’t magic. It’s just math, logic, and lots of data — packaged in clever ways.</mark></em></strong></p>



<p class="wp-block-paragraph">If you’re a Data Pro (SQL Developer, DBA, Data Engineer, or Data Analyst) you already work with <strong>data</strong> every day.</p>



<p class="wp-block-paragraph">The good news? <strong>That’s the foundation of AI.</strong></p>



<p class="wp-block-paragraph">In this post, let’s break AI into concepts you already understand, so you can see it for what it really is — and how you can work with it.</p>



<h2 class="wp-block-heading"><strong>What Is AI Really Doing?</strong></h2>



<p class="wp-block-paragraph">At its core, AI doesn’t actually <strong>‘think’</strong> like a human—at least not yet. It identifies patterns in data, applies probabilistic reasoning, and generates outputs based on probability.</p>


<div class="wp-block-image">
<figure class="alignright size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/004_Image.png"><img loading="lazy" decoding="async" width="600" height="400" src="https://udayarumilli.com/wp-content/uploads/2025/09/004_Image-600x400.png" alt="Professional man analyzing data and formulas representing artificial intelligence as math and logic." class="wp-image-4687" style="width:312px;height:auto" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/004_Image-600x400.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/004_Image-300x200.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/004_Image.png 768w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<p class="wp-block-paragraph"><strong>How?</strong>By using:</p>



<ol start="1" class="wp-block-list">
<li><strong>Math</strong> — linear algebra, statistics, probability</li>



<li><strong>Logic</strong> — rules, if-then conditions, optimization steps</li>



<li><strong>Data</strong> — massive datasets to “learn” relationships</li>
</ol>



<h3 class="wp-block-heading"><strong>Think of it like:</strong></h3>



<ul class="wp-block-list">
<li><strong>SQL Query Optimization: </strong>The optimizer finds the “best plan” based on statistics.</li>



<li><strong>Index Recommendations: </strong>Database engine suggests indexes by analyzing patterns in query usage.</li>



<li><strong>Power BI’s Key Influencers Visual:</strong> Uses regression and decision trees to explain what drives an outcome.</li>
</ul>



<h3 class="wp-block-heading"><strong>Everyday AI in Action:</strong></h3>



<ul class="wp-block-list">
<li><strong>Spam Filter in Email</strong> → Learns patterns in words/senders and predicts what looks like spam.</li>



<li><strong>Google Maps Traffic Prediction</strong> → Uses past traffic data + real-time signals to estimate travel time.</li>



<li><strong>Netflix / Prime Recommendations</strong> → Suggests movies by finding patterns in what you and others watched.</li>



<li><strong>Voice Assistants (Alexa, Siri, Google):</strong> Understand and respond to natural language.</li>



<li><strong>Self-Driving Cars:</strong> Detect objects, predict movement, and make driving decisions in real time.</li>



<li><strong>ChatGPT, Gemini, Grok, Claud, Llama &amp; Copilot etc.:</strong> Generate human-like text, code, image, video etc.</li>



<li><strong>Medical Imaging AI:</strong> Identify tumours or diseases from X-rays and MRIs.</li>



<li><strong>Customer Support Chatbots:</strong> Resolve queries with conversational AI instead of scripts.</li>



<li><strong>Personalized Ads:</strong> Predict what products you’re most likely to click on.</li>
</ul>



<p class="wp-block-paragraph">None of these are magic. They’re <strong>algorithms, math, and data-driven decisions</strong> — the same building blocks AI uses.</p>



<h2 class="wp-block-heading"><strong>How AI Relates to What You Already Know</strong></h2>



<p class="wp-block-paragraph">If you’ve ever:</p>



<ul class="wp-block-list">
<li><strong>Used a CASE statement</strong> in SQL</li>



<li><strong>Written a WHERE filter</strong> to segment data</li>



<li><strong>Created a KPI</strong> or <strong>trend report</strong> in Power BI</li>



<li><strong>Tuned a query using statistics</strong></li>
</ul>



<p class="wp-block-paragraph">…you’ve already touched on the <strong>core principles AI relies on</strong>.</p>



<h3 class="wp-block-heading"><strong>AI just:</strong></h3>



<ul class="wp-block-list">
<li>Scales it up (billions of rows, huge dimensions)</li>



<li>Automates the math (no manual regression or probability calculations)</li>



<li>Learns patterns dynamically (not just from fixed rules)</li>
</ul>



<h2 class="wp-block-heading"><strong>Breaking Down AI in Simple Data Terms</strong></h2>



<p class="wp-block-paragraph">For most Data People, AI feels mysterious because people throw around words like <strong><em>neural networks</em></strong><em>, <strong>embeddings</strong>,</em> and <strong><em>transformers</em></strong>. But here’s how to think about it in terms you already know:</p>



<h3 class="wp-block-heading"><strong><em>1. Machine Learning (ML) — Like Advanced GROUP BY and Pattern Detection</em></strong></h3>



<p class="wp-block-paragraph">Imagine you’re analyzing customer churn (when customers stop using your service or leave your business). Normally, you’d:</p>



<ul class="wp-block-list">
<li>Write a GROUP BY query to segment customers.</li>



<li>Calculate churn rates manually.</li>



<li>Decide thresholds for “at-risk” customers.</li>
</ul>



<p class="wp-block-paragraph">Machine Learning does this automatically:</p>



<ul class="wp-block-list">
<li>It <strong>looks at historical data</strong> (who churned, who stayed).</li>



<li>It <strong>finds patterns</strong> — age, region, purchase frequency, etc.</li>



<li>It <strong>predicts</strong> who might churn next, without you manually coding the logic.</li>
</ul>



<p class="wp-block-paragraph"><strong>Think of ML as:</strong> <em>An automated analyst that builds “smart” GROUP BYs and CASE rules based on past data.</em></p>



<h3 class="wp-block-heading"><strong>2. Large Language Models (LLMs) — Like Super-Powered IntelliSense</strong></h3>



<p class="wp-block-paragraph">You know how IntelliSense in IDEs like SSMS or VS Code helps you autocomplete code?<br>LLMs like GPT work the same way — but for any text.</p>



<ul class="wp-block-list">
<li><strong>You type:</strong> <em>“Get me all policies with claims above $10,000 this year.”</em></li>



<li>It predicts the SQL query you want, using patterns it learned from billions of examples.</li>
</ul>



<p class="wp-block-paragraph">It doesn’t “understand” like a human — it just guesses the <strong>most likely text</strong> (or SQL or python) based on context.</p>



<p class="wp-block-paragraph"><strong>Think of LLMs as:</strong> <em>A hyper-intelligent autocomplete system, trained on massive datasets.</em></p>



<h3 class="wp-block-heading"><strong>3. AI Agents — Like Dynamic Stored Procedures with Decision-Making</strong></h3>



<p class="wp-block-paragraph"><strong>A stored procedure can:</strong></p>



<ul class="wp-block-list">
<li>Take input</li>



<li>Run queries</li>



<li>Return results</li>
</ul>



<p class="wp-block-paragraph"><strong>But an AI agent can do more:</strong></p>



<ul class="wp-block-list">
<li>Read a requirement (in plain English)</li>



<li>Write the SQL or Python code</li>



<li>Execute the query</li>



<li>Analyze the result</li>



<li>Decide what to do next (alert a team, generate a report, update a dashboard)</li>
</ul>



<p class="wp-block-paragraph"><strong>Think of AI Agents as:</strong> <em>A stored procedure that not only runs, but also <strong>thinks about what to do next</strong> — based on goals you set.</em></p>



<h2 class="wp-block-heading"><strong>Why This Matters</strong></h2>



<p class="wp-block-paragraph">Because once you see that AI is <strong>just structured math and data</strong>, it stops feeling like a mystery. And you realize:&nbsp;&nbsp;</p>



<ol start="1" class="wp-block-list">
<li><strong>You already understand its building blocks.</strong></li>



<li><strong>You don’t need a PhD to start using it.</strong></li>



<li><strong>You can build AI-powered workflows using the same tools you already know (SQL, Python, Power BI, etc.).</strong></li>
</ol>



<h2 class="wp-block-heading"><strong>Final Takeaway</strong></h2>



<ul class="wp-block-list">
<li>AI isn’t a magical black box.<br>It’s <strong>probabilities, rules, and data</strong> — supercharged by compute power.</li>



<li>And as someone who <strong>already understands data</strong>, you’re halfway there.</li>
</ul>



<h2 class="wp-block-heading"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">Coming up next…</mark></strong></h2>



<p class="wp-block-paragraph">We’ll explore the <a href="https://udayarumilli.com/fascinating-evolution-of-ai"><strong>evolution of AI</strong> </a>and how it became what it is today.</p>



<p class="wp-block-paragraph">Let’s keep building “AI The One — With Uday.”</p>



<p class="wp-block-paragraph">#Foundation #learn #ai #sql #dba #llm #dataengineer #dataanalyst #genai #agenticai #openai #llama</p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li><li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li><li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li><li><a href="https://udayarumilli.com/fascinating-evolution-of-ai/"     class="crp_link post-4691"><span class="crp_title">From Chessboards to Chatbots — The Fascinating&hellip;</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/">AI Isn’t Magic — It’s Just Math and Logic with Data</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/ai-isnt-magic-math-logic-data/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>“Will AI Replace You?”</title>
		<link>https://udayarumilli.com/will-ai-replace-you/</link>
					<comments>https://udayarumilli.com/will-ai-replace-you/#comments</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Fri, 19 Sep 2025 06:17:33 +0000</pubDate>
				<category><![CDATA[AI for Data People]]></category>
		<category><![CDATA[#AgenticAI]]></category>
		<category><![CDATA[#AI]]></category>
		<category><![CDATA[#AIForDataProfessionals]]></category>
		<category><![CDATA[#AIFreeCourse]]></category>
		<category><![CDATA[#CloudData]]></category>
		<category><![CDATA[#DataAnalyst]]></category>
		<category><![CDATA[#DataEngineer]]></category>
		<category><![CDATA[#DataScience]]></category>
		<category><![CDATA[#DBA]]></category>
		<category><![CDATA[#GenerativeAI]]></category>
		<category><![CDATA[#LearnAI]]></category>
		<category><![CDATA[#Llama]]></category>
		<category><![CDATA[#LLM]]></category>
		<category><![CDATA[#OpenAI]]></category>
		<category><![CDATA[#SQL]]></category>
		<guid isPermaLink="false">https://udayarumilli.com/?p=4677</guid>

					<description><![CDATA[<p>The Real Answer Behind the Fear — and How to Stay Ahead of the Curve You’ve likely come across this question in team discussions, forums, or even casual lunch breaks:“Will AI replace my job as a DBA? A SQL Developer? &#8230; <a href="https://udayarumilli.com/will-ai-replace-you/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
<li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li>
<li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li>
<li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/will-ai-replace-you/">“Will AI Replace You?”</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-center has-medium-font-size wp-block-paragraph" style="font-style:normal;font-weight:800"><em><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">The Real Answer Behind the Fear — and How to Stay Ahead of the Curve</mark></strong></em></p>



<figure class="wp-block-image size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/003_Title_Will_AI_Replace_You.png"><img loading="lazy" decoding="async" width="600" height="180" src="https://udayarumilli.com/wp-content/uploads/2025/09/003_Title_Will_AI_Replace_You-600x180.png" alt="A human professional and a humanoid robot facing each other with a question mark between them, symbolizing the debate on whether AI will replace humans." class="wp-image-4678" style="width:786px;height:auto" title="Will AI Replace You? The future of humans and machines in the workplace." srcset="https://udayarumilli.com/wp-content/uploads/2025/09/003_Title_Will_AI_Replace_You-600x180.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/003_Title_Will_AI_Replace_You-300x90.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/003_Title_Will_AI_Replace_You-768x230.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/003_Title_Will_AI_Replace_You-1536x461.png 1536w, https://udayarumilli.com/wp-content/uploads/2025/09/003_Title_Will_AI_Replace_You.png 2000w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>



<p class="wp-block-paragraph">You’ve likely come across this question in team discussions, forums, or even casual lunch breaks:<br>“<strong>Will AI replace my job as a DBA? A SQL Developer? A Data Engineer? Or a Data Analyst?</strong>”</p>



<p class="wp-block-paragraph">It’s a valid concern. The common response is, “<strong>AI won’t replace you — but someone who knows how to use AI might.</strong>” And that’s absolutely true.”</p>



<p class="wp-block-paragraph">And in this blog, we’ll break that down clearly — role by role — and show how AI can actually make you <strong>more valuable</strong>, not obsolete.</p>



<h2 class="wp-block-heading"><strong>The Truth: AI Isn’t Here to Replace — It’s Here to Amplify</strong></h2>


<div class="wp-block-image">
<figure class="alignright size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/003_Image.png"><img loading="lazy" decoding="async" width="600" height="400" src="https://udayarumilli.com/wp-content/uploads/2025/09/003_Image-600x400.png" alt="A human professional and a humanoid robot facing each other with a question mark between them, symbolizing the debate on whether AI will replace humans." class="wp-image-4679" style="width:356px;height:auto" title="Will AI Replace You? The future of humans and machines in the workplace." srcset="https://udayarumilli.com/wp-content/uploads/2025/09/003_Image-600x400.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/003_Image-300x200.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/003_Image.png 768w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<p class="wp-block-paragraph"><strong>Let’s clear something up early:</strong></p>



<ul class="wp-block-list">
<li>AI doesn’t <em>replace</em> people. It replaces <strong>tasks</strong> — especially those that are <strong>repetitive, time-consuming, or rule-based.</strong></li>
</ul>



<p class="wp-block-paragraph"><strong>So, what does that mean for your day-to-day work?</strong></p>



<ul class="wp-block-list">
<li>Let’s look at real-world examples.</li>
</ul>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/6d73490b-cc83-4f4a-8e7b-39e6c291d19c" alt="Checkmark with solid fill">&nbsp;<strong>What AI <em>Can</em> Do (And Does Well)</strong></p>



<ul class="wp-block-list">
<li>Write boilerplate (standard) SQL &amp; Python scripts</li>



<li>Generate documentation for stored procedures or pipelines</li>



<li>Summarize log files or execution plans</li>



<li>Create sample and synthetic data</li>



<li>Convert natural language to SQL or Python</li>



<li>Identify anomalies in your ETL pipelines</li>



<li>Assist in optimizing indexes or partition strategies</li>



<li>Create test cases or unit test coverage for data workflows</li>
</ul>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/37d7caee-ee27-4a01-bd34-3bac494afb7c" alt="Close with solid fill">&nbsp;<strong>What AI <em>Can’t</em> (And Shouldn’t) Replace</strong></p>



<ul class="wp-block-list">
<li>Understanding <strong>business context</strong> behind queries</li>



<li>Designing <strong>data models</strong> and <strong>system architecture</strong></li>



<li>Making <strong>judgment calls</strong> on cost, security, compliance, performance</li>



<li>Managing <strong>incident response</strong> or <strong>disaster recovery</strong></li>



<li>Collaborating across teams and <strong>translating data into decisions</strong></li>



<li>Thinking strategically about <strong>data quality</strong>, <strong>governance</strong>, and <strong>trust</strong></li>
</ul>



<h2 class="wp-block-heading"><strong>Let’s Go Role by Role</strong></h2>



<h3 class="wp-block-heading"><strong>SQL DBA: Will AI Replace You?</strong></h3>



<p class="wp-block-paragraph"><strong>Not at all. But it will change what you spend time on.</strong></p>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/2460ae4c-046f-4738-8133-3b654ce7a656" alt="Checkmark with solid fill">&nbsp;<strong>What AI can help with:</strong></p>



<ul class="wp-block-list">
<li>Auto-tuning indexes</li>



<li>Identifying slow queries and suggesting plans</li>



<li>Reviewing SQL Agent job logs with summarization</li>



<li>Analyzing access patterns and potential anomalies</li>



<li>Advanced monitoring and alert management</li>
</ul>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/c830cce5-ba2d-4020-8284-cc0c5b5ebdf3" alt="Close with solid fill">&nbsp;<strong>What still needs YOU:</strong></p>



<ul class="wp-block-list">
<li>Leveraging AI services and tools effectively in your job.</li>



<li>Disaster recovery and high availability planning</li>



<li>Security, encryption, user access controls</li>



<li>Capacity planning, backup strategies, and compliance</li>



<li>Understanding the <strong><em>why</em></strong> behind performance issues, not just the <strong><em>what</em></strong></li>
</ul>



<p class="wp-block-paragraph"><strong><em>Think of AI as your junior assistant — scanning logs, suggesting changes, running tests — but you make the final call.</em></strong><strong></strong></p>



<h3 class="wp-block-heading"><strong>SQL Developer: Will AI Replace You?</strong></h3>



<p class="wp-block-paragraph"><strong>No — but it will redefine your workflow.</strong></p>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/ea5662f7-590a-4653-bd0e-724e2ed8c5e5" alt="Checkmark with solid fill">&nbsp;<strong>What AI can help with:</strong></p>



<ul class="wp-block-list">
<li>Writing basic to advanced queries from natural language</li>



<li>Refactoring legacy SQL code</li>



<li>Writing code for database objects like stored procedures, functions, or views etc.</li>



<li>Generating documentation or comments</li>



<li>Creating mock data for testing</li>
</ul>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/8331b748-8b0d-4f50-a03c-057caa0d8b5e" alt="Close with solid fill"><strong>&nbsp;What still needs YOU:</strong></p>



<ul class="wp-block-list">
<li>Leveraging AI services and tools effectively in your job.</li>



<li>Writing <strong>business-specific logic</strong></li>



<li>Designing efficient joins and nested logic</li>



<li>Understanding <strong>schema relationships</strong></li>



<li>Handling <strong>exceptions, edge cases, and data anomalies</strong></li>



<li>Collaborating with stakeholders on requirements</li>
</ul>



<p class="wp-block-paragraph"><strong><em>AI can help you write faster, but only you know which query actually meets the business need.</em></strong><strong></strong></p>



<h3 class="wp-block-heading"><strong>Data Engineer: Will AI Replace You?</strong></h3>



<p class="wp-block-paragraph"><strong>Not at all. But it’ll give you superpowers.</strong></p>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/cce73ecc-37f6-44d3-adee-6dc34cab5324" alt="Checkmark with solid fill">&nbsp;<strong>What AI can help with:</strong></p>



<ul class="wp-block-list">
<li>Automating data cleaning or feature engineering</li>



<li>Generating PySpark or Pandas code</li>



<li>Writing Airflow DAGs or pipeline YAMLs</li>



<li>Parsing log files and summarizing ETL errors</li>



<li>Validating schema drift and pipeline failures</li>
</ul>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/e8aa0278-f449-472a-b465-5cd8a912e302" alt="Close with solid fill">&nbsp;<strong>What still needs YOU:</strong></p>



<ul class="wp-block-list">
<li>Building scalable ingestion pipelines</li>



<li>Managing orchestration across cloud and hybrid environments</li>



<li>Handling edge cases in semi-structured or streaming data</li>



<li>Ensuring <strong>data quality</strong>, <strong>lineage</strong>, and <strong>security</strong></li>



<li>Designing for cost-efficiency, latency, and reliability</li>
</ul>



<p class="wp-block-paragraph"><strong><em>AI will help you build and test faster — but you’re still the architect.</em></strong><strong></strong></p>



<h3 class="wp-block-heading"><strong>Data Analyst: Will AI Replace You?</strong></h3>



<p class="wp-block-paragraph"><strong>No — but it will supercharge your insights and speed.</strong></p>



<p class="wp-block-paragraph"><strong></strong><strong>&nbsp;What AI <em>can help</em> with:</strong></p>



<ul class="wp-block-list">
<li>Interpreting dashboards and summarizing trends</li>



<li>Automating report generation (Power BI, Excel, Tableau)</li>



<li>Translating natural language questions into SQL or DAX</li>



<li>Cleaning and preparing data (suggesting joins, imputing missing values)</li>



<li>Identifying anomalies or outliers in datasets</li>



<li>Generating narrative insights from charts</li>



<li>Forecasting based on past trends (with Gen AI suggestions)</li>
</ul>



<p class="wp-block-paragraph"><img loading="lazy" decoding="async" width="15" height="15" src="blob:https://udayarumilli.com/c9221a89-a28c-41db-8695-514878edb2e8" alt="Close with solid fill">&nbsp;<strong>What still needs <em>YOU</em>:</strong></p>



<ul class="wp-block-list">
<li>Asking the <em>right</em> business questions</li>



<li>Defining KPIs and metrics that align with strategy</li>



<li>Validating and interpreting AI-generated insights</li>



<li>Ensuring data is accurate, relevant, and actionable</li>



<li>Presenting insights to stakeholders with proper context</li>



<li>Judging whether trends are meaningful or just noise</li>



<li>Bridging the gap between raw data and real-world decisions</li>
</ul>



<p class="wp-block-paragraph"><strong>AI can answer questions — but <em>only you</em> know which questions matter to the business.</strong></p>



<h2 class="wp-block-heading"><strong>The Real Danger Is <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><em>Ignoring</em> AI</mark></strong></h2>



<p class="wp-block-paragraph">It&#8217;s not about <em>losing</em> your job to AI — it&#8217;s about <strong>falling behind</strong> if you don’t learn how to use it.</p>



<p class="wp-block-paragraph">People who learn how to use AI tools:</p>



<ul class="wp-block-list">
<li>Write SQL, Python 5x faster</li>



<li>Debug and deploy pipelines faster</li>



<li>Have more time for strategic work</li>



<li>Deliver more business value in less time</li>
</ul>



<h3 class="wp-block-heading"><strong>AI Can Write Great Code — <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">But Can You Trust It Blindly?</mark></strong></h3>



<p class="wp-block-paragraph">Let’s take a step back and compare this to something we all understand:</p>



<ul class="wp-block-list">
<li>Imagine you have a health issue.</li>



<li>You feed your symptoms into an <strong>AI diagnosis tool</strong>, and it suggests a <strong>medicine</strong>.<br>Now, would you use that pill immediately — without consulting a real doctor?</li>



<li><strong>Of course not.</strong></li>



<li>Because even though the AI <em>might</em> be right, <strong>the risk is too high if it’s wrong</strong>.</li>
</ul>



<h3 class="wp-block-heading"><strong>Now let’s apply that to our world of data:</strong></h3>



<p class="wp-block-paragraph">You receive a new business requirement. You ask <strong>Gen AI</strong> (like ChatGPT, Copilot, Grok, Gemini, or Claude) to write the SQL or Python code for it. It gives you a well-structured, confident-looking script.</p>



<p class="wp-block-paragraph">Now ask yourself:</p>



<ul class="wp-block-list">
<li><strong>Do you commit it directly to source control?</strong></li>



<li><strong>Do you trigger a deployment pipeline and push it to UAT or Production as-is?</strong></li>
</ul>



<p class="wp-block-paragraph"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color"><strong>No. And you shouldn&#8217;t.</strong></mark></p>



<p class="wp-block-paragraph"><strong>Because AI doesn’t:</strong></p>



<ul class="wp-block-list">
<li>Know your <strong>business logic</strong></li>



<li>Understand your <strong>data anomalies</strong></li>



<li>Enforce your <strong>compliance constraints</strong></li>



<li>Handle <strong>edge cases</strong>, <strong>null scenarios</strong>, or <strong>data corruption</strong></li>



<li>Consider your <strong>performance SLAs</strong>, <strong>index strategies</strong>, or <strong>audit triggers</strong></li>
</ul>



<p class="wp-block-paragraph"><strong>Note:</strong></p>



<ul class="wp-block-list">
<li>AI can be a <strong>brilliant code assistant</strong>, but it’s not a <strong>production-level decision-maker</strong>.</li>



<li>Just like the AI doctor can assist diagnosis, but the real doctor makes the call.<br><strong>you</strong> are still the <strong>owner of the logic, quality, and consequences</strong> of the code.</li>



<li>Use <strong>AI to write</strong>, but <strong>use your brain</strong> to validate, test, and decide.</li>
</ul>



<p class="wp-block-paragraph">This is where your experience and expertise as a SQL Developer, DBA, Data Engineer, or Data Analyst still reign supreme. The best professionals will learn how to <strong>work with AI, not trust it blindly.</strong></p>



<h2 class="wp-block-heading"><strong>Why Your Role is Future-Proof</strong></h2>



<p class="wp-block-paragraph">AI excels at scale and speed but lacks the human touch—context, judgment, and innovation. You’re the bridge between raw data and business value, adapting AI tools to solve unique challenges. Moreover, companies need professionals to oversee AI systems, interpret results, and ensure ethical use—roles that demand your skills. The U.S. Bureau of Labor Statistics projects a 15% growth in data engineering jobs by 2032, with AI proficiency as a key driver.</p>



<h2 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-green-cyan-color">Adopt to the Change</mark></h2>



<p class="wp-block-paragraph">Instead of fearing replacement, see AI as your career co-pilot.</p>



<ul class="wp-block-list">
<li>Start small — experiment with tools like <strong>AI2SQL</strong>, <strong>Cursor AI</strong>, <strong>Claude Desktop</strong>, <strong>GPT Codex</strong>, <strong>GitHub Copilot</strong>, <strong>Azure SQL Copilot</strong>, or <strong>Amazon CodeWhisperer</strong> to generate or refactor SQL queries or Python code.</li>



<li>Use <strong>GaussMaster</strong> or <strong>Redgate SQL Monitor</strong> for intelligent database monitoring.</li>



<li>Explore Windsurf, DataStax Astra Assist, or Microsoft Fabric Copilot to prototype data pipelines and transformations.</li>



<li>For Data Analysts, try <strong>ThoughtSpot Sage</strong>, <strong>Power BI Copilot</strong>, or <strong>Qlik AutoML</strong> to analyze data with conversational AI. Dive into <strong>dbt Cloud&#8217;s AI Assist</strong> for transforming data in the modern stack, or use <strong>Hex Magic Cells</strong> for guided data storytelling.</li>
</ul>



<h3 class="wp-block-heading"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">The Bottom Line</mark></strong></h3>



<p class="wp-block-paragraph">AI won’t replace you &#8211; it will redefine your impact.</p>



<p class="wp-block-paragraph">Let’s shift the mindset. Instead of thinking: “<strong>Will AI replace me?</strong>”, start asking “<strong>What can AI take off my plate, so I can focus on higher-value work?</strong>”</p>



<p class="wp-block-paragraph"><em>“The future isn’t about replacement; it’s about augmentation. Are you ready to steer this journey?”</em></p>



<h3 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color"><strong>Coming up next…</strong></mark></h3>



<p class="wp-block-paragraph"><strong>“</strong><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data">AI Isn’t Magic — It’s Just Math and Logic with Data</a><strong>”</strong><br><br></p>



<p class="wp-block-paragraph">#learn #ai #sql #dba #llm #dataengineer #dataanalyst #genai #agenticai#openai #llama</p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li><li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li><li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li><li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li><li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/will-ai-replace-you/">“Will AI Replace You?”</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/will-ai-replace-you/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Why Every Data Professional Should Care About AI Now?</title>
		<link>https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/</link>
					<comments>https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/#comments</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Wed, 17 Sep 2025 11:04:38 +0000</pubDate>
				<category><![CDATA[AI for Data People]]></category>
		<category><![CDATA[#AgenticAI]]></category>
		<category><![CDATA[#AI]]></category>
		<category><![CDATA[#AIForDataProfessionals]]></category>
		<category><![CDATA[#AIFreeCourse]]></category>
		<category><![CDATA[#CloudData]]></category>
		<category><![CDATA[#DataAnalyst]]></category>
		<category><![CDATA[#DataEngineer]]></category>
		<category><![CDATA[#DataScience]]></category>
		<category><![CDATA[#DBA]]></category>
		<category><![CDATA[#genai]]></category>
		<category><![CDATA[#GenerativeAI]]></category>
		<category><![CDATA[#learn]]></category>
		<category><![CDATA[#Llama]]></category>
		<category><![CDATA[#LLM]]></category>
		<category><![CDATA[#OpenAI]]></category>
		<category><![CDATA[#SQL]]></category>
		<guid isPermaLink="false">https://udayarumilli.com/?p=4669</guid>

					<description><![CDATA[<p>From SQL to AI — Your Journey Starts Here You’ve written thousands of lines of SQL, Python. You’ve managed terabytes of data, thousands of databases, optimized queries, built pipelines, and protected mission-critical databases. But now, there’s a new buzz in &#8230; <a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li>
<li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li>
<li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li>
<li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li>
<li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/">Why Every Data Professional Should Care About AI Now?</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Title.png"><img loading="lazy" decoding="async" width="600" height="180" src="https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Title-600x180.png" alt="Data professional engaging with artificial intelligence and data visualizations, highlighting the importance of AI in modern data work." class="wp-image-4671" style="width:812px;height:auto" title="Why Every Data Professional Should Care About AI Now" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Title-600x180.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Title-300x90.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Title-768x230.png 768w, https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Title-1536x461.png 1536w, https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Title.png 2000w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>From SQL to AI — Your Journey Starts Here</strong></h2>



<p class="wp-block-paragraph"><em>You’ve written thousands of lines of SQL, Python. You’ve managed terabytes of data, thousands of databases, optimized queries, built pipelines, and protected mission-critical databases.</em></p>



<p class="wp-block-paragraph">But now, there’s a new buzz in the air — <strong>AI.</strong></p>



<p class="wp-block-paragraph">It’s not just for data scientists or machine learning PhDs anymore.</p>



<p class="wp-block-paragraph"><strong>AI is entering your world</strong> — and it’s not knocking gently.</p>



<p class="wp-block-paragraph">If you&#8217;re a <strong>SQL Developer, DBA, Data Engineer</strong>, <strong>BI Developer</strong>, <strong>or</strong> <strong>Data Analyst</strong>, this blog series is your invitation (and roadmap) to enter the world of AI — simply, clearly, and practically.</p>



<p class="wp-block-paragraph">Let’s begin by answering one important question:</p>



<h3 class="wp-block-heading">Why Should <em>You</em>, a Data Professional, Care About AI?</h3>



<ul class="wp-block-list">
<li>Because <strong>AI is no longer optional</strong> — it’s becoming part of the platforms, tools, and systems you already work with every day.</li>



<li>You don’t need to switch careers to become a Machine Learning Engineer.</li>



<li>But to <strong>stay relevant</strong>, <strong>evolve your role</strong>, and <strong>enhance your impact</strong>, you need to understand how AI fits into your world.</li>
</ul>



<h2 class="wp-block-heading"><strong>Here’s why:</strong></h2>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Img_1.png"><img loading="lazy" decoding="async" width="600" height="400" src="https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Img_1-600x400.png" alt="Data professional engaging with artificial intelligence and data visualizations, highlighting the importance of AI in modern data work." class="wp-image-4670" style="width:408px;height:auto" title="Why Every Data Professional Should Care About AI Now" srcset="https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Img_1-600x400.png 600w, https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Img_1-300x200.png 300w, https://udayarumilli.com/wp-content/uploads/2025/09/Blog_2_Img_1.png 768w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a></figure>
</div>


<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">1. AI Is Already Embedded in the Tools You Use</mark></strong></p>



<p class="wp-block-paragraph">AI is no longer isolated in research labs — it’s baked into your IDEs, SQL engines, notebooks, and reporting tools.</p>



<ul class="wp-block-list">
<li><strong>Copilot in SSMS, Azure Data Studio, Power BI, VS Code, GitHub:</strong> Helps you write code, generate documentation, fix performance issues — just by typing a prompt.</li>



<li><strong>SQL Server 2022 &amp; Azure SQL:</strong> AI-driven query optimization, memory grant feedback, and intelligent plan corrections.</li>



<li><strong>Power BI &amp; Microsoft Fabric:</strong> Natural language to report, Smart Narratives, and Copilot-driven dashboards.</li>



<li><strong>Microsoft Purview</strong>: Uses AI for data classification, lineage inference, and policy recommendation.</li>



<li><strong>Conversational and Code Assistants</strong>: ChatGPT (Open AI), Llama (Meta), Claude (Anthropic), Gemini (Google), Grok (xAI), Microsoft Copilot, GitHub Copilot, Perplexity AI, Cursor AI, Confluence AI (Atlassian) etc.&nbsp;</li>
</ul>



<p class="wp-block-paragraph"><strong>2. AI Can Automate the Repetitive Stuff You Hate</strong></p>



<p class="wp-block-paragraph">Imagine:</p>



<ul class="wp-block-list">
<li>Writing complex joins with a prompt like “Get all active policies with claims over $10,000 in the last year.”</li>



<li>Summarizing a 200-line query result in a few bullet points</li>



<li>Detecting anomalies in ETL logs before they break production</li>
</ul>



<p class="wp-block-paragraph">AI tools like <strong>AI2SQL</strong>, <strong>Cursor AI</strong>, and <strong>GPT, Claud</strong> are making this possible today — not in some far-off future.</p>



<p class="wp-block-paragraph"><strong>3. AI Is Becoming Mandatory — Even in Job Interviews</strong></p>



<p class="wp-block-paragraph">&nbsp;<em>“<strong>Tell me how you’ve used AI in your recent projects?</strong>”</em> This is no longer a data scientist–only question.</p>



<p class="wp-block-paragraph">In today’s interviews:</p>



<ul class="wp-block-list">
<li>AI is expected as a foundational knowledge area — like SQL, Python, Git, or Cloud.</li>



<li>Employers want data professionals who can enhance workflows, automate tasks, and understand LLM-driven features in tools.</li>



<li>Even non-technical roles are being asked about Copilot usage, prompt engineering, LLM Integrations, AI-assisted automation, or working with AI Agents.</li>
</ul>



<p class="wp-block-paragraph">Whether you&#8217;re applying for a SQL Developer, Data Engineer, BI Developer, Data analyst, or SQL DBA role, AI skills can set you apart — or leave you behind.</p>



<p class="wp-block-paragraph"><strong>4. AI Bridges the Gap Between Data and Business Value</strong></p>



<p class="wp-block-paragraph">As a data pro, you’re already great at working <em>with</em> data. But <strong>AI helps you translate that data into business insights and decisions</strong>.</p>



<ul class="wp-block-list">
<li>Build agents that answer business questions directly from your database</li>



<li>Use AI to detect patterns and exceptions faster than any dashboard</li>



<li>Convert raw reports into executive summaries</li>



<li>Enable non-technical users to ask questions in natural language and get smart answers</li>
</ul>



<p class="wp-block-paragraph">In short: <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">AI helps you move from “Data Delivery” to “Business Impact.”</mark></strong></p>



<p class="wp-block-paragraph"><strong>5. Your Role Is Evolving — Accept and Adopt to the Change</strong></p>



<ul class="wp-block-list">
<li>You’re not just a code writer or database gatekeeper anymore.</li>



<li>You’re a <strong>data strategist</strong>, an <strong>automation enabler</strong>, a <strong>knowledge engineer</strong>. AI makes your role <em>more impactful</em>, not less important.</li>



<li>In fact, AI needs people like you — People who know how data works, how to structure it, and how to ask the right questions.</li>
</ul>



<h2 class="wp-block-heading"><strong>What This Blog Series Will Do for You</strong></h2>



<p class="wp-block-paragraph">This series — <strong>“AI The One” for Data Professionals</strong> — is built just for you.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<ul class="wp-block-list">
<li>No complicated math.</li>



<li>No confusing ML theory.</li>



<li>Just a <strong>clear, step-by-step journey</strong> from your current data skills to applied AI skill.</li>
</ul>



<ul class="wp-block-list">
<li><strong>You’ll learn:</strong></li>



<li>The basics of AI and how it applies to your daily work</li>



<li>Foundational knowledge of LLMs and AI systems</li>



<li>How to write Python like you write SQL</li>



<li>How to train simple models and build agentic systems</li>



<li>How to use LLMs to automate data workflows and reporting</li>



<li>How to think like an AI practitioner — <em>without losing your core skills</em></li>
</ul>
</div></div>



<p class="wp-block-paragraph"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">Coming up next…</mark></strong></p>



<p class="wp-block-paragraph">The question on everyone’s mind — <strong><em><a href="https://udayarumilli.com/will-ai-replace-you">Will AI replace you?</a></em></strong></p>



<p class="wp-block-paragraph">#learn, #ai, #sql, #dba, #llm, #dataengineer, #dataanalyst, #genai, #agenticai, #openai, #llama, #AgenticAI, #AI, #AIForDataProfessionals, #AIFreeCourse, #CloudData, #DataAnalyst, #DataEngineer, #DataScience, #DBA, #GenerativeAI, #Llama, #LLM, #OpenAI, #SQL</p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li><li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li><li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li><li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li><li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/">Why Every Data Professional Should Care About AI Now?</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Introducing: “AI The One” for Data Professionals</title>
		<link>https://udayarumilli.com/ai-for-data-professionals/</link>
					<comments>https://udayarumilli.com/ai-for-data-professionals/#respond</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Wed, 27 Aug 2025 08:02:15 +0000</pubDate>
				<category><![CDATA[AI for Data People]]></category>
		<category><![CDATA[#AgenticAI]]></category>
		<category><![CDATA[#AI]]></category>
		<category><![CDATA[#AIForDataProfessionals]]></category>
		<category><![CDATA[#AIFreeCourse]]></category>
		<category><![CDATA[#CloudData]]></category>
		<category><![CDATA[#DataAnalyst]]></category>
		<category><![CDATA[#DataEngineer]]></category>
		<category><![CDATA[#DataScience]]></category>
		<category><![CDATA[#DBA]]></category>
		<category><![CDATA[#GenerativeAI]]></category>
		<category><![CDATA[#Llama]]></category>
		<category><![CDATA[#LLM]]></category>
		<category><![CDATA[#OpenAI]]></category>
		<category><![CDATA[#SQL]]></category>
		<guid isPermaLink="false">https://udayarumilli.com/?p=4660</guid>

					<description><![CDATA[<p>A Practical Path to AI for SQL Developers, DBAs, Data Engineers &#38; Data Analysts You’ve mastered databases. You speak fluent SQL. You can deal with Bigdata and build data pipelines in your sleep. But what if the next edge isn’t &#8230; <a href="https://udayarumilli.com/ai-for-data-professionals/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
<li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li>
<li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li>
<li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li>
<li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/ai-for-data-professionals/">Introducing: “AI The One” for Data Professionals</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em><strong>A Practical Path to AI for SQL Developers, DBAs, Data Engineers &amp; Data Analysts</strong></em></p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized" id="ai-for-data-professionals"><a href="https://udayarumilli.com/wp-content/uploads/2025/08/3.png"><img loading="lazy" decoding="async" width="2000" height="600" src="https://udayarumilli.com/wp-content/uploads/2025/08/3.png" alt="AI for data professionals – practical guide for SQL developers, DBAs, data engineers, and data analysts" class="wp-image-4663" style="width:812px;height:auto" title="AI The One for Data Professionals – Practical Path to AI" srcset="https://udayarumilli.com/wp-content/uploads/2025/08/3.png 2000w, https://udayarumilli.com/wp-content/uploads/2025/08/3-300x90.png 300w, https://udayarumilli.com/wp-content/uploads/2025/08/3-600x180.png 600w, https://udayarumilli.com/wp-content/uploads/2025/08/3-768x230.png 768w, https://udayarumilli.com/wp-content/uploads/2025/08/3-1536x461.png 1536w" sizes="auto, (max-width: 2000px) 100vw, 2000px" /></a></figure>
</div>


<p class="wp-block-paragraph"><em>You’ve mastered databases. You speak fluent SQL. You can deal with Bigdata and build data pipelines in your sleep. But what if the next edge isn’t about writing better queries — it&#8217;s about making your data… intelligent?</em></p>



<h2 class="wp-block-heading"><strong>Why This Blog Series? Why Now?</strong></h2>



<p class="wp-block-paragraph">The world of data is changing — fast.</p>



<p class="wp-block-paragraph">AI is no longer just a buzzword. It&#8217;s baked into the tools you&#8217;re already using:</p>



<ul class="wp-block-list">
<li>Azure AI &amp; Copilot Integrations (SQL Server Management Studio, VS Code, Power BI, Microsoft Fabric Notebooks, etc.)</li>



<li>Intelligent Query Recommendations</li>



<li>Automated data preparation pipelines</li>



<li>AI based Data Governance</li>



<li>Powerful AI tools are transforming the way SQL Developers, DBAs, Python Developers, and Data Engineers write code — helping them code faster, smarter, and with fewer errors. These include intelligent code assistants like GitHub Copilot, Copilot with Azure SQL, OpenAI Codex, Anthropic Claude Code, Cursor AI, Kite, and AI2SQL etc.</li>
</ul>



<p class="wp-block-paragraph">Soon, understanding AI won&#8217;t be optional — it will be expected.</p>



<h2 class="wp-block-heading"><strong>But here&#8217;s the problem:</strong></h2>



<p class="wp-block-paragraph">Most AI courses are built for data scientists, ML engineers, or Python-first developers.<br>They’re full of math, jargon, and abstract theory.</p>



<h3 class="wp-block-heading"><strong>What about us?</strong></h3>



<p class="wp-block-paragraph">The <strong>SQL Developers</strong>, <strong>DBAs</strong>, <strong>Data Engineers, </strong>and<strong> Data analysts</strong> who already understand data better than most?</p>



<p class="wp-block-paragraph">That’s exactly why I created <strong>“AI The One”</strong> — <strong>an AI learning path made for people like us.</strong></p>



<h2 class="wp-block-heading"><strong>What Is “AI The One”?</strong></h2>



<p class="wp-block-paragraph">A practical, blog-style course that teaches AI and Agentic AI from your perspective as a data professional.</p>



<ul class="wp-block-list">
<li>No fluff.</li>



<li>No heavy math.</li>



<li>Just clean, structured, step-by-step learning — grounded in the world you already know: Data, SQL, data modelling, indexes, pipelines, storage, and logic.</li>
</ul>



<h2 class="wp-block-heading"><strong>What You’ll Learn — Without Getting Overwhelmed</strong></h2>



<ul class="wp-block-list">
<li>The <strong>real-world meaning of AI, ML, LLMs, Gen AI, and Agentic AI</strong></li>



<li>How AI systems relate to what you already know in SQL &amp; Data Management</li>



<li>Simple <strong>hands-on examples</strong> with your data</li>



<li>Python for SQL minds — <strong>just what’s needed, nothing more</strong></li>



<li>Concepts like <strong>vectors, embeddings, and prompt engineering</strong></li>



<li>How tools like <strong>LangChain, LangGraph, AutoGen</strong>, and <strong>Copilots</strong> will reshape your daily work</li>



<li>And how you can go from <em>data expert → AI-empowered professional</em></li>
</ul>



<h2 class="wp-block-heading"><strong>Who Should Follow This?</strong></h2>



<ul class="wp-block-list">
<li><strong>SQL Developers</strong> who want to future-proof their skills</li>



<li><strong>SQL DBAs</strong> who want to understand what AI is doing to their data landscape</li>



<li><strong>Data Engineers</strong> who want to extend their pipelines into intelligent automation</li>



<li><strong>Data Analysts</strong> who want to elevate their insights using AI-powered data exploration</li>



<li><strong>Anyone</strong> from the <strong>data world</strong> who has <em>zero AI experience but big curiosity</em></li>
</ul>



<h2 class="wp-block-heading"><strong>Why You’ll Love It</strong></h2>



<ul class="wp-block-list">
<li>It speaks your language (SQL, tables, indexes, functions, pipelines, execution plans)</li>



<li>Every concept connects to your existing knowledge</li>



<li>No need to be a Python ninja or statistics wizard</li>



<li>You’ll learn not just how, but why and where AI fits in</li>



<li>It&#8217;s fun, practical, and focused on real impact in your daily work</li>
</ul>



<h3 class="wp-block-heading"><strong>Coming Up Next&#8230;</strong></h3>



<p class="wp-block-paragraph">Stay tuned for the <strong>first blog in the series</strong>, where we’ll explore:</p>



<p class="wp-block-paragraph"><strong>“<a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now">Why Every DBA, SQL Developer and Data Engineer Should Care About AI Now</a>”</strong></p>



<p class="wp-block-paragraph">#learn #ai #sql #dba #llm #dataengineer #dataanalyst #genai #agenticai#openai #llama</p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li><li><a href="https://udayarumilli.com/ai-the-one-for-data-professionals-course/"     class="crp_link page-4697"><span class="crp_title">AI Path</span></a></li><li><a href="https://udayarumilli.com/will-ai-replace-you/"     class="crp_link post-4677"><span class="crp_title">“Will AI Replace You?”</span></a></li><li><a href="https://udayarumilli.com/ai-isnt-magic-math-logic-data/"     class="crp_link post-4685"><span class="crp_title">AI Isn’t Magic — It’s Just Math and Logic with Data</span></a></li><li><a href="https://udayarumilli.com/ai-agent-talk-to-database/"     class="crp_link post-4710"><span class="crp_title">Talk to Your Database with an AI Agent – No Cloud,&hellip;</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/ai-for-data-professionals/">Introducing: “AI The One” for Data Professionals</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/ai-for-data-professionals/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A discussion between a CxO and a senior Data Architect Part 5</title>
		<link>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/</link>
					<comments>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/#respond</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Mon, 03 Oct 2022 12:19:35 +0000</pubDate>
				<category><![CDATA[Interview Q&A]]></category>
		<category><![CDATA[architect]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure sql database]]></category>
		<category><![CDATA[Blob]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data migration]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[rds]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[sql]]></category>
		<guid isPermaLink="false">http://udayarumilli.com/?p=4555</guid>

					<description><![CDATA[<p>. Links to other parts A discussion between a CxO and a senior Data Architect Part 1 A discussion between a CxO and a senior Data Architect Part 2 A discussion between a CxO and a senior Data Architect Part &#8230; <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"     class="crp_link post-4538"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/"     class="crp_link post-4551"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"     class="crp_link post-4547"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/"     class="crp_link post-4553"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/">A discussion between a CxO and a senior Data Architect Part 5</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/wp-content/uploads/2022/10/5_Cloud_Migration.jpg"><img loading="lazy" decoding="async" class="aligncenter  wp-image-4565" src="https://udayarumilli.com/wp-content/uploads/2022/10/5_Cloud_Migration.jpg" alt="A discussion between a CxO and a senior Data Architect Part 5" width="475" height="317" srcset="https://udayarumilli.com/wp-content/uploads/2022/10/5_Cloud_Migration.jpg 1884w, https://udayarumilli.com/wp-content/uploads/2022/10/5_Cloud_Migration-300x200.jpg 300w, https://udayarumilli.com/wp-content/uploads/2022/10/5_Cloud_Migration-600x400.jpg 600w, https://udayarumilli.com/wp-content/uploads/2022/10/5_Cloud_Migration-768x512.jpg 768w, https://udayarumilli.com/wp-content/uploads/2022/10/5_Cloud_Migration-1536x1025.jpg 1536w" sizes="auto, (max-width: 475px) 100vw, 475px" /></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Links to other parts</h2>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"><strong>A discussion between a CxO and a senior Data Architect Part 1</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"><strong>A discussion between a CxO and a senior Data Architect Part 2</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/"><strong>A discussion between a CxO and a senior Data Architect Part 3</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/"><strong>A discussion between a CxO and a senior Data Architect Part 4</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">Background: We have been going through a discussion that took place between senior leadership and a data architect. Here the final part of the series continues.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.3; color: #2f5496; font-size: 13pt;">Discussion Follows:</h2>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> We are currently holding stakeholder financial portfolios, customer personal identities, and other sensitive information which is classified as confidential and restrictive. When I say moving to the cloud, the first thing that comes to my mind was data security. We are going to store our corporate data in a public cloud data center like Azure or AWS. Since you are the data owner, you need to convince me about the cloud migration by explaining the public cloud security capabilities. Considering I have zero knowledge about cloud security, can you list out all possible security risks and how Cloud providers can handle them?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Security is the top concern for any business. <a href="https://azure.microsoft.com/en-in/explore/security/">Security</a> is a shared responsibility between the cloud provider (<a href="https://azure.microsoft.com/en-in/explore/security/">Azure</a>, AWS, Google Cloud, etc.) and the customer in a public cloud platform. Three fundamental objectives of data security are <strong>A)</strong> <strong>Confidentiality</strong> – Ensuring data privacy; <strong>B)</strong> <strong>Integrity</strong> – Protect data from accidental or intentional alteration or deletion without proper authorization; <strong>C)</strong> <strong>Availability / Data Resiliency</strong> – Despite the incidents data continues to be available at a required level of performance.</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Things to be protected:</strong> We need to protect everything that belongs to our enterprise infrastructure. However, those are categorized as: Cloud endpoint, Network, Data, Application, Resource, Keys &amp; Identities, Backups, Logs, and Cloud Datacenter – Physical device protection.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Possible security risks, reasons, solutions / preventive measures:</strong></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Account hijacking:</strong> Compromised login credentials can put our entire enterprise at risk.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reason:</strong> Weak credentials, unchanged passwords, keylogging (monitoring keystrokes), sharing credentials, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Prevention:</strong> Strong credentials, no sharing, define expiry time for tokens, enable password policy, enable multifactor authentication, do not write passwords in a clear text format, store keys, and certificates in Azure Vault, allow access only to the specific IP addresses, do not use public computers or Wi-fi to connect to the cloud portals, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Human error:</strong> It is an indirect threat to our cloud workloads. Ex: Unknowingly deleting a resource, downloading insecure applications, misconfigurations, etc.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reason:</strong> Low clarity of goals, untrained resources, unclear policies, not having proper data handover process in resource exit formalities, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Prevention:</strong> Train the resources, make your IT policies stronger (Ex: Password expiry, restricting risky apps, games, pirated software downloads, internet gateways), create a tight monitoring control, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Application Security failures:</strong> Web applications are increasingly targeted by malicious attacks that exploit commonly known vulnerabilities. Ex: SQL injection (code injection technique, malicious SQL code/statements are inserted into application fields and try to access information that was not intended to be displayed.), cross-site scripting (attacker sends malicious code/payload to the server using feedback form, comment section, etc.), etc.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reasons:</strong> Not sanitizing the inputs, not implementing timeout policy, displaying session IDs in URL, not using SSL/TLS, not encrypting passwords, failing to verify the incoming request source, exposing object references (table/view/function, database, file, storage, server, etc.), exposing error handling information to the end client, running unnecessary services, using outdated software, plugins, not having a standard audit policy, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Prevention:</strong> Properly sanitize the user inputs; configure session timeout based on requirement; do not expose unnecessary information (error info, object references, session ID, app metadata, etc.) to the end client; always make sure that underlying app components are updated with the latest patch; don’t do redirects at all. If it is necessary, have a static list of valid locations to redirect to; equip apps with SSL/TLS, multi-factor authentication, etc.; Establish a strong security clearance layer, which means every time new code is deployed, we need to review, scan and identify security loopholes; Enable Web Application Firewall which acts as a layer between application and internet and filters the traffic and protects our App from common attacks like cross-site forgery, cross-site-scripting (XSS), file inclusion, and SQL injection. It is recommended to use Cloud-based WAF to automatically update it to handle the latest threats. Schedule periodic audits on application code. We use vulnerability scanners like Grabber, which performs automatic black-box testing and identifies security vulnerabilities.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Data Breach &amp; Theft of Intellectual Property:</strong> Altering, deleting, uploading, or downloading our corporate data without authorization is called a data breach. If it happens for sensitive data (patents, trade secrets, PII-Personal Identifiable Information, financial info, etc.), we need to notify the victims and it can critically damage our organization’s image, sometimes leading to legal actions and heavy penalties. <strong>Ex:</strong> Cyber attacks, phishing attacks, malware Injections, etc.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reason:</strong> Data Breach and theft of IP are the implications of a failed security framework. Typically, any security weak point can cause this to happen. Ex: Leaked Credentials, human error, application loopholes, weak or not having IT policies, storing encryption keys along with the encrypted data, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Prevention:</strong> We must be able to control the entire workflow and data flow in our cloud workload. When a request is coming or going from/to our cloud network, we (our policies, standards, security posture) must drive the flow that includes “who can enter our network?”, “sanitizing the request based on its source and access pattern”, “network route it can take”, “resource that it can reach”, “data it can access”, “actions it can perform”, “results it can carry back to the request initiator (service, app, browser, etc.)” etc.</p>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span>To implement this, we need to have a strong authentication and authorization mechanism, giving the least possible permissions, enabling threat detection, restricting access to the specific IP addresses, applying data protection features (Classification, data masking, encryption, etc.), securing backup files, log files, frequent audits (data and application) and fixing the problems, take patching (IaaS) seriously, defining the clear data boundary standards and implementing the policies accordingly, storing encryption keys and certificates separately (using a key vault), etc.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Data Loss:</strong> Data loss is any process or event that results in data being corrupted, deleted, and/or made unreadable by a user and/or software or application.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reason:</strong> Hardware failure, power failure, datacenter failures, natural disasters, accidental deletion, not understanding and having proper agreements (data retention period), not having proper backup, no or weak disaster recovery plan, not performing the backup health, not having the tight protection control for backups, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Prevention:</strong> Understand the SLA (Service Level Agreement) on Data Retention Policy (How long data is required and how to dispose of), Recovery Point Objective (RPO – Maximum allowed data loss), Recovery Time Objective (RTO-maximum allowed downtime), and plan your backup and disaster recovery accordingly. Depending on data volume, and operations, perform DR drills to ensure that backups are healthy. Wherever possible keep the secondary copies in across regions, utilize long-term backup features, etc.</p>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Compliance issues:</strong> Regulatory compliance is to mitigate the risk and protect our (both enterprise and customer) data. Our cloud infrastructure must be compliant with the regulatory standards that would be defined by our enterprise business team. If we fail to follow the standard and data breach or loss happens, our organization will be in a difficult position from both legal and financial aspects (higher penalties up to $21 million). The most common regulations are GDPR (General Data Protection Regulation), and data privacy (CCPA), likewise we have various regulators for health insurance (HIPAA), payment card (PCI DSS), financial information (SOX), etc. Sample compliance rules: A user mustn’t have access to prod and no-prod servers, block public internet access to VM, restrict a number of administrators, enable password policy, store keys and certificates separately from data, missing security patches is a compliance issue, etc.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reason: </strong>Companies are not taking regulatory compliance seriously; Many companies are still in the awareness stage; Thinking about the investment in implementation efforts that requires collaboration, strategies, and skillset. Mostly programmers and IT developers are taking regulatory compliance as the least priority.</p>
<p style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Prevention:</strong> Its Big bosses’ (IT Decision maker, cloud/data architect) responsibility to insist on compliance with the regulatory standards; At on-premises we may need to use third-party tools to audit our infrastructure to validate the compliance with the regulatory, but in the cloud, we have in-built support. We can use <a href="https://azure.microsoft.com/en-in/explore/security/">Azure</a> policies to implement the required standards. “Regulatory compliance dashboard” in <a href="https://azure.microsoft.com/en-in/explore/security/">Azure</a> security center is one of my favorite features. It monitors, validates, and reports non-compliant issues. So that we can fix them to ensure that we are complying with the regulatory standard. It validates almost all aspects Ex: Network, Cloud endpoints, Data protection, Threat detection, vulnerability management, privileged access, backup &amp; recovery, etc.</p>
</div>
</div>
<p><span id="more-4555"></span></p>
<p><!--more--></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I am a little curious about security because I started my career as a security engineer. Though you gave Great insights, you answered more generically about the common security concerns and their workaround. Now I would appreciate it if you could describe any public cloud provider&#8217;s security features. Just top 5 to 6 features are fine.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Sure! Almost all top cloud providers are providing air-tight security controls. It’s all about how customers efficiently utilize those features. I’ll talk about Azure security features.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Application Security:</strong></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Web Application Vulnerability Scanning:</strong> <a href="https://azure.microsoft.com/en-in/explore/security/">Azure</a> is providing a built-in solution called Tinfoil Security. We can use this to scan our applications hosted on Azure App Service.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Application Security Group (ASG): </strong>It’s a part of NSG (Network Security Group) that helps to manage the security of Virtual Machines by grouping them according to the applications that run on them.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Web Application Firewall:</strong> <a href="https://azure.microsoft.com/en-in/explore/security/">Azure</a> Application Gateway comes with pre-configuration to protect our web applications from common attacks like SQL Injection, cross-site scripting, session hijacking, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Penetration\Pen testing:</strong> It simulates (like a cyberattack drill) a cyber-attack against our application to check for exploitable vulnerabilities. Using this we can simulate SQL Injection, LDAP Injection, Sensitive data exposure, cross-site scripting, endpoint port scanning, Denial of Service (DoS) attack, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure DDoS Protection:</strong> Protect our applications from Distributed Denial of Service (DDoS) attacks</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Storage Security:</strong></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure role-based access control (Azure RBAC – User level):</strong> Restrict access based on the “need to know” and always provide the least possible privilege to the users. We can control the access using Azure Role, Group &amp; Scope in RBAC.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Access Control Lists (ACLs – object level):</strong> ACLs give you the ability to apply a &#8220;finer grain&#8221; level of access to directories and files. RBAC lets you grant &#8220;coarse-grain&#8221; access to storage account data, such as read or write access to all of the data in a storage account, while ACLs let you grant &#8220;fine-grained&#8221; access, such as write access to a specific directory or file.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Shared Access Signature (SAS):</strong> instead of sharing account keys we can use SAS to limit the access only to the required objects for the specified period.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Encryption at Rest:</strong> Mandatory for data privacy. There are three options, Storage Service Encryption (Azure storage service automatically encrypts while writing to storage), Azure Disk Encryption (VM &#8211; OS and Data Disk encryption), and Client-side Encryption (encryption and decryption happen at the application layer. We use AES algorithm and stores encryption key in Azure Key Vault).</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Encryption at Transit:</strong> Mandatory for data privacy. Again, three options. Transport-level encryption (HTTPS/TLS) for Azure storage, Wire encryption (SMB 3.0 Encryption) for Azure File Shares, Client-side encryption.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Network Security:</strong></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure VNet:</strong> Azure Virtual Network is a logical isolation of our resources in the Azure network. We can fully control the IP address blocks, DNS settings, security policies, route tables, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Network Security Groups (NSG):</strong> is a stateful packet filtering firewall and filters traffic moving between subnets in Azure VNet and Azure VNet and the internet.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Firewall:</strong> A fully managed cloud-native service used to protect our Azure Virtual Networks</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Route Control and Forced Tunneling:</strong> User-Defined Routes allow us to customize inbound and outbound paths for traffic moving into and out of individual virtual machines or subnets. Forced tunneling is a mechanism we can use to ensure that our services are not allowed to initiate a connection to devices on the Internet. It forces outbound traffic to the Internet to go through on-premises security proxies and firewalls.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Bastion:</strong> A fully managed service to secure remote access (RDP, SSH) to our Azure Virtual Machines without any exposure through public IP addresses.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Front Door:</strong> this is a secure, fast, and reliable cloud CDN (Content Delivery Network) service with intelligent threat protection.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Network Watcher:</strong> Network performance monitoring and diagnostics solution</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Private Link/Private Endpoint</strong>: enables us to access Azure PaaS Services (Azure Storage, SQL Database, etc.) in our virtual network over a private endpoint.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>VPN Gateway:</strong> To send network traffic between our Azure Virtual Network and our on-premises site. It sends encrypted traffic across a public connection.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>ExpressRoute:</strong> Connects on-premises and Azure over a dedicated private connection (WAN link). Traffic (encrypted data) does not go over the public Internet, thus a more secure option than VPN Gateway.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Application Gateway:</strong> Helps us to round-robin distribution of incoming traffic, cookie-based session affinity, and URL path-based routing,&nbsp;and allows us to host multiple websites behind a single application gateway.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Traffic Manager:</strong> This allows us to control the distribution of user traffic for service endpoints. It has the ability of automatic failover based on the health of the service endpoint.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Load Balancer (LB):</strong> &nbsp;Distributes incoming traffic among healthy instances of services. Public LB distributes internet traffic to VM, Private LB distributes traffic between VMs in Azure VNet and between on-premises and Azure VNet.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Database security:</strong></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>IP Firewall Rules:</strong> Database and Server level firewall rules allow us to grant access based on originating IP address of each request.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>VNet Firewall Rules:</strong> enable Azure SQL Database to only accept communications that are sent from selected subnets inside a VNet.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Authentication and Authorization:</strong> We can use both SQL and Azure AD accounts. But it is recommended to use Azure AD with multi-factor authentication. Also, grant database object-level permissions on a need-to-know basis only.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Defender for SQL:</strong> An Advanced Threat Protection feature. We can configure emails to receive security alerts.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Vulnerability assessment (VA):</strong> is a part of the Azure Defender for SQL offering and it can help us to discover and track potential database vulnerabilities.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Auditing:</strong> It’s mandatory for all database workloads and helps maintain compliance with security standards. We can store audit logs using Azure storage, Azure Monitor (Log Analytics), and Event Hub.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Dynamic data masking:</strong> Limits sensitive data exposure by masking it to non-privileged users. Mask data for specific columns for specific users.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Row level security:</strong> Within the same table control user access to the specific set of rows based on business logic.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Data discovery and classification: </strong>To identify and mark the sensitive information. Once we label a column as sensitive while logging audit info it takes extra care and we can see the access statistics. Moreover, data classification is mandatory in most of the compliance standards.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Always Encrypted:</strong> Encrypt specific sensitive data and decrypt only for the application at the time of access.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Encryption for data at rest:</strong> Transparent Data Encryption (TDE) encrypts entire database files and backups.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Encryption for data at transit:</strong> By default, Azure enforces (TLS-Transport Layer Security) and encrypts all connections between client and server.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Other Security:</strong></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Antimalware &amp; Antivirus:</strong> With Azure IaaS, we can either use Microsoft or any third-party (Symantec, McAfee, Kaspersky, etc.) antimalware software.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Protecting secrets:</strong> We must store our app, and DB secrets (Keys, certificates, etc.) separately in Azure Key Vault.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Protect Identity:</strong> Multi-Factor Authentication (using Microsoft Authenticator, hardware/software token, SMS, voice calls, etc.), Password policy enforcement, and Azure Role-Based Access Control.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Protect resources:</strong> Enabling soft delete, keeping backups for deleted resources for a certain period, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Protect Physical datacenter:</strong> Taken care of by Microsoft and before decommissioning of any storage device data will be completely wiped using certified standard procedures.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Security monitoring and alerts:</strong></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Monitor:</strong> this is a comprehensive solution for collecting, analyzing, and acting on telemetry from the cloud and on-premises environments.</div>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span>&nbsp;</span><strong>Collect data</strong> using Azure Monitor Logs and Azure Monitor Metrics.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span>&nbsp;</span><strong>Detect and diagnose</strong> security issues using insights (Application, VM, Container, Network, Storage)</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span>&nbsp;</span><strong>Analyze</strong> collected data using Metric Explorer and Log Analytics. We can export firewall and proxy logs from on-premises or third-party cloud providers (AWS) to Azure and we can analyze the logs.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span>&nbsp;</span><strong>Visualize</strong> information using Azure monitor dashboards and workbooks</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span>&nbsp;</span><strong>Support</strong> operations at scale with smart alerts (uses ML algorithms) and automated actions</div>
</div>
</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Security Center:</strong> Detect threats and provides integrated security monitoring and policy management across our Azure subscriptions. Security dashboards list all alerts and recommendations.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Advisor (Personalized Cloud Consultant):</strong> analyzes our resource configuration. Based on Azure Security Center analysis, it recommends solutions to help improve performance, security, and reliability.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Regulatory compliance dashboard:</strong> It’s part of Azure Security Center, and shows the status, violations, and recommendations.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Resource Manager templates:</strong> Once we create a template with the stronger security settings, the same template can be used for all environments which makes security configuration easier.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Service Health events &amp; alerts:</strong> Provides a customizable dashboard and it tracks four types (services issues, planned maintenance, health, and security advisories) of health events that may impact our resources.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Azure Storage Analytics:</strong> performs logging (successful and failed requests, timeout, network, authorization errors, etc.) and provides metrics data for a storage account.&nbsp;We can analyze usage trends and diagnose issues with our storage account.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Consider this as the last question, have you ever experienced or seen any failures or disasters in Cloud? Maybe while migrating or post-migration?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Before answering this, I want to define the word “failure”. Failures are two types A) Not able to reach the expectations as per the estimated plan. Ex: Cost is increased, failed to migrate within the timeline, performance is decreased in the cloud. B) Migration plan itself failed hence rollback. Since we spend adequate and quality time on the analysis and planning phase, fortunately, I never fall into option “B”. However, when we are dealing with a huge enterprise, whatever the care we take, there are still unknown things that essentially impact our estimations.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">But consultants reach me for help and suggestions (both from inside and outside the organization), and there I have seen the ground-level mistakes done. Let me quickly explain a few case studies:</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Vasumat (Case-1): </strong>By default, AWS S3 bucket access is set to private. They made it public while doing a POC in the development environment and accidentally followed the same configuration for production. Customer application has been storing scanned copies of all employee identities (Passport, Tax documents, offer letters, etc.). The only good thing that happened is, it was identified by the vendor at an early stage of production Go-live. We can imagine the impact if a customer or third party identified the security loophole.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Sorry, for stopping you in-between. Did it happen in your organization? I mean as a vendor.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> No mam, I write blogs so have some contacts and one of my followers called me for help.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I am excited to know your suggestion there.</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Vasumat:</strong> Well, the vendor was a small entity (600 employees) helping a customer in the UK with their cloud migration and he was working for the vendor. 8 days after production Go-Live, they identified that S3 was open to the public. I suggested three things that they must do on an immediate basis to control the damage. A) Raise an incident B) Make S3 bucket access to private C) Inform customer. While working on A, B, and C activities, inform someone to track the S3 bucket and individual object access statistics. It can be found using S3 Server Access Logs and AWS Cloud Trail. There we can find the complete events that happened to our S3 includes, including date and time of access, objects accessed, actions performed, source IP Address, access type (browser, REST API), etc. Fortunately, there was no unauthorized or unknown access seen in the logs, so they approached the customer, accepted it was a human mistake, projected no damage happened, promised the customer that they reperform the security the auditing for the entire infrastructure, and explained how prevention measures will be taken, etc. After 2 months of struggle, they finally settled down the issue without fines and actions from the customer. But we can imagine if it happens in the card payment industry that would take an entirely different route with serious consequences.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I reckon you suggested the right thing there. Damage control is the first step in any incident. Do you have any other use cases?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Vasumat (Case-2):</strong> A customer was surprised to see the monthly cloud bill. It was more than double the amount of last month’s bill. While investigating there were a lot of Azure VMs (with premium features) got created without notifying the App owners. There was an automated scheduled job that had been creating a new VM for every hour and that was doing its job perfectly. There was an employee, who had some issues with his boss and while he was leaving the organization, he intentionally created a simple program and scheduled it.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reasons:</strong> A) Lot of admins, so anyone can do anything, B) No policies that limit the resource creations, C) No proper monitoring and notifications.</p>
<p style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Solution:</strong> Dealing with that employee and further actions were taken care of by HR. They approached the Azure team, explained the situation, and got some suggestions, since they were not using the VMs got the best discount on the additional amount incurred due to those VMs.</p>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Vasumat (Case-3):</strong> A team migrated a tiny application and its database to Cloud. Though they were facing some issues while migrating, fixed them, and successfully migrated within the timeline. End customers started using the application hosted on the cloud. After 15 days post the migration an application engineer realized that they did a mistake. Application and database were migrated to the cloud, but the app config file at the cloud was not properly updated hence it was pointing to the on-premises database. He was afraid and instead of informing his boss, simply updated the application config file and pointed it to the cloud database. Exactly after a month, the customer identified that some data was missing and reported it to the vendor. They found the problem and that app engineer had to confess his mistake.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reasons:</strong> No proper testing done post the migration; Didn’t have the migration checklist; It’s a clear human error and if the customer was notified when the app team found the problem, the damage could have been controlled; Leaving on-premises database online and operational even after successful migration.</p>
<p style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Solution:</strong> It was challenging to find the DELTA data set for 15 days (Go-live to config update to cloud DB). They had to run a table-wise comparison between the Go-live copy, 15 days after go-live (current on-prem) and 45 days after the Go-live copy (current cloud), identified the INSERT, DELETE, UPDATE operations, and performed the data load accordingly.</p>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span>&nbsp;</span><strong>Vasumat (Case-4):</strong> The customer raised an incident saying that an application stopped working. While doing the quick check they found that the SQL Server Database service was down in Azure VM. They were unable to restart the service and the log says that SQL Server system database files were missing. Surprisingly, all database files (MDF, NDF, and LDF) extensions got changed to some strange string something like “.MDF” to “.xto”. Lately, they realized that it was a Ransomware attack and found that they were demanding $60K to $75K ransom. Someone with admin permission used a personal email from the VM and accidentally clicked on a Phishing email that downloaded a malware program file into the VM, that’s all. It installed a program on the VM that forcefully stopped the SQL Service and encrypted all data and log files including the backup folder. Unfortunately, they didn’t have any secondary replica for the database instance. But they have the latest database backups stored in Azure storage and VM backup is on Azure Backup. They were able to quickly create another instance with the same IP hence the business was continued.</div>
<p style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Reasons:</strong> Exposed VM to the public internet; Needlessly granting admin rights; Not giving security awareness to the developers; Not using proper malware protection; No proper monitoring</p>
<p style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><strong>Solution:</strong> They disabled all access to the affected VM except for a single admin. Scanned the VM and entire network to make sure the malware didn’t affect other resources in the VNet. They had to identify and remove all developers and DBAs (who are using that VM) laptops from the corporate network and the security team had to scan those individual laptops.</p>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Want to hear more?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I think that’s more than enough. What I observe is most of them are due to human error, isn’t it?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Certainly! 80% of the failures are due to human mistakes. You might have heard about the recent data leak that exposed 38 million records, including employee databases, COVID-19 vaccination statuses, etc. They hosted 1000 plus applications on Microsoft PowerApps and due to a simple misconfiguration data was exposed to the public.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Yes! I do. But, in my opinion, the problem is from both sides. Azure cloud must make it private by default instead they are making it public. Developers forgot to make it private.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> That’s why we always say that SECURITY is a shared responsibility. Azure automated monitoring system identified it and sent a security notification saying that their sensitive data was exposed to the public. The customer immediately reacted and made access private.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> How can we prevent this?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Three things, <strong>A)</strong> Continues testing and improving test scenarios. We need to have customizable security testing tools and services that fit our business. <strong>B)</strong> Automation. First, ensure that our environment is stable and automate one by one process. <strong>C)</strong> Monitor and improve the automation procedures.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Make sense to me.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Vasumat, have you ever worked in pre-sales?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Well, I can’t claim that I am experienced in the end-to-end pre-sales life cycle but it’s a part of any architect’s role. The sales team involves architects in customer discussions. I am experienced in helping pre-sales teams in preparing the technical documentation, creating mockups, giving presentations, and most importantly holding sales teams in customer discussions when they are giving unrealistic promises, buying time from the customer for performing POC, etc.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> In that case, you already know a lot about pre-sales.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> I have a query here, can I?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Sure!</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> As part of sales, before getting the PO approved, we need to understand the customer requirement to prepare the best possible solution, impress and win the deal from the customer. But your requirement says that your infrastructure needs to be migrated. This means there is no customer concept here. Then I would like to know why you are specific about pre-sales.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I understand your concern. Let me put it this way. We are not going to have the entire IT team with us, instead, we would give the migration project to multiple vendors. But we need to make sure of holding the KEY people with us, people like architects who can understand the core business, design the architecture, and essentially drives the entire cloud journey. Though we are ready to migrate our workloads to the cloud, it doesn’t mean that we got the green signal. Business vertical wise we need to pass through approvals from App owners, Audit teams, Cyber security, stakeholders, etc. It is not pre-sales, but almost needs to have a similar preparation…</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> To convince them for the cloud migration.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Exactly. Hope it answered your question.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> 100%. Thanks for that.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Well, that’s all from my side. It’s already been a long day for you, in fact, I took 80 min extra, my apology for that. I would appreciate your time, patience, and commitment. I am open to questions if you have any.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> You don’t need to apologize. For me, it’s one of the best technical discussions I have ever had. I hope someday I’ll sit and have a coffee from the mountain view place. Any idea when I can hear about the next steps of the hiring process?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Hopefully very soon!</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Thank you a lot!</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Viswa will escort you to the security check; From there you can take the shuttle and reach Exit-1. Have a good evening.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Good evening, Alison. Bye!</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">This discussion went on for 7:30 hrs. and the person who attended this interview had to go through a discussion with the head of the Data Engineering vertical and a final discussion with HR followed by the offer. It took 5 more weeks to get the final offer in hand.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>***Note:</strong></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">I will take some time and prepare the blog on the discussion that happened between a Senior Data Architect and a Head of Data Engineering. That would be fascinating as they talk about building modern data platforms using various architectures including Lambda, Kappa, Data Mesh, Data Fabric, Data Lake, Data Warehouse, etc. using Databricks, Synapse, Kafka, Snowflake, IoT, Stream Analytics, Cosmos DB, Red Shift, Azure SQL Database, RDS, S3, Blob, Spark Streaming, etc.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"     class="crp_link post-4538"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/"     class="crp_link post-4551"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"     class="crp_link post-4547"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/"     class="crp_link post-4553"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/">A discussion between a CxO and a senior Data Architect Part 5</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A discussion between a CxO and a senior Data Architect Part 4</title>
		<link>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/</link>
					<comments>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/#respond</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Mon, 03 Oct 2022 12:12:50 +0000</pubDate>
				<category><![CDATA[Interview Q&A]]></category>
		<category><![CDATA[architect]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure sql database]]></category>
		<category><![CDATA[Blob]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data migration]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[rds]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[sql]]></category>
		<guid isPermaLink="false">http://udayarumilli.com/?p=4553</guid>

					<description><![CDATA[<p>Links to other parts A discussion between a CxO and a senior Data Architect Part 1 A discussion between a CxO and a senior Data Architect Part 2 A discussion between a CxO and a senior Data Architect Part 3 &#8230; <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/"     class="crp_link post-4551"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"     class="crp_link post-4547"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"     class="crp_link post-4538"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/"     class="crp_link post-4555"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/">A discussion between a CxO and a senior Data Architect Part 4</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/wp-content/uploads/2022/10/4_Cloud_Migration.jpg"><img loading="lazy" decoding="async" class="aligncenter  wp-image-4562" src="https://udayarumilli.com/wp-content/uploads/2022/10/4_Cloud_Migration.jpg" alt="A discussion between a CxO and a senior Data Architect Part 5" width="528" height="396" srcset="https://udayarumilli.com/wp-content/uploads/2022/10/4_Cloud_Migration.jpg 908w, https://udayarumilli.com/wp-content/uploads/2022/10/4_Cloud_Migration-300x225.jpg 300w, https://udayarumilli.com/wp-content/uploads/2022/10/4_Cloud_Migration-600x450.jpg 600w, https://udayarumilli.com/wp-content/uploads/2022/10/4_Cloud_Migration-768x576.jpg 768w" sizes="auto, (max-width: 528px) 100vw, 528px" /></a></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Links to other parts</h2>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"><strong>A discussion between a CxO and a senior Data Architect Part 1</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"><strong>A discussion between a CxO and a senior Data Architect Part 2</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/"><strong>A discussion between a CxO and a senior Data Architect Part 3</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/"><strong>A discussion between a CxO and a senior Data Architect Part 5</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">Background: We have been going through a discussion that took place between senior leadership and a data architect. Part – 4 continues.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Discussion Follows:</h2>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Can you tell me the most complex migration that you have done till today?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Sure! We have migrated workloads for one of the European-based engineering and construction firms. They operate from 85 offices across the globe with a staff of 13000 (IT Staff 4300) and revenues over $6.5 billion with a customer count of 0.4 million. We have created the business case by considering two major challenges. A) Data management on expensive storage &#8211; They are generating enormous data and struggling to maintain, and manage data and in handling disaster recovery solutions at their data centers. B) Scalability &#8211; Systems are not scalable to handle heavy workloads. We proposed the cloud solution by addressing these two challenges. Projected Azure as the suitable target by considering the TCO, ROI, and compatibility (majority of their workloads are using Microsoft products .Net, Windows OS, SQL Server, Office suite including Email, SharePoint, etc.).</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Great! Can you summarize the migration?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Sure!</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Migration challenges</strong> include legacy systems (SQL Server 2000, Windows 2003), migrating huge data sets, Oracle to <a href="https://learn.microsoft.com/en-us/azure/?product=popular">Azure</a> SQL Database (Customer requirement), different migration strategies for various applications (refactoring, re-platforming, lift-and-shift, phased), critical application migration (with near zero downtime), hybrid cloud for 5 applications (some components at on-premises and some at Azure), heterogenous database systems (SQL Server, Oracle, MySQL, MongoDB), etc. diversified feature selection (PaaS, SaaS, IaaS, Serverless), etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Tools used: </strong><a href="https://learn.microsoft.com/en-us/azure/?product=popular">Azure</a> Migrate service (to migrate VMs &amp; SQL Server &#8211; Discovery &amp; Assessment, Server Migration Services); Azure Data Box (Shipping over 40 TB of data in a physical device); DMA-DMS (Data Migration Assistant &#8211; Database Migration Service for migrating databases); Azure Data Factory (Migrating huge datasets); AzCopy (Migrating storage); Virtual Machine Converter (MVMC) / Virtual Machine Manager (VMM) (for converting VMs on VMware hosts or physical computer to VM running on Microsoft Hyper-V; <a href="https://learn.microsoft.com/en-us/azure/?product=popular">Azure</a> Site Recovery (ASR) Azure DRaaS – Disaster Recovery as a Service for VMs, in some scenarios we also used it for VM migration; Recovery Services vault for Azure (For storing VM backups); VPN Gateway/ExpressRoute (To establish proper communication channel between on-prem and Azure); Azure Synapse Pathway (while migrating from data warehouse to Synapse, it Converts DDL and DML statements to compliant with Azure Synapse Analytics); SQL Server Migration Assistant (SSMA – to migrate from other RDBMS like MySQL, Oracle etc. to SQL Server and Synapse Analytics); Azure AD Connect (To synchronize on-prem active directory to Azure Active Directory) etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Migration Outcome:</strong></div>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>As part of the analysis, we Identified unused/unnecessary applications and retired 180 VMs on-premises. Successfully migrated 260 applications, 1400+ servers, and VMs (1100 Windows, 300+ Linux),</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>650+ database instances (SQL Server, Oracle, MySQL, MongoDB),</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Project environments migrated &#8211; DEV, TEST, STAGE, PRE-PROD, PROD,</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>38 file shares, 12000+ active users, 25+ domains, 30+ messaging services,</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Data warehouses, reporting, and ETL solutions (SQL, Informatica, SSIS, SSRS),</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>1.2 petabytes (1200 TiB) of data was migrated.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Finally, we closed/decommissioned 97% of on-premises legacy data center resources.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Auto-scaling cloud infrastructure helped them to handle peak loads with zero issues. At on-premises they used to experience an average of 3 to 4 outages/downtime per month due to infrastructure issues. After cloud migration, they had zero outages for the first 8 months and 1 outage in the first 12 months.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Also, based on the utilization frequency, we leverage the storage data tiers (Hot, Cool &amp; Archive) which saved a lot of cost to the business. Faster and more efficient application development, management, and support.</div>
</div>
</div>
</div>
</div>
<p><span id="more-4553"></span></p>
<p><!--more--></p>
<p><!--more--></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> That’s amazing, I think we are looking for similar background. Out of curiosity, how did you handle the legacy systems?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Legacy systems are always a big deal. I’ll tell you an example, our client has been using a simple application based on SQL Server 2000 running on Windows Server 2003. They are neither retiring that application nor ready to invest in refactoring. Hence, we are left with only the option of moving it as is to the Cloud VM. We spent some time preparing a detailed analysis report with the possible problems and issues and projected Infront of the business team. Ex: SQL Server 2000 is a 32-bit application hence it has compatibility issues with the OS, limitations utilizing the memory, also most importantly product support has been expired years ago. Hence it can’t fit the modern data world. To make it simpler, we suggested re-platforming SQL Server 2000 to Azure SQL Database. So, we do not need to invest more money, it’s just a few extra efforts to migrate schema and data to Azure SQL Database. After checking the possibilities, cost ratio, performance gain, and risk involved, we got the go-ahead for re-platforming and we successfully did it too. Likewise, for migrating Windows Server 2003 VMs to Azure:</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>Converted Windows 2003 Server to VMware VM using VMware tool</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>Converted VMWare VM to Microsoft Hyper-V one</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>Migrated Hyper-V VM to Azure VM.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Do you remember the TCO differences and improvements after the cloud migration? Approximate figures would suffice.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Yes, I do! After successful cloud migration, we monitored for some time (a few weeks/months depending on criticality) and captured the crucial parameters, predicted the future values, and compared it with the on-premises numbers. A detailed KPI report was given to the business. The major advantage of the cloud is less or no Capital Expenditure (money we spend to purchase and maintain the IT infrastructure). KPI values comparing with on-premises:</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>Unplanned downtime was reduced by: 83.5%</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>New equipment deployment time was reduced by: 98%</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>Software Application deployment time was improved by: 35%</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>Number of applications deployed per year increased by: 109 %</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>5 Years TCO was decreased by: 51% (Ex: Consider On-prem cost: $1 M | Cloud cost: $0.49 M)</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>5 Years ROI was increased by: 220 %</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Let’s suppose, I need a machine with 32 core, 64GB RAM, and 16 TB HDD configurations. From the cost point which one is the best option, purchasing a physical server or an Azure VM / <a href="https://docs.aws.amazon.com/index.html?nc2=h_ql_doc_do_v">AWS</a> EC2?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> For the physical server, we may need to spend $9000 approx. as a one-time investment. To get an Azure VM with a similar configuration we may need to pay $900 per month. By the second month, we invest $1800 and by the 10<sup>th</sup> month, we pay $9000 in total for an Azure VM.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Which means owning a physical server is the winner from the cost point. Isn’t it?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Certainly! But before concluding, we should consider the facts:</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Owing a private data center:</strong> Along with the computer price, we must consider a lot of other factors including the installations, real estate, internet facility, power and energy management, cooling equipment, networking and other hardware equipment, labor &amp; IT staff, repair &amp; servicing, disaster recovery management, sending backups to offsite (out of datacenter), software upgrades, asset depreciation (asset/equipment value and performance will be decreased with time and becomes zero or negligible at the end of its life span), etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Cloud:</strong> With reserved instances (when we know VM runs for the next 1 or 3 years) and we get a 30 to 50% discount, in the Pay-as-you-go model we can switch off VMs when not required (TEST, DEV machines over the weekend), scalability – highly scalable to handle the peek workloads; Automatic backup service, Disaster Recovery as a Service, modernization features, serverless compute options, scalability and automation features make it as a stable environment which improves the productivity hence more business and more revenue.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">    <span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Got you. What was the time taken to complete this migration project?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> It took 24 months out of which 8 months for analysis and planning and 16 months for execution and optimization.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> You might have worked with many clients till today. What is the highest business impact that you have seen due to unplanned downtime?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> One of the manufacturing clients projected their business impact as $2.3 million for unplanned downtime for 4 hours (It was down due to hardware failure).</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Vasumat, you must have handled VLDB (Very Large Database) migration, right?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Yes! Till now the largest single database I migrated is 8.5 TB</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> That’s a real VLDB. Can you describe a few tips for handling VLDB migration?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> For VLDB, there are three major things that we need to worry about A) Backup B) Consistency check C) Index maintenance. These operations may run from hours to days depending on the database size and available resources. For us, VM with configuration 32 Core, 448 GB RAM, 20000 MBPS network bandwidth, it took 12.3 hrs. to complete the full backup.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">Best practices in dealing with VLDB are:</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Perform data cleansing</strong> and remove/archive all unnecessary, unused, and historical data.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Index maintenance</strong> – Do not run index rebuild or reorg for all indexes in one go. Instead, based on the fragmentation level statistics divide it into three categories, daily, weekly, and monthly. Schedule index maintenance accordingly.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Consistency checks</strong> – run only filegroup or table level checks with the Physical_Only option. D) Backup &#8211; Leverage compression feature, utilize differential backups, see if file snapshot backup works, and always take the split backup</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Datafiles, File Groups &amp; Partitions</strong> – Considering the disk-wise IOPS and throughput limitations, based on the data distribution, partition the table, map partitions to separate filegroups, add separate datafile for each file group and place those data files in separately managed disks (Azure VM Disks). To make it simple Table &gt; Partitions &gt; Separate File Group &gt; Separate NDF &gt; Separate VM Disk</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> So, you migrated that 8.5 TB database to Azure VM. Is it?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Yes! We migrated it to an Azure VM, but issues were remaining the same. It’s been taking a half day for a full backup, and differential backup (4 days after full backup) was also taking 8 hours. Also, the maximum Blob size is limited to 195 GB, hence we had to take the split backup to ensure we do not hit the maximum size of 195 GB. When I approached an expert engineer from the Azure team, he suggested me the file snapshot approach, we performed a POC with success and then implemented the same for our production database.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Can you explain how did you do that?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> We have a feature using which we can place SQL Server Database files as Page Blobs in Azure Blob Storage. With this, we get the benefit of Azure Storage which is not available in the traditional storage system. For example, consider Instant File Initialization (IFI), in traditional storage if we do not enable IFI when new space is requested, the system performs zeroing process (put zeros on the disk to avoid security risk). But it is only applicable for the Data file and not for the Log file. When it comes to Azure Blob Storage, without enabling IFI, it automatically takes care of the zeroing process and most importantly IFI is applicable for Log files as well. When we call Put Page API, it simply clears the range and guarantees that reading from a cleared range will always return zeroes. We tried allocating the logfile from 50 MiB to 1 TiB and it took 1 second.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> But how it resolved your backup issue?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> I am coming to that; We have a feature called File Snapshot Backup. Unlike traditional streaming backups, a File snapshot Backup creates a storage snapshot for each SQL Server Database file. Can you believe, for the 8.5 TiB production database while it was operating where queries were running with 72% CPU utilization, full backup was completed in 2 minutes 30 seconds?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> That’s amazing. Even with 10 GBPS speed, it can hardly take 1 TB backup in 2 min. How come it’s been taking 8.5 TB?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Because no data movement has occurred, instead it simply stores pointers to these snapshots and other backup metadata. Hence it is faster and maintains backup consistency. And coming to running data consistency checks (DBCC), we can quickly restore (taking 5 seconds) the latest file snapshot backup into other SQL instances and run DBCC commands. Two benefits, A) We are fully checking the consistency (No physical only or partial checks) B) Checking on the latest copy without distributing the production workload.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Okay! That sounds fascinating. So, do you prefer the same approach for all SQL workloads?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Certainly not! Every feature is designed for a specific cause hence it has its limitations, and we use it only when our database is fit into this feature. For example, it doesn’t support FileStream data, geo-replication for a storage account, In-Memory OLTP, and, Always On failover cluster instances. Also, standard storage (500 TB limit) can’t be used due to performance issues. But the premium storage account is limited to 35 TB.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I understand. I specifically asked you about VLDB as we have SAP systems running on-premises. Do you see any SAP offerings from Azure?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> I didn’t have experience in migrating SAP workloads to the cloud. Nevertheless, I participated in a case study discussion in a customer place, where they explained how SAP systems with VLDB were migrated to Azure. Ideally, I can say that I know the theory.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Then I would like to know about your theory.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Sure! SAP systems mainly require (at least from the data point) A) Larger storage B) Elastic Compute Capacity. By addressing these parameters, Azure is offering two optimized solutions A) SAP on Azure Virtual Machine; B) SAP HANA on Azure Large Instances. Both options are certified to host SAP workloads and it is the Best of Both Worlds (SAP and Azure Cloud). Because, along with the SAP, we can utilize the latest features of Azure Ex: Automation, High Availability with guaranteed SLA, security, scalability, cost &amp; operational efficiency, etc. Azure supports SAP deployment including SAP NetWeaver, SAP S/4HANA, BW/4HANA, BI, and HANA in scale-up and scale-out scenarios.</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>SAP on Azure Virtual Machine:</strong> are on-demand VMs and suitable for small to medium workloads. Offers up to 4 TB RAM and 128 vCPUs.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>SAP HANA on Azure Large Instances:</strong> Specially designed for SAP very large workloads. Azure runs our workloads on non-shared bare-metal hardware that is dedicatedly assigned to us. This means our VM is built with its own compute/server, networking, and storage infrastructure. Offers up to 24 TB RAM and 480 Intel CPU cores.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> That’s interesting. In the case study that you are talking about, from the customer business point, what was the top benefit that they gained by migrating their SAP to Azure? Only if you remember.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> I may forget the process and approach but always try to remember the KPI because that tells us the success rate of our migration strategy. There were two major factors A) Projected 5-year cost savings as between 60 to 65% B) Time for provisioning and building new components for Very Large Workloads drastically improved from 1 month (on-prem) to 1 week (Azure).</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Do you know how they migrated large SAP databases to the cloud?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Again, it’s a theory as I didn’t experiment on it.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Fine, your theory is from a real use case. So, for me, it’s more than a theory. Please go ahead.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> If it is a homogenous system (Oracle to Oracle, SQL Server to SQL Server) then we can migrate them with relatively low or near zero downtime using the native HA &amp; DR features. But when it comes to heterogenous systems, we need downtime and duration depends on our planning strategy.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">For larger databases, they used AzCopy, R3Load (import/export data in a platform-independent format), and Migmon (Migration Monitor) tools. At on-premises provisioned 4 physical servers for running R3Load with accelerated networking. Server -1 for loading the top 5 tables, servers 2 &amp; 3 for loading tables with table splits, and server 4 for migrating remaining all tables. Since R3Load exports in parallel, controlling the sequence of Import happens via the Signal File (SGN) that is automatically generated when all Export packages are completed. Here I am speaking in a very generic and simple language, but implementation is highly challenging and needs to consider a lot of facts:</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Optimizing the source system</strong> Ex: Data cleansing, network improvements, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Enabling Jumbo Frames:</strong> between the source server and R3Load server improves the export performance. Jumbo Frames are Network layer PDUs (Protocol Data Unit) slightly larger than the typical 1500 Byte Ethernet MTU (Maximum Transmission Unit) size Ex. 1998 Byte.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Calculating the Net impact</strong> (Sorting, number of parallel exports/imports, table split support, network bandwidth, etc.)</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Cloning the source system</strong>: Create multiple source database copies and export different entities (tables) from each copy in parallel.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Dealing with the transactional log at the target server:</strong> Place it in the local SSD (so it excludes IOPS and bandwidth from VM quota) during the migration and move it to a persisted disk post the migration.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Dealing with heterogeneous systems</strong> Ex: Cross OS or DB migrations. Windows to Linux and SQL to Oracle etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Dealing with the failed parallel processes</strong>: Truncate and restart gives a better performance rather than row-by-row delete.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Special recommendations:</strong> For example, never use UNIX, or Virtualized Servers for R3Load Exports as it negatively impacts the performance. Without calculating the net impact do not conclude the number of parallel exports. Before concluding, verify the network speed for AzCopy via public internet and ExpressRoute. Etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span>With proper planning, prior testing, and using optimization techniques they were able to achieve 2.5 TiB per hour speed and successfully migrated SAP workloads to Azure.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> That’s very informative, thanks for taking me into the SAP world. I liked that cloning thought.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I think it’s already late. Do you have 30 more min? We’ll quickly wrap it up.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Absolutely no issue.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Wonderful<a id="OLE_LINK1"></a>! We are currently holding stakeholder financial portfolios, customer personal identities, and other sensitive information which is classified as confidential and restrictive. When I say moving to the cloud, the first thing that comes to my mind was data security. We are going to store our corporate data in a public cloud data center like Azure or AWS. Since you are the data owner, you need to convince me about the cloud migration by explaining the public cloud security capabilities. Considering I have zero knowledge about cloud security, can you list out all possible security risks and how Cloud providers can handle them?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">In the <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/">final part</a>, we will see how Vasumat deals with Cloud Data Security.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/"     class="crp_link post-4551"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"     class="crp_link post-4547"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"     class="crp_link post-4538"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/"     class="crp_link post-4555"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/ai-for-data-professionals/"     class="crp_link post-4660"><span class="crp_title">Introducing: “AI The One” for Data Professionals</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/">A discussion between a CxO and a senior Data Architect Part 4</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A discussion between a CxO and a senior Data Architect Part 3</title>
		<link>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/</link>
					<comments>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/#respond</comments>
		
		<dc:creator><![CDATA[uday arumilli]]></dc:creator>
		<pubDate>Mon, 03 Oct 2022 12:05:34 +0000</pubDate>
				<category><![CDATA[Interview Q&A]]></category>
		<category><![CDATA[architect]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[azure sql database]]></category>
		<category><![CDATA[Blob]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data migration]]></category>
		<category><![CDATA[dms]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[rds]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[sql]]></category>
		<guid isPermaLink="false">http://udayarumilli.com/?p=4551</guid>

					<description><![CDATA[<p>Links to other parts A discussion between a CxO and a senior Data Architect Part 1 A discussion between a CxO and a senior Data Architect Part 2 A discussion between a CxO and a senior Data Architect Part 4 &#8230; <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
<div class="crp_related     crp-text-only">
<h3>Related:</h3>
<ul>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"     class="crp_link post-4538"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"     class="crp_link post-4547"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/"     class="crp_link post-4553"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/"     class="crp_link post-4555"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li>
<li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li>
</ul>
<div class="crp_clear"></div>
</div>
<p>The post <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/">A discussion between a CxO and a senior Data Architect Part 3</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://udayarumilli.com/wp-content/uploads/2022/10/3_Cloud_Migration.jpg"><img loading="lazy" decoding="async" class="aligncenter  wp-image-4560" src="https://udayarumilli.com/wp-content/uploads/2022/10/3_Cloud_Migration.jpg" alt="A discussion between a CxO and a senior Data Architect Part 3" width="509" height="339" srcset="https://udayarumilli.com/wp-content/uploads/2022/10/3_Cloud_Migration.jpg 1152w, https://udayarumilli.com/wp-content/uploads/2022/10/3_Cloud_Migration-300x200.jpg 300w, https://udayarumilli.com/wp-content/uploads/2022/10/3_Cloud_Migration-600x400.jpg 600w, https://udayarumilli.com/wp-content/uploads/2022/10/3_Cloud_Migration-768x512.jpg 768w" sizes="auto, (max-width: 509px) 100vw, 509px" /></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Links to other parts</h2>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"><strong>A discussion between a CxO and a senior Data Architect Part 1</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"><strong>A discussion between a CxO and a senior Data Architect Part 2</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/"><strong>A discussion between a CxO and a senior Data Architect Part 4</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/"><strong>A discussion between a CxO and a senior Data Architect Part 5</strong></a></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">Background: We have been going through a discussion that took place between senior leadership and a data architect. They took 45 min of lunch break and here Part – 3 continues.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Discussion Follows:</h2>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Hope you enjoyed your food.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Yup, more than that, I liked that elegant garden, especially the spectacular mountain view from the corner.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Hmm, yes, that’s a favorite coffee spot for everyone on the floor.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Coming to the business, now I would like to discuss your area of expertise. I believe you have extensive experience in migrating data platforms. Isn’t it?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> True!</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Can you describe the steps involved in migrating database systems from on-premises to the cloud? Well, let me simplify my question, let’s suppose we have some heterogeneous database systems like Microsoft, Oracle, etc. I would like to know how you handle the database migrations. Since we already discussed phases, you can explain the series of steps involved. Appreciate it if you can explain it with whiteboarding. Take your time and explain as much detail as possible.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Sure! Assuming we already have an approved business case and talent is assigned.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Migration Planning:</h2>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Assess and Discover: </strong>Collect every possible information and prepare a data-estate / data-sheet / metadata about Data (file shares, network shares, data lakes, etc.) and Database systems (SQL, NoSQL, etc.) from the source environment. It includes database instances (RDBMS, versions, edition, license etc.), instance type (database engine, reporting, analytics, operational etc.), configurations (trace flags, collation etc.), features (FileStream, PolyBase etc.), host details (virtualization, physical servers, OS type, license, etc.), computing power (memory, disk, CPU, throughput etc.), storage &#8211; data volume (data size, data growth rate etc.), partition info (keys, distribution rate), data type (Transactional, analytical, Archive, warehouse, reporting, Staging etc.), environment (DEV, Testing, QA, Staging, Pre-Prod, Prod), tools (development, deployment, monitoring), networking, security (NSG, firewalls, SSL, encryption, login &#8211; passwords, service accounts, permissions etc.), backup strategy, high-availability, disaster recovery, load balancing, data dependencies, Database IT operations (Change request, incident, problem request management etc.), Key Performance Baselines and Indicators (IO, CPU, Memory, Query timeouts, errors ) etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Integration Matrix:</strong> A data entity can be a “data provider” “data consumer” or both. We must prepare a matrix that can project all dependencies of our data entity/database. This means identifying the list of applications, services, and programs that are using our databases. Also defining and tagging application with priority (based on the revenue impact), complexity (number of components involved), route (source, destination, IP, port, port type, inbound/outbound, access credentials, etc.) information. It plays a vital role in determining the migration scope.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Define the Migration Scope:</strong> Based on the assessment details, we can classify the data entities between, moving to the cloud, retaining at on-premises, and retiring/decommissioning.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Define the Cloud solution: </strong>Need to identify</div>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Cloud model: Public, private, Hybrid, or Multi-Cloud</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Cloud Service provider: <a href="https://learn.microsoft.com/en-us/azure/?product=popular">Azure</a>, <a href="https://docs.aws.amazon.com/index.html?nc2=h_ql_doc_do_v">AWS</a>, Google Cloud, Oracle Cloud Infrastructure, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>Cloud Service model: Platform-as-a-Service, Infrastructure-as-a-Service, Software-as-a-Service. From the DB side, we deal with PaaS and IaaS. We conclude this in the resource mapping step.</div>
</div>
</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Resource mapping: </strong>Map on-premises resources with the cloud resources. If we plan to re-platform or refactor, check compatibility, and perform a POC (Proof of Concept) in the cloud. Sizing the cloud resources must be handled by considering the expected performance and allocated budget. In general, we allocate a little higher compute resources than required, so it helps us for faster migrations. Once migration is done, we can downgrade the service tier to match the exact required size.</div>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>For example,</strong> Map Database systems to Azure SQL Database, Database Pool, Managed Instance, <a href="https://docs.aws.amazon.com/index.html?nc2=h_ql_doc_do_v">AWS</a> RDS/Aurora, <a href="https://learn.microsoft.com/en-us/azure/?product=popular">Azure</a> SQL Serverless, AWS Aurora Serverless, Azure VM, AWS EC2, etc.; Servers or Virtual Machines to <a href="https://learn.microsoft.com/en-us/azure/?product=popular">Azure</a> VM, AWS EC2; Network drives and shared folders to Azure Files, AWS Elastic File System (EFS); Web Applications to Azure App Service, <a href="https://docs.aws.amazon.com/index.html?nc2=h_ql_doc_do_v">AWS</a> Elastic Beanstalk; Virtual server disks to Azure Managed Disks, AWS Elastic Block Storage (EBS); Storage solutions to Azure Blob Storage, Data Lake, AWS Simple Storage Services (S3); NoSQL to <a href="https://learn.microsoft.com/en-us/azure/?product=popular">Azure</a> Cosmos DB API’s, AWS DynamoDB, Simple DB, Document DB; Load balancer to Azure Load Balancer, AWS Network Load Balancer; Programs to Elastic Jobs, Azure Functions; Workflows and jobs to Logic Apps; ETL solutions to Data Factory, Databricks, Synapse pipelines, AWS Glue, etc.; Datawarehouse to Azure Synapse Analytics, AWS Redshift, etc.; CI/CD pipelines to Azure DevOps release pipelines, AWS CodePipeline, etc. Data shares to Azure Data Share, AWS Lake Formation, etc.</div>
</div>
</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Define the cloud migration approach and tools:</strong> For each component marked for migration tag it with one of the cloud migration strategies (Rehost, Refactor, re-architect, etc.). From the database aspect mostly we do either rehost (IaaS) or refactor (PaaS). Based on the migration requirement (Online, Offline) we need to select the right migration tool. <strong>Ex:</strong> Database Migration Service, Data Migration Assistant, Backup &amp; restore, replication, AlwaysOn, export/import, Visual Studio, bulk load, ETL tools () third party tools, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Define the rollback plan:</strong> We need to prepare a Rollback plan and typically for 4 scenarios.</div>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>A) Migrated, application testing failed, rollback.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>B) Migrated, started using the system in the cloud (data changes, schema changes), realized something is not working or failing after a few days, rollback</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>C) Rollback from PaaS deployment to On-premises</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span>D) Rollback from IaaS to On-premises.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Summary</strong>: Scenario A is easy as we simply need to update the connection string back to on-premises. Scenario B &amp; C requires a lot of effort as we need to compare the databases between source and target and identify the changes and apply those changes to the on-premises database. Scenario D will be a little easier compared to B &amp; C options as we can easily perform backup-restore from cloud to on-premises or we can configure HA&amp;DR solution between Cloud VM and on-premises Database Instance.</div>
</div>
</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Pre-Migration Activity:</h2>
<p><span id="more-4551"></span></p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Ready with the “To-be Architecture”:</strong> Considering the migration scope and resource mapping, we must have a clear path for starting the cloud journey.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Identify and document the solutions:</strong> From compatibility validations and POC results, identify the possible challenges, errors, issues, and solutions (short-term and long-term). Also, document all test books including smoke, functional, performance, and security.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt; font-weight: bold;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Establish cloud KPIs: </strong>Post-migration we need to measure the performance of our applications. For that, we need to define the key performance indicator (KPI). So that we can compare these KPI values with the on-premises workloads and measure the cloud migration success from the performance aspect. Using Azure event hubs and Azure functions we can simulate the production load on Azure SQL Database and measure the resource utilization. We can also perform load testing using Visual Studio or any other third-party tools. Common KPIs include <strong>DB:</strong> Compute usage (CPU, IO, Memory, Wait-Statistics, throughput, etc.), average query/SP response time, blocking, deadlocks, error rates, etc. <strong>Application:</strong> Page loading time, Response time, Lag, Session length, error rates, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Establish performance baselines: </strong>Baselining is the process of measuring the current (pre-migration) performance of your application or service to determine if its future (post-migration) performance is acceptable. Set a baseline metric for each KPI that we’ve decided to measure. Choosing the baseline period (how long we collect data) is a key aspect. We usually consider the metrics captured during the business peak hours.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Prioritize data entities (databases, file shares, etc.):</strong> As we already captured the revenue impact, the number of dependencies, and the data size, we can tag each database with a priority that determines the migration sequence. In general, we choose the easiest database/data entity first. Also, migrate non-production workloads before touching the production.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Establish Timelines: </strong>We should carefully evaluate the available details (captured from POC, migration assessment, etc.) and define the timelines. Need to consider the development planned release cycle, business (peek/low) hours, maximum allowed downtime, downtime impact, estimated migration times, maintenance window at cloud, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Perform Data Cleansing:</strong> As we collected the data points from the assessment, we need to perform the cleanup accordingly. For example, history (where modifications are not allowed/required) data can be archived and migrated separately. Remove or clean all unnecessary objects including duplicate data, incomplete data, corrupted data, backup tables created during the change request executions and staging tables, etc. Also, if we are collecting any specific data from code objects (SP, agent jobs, etc.) into tables Ex: Error logs, audit logs, monitoring logs, etc. We may need to seek business approval and delete older (&lt;6 months) logs. This step will reduce the pressure and improves the speed of the migration process and performance.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Go for the business approval:</strong> Project the data/database migration plan to the business owners and get all required approvals. We may need to address and update the plan if any concerns from the business.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Freeze the Database (Schema or both Schema and Data changes):</strong> Perform a health check on the source database and freeze the schema change activities which means we do not allow any change requests or new releases till the migration is completed. If it is offline migration, we freeze both schema and data changes, for online migration schema changes are restricted but the database will be available for operations and the data changes will be replicated to the target database automatically using DMS, replication, AlwaysOn, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Prepare scripts and backup for necessary objects:</strong> Backup for encryption certificates, scripts for logins, users, roles, permissions, system database objects (if any), agent jobs, drop and recreation scripts for constraints, triggers, foreign keys, etc. It varies based on the target instance type (Single Database, managed instance, etc.) and type of migration (backup &amp; restore, export/import, DMS, etc.).</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Prepare a backup copy:</strong> Before initiating the migration process, ensure that we have the latest backup available at the remote location. It will be crucial to mitigating the surprises.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Create the target environment:</strong> It’s time to create the cloud resources Ex: Azure SQL Database, VM, VPN, ExpressRoute, or VPN Gateway to connect on-premises network with cloud, DMS service, Blob storage, etc.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Execute Migration Project:</h2>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Perform refactoring at on-premises (when applicable):</strong> For example, legacy products may not support the direct upgrade to the latest versions, thus perform the upgrade on-premises and then migrate. For example, SQL Server 2000 to 2019. If we are not using backup-restore or HA-DR features in migration, then no upgrade is required. We simply migrate schema and data to the target using import/export, BACPAC, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Migrate Schema &amp; Data:</strong> Process might vary based on the migration approach (Online, offline, lift-and-shift, refactor, etc.), but these are the general steps involved in cloud data migration. If we do backup &amp; restore it’s more like the simplest approach and we don’t need separate steps for data &amp; schema migration.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Migrate Encryption certificates (If applicable):</strong> If we are using TDE on-premises and using the backup and restore option to migrate the database to Azure SQL Managed Instance or SQL on Azure VM, we need to manually transfer/migrate (backup &amp; upload) the encryption certificate to the cloud instance. If we are using the DMS service, this part will be taken care of by the DMS.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Backup-Restore &amp; synchronize data (if applicable):</strong> If it is online migration, DMS will take care of everything. But, if we need to use the native High Availability feature to migrate data, copy the database backup to the cloud storage (Azure storage, AWS S3) and restore it to the cloud instance (Azure SQL Managed Instance, SQL on Azure VM, Amazon RDS, SQL on AWS EC2), and configure the data sync option. (Ex: replication, AlwaysOn, etc.).</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Schema migration:</strong> Migrate all relations (tables), views, stored procedures, user-defined functions, PL/SQL packages, user-defined data types, constraints, triggers, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Switch off/ mute all constraints at target:</strong> As a best practice we mute all constraints (foreign key, check, triggers, etc.) and indexes at the target environment. So that we can skip all validations while porting data from on-premises to the cloud. Also, it helps for parallel data processing. to make it simple, at the source database itself we generate the script to drop and recreate all constraints and indexes and we simply use them at the target database.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Data Migration:</strong> On a successful schema migration, initiate the data transfer activity for databases. Likewise, we can also initiate the transfer from the shared folder/network drives to cloud solutions (Azure Storage or AWS S3) Ex: Using Azure AzCopy, Azure storage explorer, AWS DataSync, AWS S3 browser premium service, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Switch-on/enable all constraints and indexes:</strong> Since we already got the script to create the constraints and indexes, just run it and validate the output log.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Create logins, users, and permissions:</strong> Since we already have the script ready, SQL Server logins, users and passwords can be created quickly. For windows authentication, we may need to map them to Azure Active Directory accounts for which we need some manual efforts.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Data Migration cutover:</strong> Review migration logs, make sure all data is transferred, and initiate the cutover.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Validate Data Quality and Accuracy / Database testing:</strong> We consider A) Data Quality/functionality B) Connectivity/Integration C) Security and D) Performance E) HA&amp;DR. We use tools for</div>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Data Quality:</strong> Compare schema and data between source and target environments. For example, we can compare the row counts, and metadata (sys.objects, sys.all_columns, sys.key_constraints, sys.check_constraints, sys.default_constraints, sys.check_constraints, sys.tables, sys.foreign_keys, sys.foreign_key_columns, sys.indexes, sys.index_columns, sys.triggers etc.) or we can use tools like SQL Server Data Tools (SSDT) schema and data compare option, or third party solutions like Redgate SQL Compare etc. Also, make sure application functional tests are returning the same data (type, count) in the functional test cases as in the on-premises.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Connectivity:</strong> Validate database/file share accessibility and permissions from all integrated components (applications, services, interfaces, programs, etc.) and make sure it works as in the on-premises.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Security:</strong> Need to identify any loose ends in the cloud architecture. For example, by default restrict access to all and enable access only to the required users, and applications update firewalls and network security groups accordingly. Use strong passwords and enable multi-factor authentication wherever possible. Validate access to sensitive data, compliance requirements (like classification), etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Performance:</strong> Need to test scalability and performance by comparing the baselines and KPIs. We can monitor the database performance manually (using pre-defined scripts with DMV and system objects) or using advanced analytics tools available in Azure (Azure Monitor SQL insights). Compare the performance for the top 5 costly queries (as per the on-prem).</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>HA&amp;DR:</strong> Validate to ensure backups and HA&amp;DR are configured and working as per the SLA.</div>
</div>
</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Final cutover &amp; Go-live:</strong> Switch workload traffic to Cloud. Ex: Map DNS to cloud environment etc.</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<h2 style="margin-top: 2pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; color: #2f5496; font-size: 13pt;">Post-Migration Activity:</h2>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Documentation:</strong> One of the mandatory steps which can help us in improving the migration activity. We document all essential things Ex: timelines, common challenges faced, failures, applied resolutions, logs, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Learn, improve, and repeat:</strong> We learn things from the pre-production workload migrations, based on the predictive analysis and adjust the estimations for production workloads. We repeat the activity till the last database (within the scope) is migrated to the cloud.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Monitor &amp; optimize:</strong> Monitor the resource utilization and adjust the sizing and other configurations if required. Also, seek automation opportunities and integration with the cloud features.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Report to the business:</strong> We process and analyze the complete migration activity (logs, documents, etc.) and prepare reports with the maximum possible KPI information. Ex: Estimated and actual TCO &amp; ROI, migration time is taken for individual databases, total instance, application level, and business vertical level, etc. Success rate where we achieved the target in the terms of time and cost, failure cases, the average number of errors, data volume, etc. Reports must be projected to the business owners to get migration approval.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Handover and Training:</strong> We do hand over the cloud environment to the support team chosen by the customer. We hand over documentation and explain SLAs (service level agreements), configurations, special functions, integrations, monitoring items, maintenance activities, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Final Sign-off &amp; release:</strong> Since we already projected the migration activity, will seek official approval from the customer. On the final sign-off, we call it “Migration Project Completion”</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">This is the overall migration process that I experienced and successfully migrated 4 major enterprise database workloads to Azure and 2 workloads to AWS.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> I understand your proficiency. But does “successfully migrated” mean the complete process went on without any issues?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Well, not exactly. It is almost impossible to execute a migration without dealing with errors or issues. What I meant to say was, we made the data migration activity completed on time by maintaining the data quality. While migrating we faced issues, applied fixes, learned from them, noted the resolutions, predicted, and prevented the issues for the next set of workloads.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Great. Can you describe the most common challenges we may face during the migration? Perhaps talk about the top 2 or 3 issues.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat: </strong>We can prevent 90-95% of problems with a proper migration plan and execution. However, the most common challenges are:</p>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Bad planning:</strong> It is the most common reason that causes migration failures. We need to allocate quality time, clearly define, well-research, and properly map source and target environments.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Bypassing 6R strategy:</strong> We must remember that every App or part of the infrastructure is not designed for the cloud. Sometimes we need to refactor and rearchitect or still, it may not fit the cloud. A simple example is if Government says that all sensitive data must be in a specific region where there is no cloud data center available, we can’t move that application and dependent apps to Cloud. Likewise, some legacy apps require customized infrastructure which may not be possible with the Cloud.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Starting with big deals:</strong> I’ve seen customers rush to start moving all applications into the cloud in one go without proper testing, POC, addressing the problems, and identifying the solutions. If it fails, the impact would be huge. The gradual approach may need some time and cost investment, but it works well.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Failing in cost and timeline estimations:</strong> Unrealistic timelines and cost estimations build a highway to the cloud migration disaster. Improper sizing and resource allocation; If not enough resources, it obviously increases the migration timeline. In another case, if we overspend on resources (allocating more than required), we end up paying more costs. Also, most people miss capturing the hidden costs (data transfer, extra backup, cross-region replication, etc.) during the planning phase.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Not having Plan-B:</strong> We must anticipate the challenges and get ready with the risk mitigation plan. To achieve that, need to check compatibility issues, provide all resolutions, perform POC if required, learn from non-production loads, etc. We should have answers and solutions ready for the most anticipated issues. Ex: Data is corrupted during the migration (need a proper backup), unexpected downtime (DR secondary at on-prem), the network fails (our migration solution must retry automatically from the point it left), if data migration is partially or completely failed (must have a rollback plan), etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Lack of Cloud adoption &amp; Skill Shortage:</strong> It’s a major threat to any cloud implementation. We are moving the legacy IT model to modernized cloud systems. IT operations become decentralized, and roles will change. Apart from our applications and databases, we must consider processes, operations, human resources, automation, technical support, training, education, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Lack of testing:</strong> We must remember that testing is not a one-time activity. It should be done at every stage of our migration plan, allowing us to spot potential issues at the earliest possible stage. The more we test and address problems early on, the smoother our migration will go.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 36pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.34em; left: 0; font-size: 2em;">•</span> </span><strong>Common issues in data migration:</strong> Data migration depends on three components, A) Source system B) Target system and C) Communication channel – Network. If one component fails, migration comes to halt.</div>
<div class="ul" style="margin: 0;">
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Validation failures</strong> &#8211; Running parallel data import processes and not disabling the constraints may lead to validation failures.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Network failures</strong> – if we misconfigure the communication channel it highly impacts the data transfer speed if there is no direct channel (DIRECT CONNECT, EXPRESS ROUTE) between source and target, no guarantee on the consistent bandwidth, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Unexpected outages</strong> – power failures, region-wide outages in the cloud, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Resource max capacity reached</strong> – for example if the data migration service is reached maximum capacity for ongoing tasks that concurrently run, new tasks will be added to the queue until the capacity become available.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Playing with large datasets</strong> – If we select more databases than the allowed limit per single migration instance, the migration service throws an error. Also, we should migrate bigger databases separately.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Data Loss</strong> – Migrating wrong/corrupted/inconsistent data to the target instance might happen because of many reasons. Ex: Missing encryption certificate, manually restarting the failed data transfer without proper precautions, datatype mismatch, collation issues, not choosing the right migration solution to migrate incremental transactions (data changed at source after the initial full data migration), applying wrong data filters, etc.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Compatibility issues</strong> – we are supposed to resolve all compatibility issues and showstoppers before initiating the migration process, missing this step can impact our entire migration activity.</div>
</div>
<div class="li" style="margin: 0;">
<div style="text-align: justify; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8; margin-left: 72pt;"><span style="display: inline-block; position: relative; text-indent: -18pt;"><span style="position: absolute; top: -0.37em; left: 0; font-size: 2em;">◦</span> </span><strong>Security &amp; Compliance</strong> – Not establishing a proper security layer can cause data leaks and put our enterprise at risk. Missing data classification, and policies, and not following certain standards can lead to non-compliant and failure in an audit.</div>
</div>
</div>
</div>
</div>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> That’s a huge list. Have you ever experienced dealing with all those failure cases?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Not exactly. As I mentioned before, I prefer spending quality time in the analysis and planning phase so that we can prevent the majority of the issues. Fixing compatibility issues and the issues that occurred during POC and non-prod workload migrations will help us to anticipate and mitigate the risk in production workloads.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison: </strong>So, Vasumat, it sounds like data migration requires a lot of attention and effort. Do we have any shortcuts? or can we make it simple?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Let me put it this way “Data migration is an extremely high-risk and most critical activity in any migration”. I’ll add some points to prove my statement is correct. A famous global survey says that 83% of data migrations exceed budgets and timelines or fail altogether. And most of the failures are because of bad planning. My experience has taught me the same.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> What was the survey that you were talking about?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Vasumat:</strong> Gartner survey. It’s a global research and advisory firm</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Yes, I know, it’s a leader in global research.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><strong>Alison:</strong> Can you tell me the most complex migration that you have done till today?</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;">In the <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/">next part</a>, we will see how Vasumat explains about a business case where he faced a lot of challenges in migrating the workloads to cloud.</p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<p style="text-align: justify; margin-top: 0pt; padding-top: 0; margin-bottom: 0pt; padding-bottom: 0; line-height: 1.8;"><span style="display: inline-block; height: 1em;"><span style="display: none;">.</span></span></p>
<div class="crp_related     crp-text-only"><h3>Related:</h3><ul><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-1/"     class="crp_link post-4538"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-2/"     class="crp_link post-4547"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-4/"     class="crp_link post-4553"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-5/"     class="crp_link post-4555"><span class="crp_title">A discussion between a CxO and a senior Data&hellip;</span></a></li><li><a href="https://udayarumilli.com/why-every-data-professional-should-care-about-ai-now/"     class="crp_link post-4669"><span class="crp_title">Why Every Data Professional Should Care About AI Now?</span></a></li></ul><div class="crp_clear"></div></div><p>The post <a href="https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/">A discussion between a CxO and a senior Data Architect Part 3</a> appeared first on <a href="https://udayarumilli.com">Data Meets AI</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://udayarumilli.com/a-discussion-between-a-cxo-and-a-senior-data-architect-part-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
