<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Sabiha Ali on Medium]]></title>
        <description><![CDATA[Stories by Sabiha Ali on Medium]]></description>
        <link>https://medium.com/@sabihaali1?source=rss-971e2a67ffee------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*wAt-bUkwp7ynDd7Z1xsQKA@2x.jpeg</url>
            <title>Stories by Sabiha Ali on Medium</title>
            <link>https://medium.com/@sabihaali1?source=rss-971e2a67ffee------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 10 Nov 2026 05:33:57 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@sabihaali1/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Tensors Decoded]]></title>
            <link>https://medium.com/@sabihaali1/tensors-decoded-5b4a1cf1aac7?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/5b4a1cf1aac7</guid>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[mlops]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[tensorflow]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sun, 10 Mar 2024 11:55:37 GMT</pubDate>
            <atom:updated>2024-03-10T11:55:37.530Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/441/1*J_vKkohunkBhntgX6ZLS2A.png" /></figure><p>Hey there, curious minds! Today, we’re delving into the intriguing realm of tensors — the unsung heroes of machine learning. But don’t worry if you’re new to this; we’re here to unravel the mystery and shed some light on these fascinating creatures.</p><h3><strong>Demystifying Tensors</strong></h3><p>Alright, let’s start with the basics. In the realm of machine learning, tensors are like the Swiss Army knives — versatile, powerful, and incredibly handy. Think of them as fancy containers that can hold a bunch of numbers arranged in various ways. From simple scalars to complex multidimensional arrays, tensors can handle it all with ease.</p><p>Now, why are tensors such a big deal? Well, they’re like the building blocks of machine learning models. Tensors are a fundamental data structure used to represent multi-dimensional arrays of numerical data. They are essentially generalizations of matrices to higher dimensions. Tensors can have arbitrary shapes, including scalars (0-dimensional tensors), vectors (1-dimensional tensors), matrices (2-dimensional tensors), and higher-dimensional arrays.</p><p>Whether it’s processing data, training models, or making predictions, tensors are everywhere, quietly doing the heavy lifting behind the scenes. But it’s very rare that higher than 5D tensors are used in machine learning.</p><h3><strong>Exploring the Dimensions</strong></h3><p>Now, here’s where things get interesting. Tensors come in different flavors, each with its own unique characteristics. Let’s break it down:</p><p>0-D Tensors (Scalars): These are like the solo travelers of the tensor world — single numbers without any fuss. Scalars are quantities that have only magnitude and no direction. Think of them as the simplest form of data, representing things like temperature, mass, or any other single value.</p><p>1-D Tensors (Vectors): Vectors add a bit of spice to the mix by introducing directionality. So, they have value and direction.They’re like arrows pointing in a specific direction, representing sequences of numbers like stock prices over time.</p><p>2-D Tensors (Matrices): Matrices take things up a notch by organizing data into rows and columns. They’re perfect for representing things like images, tables, or any other two-dimensional data.</p><p>N-D Tensors: And then we have the big guns — N-dimensional tensors. In mathematics and particularly in the context of tensor theory and linear algebra, an “n-dimensional tensor” refers to a multi-dimensional array of numbers. This means it’s a generalization of scalars, vectors, and matrices to higher dimensions.</p><p>An n-dimensional tensor can have an arbitrary number of dimensions, and each dimension can have an arbitrary size. For example:</p><p>- A scalar is a 0-dimensional tensor.</p><p>- A vector is a 1-dimensional tensor.</p><p>- A matrix is a 2-dimensional tensor.</p><p>- An n-dimensional tensor can be thought of as a generalization of these concepts to higher dimensions.</p><p>Collection of 1d=2D tensors</p><p>Collection of 2d=3D tensors</p><p>Collection of 3d=4D tensors</p><p>Collection of 4d=5D tensors and so on</p><p>In the space of ML, we do not usually use more than 5D tensors.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/836/1*MLFyOGkEuhOHPREpQxBdsQ.png" /><figcaption>Image courtesy Google</figcaption></figure><h3><strong>Tensors in Action</strong></h3><p>Now that we’ve got the basics down, let’s see how tensors come to life in the real world:</p><p>1. Sentiment Analysis: Imagine analyzing the sentiment of a sentence to figure out if it’s positive or negative. With the help of 1-D tensors, machine learning models can crunch through text data and make sense of it all.</p><p>2. Image Processing: Ever wondered how computers see the world? Well, with the magic of 2-D tensors, images are transformed into grids of numbers, allowing machines to recognize objects, enhance photos, and even create art.</p><p>3. Video Processing: Videos are like a series of images played in rapid succession. By using 3-D tensors, machines can process videos frame by frame, capturing every pixel’s color and movement along the way.</p><h3><strong>Practical Tips and Tricks</strong></h3><p>But wait, there’s more! Before you dive headfirst into the world of tensors, here are a few practical tips to keep in mind:</p><p>- Tensor Operations: Whether it’s adding, multiplying, or convoluting, tensors can handle a wide range of mathematical operations. Understanding these operations is key to building robust machine learning models.</p><p>- Memory Management: With great power comes great responsibility — and that includes managing memory efficiently. Techniques like tensor slicing and data compression can help optimize memory usage and improve overall performance.</p><ul><li>Hardware Acceleration: To turbocharge your tensor computations, consider harnessing the power of specialized hardware accelerators like GPUs and TPUs. These beasts are specifically designed to crunch through tensors at lightning speed, giving your models an extra edge.</li></ul><p>In conclusion Tensors help us make sense of all kinds of data, from simple numbers to complex images and sounds.</p><p><strong><em>Happy tinkering!</em></strong></p><p>By Sabiha Ali, Solutions Architect, ScaleCapacity</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5b4a1cf1aac7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Machine learning lifecycle]]></title>
            <link>https://medium.com/scalecapacity/machine-learning-lifecycle-80c4a265e589?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/80c4a265e589</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[aws]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Mon, 19 Feb 2024 11:32:13 GMT</pubDate>
            <atom:updated>2024-02-19T11:44:25.013Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/692/1*55L6wUgMq1JbpuGY4TfgDg.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Machine learning life cycle is a process to build an efficient machine learning project.</p><p>ML DLC- machine learning development life cycle.</p><p>There are many steps to the machine learning lifecycle.</p><h3><strong>Identify the problem:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/308/1*WD-POZ6KQEM_2vQWkLE6rQ.png" /><figcaption>Image courtesy Google</figcaption></figure><p>The initial and foundational step in any machine learning endeavor is to identify and frame the problem accurately. This stage is paramount, as it sets the trajectory for the entire project. Given the significant costs associated with machine learning practices, there’s little room for aimless exploration.</p><p>Understanding the problem thoroughly ensures that resources are allocated efficiently and that efforts are directed towards addressing the core challenge at hand. It involves delineating the problem scope, defining objectives, and clarifying constraints and requirements.</p><p>This meticulous approach not only minimizes the risk of veering off course but also maximizes the likelihood of achieving meaningful and actionable results. Therefore, framing the problem meticulously serves as the cornerstone upon which the entire machine learning journey is built.</p><h3><strong>Data collection:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/318/1*De-td51jlPrH-DXnUvrV2A.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Once we’ve identified and clarified the problem at hand, the next crucial step is gathering data. As machine learning students, we have a plethora of resources available for data acquisition.</p><p>Often, data can be readily accessible in CSV format from various websites, simplifying the process significantly. Alternatively, we may need to utilize APIs to extract data, requiring coding to pull information in JSON format, which can later be transformed into the desired format for our analysis.</p><p>For more complex scenarios, such as obtaining data from websites where direct access isn’t available, we may resort to web scraping techniques.</p><p>However, accessing data directly from an organization’s production database isn’t always feasible, especially if it’s actively being used. In such cases, we establish data warehouses, where we extract, transform, and load the data, utilizing the warehouse as our primary data repository.</p><p>Additionally, data may be distributed across various clusters, necessitating the extraction of information from these disparate sources. Therefore, the process of gathering data involves navigating through these various avenues to pinpoint and collect the required data effectively.</p><h3>Data preprocessing:</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*j3t8yZTp5lzD9cXu.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Data preprocessing is a critical phase in the machine learning pipeline, as it ensures that the collected data is clean, consistent, and conducive to accurate model training. Often, the data we gather is far from pristine; it may contain structural issues, outliers, missing values, noise, or discrepancies in formats due to disparate sources.</p><p>In this preprocessing stage, several tasks are undertaken to whip the data into shape. These include removing duplicates to streamline the dataset, handling missing values through imputation or deletion strategies, identifying, and addressing outliers that could skew model performance, and standardizing the scale of the data to ensure uniformity across features.</p><p>The overarching goal is to transform the raw data into a standardized format, which is readily interpretable by machine learning models. By undertaking these preprocessing tasks diligently, we pave the way for more accurate model training and ultimately enhance the robustness and reliability of our machine learning solutions.</p><h3><strong>Exploratory Data Analysis:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/442/1*CPSiYR-Fre0ZK3K5kNQMsg.png" /><figcaption>Image courtesy Google</figcaption></figure><p>In the data analysis phase, we delve deep into understanding the relationships between the input features and the output variable. This involves thorough experimentation with our existing dataset to uncover patterns and correlations.</p><p>One key aspect of this stage is visualization, where we represent the data graphically to gain insights. Through techniques like univariate analysis, we explore individual columns, examining distributions, central tendencies, and variability. Bivariate analysis allows us to investigate the relationships between pairs of columns, identifying potential dependencies or associations. Furthermore, multivariate analysis expands this exploration to consider interactions among multiple variables simultaneously.</p><p>Detecting outliers is another crucial task during this phase, as these anomalies can significantly impact the performance and accuracy of our models. Additionally, we address challenges such as imbalanced or biased data, ensuring that our analyses are not skewed by disproportionate representation or inherent biases within the dataset.</p><p>By rigorously analyzing and understanding our data through various lenses, we equip ourselves with the insights necessary to make informed decisions and build robust machine learning models.</p><h3><strong>Feature engineering and selection:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/229/1*01whG61YjFIhcNqSr7jhOw.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Features, often referred to as inputs in machine learning, play a pivotal role in determining the output of a model. These input columns are essentially the characteristics or attributes of the data that are used to make predictions or classifications.</p><p>In the process of feature engineering, we manipulate or create new features based on existing ones to enhance the predictive power of our models. This could involve merging or transforming features to extract more meaningful information. For instance, combining the number of bedrooms and bathrooms to derive a single metric like total square footage can provide a more comprehensive representation of the property’s size.</p><p>Furthermore, feature selection is a crucial step in model development where we strategically choose the most relevant features from the pool of available inputs. This involves identifying and retaining only those features that have the most significant impact on the target variable, thus improving model performance and efficiency.</p><p>By carefully engineering and selecting features, we optimize the model’s ability to accurately capture relationships within the data and make informed predictions or decisions.</p><h3><strong>Model Training, Evaluation and Selection:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/358/1*IUzO7TVrccQu5kTmxo7FKQ.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Once all the desired features have been collected, the next crucial step is model training. During this phase, we explore various algorithms to assess their performance on the data. It’s rare to rely solely on one algorithm; instead, we test multiple algorithms to determine which one best suit our specific dataset and problem.</p><p>After applying each algorithm, we collect the results and evaluate their performance using predefined metrics. These metrics provide insights into how well each model is performing in terms of accuracy, precision, recall, F1-score, or other relevant indicators. Based on these performance metrics, we can compare the effectiveness of different algorithms.</p><p>Once we’ve identified a promising algorithm, we proceed with parameter tuning. Every algorithm comes with its own set of parameters, akin to settings, which can significantly impact model performance. Through parameter tuning, we systematically adjust these settings to optimize the model’s performance on our data.</p><p>By iteratively testing and refining our models, we aim to identify the most effective algorithm and fine-tune its parameters to achieve the best possible performance for our specific problem and dataset. This meticulous process ensures that our machine learning model is robust, accurate, and well-suited to address the task at hand.</p><h3><strong>Model Deployment:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/598/1*ftgal6jusiI9ODAblhVxvA.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Once the model development process is complete, the next phase involves deploying the model into a software application. This application could take various forms, such as a mobile app, desktop app, or website, depending on the intended use case and target audience.</p><p>To deploy the model, we typically create a binary file using specialized tools, encapsulating the trained model’s functionality. This binary file is then integrated into an API (Application Programming Interface), which acts as an interface for interacting with the model. The API processes the input using the model, and returns the results in JSON format.</p><p>For example, if a user fills out a form in the application, the data is passed to the Python application, which in turn sends a request to the API. The API utilizes the binary file containing the trained model to process the input data and generate the desired output, which is then returned to the user through the application interface.</p><p>To host and deploy the model and API, various cloud platforms such as AWS (Amazon Web Services), GCP (Google Cloud Platform), Heroku, etc., are commonly utilized. These platforms offer scalable and reliable infrastructure for hosting applications, ensuring that the model is available and responsive to user requests.</p><h3><strong>Testing:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/310/1*EJbqjl34JRdajGmTn-ckAQ.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Testing the deployed model is a crucial phase in the development cycle to ascertain its performance in real-world scenarios. A common method employed for this purpose is A/B testing. In A/B testing, users are randomly divided into two groups: one group interacts with the current version of the model (control group), while the other interacts with an updated version (experimental group). By comparing the outcomes of both groups, we can assess the effectiveness of the updated model.</p><p>Should the results of A/B testing fail to meet the desired benchmarks, it becomes imperative to revisit earlier stages of the development process to rectify any shortcomings. This iterative approach ensures that the model is refined and optimized to meet the required standards.</p><p>Upon successful completion of testing and achieving satisfactory results, the focus shifts towards optimizing the process. Optimization involves fine-tuning various aspects of the model, such as enhancing its efficiency, scalability, or user experience, to further improve its performance and usability.</p><p>Through rigorous testing and optimization, the model can maintain its efficacy and relevance, meeting the needs and expectations of users in diverse real-world scenarios. This iterative cycle of testing and optimization is fundamental to the continuous improvement and evolution of the model.</p><h3><strong>Optimize:</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/275/1*kqQ2r8Eb9nP_wslLn0yx6Q.png" /><figcaption>Image courtesy Google</figcaption></figure><p>Optimization in the context of machine learning involves several critical steps to ensure the continued efficacy and relevance of the model over time.</p><p>Firstly, it’s essential to take a backup of both the model and the data at regular intervals. This ensures that in case of any unexpected issues or failures, we have a fallback option to restore the system to a previous state, minimizing downtime and data loss.</p><p>Additionally, setting up a model rollback mechanism is crucial. This mechanism allows us to revert to a previous version of the model if any updates or changes lead to undesirable outcomes or performance degradation. By implementing model rollback procedures, we can mitigate risks and maintain the integrity of the model throughout its lifecycle.</p><p>Another aspect of optimization involves determining the frequency of retraining the model. Over time, the underlying data distribution may change, rendering the model’s predictions less accurate or reliable — a phenomenon often referred to as “model rot.” To prevent this, it’s essential to establish a retraining schedule based on factors such as data drift, seasonality, or changes in user behavior. By retraining the model at regular intervals, we can adapt it to evolving data patterns and ensure its continued effectiveness in making accurate predictions.</p><p>Overall, optimization in machine learning entails proactive measures such as backups, rollback mechanisms, and regular retraining to safeguard against potential issues and maintain the model’s performance and relevance over time.</p><p>In conclusion, the lifecycle of a machine learning (ML) project is a dynamic and iterative process that involves several key stages, each crucial for developing robust and effective models.</p><p>By Sabiha Ali , Solutions Architect, ScaleCapacity</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=80c4a265e589" width="1" height="1" alt=""><hr><p><a href="https://medium.com/scalecapacity/machine-learning-lifecycle-80c4a265e589">Machine learning lifecycle</a> was originally published in <a href="https://medium.com/scalecapacity">ScaleCapacity</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Machine Learning Classification]]></title>
            <link>https://medium.com/scalecapacity/machine-learning-classification-8933c382609d?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/8933c382609d</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[algorithms]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 10 Feb 2024 12:20:23 GMT</pubDate>
            <atom:updated>2024-02-10T12:20:23.135Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/658/1*sZlwKyda-eHgDYSLpMNvlw.png" /><figcaption>Image from Google</figcaption></figure><p>Machine learning algorithms can be classified based on the level of supervision required into 4 main categories as <strong>Supervised, Unsupervised, Semi supervised and Reinforcement learning.</strong></p><h3><strong>Supervised</strong></h3><p>When discussing supervised learning, we typically categorize it into two main types: Regression and Classification. In supervised learning, we have input data along with corresponding output labels. The goal is to establish the relationship between this input and output through the use of algorithms. Once the model is trained on this data, it can provide predictions for new inputs based on the learned patterns.</p><p>For instance, consider a dataset containing information about individuals and their job placements, including factors like age, IQ score, and whether they secured a job or not. The task of a machine learning algorithm in this scenario is to identify a mathematical relationship between the input variables (such as IQ and age) and the output variable (job placement). Subsequently, when provided with details of a new candidate, like an IQ of 67 and age 25, the algorithm can predict the likelihood of job placement.</p><h4>Regression and Classification</h4><p>The choice between using a regression or classification model wothin supervised learning depends on the nature of the desired output. In regression models, the goal is to predict a continuous value within a certain range. This is suitable when predicting quantities like salary based on input variables. On the other hand, classification models are used when the output falls into distinct categories. For example, determining whether a candidate will get a job (yes or no) based on their attributes.</p><p>To illustrate further, if the algorithm is tasked with analyzing images to count the number of traffic lights present, it would utilize a regression model since the output is a numeric value representing the count. Conversely, if the objective is to detect the presence or absence of a traffic light in an image, a classification model would be employed to categorize images as containing a traffic light or not.</p><p>In summary, supervised learning involves training algorithms to make predictions based on labeled data, with regression models used for predicting continuous values and classification models for categorizing data into distinct classes or categories.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6zwhyFaCbdADgjNcUeB3-A.png" /><figcaption>Image from Google</figcaption></figure><h3>Unsupervised</h3><p>Unsupervised machine learning involves extracting insights from data without labeled outcomes. Consider a scenario with a dataset of 10,000 individuals, their IQ scores, and ages, yet lacking information on their job placements. In such cases, predicting outcomes is unfeasible due to the absence of the variable to be predicted. However, unsupervised learning methods like clustering, dimensionality reduction, anomaly detection, and association rule learning can still yield meaningful insights from the data.</p><h4>Clustering</h4><p>Clustering endeavors to group similar data points together, enabling the segregation of data into distinct clusters. This process aids in identifying patterns or behavioral trends within the dataset, facilitating subsequent labeling or deeper understanding of the data’s structure. Moreover, clustering is not limited to two-dimensional data and can effectively handle multi-dimensional datasets, enhancing its versatility and applicability.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iNPcQGMu2W6upFI_5PyeLA.png" /><figcaption>Image from Google</figcaption></figure><h4>Dimensionality reduction</h4><p>Dimensionality reduction techniques aim to streamline datasets by reducing the number of features while preserving essential relationships. By eliminating redundant or irrelevant features, dimensionality reduction simplifies analysis and visualization, particularly beneficial when dealing with complex datasets with numerous input variables. For instance, merging features like the number of bedrooms and bathrooms into a single metric like square footage can streamline the dataset without sacrificing predictive accuracy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/738/1*d2U9K8gbGJCRJt8b7EjtAg.png" /><figcaption>Image from Google</figcaption></figure><h4>Anomaly detection</h4><p>Anomaly detection, as its name suggests, identifies unusual patterns or outliers within data. This capability is invaluable in various domains, such as detecting fraudulent transactions in credit card data or identifying defects in manufacturing processes. By flagging anomalies, this technique helps maintain data integrity and enables timely intervention to address potential issues.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/675/1*fWjJRgdAV4vEbNR0hllBOA.png" /><figcaption>Image from Google</figcaption></figure><h4>Association rule</h4><p>Association rule learning focuses on uncovering relationships between variables within large datasets. For instance, in a retail setting, this method might reveal patterns in the arrangement of items on shelves, highlighting associations between products that inform strategic merchandising decisions. By elucidating these relationships, association rule learning offers valuable insights into consumer behavior and preferences.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/545/1*zaluV6ZPoFJj2_dZA3zgLA.png" /></figure><p>In summary, unsupervised machine learning techniques provide valuable tools for extracting insights and uncovering patterns within data, even in the absence of labeled outcomes. Whether through clustering, dimensionality reduction, anomaly detection, or association rule learning, these methods empower analysts to derive meaningful conclusions and drive informed decision-making processes.</p><h3>Semi supervised learning</h3><p>Semi-supervised learning occupies a unique space between supervised and unsupervised learning paradigms. In semi-supervised learning, only a fraction of the data is labeled, while the majority remains unlabeled. This approach harnesses both labeled and unlabeled data to train models, enabling them to make predictions or identify patterns more effectively.</p><p>The fundamental premise driving semi-supervised learning is the scarcity and expense of labeled data. Annotated data often necessitates significant human effort and time, contrasting with the abundance and accessibility of unlabeled data. By leveraging both labeled and unlabeled samples, semi-supervised learning optimizes the utility of available resources, enhancing model performance.</p><p>Consider a practical example: imagine organizing a collection of family photos on a computer. Initially, these images are unlabeled. As you identify individuals in the pictures — let’s say, recognizing your dad — the system starts to categorize them accordingly. By iteratively assigning labels based on user input, the system refines its clustering algorithm, grouping similar images together. This iterative process embodies the essence of semi-supervised learning, as it utilizes both labeled (identified individuals) and unlabeled (unidentified individuals) data to improve the organization and categorization of the photo collection.</p><p>In summary, semi-supervised learning represents a strategic compromise between the resource-intensive nature of supervised learning and the exploratory potential of unsupervised learning. By capitalizing on the combination of labeled and unlabeled data, this approach maximizes the efficiency and effectiveness of machine learning models, enabling them to uncover meaningful insights and make accurate predictions in various applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i9ifyxbVStPxAFnDa7Jssg.png" /><figcaption>Image from Google</figcaption></figure><h3>Reinforcement Learning</h3><p>Reinforcement learning represents a paradigm shift in machine learning where traditional input-output datasets are replaced by an interactive framework where an agent learns to make decisions through direct interaction with an environment. In this setup, the agent is analogous to an individual navigating a new city without prior knowledge of its workings. Just as a newcomer to a city learns through trial and error, the agent learns by experimenting with different actions and observing the outcomes.</p><p>The crux of reinforcement learning lies in the feedback mechanism provided to the agent. Instead of labeled data, the agent receives feedback in the form of rewards or penalties based on the outcomes of its actions. Much like how an individual in a new city gauges the success of their actions through the responses they receive from the environment, the agent adjusts its behavior to maximize cumulative rewards over time.</p><p>This process mirrors the adaptive nature of human learning, where mistakes are opportunities for growth. Through repeated interactions with the environment, the agent refines its decision-making strategies, gradually uncovering optimal policies to achieve its goals. Just as a newcomer to a city gradually learns the nuances of its streets and social dynamics, the agent acquires a deeper understanding of the environment it operates in.</p><p>Ultimately, reinforcement learning empowers machines to autonomously learn and adapt to complex environments without explicit guidance. By leveraging trial and error alongside feedback mechanisms, agents can navigate uncertain terrains, optimize resource allocation, and achieve predefined objectives. Much like the journey of exploration and discovery undertaken by a newcomer to a city, reinforcement learning embodies the essence of learning through experience and interaction.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*I7_lk9J4Cy253SS-bVHEng.png" /><figcaption>Image from Goolgle</figcaption></figure><p>Stay tuned for more on Machine Learning and Cloud</p><p><strong>Sabiha Ali, Solutions Architect, ScaleCapacity.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8933c382609d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/scalecapacity/machine-learning-classification-8933c382609d">Machine Learning Classification</a> was originally published in <a href="https://medium.com/scalecapacity">ScaleCapacity</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Columnar database and Row database — how are they different?]]></title>
            <link>https://medium.com/scalecapacity/columnar-database-and-row-database-how-are-they-different-2efa8e4c38a3?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/2efa8e4c38a3</guid>
            <category><![CDATA[basics]]></category>
            <category><![CDATA[beginner]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[data]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 28 Jan 2023 13:54:27 GMT</pubDate>
            <atom:updated>2023-03-27T17:31:39.986Z</atom:updated>
            <content:encoded><![CDATA[<h3>Columnar database and Row database — how are they different?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*n3qZQCbz9RD9Ah54rnU-7w.png" /></figure><p>We want to make our databases fast so that the queries we run should return the results fast.</p><p>By changing how we store the data in our database we can make the database respond to the queries and optimize our database to either serve the <strong>analytical workload or the transactional workload </strong>which we call <strong>OLAP and OLTP.</strong></p><p>Computers in general, even databases, read the data from disks, and <strong>hard disks</strong>. We are not talking about the RAM data which gets deleted once the computer is shut down but we are talking about the hard disks where the data is stored permanently.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/184/1*rfR4B73WBwU2d39uc0uiWQ.png" /><figcaption>Hard disk</figcaption></figure><p>On these storage disks data is stored in the form of blocks. it is evident that if the computer has to read fewer blocks, it is going to take less time and if the computer is going to read data from more blocks, it is going to take more time.</p><p>If the data we query are on fewer blocks, then the response of the database would be faster.</p><p><strong>Let us understand this with an example</strong></p><p>This is a sample sales table</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/434/1*TQCOx4eT_LV5f3bVT2cv1w.png" /><figcaption>Sales Table</figcaption></figure><p><strong>Let us see how this data will be stored in a row-based data store.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/468/1*0HrEmbVgtD0elOF5KDq6jw.png" /><figcaption>Row-based data store</figcaption></figure><p>In the row-based format, the entire record is stored in one block meaning as you can see in the figure, the record of the first customer — — -the customer name, item ID, and sales amount is stored in the first block.</p><p>Therefore, if we are looking for the first customer&#39;s details you can find all that in one single block. This type of data store will be great for transactional databases where we need the details of a single entity.</p><p>If I have to take the average of all the sales then I would have to scan through all five blocks of data, resulting in more IO and more cost.</p><p><strong>Let us see how this data will be stored in a column-based data store.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/468/1*IgXBO9vMTWVgVdw88gYpTQ.png" /><figcaption>Column-based data store</figcaption></figure><p>Data in the column stores are stored differently. Here entire columns are written down inside one block so here we have all the customer names in one block all the item IDS in the next block and all the sales amounts in the third block.</p><p>So, instead of having each customer’s data together, we have the whole column of data together.</p><p>If I want to access the sum or the average of all the sales amount this database would be fast because everything would be saved in one single block.</p><p>I will use this type of database for analytical queries like sum or averages etc</p><p>Columnar database is also very suitable for<strong> compression</strong> because each block will have the same type of data either numbers or strings etc. so it would be very easy to compress the data in the block efficiently.</p><h3><strong>How would queries work with these different storage methods</strong></h3><h3>Transactional style query</h3><p>Eg:</p><p>SELECT Customer_name , Sales</p><p>FROM data</p><p>WHERE Item_ID=3000</p><p>This is a transactional style query where we need all details of one person.</p><p>In the row database, we need to scan the data from just one block whereas, in the columnar database, we would have to scan through a lot of blocks.</p><h3>Analytical style query</h3><p>Eg:</p><p>SELECT Item_ID, count(1)</p><p>FROM data</p><p>GROUP BY Item_ID</p><p>Here we want to count how many observations we have from each Item_ID, which could be done by reading a single block in the Columnar database, whereas in the row database, we would have to scan through all the blocks</p><p>Happy Databasing !!!!</p><p>By, Sabiha Ali, Solutions Architect, ScaleCapacity Inc.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2efa8e4c38a3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/scalecapacity/columnar-database-and-row-database-how-are-they-different-2efa8e4c38a3">Columnar database and Row database — how are they different?</a> was originally published in <a href="https://medium.com/scalecapacity">ScaleCapacity</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AWS Data Lake]]></title>
            <link>https://medium.com/@sabihaali1/aws-data-lake-7be0707e796e?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/7be0707e796e</guid>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[s3]]></category>
            <category><![CDATA[data]]></category>
            <category><![CDATA[analytics]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 14 Jan 2023 08:21:05 GMT</pubDate>
            <atom:updated>2023-01-16T18:02:26.751Z</atom:updated>
            <content:encoded><![CDATA[<p>If you want your organization to successfully generate business value from their data, you will be doing some kind of analytics with your data like machine learning over files like log files and click streams and social media or Internet connected devices. Traditional data storage and analytic tools can no longer provide the agility and flexibility required to deliver relevant business insights. That’s why many organizations are shifting to a data lake architecture.</p><p>Let us assume you have an organization, which is receiving data from many sources giving you some examples let’s say you are getting some data from on premises you’re also getting some data from your website clicks you are also getting some CSV files to analyze, and you also want to do some machine learning analysis on some of this data.</p><p>All this data is essential to be stored for analysis, some of this data could be purged after some time and some must be retained for longer period of time.</p><p>Data lakes can be called as a centralized repository that will allow you to store all your structured data and your unstructured data at any scale.</p><p>Now can we say that this is the same as data warehouse. that would be a good question, but a data warehouse is a database which is optimized to analyze relational data which is coming in the line of business applications. It already has a data structure which is optimized for fast SQL queries whereas a data lake not only stores relational data but also non-relational data, the schema is never defined when the data is captured.</p><p>AWS uses S3 as your data lake foundation. This will also eliminate server management.</p><p>When we build a data lake on Amazon S3 we can pair it up or integrate it with other native AWS services to run</p><p>· big data analytics</p><p>· artificial intelligence</p><p>· machine learning</p><p>· high performance computing</p><p>· media processing applications etc…</p><p>To gain the insights from the unstructured data we can couple it with services like</p><p>AWS lake formation and AWS glue to simplify the creation of the data lake itself and also to simplify the analysis of the curated data in the data lake</p><p>Also services like Amazon Glue, Amazon EMR, Amazon Athena also makes it very easy to query your data lake directly.</p><figure><img alt="An example showing AWS Data Lake and how masssive data can be analysed using that" src="https://cdn-images-1.medium.com/max/1024/1*hatKxPWAJiyedZDkCdEqpw.png" /></figure><p>Happy Learning!!!!!!</p><p>By</p><p>Sabiha Ali, Solutions Architect, ScaleCapacity</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7be0707e796e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ALB Vs NLB]]></title>
            <link>https://medium.com/@sabihaali1/alb-vs-nlb-e976aa9aa7e4?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/e976aa9aa7e4</guid>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[aws-cloud]]></category>
            <category><![CDATA[aws-ec2]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[aws-certification]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 09 Apr 2022 12:29:00 GMT</pubDate>
            <atom:updated>2022-04-09T12:29:00.819Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/713/1*AKbNOz1tJCfTsGCVWULi2A.png" /></figure><p>Listed below are some features of NLB and ALB which can help us choose the right load balancer in the right scenarios.</p><h3>Layers and Protocols</h3><p>Application load balancer is a layer seven load balancer and it listens on HTTP &amp; HTTPS that means it understands the information carried by HTTP or HTTPS protocol, but it will not understand any other layer seven protocols like SMTP, SSH or other custom protocols .</p><p>Network load balances function at layer 4 so they are a layer 4 device. This means that they can interpret the TCP,UDP but they cannot understand HTTP or HTTPS</p><h3>Session Stickiness</h3><p>Application load balancer is a layer 7 load balancer and it can listen to layer 7 content like custom headers, user location and application behavior, hence Application load balancer can inspect the layer 7 content and make the decisions based on this information. It supports cookies and session stickiness.</p><p>NLB cannot understand headers or cookies and they do not have any sessions stickiness because these are a layer 7 entities and NLB works with layer 4.</p><h3>Unbroken SSL Passthrough</h3><p>The one thing which we have to take care with ALB is the connection is always always terminated on the ALB, so you cannot have an unbroken SSL from your customers to the application instead every connection will be terminated in the load balancer and then a new connection is made to the application in the back. So an SSL certificate is mandatory for the ALB if you are expecting HTTPS traffic. An unbroken SSL could be very important to security teams and due to this they sometimes tend to leave out the ALB.</p><p>Whereas Network load balances can forward the TCP straight to the backend instances which means an unbroken encryption can be done without the load balancer terminating the connection and creating a new one.</p><h3>Speed</h3><p>Application load balances are slower than the network load balancers. Why? This is because Network load balancers work in the layer 4 whereas Application load balancers work in layer 7, so more layers or more levels of networks to process for the Application load balancer. So more the processing slower the results. So if you are very keen on the performance then you will have to think about going for Network load balancers. The wonderful thing about Network load balancers is, they are really fast and they can go up to millions of request per second.</p><h3>Health Checks</h3><p>Network load balancer and Application load balancer can both do a health check but Network load balancers can merely check the connection health. It will only check the ICMP ping, TCP handshake and it is not application aware, it cannot check the application health. Whereas application load balancer can also evaluate the application health, so in addition to just checking for a successful network connection, it also evaluates the application health.</p><h3>Static IP Support</h3><p>Another advantage of network load balancer is it can have a static IP configured which is useful for white listing if you have any corporate client firewalls.</p><h3>Private link Support</h3><p>Another important thing about the network load balancer is it can be used with private link to provide services to other VPC</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e976aa9aa7e4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Let Us Decipher the ARN]]></title>
            <link>https://medium.com/@sabihaali1/let-us-decipher-the-arn-71fe189d42db?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/71fe189d42db</guid>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[cloud]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[aws-security]]></category>
            <category><![CDATA[aws-certification]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 19 Mar 2022 11:10:16 GMT</pubDate>
            <atom:updated>2022-03-19T11:10:16.655Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/456/1*olxImcR3vpoOHUVzk0Zg-A.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/734/1*x9SKQGmoluGD6XfzfJwFIw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/741/1*CWNd-xY_CQF7EdYMVxK4Pw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/735/1*ELLLNu4T_q7KlF-RXPmw5w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/741/1*XyJLXvhF08GsbFNDZ-Jo_A.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/732/1*3QmPX_1z_M1NffwK9YFM5w.png" /></figure><p>Happy Learning Guys !!!!</p><p>Sabiha Ali, Solutions architect, Scalecapacity</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/235/1*tbN5GeES0x2Gb0jEz7zr1A.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=71fe189d42db" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Let us Understand IPV6]]></title>
            <link>https://medium.com/@sabihaali1/let-us-understand-ipv6-7dc447954c85?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/7dc447954c85</guid>
            <category><![CDATA[aws-certification]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[ipv6]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[security]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 12 Mar 2022 08:13:45 GMT</pubDate>
            <atom:updated>2022-03-12T08:13:45.828Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/542/1*uI0aYWmzG8YPhuCt2cIFjA.png" /></figure><p>In AWS, when you create a VPC, its a private space. All AWS resources are not automatically given a public IPV4 address. The resources in the private subnets cannot communicate with the public internet directly, so we use a process called NAT- Network Address Translation. To understand NAT better look into <a href="https://medium.com/@sabihaali1/let-us-enter-the-nat-gateway-2474556b77a3">(NAT Gateway)</a>.</p><p>With IPV6 the poverty of IP addresses have come to an end. There is no realistic challenge of running out of IPV6, so there is no concept of Public and Private IP addresses. No need of NAT. The number of IPV6 addresses are so huge that even if you pin one IPV6 address to every single thing in the world it wont be exhausted. So its no surprise that all IPV6 addresses within AWS are publicly routable.</p><p><strong><em>How do we enable IPV6 in a VPC in AWS?</em></strong></p><p><strong>Step1</strong>: We have to enable IPV6 on a VPC. We can either bring our own IPV6 or use the range from AWS( more common approach). AWS allocates a unique /56 range of IPV6. What makes it unique in the range is the hex pair which is used at the end of the IP. The hex pair can range from 00 to ff accounting for 256 separate /64 networks in a VPC.</p><p><strong>Step 2</strong>: We enable the IPV6 range for the subnets as well.</p><p><strong>Step </strong>3: Add proper route entries in the route tables.</p><p>Routing of IPV6 is handled separately than IPV4, so we have the same Route tables and same internet gateway but different routes-IPV4 routes and IPV6 routes. So now the IGW( internet gateway of the vpc) can route the traffic both incoming and outgoing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/556/1*YUMCkAx9rwD7kUVP6VQN1Q.png" /></figure><p>We had the gift of a NAT gateway while using our IPV4 addresses which would protect our instances from traffic generated outside the VPC. But now we know that IPV6 does not support NAT. But there is an equivalent to the NAT here- <strong>Egress only Internet Gateway.</strong> This allows the traffic out but not in. You need to make minor changes in the route tables for this.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/616/1*jvCrPXBVGHzaSE9pjy7zdg.png" /></figure><p>And yes a single VPC can have both IGW and Egress Only IGW.</p><p>Another important point about the Egress only IGW is it is stateful and you cannot associate a security group with it.</p><p><strong>Step 4</strong>: Configure the IPV6 on the services wherever you want. Also remember not all AWS services support IPV6.</p><p>Happy Learning Guys !!!!</p><p><strong>Sabiha Ali, Solutions Architect, ScaleCapacity</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7dc447954c85" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Let us open the Gateway Load Balancer]]></title>
            <link>https://medium.com/@sabihaali1/let-us-open-the-gateway-load-balancer-a47b692dfc25?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/a47b692dfc25</guid>
            <category><![CDATA[security]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[aws-certification]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[networking]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 26 Feb 2022 07:25:30 GMT</pubDate>
            <atom:updated>2022-02-26T07:25:30.626Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/471/1*u0dsCRZAfLrTrQD_57CAZg.png" /></figure><p>Large enterprises have an established network structure and firewalls, intrusion detection and prevention systems, and deep packet inspection systems. They use tools from various vendors they trust. These tools were great for the customers but on-prem architecture forces us to overprovision and the whole design process is different.</p><p>Now with the cloud migration in place many of these awesome vendors are AWS partners and we find in AWS marketplace highly sophisticated, virtualized versions of these software. These partners have tremendous value, decades worth of experience and deep domain expertise. In cloud we have the facility of elasticity, pay as you go and resiliency.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/474/1*cTRQPROGXc6iwgfSkMklEA.png" /></figure><p>A Gateway Load Balancer acts as an entry point here.</p><p>Gateway Load Balancers enable you to deploy, scale, and manage virtual appliances, such as firewalls, intrusion detection and prevention systems, and deep packet inspection systems.</p><p>It combines a transparent network gateway (that is, a single entry and exit point for all traffic) and distributes traffic while scaling your virtual appliances with the demand.</p><p>Gateway Load Balancers use Gateway Load Balancer endpoints to securely exchange traffic across VPC boundaries.</p><p>A Gateway Load Balancer endpoint is a VPC endpoint that provides private connectivity between virtual appliances in the service provider VPC and application servers in the service consumer VPC.</p><p>You deploy the Gateway Load Balancer in the same VPC as the virtual appliances. You register the virtual appliances with a target group for the Gateway Load Balancer.</p><p>So we can put the security applications in a separate VPC and offer it as a SAAS to other accounts too!!!</p><p>Gateway Load Balancer is a transparent layer 3 load balancer and doesn’t produce access logs. Access logging can be done on Gateway Load Balancer target appliances such as firewalls, IDS/IPS, and authentication appliances must be enabled in order to collect access logs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/429/1*-B7Seor7NzScmWOZD2Vxbw.png" /></figure><p>Cloudwatch,VPC flowlogs and Cloudtrail :)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/705/1*PzTWGZSsGT1VPYowZz92Cw.png" /></figure><p>Some key points to remember in Gateway Load Balancer</p><ol><li>Enables you to intercept traffic and route it to a service that you’ve configured using Gateway Load Balancers.</li><li>Security groups and endpoint policies are not supported</li><li>Endpoints support IPv4 traffic only.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/810/1*QqngDfrXjYufz9T0cCYj4g.png" /><figcaption>Courtesy AWS Documentation</figcaption></figure><p><strong>Traffic coming to your applications from the Internet (blue arrows):</strong></p><ol><li>Traffic enters the service application VPC through the internet gateway.</li><li>Traffic is sent to the Gateway Load Balancer endpoint, as a result of ingress routing.</li><li>Traffic is sent to the Gateway Load Balancer for inspection through the security appliance.</li><li>Traffic is sent back to the Gateway Load Balancer endpoint after inspection.</li><li>Traffic is sent to the application servers (destination subnet).</li></ol><p><strong>Traffic from the application to the internet (orange arrows):</strong></p><ol><li>Traffic is sent to the Gateway Load Balancer endpoint as a result of the default route configured on the application server subnet.</li><li>Traffic is sent to the Gateway Load Balancer for inspection through the security appliance.</li><li>Traffic is sent back to the Gateway Load Balancer endpoint after inspection.</li><li>Traffic is sent to the internet gateway based on the route table configuration.</li><li>Traffic is routed back to the internet.</li></ol><p>Happy Learning Guys!!!!</p><p>By Sabiha Ali, Solutions Architect, ScaleCapacity</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a47b692dfc25" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Let us Build the Wall of WAF]]></title>
            <link>https://medium.com/@sabihaali1/let-us-build-the-wall-of-waf-926dc446c851?source=rss-971e2a67ffee------2</link>
            <guid isPermaLink="false">https://medium.com/p/926dc446c851</guid>
            <category><![CDATA[aws-certification]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[aws-community]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[firewall]]></category>
            <dc:creator><![CDATA[Sabiha Ali]]></dc:creator>
            <pubDate>Sat, 12 Feb 2022 06:36:04 GMT</pubDate>
            <atom:updated>2022-02-12T06:36:04.818Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/619/1*GwF0JHWHGb7MrBj5IIXj1g.png" /></figure><p><strong>AWS WAF- Web Application Firewall</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/711/1*549nVklhGCmiVsPjoPnPbQ.png" /></figure><p>Yes, we do have NACLs, which is a network firewall, but to protect us from the exploits of application layer attack we use WAF. A traffic which seems harmless to the NACL, can be built in with an attack motive like SQL-injection, HTTP flood, Cross site scripting or many many more.</p><p>The ultimate motive of any web application is to serve the clients but not all clients are ideal, some are attackers or bots designed to attack the web application.</p><p>WAF lets us configure rules that <strong>allow, block, or monitor (count) web requests</strong> based on conditions that you define.</p><p>These conditions can include IP addresses, HTTP headers and body, or custom URIs.</p><p>You can set up rules like <strong>Rate Based Blocking </strong>to automatically block bad traffic, or respond immediately to incidents. Here the WAF keeps a count of how many requests can be allowed for a particular type of client. If they exceed the limit ,they are blocked.</p><p>We also have<strong> WAF Managed Rules</strong> which helps us to deploy pre-configured rules to protect your applications common threats like application vulnerabilities. All Managed Rules are automatically updated by AWS Marketplace security Sellers.</p><p>After configuring all the rules, we put them together in a <strong>WACL(Web Access Control List)</strong></p><p>With WAF we can also configure the response body which the user gets when traffic is blocked for them.</p><p>Happy learning guys !!!</p><p>For more such titbits on</p><h4><a href="https://medium.com/@sabihaali1/let-us-decrypt-envelope-encryption-56fd6dcfe00">Envelope Encryption</a></h4><h4><a href="https://medium.com/@sabihaali1/let-us-compare-sgs-and-nacls-8e0001a4abec">NACLs Vs SGs</a></h4><h4><a href="https://medium.com/@sabihaali1/let-us-compare-availability-and-durability-6d7aa0ed906f">Availability Vs Durability</a></h4><h4><a href="https://medium.com/@sabihaali1/let-us-enter-the-nat-gateway-2474556b77a3">NAT Gateway</a></h4><h4><a href="https://medium.com/@sabihaali1/let-us-generate-a-pre-signed-url-6d795818e9cb">Pre-Signed-URL</a></h4><p><strong>By Sabiha Ali, Solutions Architect, ScaleCapacity</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=926dc446c851" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>