<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>The Ops Community ⚙️: Rutam Prita Mishra</title>
    <description>The latest articles on The Ops Community ⚙️ by Rutam Prita Mishra (@rutamhere).</description>
    <link>https://community.ops.io/rutamhere</link>
    <image>
      <url>https://community.ops.io/images/MKy7qUkAxwARLfoSgY_0dbe-EQNCAuWYbUkXacX1Gc0/rs:fill:90:90/g:sm/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL3Vz/ZXIvcHJvZmlsZV9p/bWFnZS8yNDIvZDQ2/ZWI2YWQtYjhmYS00/MWMzLThjOGEtMDQ4/Zjg3NTBjNGY3Lmpw/Zw</url>
      <title>The Ops Community ⚙️: Rutam Prita Mishra</title>
      <link>https://community.ops.io/rutamhere</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://community.ops.io/feed/rutamhere"/>
    <language>en</language>
    <item>
      <title>Deploying MindsDB on Oracle Cloud</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Thu, 13 Oct 2022 18:29:04 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/deploying-mindsdb-on-oracle-cloud-164d</link>
      <guid>https://community.ops.io/rutamhere/deploying-mindsdb-on-oracle-cloud-164d</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/o6M1CuvbSIXdlQyXuFAAG0IOOPWf6ZWjF_tsK7FYjRQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2V3d3hm/dmhtamttNTVienpu/ajhuLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/o6M1CuvbSIXdlQyXuFAAG0IOOPWf6ZWjF_tsK7FYjRQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2V3d3hm/dmhtamttNTVienpu/ajhuLnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;MindsDB enables in-database machine learning capabilities. It enables the user to query the future from inside the existing database using AI tables.&lt;/p&gt;

&lt;p&gt;Generally, MindsDB helps to build accurate predictive models by processing the existing data and feeding it into training models using standard SQL queries. It also enables to visualize the predictions using the BI tools.&lt;/p&gt;

&lt;p&gt;So, today in this tutorial we are gonna learn how to deploy a self-hosted version of MindsDB using Oracle Cloud Compute Instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying an Oracle Cloud Compute Instance
&lt;/h2&gt;

&lt;p&gt;Oracle Cloud Infrastructure is widely used across the IT industries and provides a set of highly available and scalable cloud services that enable to build and serve a wide range of applications.&lt;/p&gt;

&lt;p&gt;So, let's go ahead and create a Compute Instance on Oracle Cloud using the steps below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Log in to your Oracle Cloud Infrastructure account or &lt;a href="https://signup.cloud.oracle.com/"&gt;signup&lt;/a&gt; for one if don't have one already. Oracle provides 300$ worth of credits for 30 days to try their services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/LHvIIahLv3W8JtKubqrLdcVWjjawltoz5zE-pIB0RDo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y3eG1x/eXdyZ2gzbjdwemoz/OWY2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/LHvIIahLv3W8JtKubqrLdcVWjjawltoz5zE-pIB0RDo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y3eG1x/eXdyZ2gzbjdwemoz/OWY2LnBuZw" alt="Signup Page" width="880" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: It may take a while to provision your account and you will receive an email once it is ready. Your account needs to be fully provisioned and ready so that you can use the different services on the platform.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once your account is ready and you're signed in, you will land on a &lt;code&gt;Get Started&lt;/code&gt; page as shown below. Simply click on the &lt;code&gt;Instances&lt;/code&gt; from the top &lt;code&gt;Pinned&lt;/code&gt; tab.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/4apID17ZgksrYvADz5hIDnV8ycnN4AqCLoGIlNHR2j8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3ZsZHRx/cHVpZG84M2JiMGVz/em1oLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/4apID17ZgksrYvADz5hIDnV8ycnN4AqCLoGIlNHR2j8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3ZsZHRx/cHVpZG84M2JiMGVz/em1oLnBuZw" alt="OCI Dashboard" width="880" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; On the next screen that appears, select your username from the &lt;code&gt;Compartment&lt;/code&gt; section under &lt;code&gt;List scope&lt;/code&gt; in the left panel and then hit the &lt;code&gt;Create instance&lt;/code&gt; button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/7nZxCbkNQ2wesHl_cYtd9i74pKTuambuoZI0kLdnXDA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3k5c2xh/aWRyb2txN29va2U5/b2twLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/7nZxCbkNQ2wesHl_cYtd9i74pKTuambuoZI0kLdnXDA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3k5c2xh/aWRyb2txN29va2U5/b2twLnBuZw" alt="Create Instance" width="880" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; In the &lt;code&gt;Create compute insatnce&lt;/code&gt; page, we need to fill in the configurations for the virtual machine as per our needs. But for the sake of this tutorial, we can go with the following configuration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name:&lt;/strong&gt; Put a name as per your choice (I chose &lt;code&gt;mindsdb-demo&lt;/code&gt; for now.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create in compartment:&lt;/strong&gt; It will be your &lt;code&gt;username(root)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Placement:&lt;/strong&gt; Leave this section as it is at its default values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image and shape:&lt;/strong&gt; Click on &lt;code&gt;Edit&lt;/code&gt; and choose the following.

&lt;ul&gt;
&lt;li&gt;Click on &lt;code&gt;Change image&lt;/code&gt;.

&lt;ul&gt;
&lt;li&gt;Image Source: Platform Images&lt;/li&gt;
&lt;li&gt;Compartment: your_username(root)&lt;/li&gt;
&lt;li&gt;Image Name: Canonical Ubuntu&lt;/li&gt;
&lt;li&gt;OS Version: 22.04&lt;/li&gt;
&lt;li&gt;Image Build: 2022.08.10-0 (Latest when this is written)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Now click on &lt;code&gt;Select image&lt;/code&gt; to save these changes.&lt;/li&gt;
&lt;li&gt;Now click on &lt;code&gt;Change shape&lt;/code&gt;.

&lt;ul&gt;
&lt;li&gt;Instance type: Virtual Machine&lt;/li&gt;
&lt;li&gt;Shape Series: Speciality and previous generation&lt;/li&gt;
&lt;li&gt;Shape name: VM.Standard.E2.8&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Click on &lt;code&gt;Select shape&lt;/code&gt; to save these changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Networking: Leave the values as it is at its default.&lt;/li&gt;
&lt;li&gt;Add SSH keys: Select &lt;code&gt;Generate a key pair for me&lt;/code&gt;.
Don't forget to download and save both the Private and Public keys as we will require them later to interact with the VM.&lt;/li&gt;
&lt;li&gt;Boot Volume: Just tick the &lt;code&gt;Use in-transit encryption&lt;/code&gt; and leave others unchecked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we are all set with the specific configuration we require to run this VM. Let's click on the &lt;code&gt;Create&lt;/code&gt; button now to provision this VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/orjOIv5AO3-ZHgjXTBr8c5pl-sTvEJhrMItpS4qDDLw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzc2emlw/MmU1MTQ5a2g5NTlo/N2p6LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/orjOIv5AO3-ZHgjXTBr8c5pl-sTvEJhrMItpS4qDDLw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzc2emlw/MmU1MTQ5a2g5NTlo/N2p6LnBuZw" alt="VM Config" width="880" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; After we hit the &lt;code&gt;Create&lt;/code&gt; button, it takes us to the &lt;code&gt;Work requests&lt;/code&gt; page for the instance. Please wait a while here, until the &lt;code&gt;I&lt;/code&gt; image box at the left top turns green and you see the &lt;code&gt;Running&lt;/code&gt; status below it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ZXaUFr3vb9BHEDOx2ORzFSHLY9tOrWid2gzzHy1DYvE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pkc3By/NnIxYjBoM3I0NXlv/NzZpLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ZXaUFr3vb9BHEDOx2ORzFSHLY9tOrWid2gzzHy1DYvE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pkc3By/NnIxYjBoM3I0NXlv/NzZpLnBuZw" alt="Instance Running" width="880" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; We can simply SSH into our VM now using the Private key we downloaded earlier using the CMD with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i location_of_the_private_key username_for_the_instance@public_ip_of_the_instance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If I replace the placeholders in the above command, then the command would look something like this. Type &lt;code&gt;yes&lt;/code&gt; and hit &lt;code&gt;Enter&lt;/code&gt; when prompted in the CMD to access the VM from your command line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i ssh-key-2022-10-13.key ubuntu@129.154.45.47
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/RdPcu3rDsS4pq6mwvJSplSJfIcokrBI2-pBTwS5rRU0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3E0ZmVt/MzV1a3Fxbm8xOWww/aDBlLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/RdPcu3rDsS4pq6mwvJSplSJfIcokrBI2-pBTwS5rRU0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3E0ZmVt/MzV1a3Fxbm8xOWww/aDBlLnBuZw" alt="VM SSH" width="743" height="693"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are now ready to proceed with the next steps to install the MindsDB instance in our VM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying MindsDB on the Cloud Instance
&lt;/h2&gt;

&lt;p&gt;In this section we will deploy the MindsDB instance on the VM and then try to use its GUI using the public IP of the VM on the respective port. The following will let us do easily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Once we SSH into the instance, we need to update the package indexes present in it so that we can get the latest package versions when we install something. We can do that with the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/cfo-BhnkBxLFMnwTuUglblFtKxLCfvVnx_eq_FRgV5M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2loOXpm/cHM1NGxsNTV6a2o4/dzJ2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/cfo-BhnkBxLFMnwTuUglblFtKxLCfvVnx_eq_FRgV5M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2loOXpm/cHM1NGxsNTV6a2o4/dzJ2LnBuZw" alt="Update Package" width="880" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; We will use Docker to install MindsDB in the later steps. So, let's install Docker first in the VM with the command below. Type &lt;code&gt;Y&lt;/code&gt; and hit &lt;code&gt;Enter&lt;/code&gt; when prompted to proceed with the installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install docker.io
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/NgBHerbAcjYhUfdlBXpiJol13ToZNyoIrd4DQB2Xt-g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBzYW04/OWc2amFrd3pvamlq/MmN0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/NgBHerbAcjYhUfdlBXpiJol13ToZNyoIrd4DQB2Xt-g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBzYW04/OWc2amFrd3pvamlq/MmN0LnBuZw" alt="Docker Install" width="880" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once this command executes successfully, simply run the command below to check whether Docker is running fine or not. This should return a &lt;code&gt;Hello from Docker!&lt;/code&gt; meesage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/srO2z4pw_kpeyVkwneYccw8VtF8NnAJwIo44uh9Z0-s/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVpbjhn/N2ZzaWxiczl1Z3By/cnd2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/srO2z4pw_kpeyVkwneYccw8VtF8NnAJwIo44uh9Z0-s/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVpbjhn/N2ZzaWxiczl1Z3By/cnd2LnBuZw" alt="Hello from Docker" width="837" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; We will now pull the latest stable release of MindsDB into our instance with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker pull mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/mczEz5z2Wjy7A7f7Noq-QNfJ-JR_rMSVMDfqSBwS6wA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2NnaDZ0/c281dnU5YTZ1eXo1/dTllLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/mczEz5z2Wjy7A7f7Noq-QNfJ-JR_rMSVMDfqSBwS6wA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2NnaDZ0/c281dnU5YTZ1eXo1/dTllLnBuZw" alt="MindsDB Pull" width="797" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also try working with the latest beta releases of MindsDB using the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker pull mindsdb/mindsdb_beta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; We can now run the MindsDB instance and expose the specific ports that are required to access the MindsDB GUI and have successful data transactions through the MySQL APIs. The command will be as follows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker run -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/bDZe80tjPzDGSNom9vVMf5gZ36DEm02eNTUvhic8rZ4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL21jYjNt/am11czhqZWw2M3k4/dnFuLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/bDZe80tjPzDGSNom9vVMf5gZ36DEm02eNTUvhic8rZ4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL21jYjNt/am11czhqZWw2M3k4/dnFuLnBuZw" alt="MindsDB Run" width="880" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: &lt;strong&gt;Port 47334&lt;/strong&gt; will be used by the GUI.&lt;br&gt;
      &lt;strong&gt;Port 47335&lt;/strong&gt; will be used by the MySQL API.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Now if we try accessing the GUI with the public IP of the instance on port 47334, it will simply error out. This is because the Oracle Cloud Infrastructure blocks the incoming traffic by default for the instance. So, we need to define an ingress rule for the instance now to be able to access the GUI.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go back to the &lt;code&gt;Instance details&lt;/code&gt; dashboard and click on the subnet name. This should take you to the &lt;code&gt;Subnet Details&lt;/code&gt; page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/QmcL3S6tvWyVmSQ2WOlWBxqG3dMwBK1BDbl9DYHDju8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FjM3Q0/YmM2em4zbnBtMzRo/am83LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/QmcL3S6tvWyVmSQ2WOlWBxqG3dMwBK1BDbl9DYHDju8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FjM3Q0/YmM2em4zbnBtMzRo/am83LnBuZw" alt="Subnet Details" width="880" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;code&gt;Security Lists&lt;/code&gt; table, click on the only available record of &lt;code&gt;Default Security List&lt;/code&gt;. This will take you further to the &lt;code&gt;Security List Details&lt;/code&gt; page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/j-S1YjnkbxN0ttN1MdDKGQD1PI2sRapFRTOxexmZTak/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzZxZjZ5/N2JhemsxM2h2dWZm/bDRuLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/j-S1YjnkbxN0ttN1MdDKGQD1PI2sRapFRTOxexmZTak/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzZxZjZ5/N2JhemsxM2h2dWZm/bDRuLnBuZw" alt="Security Details" width="880" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now click on the &lt;code&gt;Add Ingress Rules&lt;/code&gt; button under &lt;code&gt;Ingress Rules&lt;/code&gt; tab. This will open a dialog box where we can define the ingress rule, we want to use for the instance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/KVr4lI6Czluq6xy9i09VAnZn2GeU2Vo1XSunXdHxi3g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2NxYTQw/Y3JqN3dxNXgyZDRi/Mjk4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/KVr4lI6Czluq6xy9i09VAnZn2GeU2Vo1XSunXdHxi3g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2NxYTQw/Y3JqN3dxNXgyZDRi/Mjk4LnBuZw" alt="Add Ingress Rule" width="880" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now use the following details to define the ingress rule.

&lt;ul&gt;
&lt;li&gt;Stateless: Leave it unchecked as it is.&lt;/li&gt;
&lt;li&gt;Source Type: CIDR&lt;/li&gt;
&lt;li&gt;Source CIDR: 0.0.0.0/0&lt;/li&gt;
&lt;li&gt;IP Protocol: TCP&lt;/li&gt;
&lt;li&gt;Source Port Range: Leave it blank. (Default is Allow All)&lt;/li&gt;
&lt;li&gt;Destination Port Range: 47334-47335&lt;/li&gt;
&lt;li&gt;Description: MindsDB Ingress Rule&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now click on &lt;code&gt;Add Ingress Rule&lt;/code&gt; button to add this rule to the &lt;code&gt;Default Security List&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/BJBjNgXuY5rD_YNOgpGd65dH4go-TZ4bkfnX2GkARRk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2R2bmdj/MWZ6OHJ6ZXVuZzJk/Y2QxLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/BJBjNgXuY5rD_YNOgpGd65dH4go-TZ4bkfnX2GkARRk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2R2bmdj/MWZ6OHJ6ZXVuZzJk/Y2QxLnBuZw" alt="Ingress Rule Config" width="880" height="615"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; We can try to access the MindsDB GUI with the public IP and the respective port and should be successfully able to access it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://publicIP:47334/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/GtNUNzaAN6iVLFFPj7EvnwA83Pp0DrthggLA_IGMnqk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3U3aHp6/ZzA0dWpkcWllcGVy/dWd5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/GtNUNzaAN6iVLFFPj7EvnwA83Pp0DrthggLA_IGMnqk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3U3aHp6/ZzA0dWpkcWllcGVy/dWd5LnBuZw" alt="MindsDB GUI" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MindsDB GUI has 3 major parts i.e., a &lt;code&gt;Query Editor&lt;/code&gt; at the top, a &lt;code&gt;Result Viewer&lt;/code&gt; at the bottom and the &lt;code&gt;Learning Hub&lt;/code&gt; resources at the right side to make it more accessible to new users.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: With &lt;code&gt;root&lt;/code&gt; user access to the instance, we will never need to use &lt;code&gt;sudo&lt;/code&gt; before each and every command.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Exploring the Default MindsDB Tables
&lt;/h2&gt;

&lt;p&gt;By this time, we already have our MindsDB deployment hosted on the public IP of the instance. So, it's time now to find out what default tables exist in MindsDB when we launch it for the first time.&lt;/p&gt;

&lt;p&gt;Let's run the following SQL command to get the list of available Tables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;Show&lt;/span&gt; &lt;span class="n"&gt;tables&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/G6gYUsEa5LG2x6vIetVrriFF2Hw8RmS2Iq9IYG59qpE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzV6ZGJv/d2k3ZGU1aGc2N2M3/YWxvLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/G6gYUsEa5LG2x6vIetVrriFF2Hw8RmS2Iq9IYG59qpE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzV6ZGJv/d2k3ZGU1aGc2N2M3/YWxvLnBuZw" alt="Show Tables" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can find three tables listed above, namely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Predictors:&lt;/strong&gt; This table stores each of the trained Predictor Models along with their specific details as a separate record.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Predictors_Versions:&lt;/strong&gt; This table stores the versioning information of a particular Predictor Model as to how many times the model has been tweaked and newly trained by the user.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Databases:&lt;/strong&gt; This table stores the list of all the databases connected to our MindsDB instance.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We have pretty much reached to the end of this tutorial now. So, before we leave, let's summarize all the things that we just did above. Initially, we started with creating our Oracle Cloud account, provisioned a compute instance, installed MindsDB using Docker inside it, created an ingress rule for the incoming traffic and finally explored the MindsDB GUI along with the default tables present.&lt;/p&gt;

&lt;p&gt;Now, as all of you know how to get started with MindsDB on Oracle Cloud Infrastructure, it's time for all of you to deploy your own MindsDB instances and start training some interesting Predictor models with it and share about it with the community.&lt;/p&gt;

&lt;p&gt;Lastly, I would love to know your feedback and would really appreciate it if you drop a LIKE and share this article in your circles where you believe it will add some value.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images are respective properties of Oracle Cloud Infrastructure and MindsDB and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ZNNmhBZLQWMUX7Z33X2SPnCgAtAmXwXfTlOg5yGi2q8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pmZDdv/eXRrNHNkZTNjZnlz/dXRoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ZNNmhBZLQWMUX7Z33X2SPnCgAtAmXwXfTlOg5yGi2q8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pmZDdv/eXRrNHNkZTNjZnlz/dXRoLnBuZw" alt="MindsDB Sponsor" width="880" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/tJb4Rg5BMgtDxCZkpmfUsp0AQXsBiEz3CekFUTHwyKo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2IxYnY4/ZTdkdDB6ZzQ3YW5h/bDZvLnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorials</category>
      <category>cloudops</category>
      <category>dataops</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Deploying MindsDB on Google Cloud Platform</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Sat, 13 Aug 2022 22:05:00 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/deploying-mindsdb-on-google-cloud-platform-41h9</link>
      <guid>https://community.ops.io/rutamhere/deploying-mindsdb-on-google-cloud-platform-41h9</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/Nt2jivMj1vguK1mZtVmGwLBq1iqFgWcv7ZzXlMdcw_w/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL203dDRp/emNiZGtmZWd6ZnBx/MDh3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Nt2jivMj1vguK1mZtVmGwLBq1iqFgWcv7ZzXlMdcw_w/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL203dDRp/emNiZGtmZWd6ZnBx/MDh3LnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;MindsDB is an AI layer that works on top of the existing databases to train, develop and deploy the finest machine learning models seamlessly. MindsDB performs the pre-processing of data from within the database and feeds it to the machine learning model using standard SQL to do precise and accurate predictions as required.&lt;/p&gt;

&lt;p&gt;In this tutorial, we are going to deploy MindsDB on a GCP Compute Engine instance, go through its GUI and check through the default tables that are present after deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying a GCP Compute Engine
&lt;/h2&gt;

&lt;p&gt;Google Cloud Platform is known to all and used by many in current times. So, it's time to go ahead and create a Virtual Machine on GCP to get started. You can simply follow the steps below to get it done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Login to your GCP account or sign up for one &lt;a href="https://cloud.google.com/landing/free-trial"&gt;here&lt;/a&gt;. GCP provides 300$ worth of credits for 90 days to try the platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/PYsHi9OD0HwyJr8puNBOaqmehWcYXGx1JFOvFiOC_bg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzI0NXJ2/Zm9leXJoMGRrbTdt/cHlhLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/PYsHi9OD0HwyJr8puNBOaqmehWcYXGx1JFOvFiOC_bg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzI0NXJ2/Zm9leXJoMGRrbTdt/cHlhLnBuZw" alt="GCP Signup" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you're signed in, click on the &lt;code&gt;Go to console&lt;/code&gt; button. This should open up the cloud console for your account in a new tab.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Xpbm4SnrHEztgDFW0IcKMsdRFuyFNFVBhQowNcOTcVs/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2Vja3oy/bzhlaDhlb213eGE1/a2R6LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Xpbm4SnrHEztgDFW0IcKMsdRFuyFNFVBhQowNcOTcVs/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2Vja3oy/bzhlaDhlb213eGE1/a2R6LnBuZw" alt="Cloud Console" width="880" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; On the cloud console screen, simply hit the &lt;code&gt;Create a VM&lt;/code&gt; button. If it is your first time using the platform, then it would ask you to enable the &lt;code&gt;Compute Engine API&lt;/code&gt; first and then take you to the &lt;code&gt;Create an instance&lt;/code&gt; page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/s8SgS6sqwZ2L5uLW38zYLbOcW1mixY1hbXHEnr1PF0U/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lxNHl4/Z2s4eXRubHAwOTl2/czRiLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/s8SgS6sqwZ2L5uLW38zYLbOcW1mixY1hbXHEnr1PF0U/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lxNHl4/Z2s4eXRubHAwOTl2/czRiLnBuZw" alt="Compute Engine API" width="880" height="899"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; We need to specify the specs for the compute instance on the &lt;code&gt;Create an instance&lt;/code&gt; page. You can always specify these as per your needs, but we will be using the specs mentioned below for this tutorial.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name:&lt;/strong&gt; Provide a name for your instance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Labels:&lt;/strong&gt; Leave it as it is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region:&lt;/strong&gt; Select the one near to you for lower latency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zone:&lt;/strong&gt; Choose any zone out of the available ones&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Machine Family:&lt;/strong&gt; General Purpose&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Series:&lt;/strong&gt; E2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Machine type:&lt;/strong&gt; e2-medium (2 vCPU, 4Gb Memory)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Display device:&lt;/strong&gt; Leave it as it is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidential VM Service:&lt;/strong&gt; Leave it as it is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Container:&lt;/strong&gt; Leave it as it is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boot Disk:&lt;/strong&gt; Click on &lt;code&gt;Change&lt;/code&gt;, use the following and click on &lt;code&gt;Select&lt;/code&gt;.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Operating System:&lt;/strong&gt; Ubuntu&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version:&lt;/strong&gt; Ubuntu 22.04 LTS x86/64&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boot disk type:&lt;/strong&gt; Balanced Persistent Disk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Size:&lt;/strong&gt; 50&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Service account:&lt;/strong&gt; Compute Engine default service account&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access Scopes:&lt;/strong&gt; Select &lt;code&gt;Allow full access to all Cloud APIs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firewall:&lt;/strong&gt; Select &lt;code&gt;Allow HTTP traffic&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced Options:&lt;/strong&gt; Leave it as it is.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you can click on &lt;code&gt;Create&lt;/code&gt; to instantiate the launch of the VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/-whojGY69BtVKoMbPjHHZRfm3SgPRnasn2jrH65O894/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Exanh2/dmNtaG5pNXV5cmhj/dHl1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/-whojGY69BtVKoMbPjHHZRfm3SgPRnasn2jrH65O894/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Exanh2/dmNtaG5pNXV5cmhj/dHl1LnBuZw" alt="Create an Instance Dashboard" width="880" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Once you hit the &lt;code&gt;Create&lt;/code&gt; button, it will take you the &lt;code&gt;VM Instances&lt;/code&gt; dashboard where you can find the instance you just created listed. Wait a bit until the &lt;code&gt;Status&lt;/code&gt; turns to a green tick mark and the internal and external IP addresses are visible. This confirms that the instance is ready to use now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/aA7BX_2al1g-IR2Mj5TslVjGD0nNLisXX_2j0AUZQGI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL211Y3J3/MHR5aTEwNm91cjY0/YmxyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/aA7BX_2al1g-IR2Mj5TslVjGD0nNLisXX_2j0AUZQGI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL211Y3J3/MHR5aTEwNm91cjY0/YmxyLnBuZw" alt="Vm Instances Page" width="880" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can now simply hit the &lt;code&gt;SSH&lt;/code&gt; button to access the instance and proceed with the next steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/pInhqk6bp_k9ajD3Hykz0zbdvFcYOKMBseps2AfIvNQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2FybGxn/YTN1YjR6N3BzYXJv/bDhsLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/pInhqk6bp_k9ajD3Hykz0zbdvFcYOKMBseps2AfIvNQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2FybGxn/YTN1YjR6N3BzYXJv/bDhsLnBuZw" alt="VM SSH" width="880" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying MindsDB on the Compute Instance
&lt;/h2&gt;

&lt;p&gt;As we are ready with our instance now, we will simply try to install and run MindsDB inside our instance and access its GUI. Make sure to follow the instructions below to proceed further.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; As soon as you SSH into your instance, run a apt-update command to refresh the package indexes present in the system.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/7BALoqOgxVfPRl5-5TcilUpyPeyexw2mR9ptEZTVPdM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2hncnEz/aGNhcmpiZ2lkbzM5/OHB5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/7BALoqOgxVfPRl5-5TcilUpyPeyexw2mR9ptEZTVPdM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2hncnEz/aGNhcmpiZ2lkbzM5/OHB5LnBuZw" alt="apt-update command" width="880" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Now it's time to check whether Docker is installed or not as we are going to use this to install MindsDB. We can do that by the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return a &lt;code&gt;Hello from Docker&lt;/code&gt; message which confirms that Docker is present in the machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/3W_p8kqMWtr8uLXXWRSNx8APXjg3BvBxQ9wQsI4vCLQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2xkM3g3/bmw2N2gxZngwYnNk/c3pwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/3W_p8kqMWtr8uLXXWRSNx8APXjg3BvBxQ9wQsI4vCLQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2xkM3g3/bmw2N2gxZngwYnNk/c3pwLnBuZw" alt="Hello Docker" width="880" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In case, it throws an error, you can simply install Docker using the following command. Hit &lt;code&gt;Y&lt;/code&gt; when asked to proceed with the installation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install docker.io
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/MUqmrTSNPdPu5pozEZCHamzTsrrMxf8y4mSD2c5doMc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3p0cXdu/dDlxNTR6d29uZDZh/bGhpLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/MUqmrTSNPdPu5pozEZCHamzTsrrMxf8y4mSD2c5doMc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3p0cXdu/dDlxNTR6d29uZDZh/bGhpLnBuZw" alt="Docker Install" width="880" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; We will now need to pull the latest stable build of MindsDB into our instance. We can do that with the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker pull mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/HvJOiGuqAnPeKeIRmGfpAnDR7HuZGluGSGb7ZNOIwoc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2EyYWlk/NGg4NjRsbGd4aWp0/d3lnLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/HvJOiGuqAnPeKeIRmGfpAnDR7HuZGluGSGb7ZNOIwoc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2EyYWlk/NGg4NjRsbGd4aWp0/d3lnLnBuZw" alt="MindsDB Image Pull" width="872" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The stable build may or may not be the latest available build. If you wish to work with the latest release, then you can always pull the Beta version with the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker pull mindsdb/mindsdb_beta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now it's time to run MindsDB on our instance and open the specific ports so that we can access its GUI and the MySQL APIs for data transactions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker run -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/BXPCBxwoEPZh_cIZO3lBCE3evrYPEs8SX7ET5oVMdjw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3N5MTMx/ZjRhY2hycmRyNWs0/Y25lLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/BXPCBxwoEPZh_cIZO3lBCE3evrYPEs8SX7ET5oVMdjw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3N5MTMx/ZjRhY2hycmRyNWs0/Y25lLnBuZw" alt="MindsDb Runner Ports" width="880" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Although we have exposed the ports above, Compute Engine blocks the traffic by default. So, we need to explicitly define a firewall rule to allow incoming traffic through these two ports. So, let's go back to the &lt;code&gt;VM Instances&lt;/code&gt; dashboard and click on &lt;code&gt;Setup firewall rules&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/AEu67GUR80dw8qtqBpZi1i5bMuZQqpe4hVGH8oz77hE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NqemRu/MWR6MDlqc3poZDl5/cXQ3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/AEu67GUR80dw8qtqBpZi1i5bMuZQqpe4hVGH8oz77hE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NqemRu/MWR6MDlqc3poZDl5/cXQ3LnBuZw" alt="VM Instance Dashboard" width="880" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you're on the &lt;code&gt;Firewall&lt;/code&gt; dashboard, simply hit the &lt;code&gt;Create Firewall Rule&lt;/code&gt; at the top to add a rule for these ports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/xxZuliyMe2AT8orUz5OIjw0OtYRwHBxG0zt3h1Ra_aU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2E3NTho/enVwYWNvbDB2YXdp/OWZxLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/xxZuliyMe2AT8orUz5OIjw0OtYRwHBxG0zt3h1Ra_aU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2E3NTho/enVwYWNvbDB2YXdp/OWZxLnBuZw" alt="Create Firewall Rule" width="880" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now use the following values to set up and create the rule.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name:&lt;/strong&gt; Provide a name as you wish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Provide a description if you want to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logs:&lt;/strong&gt; Select &lt;code&gt;Off&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network:&lt;/strong&gt; Select &lt;code&gt;Default&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Priority:&lt;/strong&gt; 1000&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Direction of traffic:&lt;/strong&gt; Ingress&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action on match:&lt;/strong&gt; Allow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Targets:&lt;/strong&gt; Select &lt;code&gt;Specified Target Tags&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target-tags:&lt;/strong&gt; Type &lt;code&gt;http-server&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source filter:&lt;/strong&gt; Select &lt;code&gt;IPv4 ranges&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source IPv4 ranges:&lt;/strong&gt; 0.0.0.0/0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Second source filter:&lt;/strong&gt; None&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protocols and ports:&lt;/strong&gt; Select &lt;code&gt;Specified protocols and ports&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;Check on &lt;code&gt;TCP&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ports:&lt;/strong&gt; 47334,47335&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We can now click on &lt;code&gt;Create&lt;/code&gt; to use this firewall rule on our instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/401d2wN_fPVmqlwuT7NFE0HUJ3j9SZtuK6zvXbhrUpQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzdmaDk0/eGZ0Y3VpMm9kZHU0/bjJwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/401d2wN_fPVmqlwuT7NFE0HUJ3j9SZtuK6zvXbhrUpQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzdmaDk0/eGZ0Y3VpMm9kZHU0/bjJwLnBuZw" alt="Firewall Rule" width="508" height="1240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; It's time to now try and access the MindsDB GUI. We can do that by hitting the external IP of the instance on the port 47334. This should open up the MindsDB GUI for us.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/uYTIqb0w4vz1PAOjAb6Iz-cTit2MwX6CEYM1dyjk05I/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RrNnhq/b2Q3MmRwdDM4eG9z/N282LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/uYTIqb0w4vz1PAOjAb6Iz-cTit2MwX6CEYM1dyjk05I/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RrNnhq/b2Q3MmRwdDM4eG9z/N282LnBuZw" alt="MindsDB GUI" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we can see, the MindsDB GUI has a SQL Editor at the top, a result viewer at the bottom and a bunch of learning hub resources on the right of the screen.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: We don't need to use &lt;code&gt;sudo&lt;/code&gt; before each command if we are logged in to the instance as the &lt;code&gt;root&lt;/code&gt; user.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Exploring the Tables in MindsDB
&lt;/h2&gt;

&lt;p&gt;As we are already done deploying our MindsDB instance on the compute engine, now let us try to explore the tables that are present by default when we install MindsDB.&lt;/p&gt;

&lt;p&gt;We can simply run this command in the GUI SQL Editor to list the available tables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Show tables;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/TfGG9d3GQ4ckxNAvpjM6nzDzNyLpp_qzLtVDbMP_7AY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lnN3A4/bHNsdXVxdTJoZ3ox/ZXAyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/TfGG9d3GQ4ckxNAvpjM6nzDzNyLpp_qzLtVDbMP_7AY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lnN3A4/bHNsdXVxdTJoZ3ox/ZXAyLnBuZw" alt="List of Tables" width="880" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can see that there are two tables namely, &lt;code&gt;Predictors&lt;/code&gt; and &lt;code&gt;Databases&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Predictors&lt;/code&gt; table stores the predictor models that we train as an individual record. Each of its column contains specific details about the respective predictor model.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Databases&lt;/code&gt; table contains the list of databases that are connected to the MindsDB instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We have now reached the end of this tutorial. So, it's time to recollect what we just did above sequentially. We initially created a compute engine instance, deployed MindsDB on top it, created a firewall rule to allow the incoming traffic for MindsDB and finally explored the MindsDB Web UI and tables that are present by default.&lt;/p&gt;

&lt;p&gt;Now it's time for you to play around with your own MindsDB instance on a Compute Engine and come up with interesting Predictor models to try and test the robustness of MindsDB. MindsDB also provides its own cloud version which you can use &lt;a href="https://cloud.mindsdb.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lastly, before you leave, please drop a like if you found this tutorial helpful and don't forget to key in your feedback as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images are sole properties of Google Cloud Platform and MindsDB respectively and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ZNNmhBZLQWMUX7Z33X2SPnCgAtAmXwXfTlOg5yGi2q8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pmZDdv/eXRrNHNkZTNjZnlz/dXRoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ZNNmhBZLQWMUX7Z33X2SPnCgAtAmXwXfTlOg5yGi2q8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pmZDdv/eXRrNHNkZTNjZnlz/dXRoLnBuZw" alt="MindsDB Sponsor" width="880" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorials</category>
      <category>cloudops</category>
      <category>dataops</category>
      <category>gcp</category>
    </item>
    <item>
      <title>Deploying MindsDB on Civo Compute</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Mon, 08 Aug 2022 20:23:26 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/deploying-mindsdb-on-civo-compute-2kgo</link>
      <guid>https://community.ops.io/rutamhere/deploying-mindsdb-on-civo-compute-2kgo</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/s-wiMAtGaSSYXAviz0WeU-S1dUDt2Ij5p7L1fkgLPhc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3dxaTIw/NjN1NTM4NzlzdW9p/eHE2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/s-wiMAtGaSSYXAviz0WeU-S1dUDt2Ij5p7L1fkgLPhc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3dxaTIw/NjN1NTM4NzlzdW9p/eHE2LnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;MindsDB embeds ML capabilities into traditional databases. With the help of MindsDB, we can make our databases smarter and design several Predictor models to predict useful insights from our available datasets.&lt;/p&gt;

&lt;p&gt;In this tutorial, we are gonna learn how we can deploy MindsDB using a Civo Compute instance easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying a Civo Compute Instance
&lt;/h2&gt;

&lt;p&gt;Civo provides powerful and reliable compute instances for a fairly decent price. These compute instances are actually high-performance virtual machines that can be launched in just 60 seconds and are powered by Kubernetes under the hood.&lt;/p&gt;

&lt;p&gt;Now lets get started by creating a Civo Compute instance. Follow the steps as listed below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Login to your &lt;a href="https://dashboard.civo.com/login"&gt;Civo Account&lt;/a&gt; or create one if you don't have one yet. You can sign up for an account &lt;a href="https://www.civo.com/"&gt;here&lt;/a&gt; and can avail 250$ worth of free credits for a month to try different Civo products.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/dKKHXc4vaZe0IvEvibRnASQ7zfXKF7OSEW-sr_T9_3Q/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2w5bDh4/emVwb2xkdzMyc212/em84LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/dKKHXc4vaZe0IvEvibRnASQ7zfXKF7OSEW-sr_T9_3Q/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2w5bDh4/emVwb2xkdzMyc212/em84LnBuZw" alt="Civo Signup" width="880" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you're logged in, click on &lt;code&gt;Compute&lt;/code&gt; from the left navigation pane and then either hit the &lt;code&gt;Launch my first instance&lt;/code&gt; or &lt;code&gt;Create New Instance&lt;/code&gt; button to start configuring the compute instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/r6ICrDSAqHu7L1RId5DMirmnonFBn2wxWDrvrK0VRg0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lqajg4/aXFoMWN6eGVqNzVx/N3R6LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/r6ICrDSAqHu7L1RId5DMirmnonFBn2wxWDrvrK0VRg0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lqajg4/aXFoMWN6eGVqNzVx/N3R6LnBuZw" alt="Create Instance" width="880" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; On the &lt;code&gt;Create a new Instance&lt;/code&gt; page, we need to choose the specs we want our compute instance to boot up with. You can always select the specs as per your needs, but we will be using the specs as defined below for this tutorial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Hostname:&lt;/strong&gt; Give a name as you want.&lt;br&gt;
&lt;strong&gt;- How many Instances?:&lt;/strong&gt; Leave it at &lt;code&gt;1&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;- Select Size:&lt;/strong&gt; Select &lt;code&gt;Large&lt;/code&gt;($40/month).&lt;br&gt;
&lt;strong&gt;- Select Image:&lt;/strong&gt; Select &lt;code&gt;Ubuntu 22.04 LTS&lt;/code&gt;(Jammy Jellyfish)&lt;br&gt;
&lt;strong&gt;- Initial User:&lt;/strong&gt; Select &lt;code&gt;root&lt;/code&gt; as we want to have use as Admin&lt;br&gt;
&lt;strong&gt;- Network:&lt;/strong&gt; Leave it at &lt;code&gt;Default&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;- Public IP Address:&lt;/strong&gt; Select &lt;code&gt;Create&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;- Firewall:&lt;/strong&gt; Select &lt;code&gt;Default&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;- SSH Key:&lt;/strong&gt; Select &lt;code&gt;Random Password&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;- Initialisation Script:&lt;/strong&gt; Leave it blank.&lt;br&gt;
&lt;strong&gt;- Tags:&lt;/strong&gt; Leave it blank.&lt;/p&gt;

&lt;p&gt;Now simply click on the &lt;code&gt;Create&lt;/code&gt; button to boot up the compute instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/c_kcDj3ahK7_fA47wJHS46ouHLpvBTBzAShjPPwtRTg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL281eG9s/MjIxMHVjZjFzaDU0/ZDQ0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/c_kcDj3ahK7_fA47wJHS46ouHLpvBTBzAShjPPwtRTg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL281eG9s/MjIxMHVjZjFzaDU0/ZDQ0LnBuZw" alt="Compute Configuration" width="880" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Once you click on &lt;code&gt;Create&lt;/code&gt;, the instance starts building and should be up and running in a while. As soon as the instance has started, we can simply SSH into the instance using its Public IP and the SSH information to install MindsDB and proceed with the next steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/njLlNuYsR-FZlo4F9mzHFc0RHoJwPULB5kRlXuheiT4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RrYnJh/NnkwOWsxa3hrZnpv/YmNkLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/njLlNuYsR-FZlo4F9mzHFc0RHoJwPULB5kRlXuheiT4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RrYnJh/NnkwOWsxa3hrZnpv/YmNkLnBuZw" alt="Compute Dashboard" width="880" height="267"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Installing MindsDB on the Instance
&lt;/h2&gt;

&lt;p&gt;Our compute machine is booted up already and now it's time to install MindsDB on it using Docker. Let's get started with the steps below to achieve the same.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; SSH into your compute instance using the terminal of your system. Open your terminal and type the command below to get access into your instance. Type &lt;code&gt;Y&lt;/code&gt; or &lt;code&gt;Yes&lt;/code&gt; when prompted and hit &lt;code&gt;Enter&lt;/code&gt; to proceed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh root@PUBLIC_IP_OF_THE_INSTANCE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the password from the instance dashboard under &lt;code&gt;SSH Information&lt;/code&gt; tab and use it when prompted in the terminal to do a successful login into the system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/F8-ZYDmo5cGY7D-ymhtvLT17dGNhXODcM_GhyhNaEbQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2hnbjQ2/dnp0OWJ0b29sZnN1/NG11LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/F8-ZYDmo5cGY7D-ymhtvLT17dGNhXODcM_GhyhNaEbQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2hnbjQ2/dnp0OWJ0b29sZnN1/NG11LnBuZw" alt="SSH Terminal" width="880" height="748"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Now it's time to check whether Docker is installed correctly or not. Use the command below to find this out.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should run successfully, and you should see a message &lt;code&gt;Hello from Docker&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/M1HwPCR4KRbEa_yXpSxG2ShqNAnHbwsj4Gbfzt6Xoqg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzFxazl1/NzR0ZXE0aGcyOWd0/M3RtLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/M1HwPCR4KRbEa_yXpSxG2ShqNAnHbwsj4Gbfzt6Xoqg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzFxazl1/NzR0ZXE0aGcyOWd0/M3RtLnBuZw" alt="Docker Installation" width="880" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Let's run the following command now to pull the latest stable release of MindsDB into our instance.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/4nJ7PdTutztA-uUUzofmHiRUCjd8kcU6i4I5Z7n8Q_c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2gzYzNv/b2M1dGlnb3A5cWs5/dWx0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/4nJ7PdTutztA-uUUzofmHiRUCjd8kcU6i4I5Z7n8Q_c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2gzYzNv/b2M1dGlnb3A5cWs5/dWx0LnBuZw" alt="Pulling MindsDB Image using Docker" width="860" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can also work with the latest Beta version images of MindDB using the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull mindsdb/mindsdb_beta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Note: Follow the MindsDB &lt;a href="https://docs.mindsdb.com/info/"&gt;Getting Started&lt;/a&gt; documentation to find more such ways to install MindsDB other than Docker.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; We will now run a command to run MindsDB on our instance and expose specific ports so that we can access its GUI and MySQL APIs, etc. Use the command below to do it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Port 47334&lt;/strong&gt; - The MindDB GUI runs on this port. You can always use the &lt;code&gt;ComputeInstancePublicIP:47334&lt;/code&gt; to access it in the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Port 47335&lt;/strong&gt; - The MySQL API runs on this port and enables to carry out database transactions over TCP/IP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/YD2x9U55BGTwTKXcsyRGh8hGffUfvC0iighSkr6fiUM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2MwbWh0/eWd1N2F1d2tiYXF4/cGFpLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/YD2x9U55BGTwTKXcsyRGh8hGffUfvC0iighSkr6fiUM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2MwbWh0/eWd1N2F1d2tiYXF4/cGFpLnBuZw" alt="MindsDB Runner" width="880" height="902"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; We can now simply try to access the MindsDB GUI using the Public IP of the instance over the exposed port of 47334. If we give a closer look at the interface, we can find a query writer at the top, the result viewer at the bottom and the learning hub resources towards the right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/w2p7wrkjvtDY0bcNNym1ywyFGZPGUZh6xG5ICFVR1A0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NvM3Bt/YTMzbWtsdXZ0YTdo/cGtyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/w2p7wrkjvtDY0bcNNym1ywyFGZPGUZh6xG5ICFVR1A0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NvM3Bt/YTMzbWtsdXZ0YTdo/cGtyLnBuZw" alt="MindsDB GUI" width="880" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring Tables inside MindsDB
&lt;/h2&gt;

&lt;p&gt;As we have already hosted our MindsDB version on the instance, we are now ready to train the predictor models and start predicting results as we require. But let us first explore the tables that are present by default. We can simply do that with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Show tables;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/kMb_r48r-Dh3YWnJfBT4ZqUod7GIoEyjfnm0RrtkLN8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL253Yzgz/M2p6N21ibHg4Ynp0/Y2w5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/kMb_r48r-Dh3YWnJfBT4ZqUod7GIoEyjfnm0RrtkLN8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL253Yzgz/M2p6N21ibHg4Ynp0/Y2w5LnBuZw" alt="MindsDB Tables" width="880" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we can see, we get two tables by default i.e., &lt;code&gt;Predictors&lt;/code&gt; and &lt;code&gt;Databases&lt;/code&gt;.&lt;br&gt;
The &lt;code&gt;Predictors&lt;/code&gt; table stores the Predictor models that we train, and each model is stored as a record in this table as an individual row and each of its columns contain specific information about the model.&lt;br&gt;
The &lt;code&gt;Databases&lt;/code&gt; table contains the list of databases connected with the MindsDB instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Well, now we have reached the end of this tutorial and it's time to do a short recap of what we did here. So, we started with creating a Civo Compute instance, then we installed MindsDB on top of it using docker, exposed the required ports to access the MindsDB GUI and finally explored the tables that are present there by default.&lt;/p&gt;

&lt;p&gt;Apart from the self-hosted version, MindsDB also provides a &lt;a href="https://cloud.mindsdb.com/"&gt;MindsDB Cloud&lt;/a&gt; version which you can use for free. So, do give it a try and play around with your own Predictor models.&lt;/p&gt;

&lt;p&gt;Lastly, before you leave this page, feel free to drop a like if you liked this tutorial and don't forget to key in your feedback as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the Dashboard images are sole properties of Civo and MindsDB respectively and are used here for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/0X49pAvL0QPHx7y_pshmbW2ZykPTKsNvUL6NG3-Ug_4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVueG5m/bnozcWRyeWRvbTA5/ZHJtLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/0X49pAvL0QPHx7y_pshmbW2ZykPTKsNvUL6NG3-Ug_4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVueG5m/bnozcWRyeWRvbTA5/ZHJtLnBuZw" alt="Powered by Civo" width="880" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorials</category>
      <category>dataops</category>
      <category>cloudops</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Predicting Data Science Job Salaries using MindsDB Cloud</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Sat, 06 Aug 2022 10:32:43 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/predicting-data-science-job-salaries-using-mindsdb-cloud-1lgn</link>
      <guid>https://community.ops.io/rutamhere/predicting-data-science-job-salaries-using-mindsdb-cloud-1lgn</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/SaoTXXXkNMJUavM0uMLDVRpsZHujXXZxd8FpiRWz2Mk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzcyNm93/NDcyamx3ZnFram5w/NThrLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/SaoTXXXkNMJUavM0uMLDVRpsZHujXXZxd8FpiRWz2Mk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzcyNm93/NDcyamx3ZnFram5w/NThrLnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;MindsDB comes quite handy when we want to work with our existing databases and enable machine learning capabilities with our available datasets. With the use of MindsDB, we can easily train machine learning models and make predictions directly within the database. In short, we can say MindsDB embeds Data Science in our traditional databases to make them smart and enable us to extract meaningful insights.&lt;/p&gt;

&lt;p&gt;MindsDB offers a cloud version which we can use completely online, or we can use self-hosted version using Docker or Pip. You can also opt for its free (Limited to 10K rows in the training dataset) or paid version as per your requirements.&lt;/p&gt;

&lt;p&gt;Today in this tutorial, we will be using the MindsDB Cloud to train a Predictor model that can predict the salaries for different Data Science jobs based on several feature parameters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importing data to MindsDB Cloud
&lt;/h2&gt;

&lt;p&gt;We will need a dataset initially that contains salaries of data science positions based on several candidate parameters. You can download a copy of the dataset &lt;a href="https://www.kaggle.com/datasets/ruchi798/data-science-job-salaries"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once you have downloaded the dataset, simply extract it and save the CSV file for later use.&lt;/p&gt;

&lt;p&gt;Now let us get started with our MindsDB Cloud account to take things further.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; &lt;a href="https://cloud.mindsdb.com/login"&gt;Login&lt;/a&gt; to your existing MindsDB Cloud account or signup for a new one &lt;a href="https://cloud.mindsdb.com/register"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/kiMBVokH8AJH4ULKdMnoQe55jrTKe3iA7SwLwq_ywLo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzIwOGNx/c3ozY3ZybGoydTBm/bGE5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/kiMBVokH8AJH4ULKdMnoQe55jrTKe3iA7SwLwq_ywLo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzIwOGNx/c3ozY3ZybGoydTBm/bGE5LnBuZw" alt="MindsDB Register Page" width="880" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you have signed up or logged in to your MindsDB cloud account, you can find the MindsDB Cloud Editor opened up for you. &lt;/p&gt;

&lt;p&gt;The top panel is for writing the query, the bottom panel is for displaying the results and the right panel lists out some of the learning hub resources to make things easier for the new users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/pXGBT4KiqcM4ByIL4YPI7MHXdDSS0xQ81TLsD49MvHw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzJmeGpm/dWlzdTg5YmFzb210/bTZwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/pXGBT4KiqcM4ByIL4YPI7MHXdDSS0xQ81TLsD49MvHw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzJmeGpm/dWlzdTg5YmFzb210/bTZwLnBuZw" alt="MindsDB Cloud Editor" width="880" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Now simply click on Add Data from the top right and on the next screen that appears, switch over to &lt;code&gt;Files&lt;/code&gt; instead of Databases and then click on &lt;code&gt;Import File&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/eiQVlqGCf6PvCFcmpg2RlhfXTXlXXDV83G9VhykUBZM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2k5NnA4/OWh2NzFzZmd4a3E5/cGNrLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/eiQVlqGCf6PvCFcmpg2RlhfXTXlXXDV83G9VhykUBZM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2k5NnA4/OWh2NzFzZmd4a3E5/cGNrLnBuZw" alt="Importing File" width="880" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now on the &lt;code&gt;Import File&lt;/code&gt; dashboard, browse the dataset file from your computer, set a name for the &lt;code&gt;Table&lt;/code&gt; and then hit the &lt;code&gt;Save and Continue&lt;/code&gt; button. This should easily upload the dataset file for you and create a Table with the name you provided.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/AVy4KTwdqElBXpo88y0k7MYNZzQS85_-UjGyb86KQik/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Vpcjlr/MmtzZzU1bGc3eGJ0/NHExLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/AVy4KTwdqElBXpo88y0k7MYNZzQS85_-UjGyb86KQik/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Vpcjlr/MmtzZzU1bGc3eGJ0/NHExLnBuZw" alt="File Import Wizard" width="880" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Now the GUI returns back to the Editor screen where you can find two generic queries mentioned to either list the tables or query the data in the table that you just uploaded. Let's run both of these queries and check through the results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/m4CJ6MP57Mg7pvp8688BlVHLRc17ZY6j-Zr8n58oTSE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVjaG5t/NDg5M2M3cmFkbzZn/ZmR1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/m4CJ6MP57Mg7pvp8688BlVHLRc17ZY6j-Zr8n58oTSE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVjaG5t/NDg5M2M3cmFkbzZn/ZmR1LnBuZw" alt="List Tables" width="880" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the second query returns the following result.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/bc7wEkaBalsJVsK5kRdXOgeHjA5cMnwZ1AfXPhErxnw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzN3b3gy/MnRzY3ZwbmM1ZmU0/dnpoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/bc7wEkaBalsJVsK5kRdXOgeHjA5cMnwZ1AfXPhErxnw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzN3b3gy/MnRzY3ZwbmM1ZmU0/dnpoLnBuZw" alt="Table Data Viewer" width="880" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are now ready to create a Predictor model using our Salary table that we just uploaded.&lt;/p&gt;

&lt;h2&gt;
  
  
  Training a Predictor Model
&lt;/h2&gt;

&lt;p&gt;MindsDB makes it extremely easy to define a Predictor model and train it by using a simple SQL syntax.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; We will now use the &lt;code&gt;CREATE PREDICTOR&lt;/code&gt; syntax to create the Predictor. Find the syntax below to learn more about it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;PREDICTOR&lt;/span&gt; &lt;span class="n"&gt;mindsdb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;predictor_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Your&lt;/span&gt; &lt;span class="n"&gt;Predictor&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;database_name&lt;/span&gt;                      &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Your&lt;/span&gt; &lt;span class="k"&gt;Database&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="k"&gt;table_name&lt;/span&gt; &lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Your&lt;/span&gt; &lt;span class="k"&gt;Table&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;PREDICT&lt;/span&gt; &lt;span class="n"&gt;target_parameter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;               &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Your&lt;/span&gt; &lt;span class="n"&gt;Target&lt;/span&gt; &lt;span class="k"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query should get executed and return successful in the Result Viewer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/RDQZzGk1bVc2_Y1gAtAuNTSqC-0bRynTtZWHimZejzs/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2l6cHRx/ajEya2x5cDJuNXlx/OXhvLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/RDQZzGk1bVc2_Y1gAtAuNTSqC-0bRynTtZWHimZejzs/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2l6cHRx/ajEya2x5cDJuNXlx/OXhvLnBuZw" alt="Create Predictor Query" width="880" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: We have used &lt;code&gt;LIMIT 10000&lt;/code&gt; here as we are using the free version of MindsDB and it supports upto 10K rows and will error out if we have more rows.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; The model should take a little while to get created and trained. We can check the status of the model using the syntax below. If the query returns &lt;code&gt;Complete&lt;/code&gt;, then the model is ready to use or else wait if it returns &lt;code&gt;Training&lt;/code&gt; status.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;mindsdb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;predictors&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'name_of_the_predictor_model'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/bolUWByAx9kofE7a3OUhaDONEgpCfpB1pOAOVnRk3Lw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x0dm92/cHRwMWlpMnZxazl6/ZWd1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/bolUWByAx9kofE7a3OUhaDONEgpCfpB1pOAOVnRk3Lw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x0dm92/cHRwMWlpMnZxazl6/ZWd1LnBuZw" alt="Predictor Status" width="880" height="647"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Describing the Predictor Model
&lt;/h2&gt;

&lt;p&gt;MindsDB provides a &lt;code&gt;DESCRIBE&lt;/code&gt; statement that we can use to gain some insights into the Predictor Model. We can find more details about the model in the following three ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;By Features&lt;/li&gt;
&lt;li&gt;By Model&lt;/li&gt;
&lt;li&gt;By Model Ensemble&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  By Features
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DESCRIBE&lt;/span&gt; &lt;span class="n"&gt;mindsdb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;predictor_model_name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;features&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This statement is used to find out the type of encoders used on each column to train the model and the role of each of the columns for the model. A sample output for our model is posted below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/yvAD4jjOvGU-FfwV2Tjj6g61W3kfeq9_18cT70AS-RE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RsbTBz/b3FydnhuY3JyemZl/bTdrLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/yvAD4jjOvGU-FfwV2Tjj6g61W3kfeq9_18cT70AS-RE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RsbTBz/b3FydnhuY3JyemZl/bTdrLnBuZw" alt="Feature Description" width="880" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  By Model
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DESCRIBE&lt;/span&gt; &lt;span class="n"&gt;mindsdb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;predictor_model_name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MindsDB uses several candidate models internally to train the data and then picks up the most optimized one for the model to do the predictions. This statement simply lists out all the candidate models used to train the data along with other details. The model with &lt;code&gt;1&lt;/code&gt; in its &lt;code&gt;selected&lt;/code&gt; column is the one that is the most optimized and accurate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/QV9DkR6qPlySjzj_VVl6u7ar1b1LfgAoOfICqN9uub0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FnZno0/cThqaW94bDlqbmJ4/d2tnLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/QV9DkR6qPlySjzj_VVl6u7ar1b1LfgAoOfICqN9uub0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FnZno0/cThqaW94bDlqbmJ4/d2tnLnBuZw" alt="Model Description" width="880" height="648"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  By Model Ensemble
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DESCRIBE&lt;/span&gt; &lt;span class="n"&gt;mindsdb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;predictor_model_name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ensemble&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this statement, we can simply query out a JSON object that lists out the multiple attributes used to select the best candidate model to do the predictions finally.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/j7A_RvAYmaJLeL5GJMOa61QG6wGf4ANlTMnkTpZUCiw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzA2d3gw/NzhlNjN4MmtoMTRo/bnBvLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/j7A_RvAYmaJLeL5GJMOa61QG6wGf4ANlTMnkTpZUCiw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzA2d3gw/NzhlNjN4MmtoMTRo/bnBvLnBuZw" alt="Model Ensemble Description" width="880" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying the Model
&lt;/h2&gt;

&lt;p&gt;Now that we are ready with our Predictor Model, we can simply execute some simple SQL query statements to predict the target value based on the feature parameters.&lt;/p&gt;

&lt;p&gt;We will get started by predicting the Salary based on only one feature parameter and the query statement should look something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;salary&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;mindsdb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;salary_predictor&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;experience&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'SE'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return the expected salary for the person with the experience level of &lt;code&gt;SE&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Gt15FlBqrqvigfaenqIEEViLPW8xeZ6zK90p6KbEgpo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2thdHg1/cGltdm9hdXUzODJ4/OHA2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Gt15FlBqrqvigfaenqIEEViLPW8xeZ6zK90p6KbEgpo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2thdHg1/cGltdm9hdXUzODJ4/OHA2LnBuZw" alt="Salary for SE Level Data Science Job" width="880" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's now try predicting the salary based on multiple feature parameters. The query should look something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;salary&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;mindsdb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;salary_predictor&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;experience&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'EN'&lt;/span&gt; &lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;job_title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Data Analyst'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return the expected salary for the person with the experience level of &lt;code&gt;EN&lt;/code&gt; with the job title of &lt;code&gt;Data Analyst&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Sl0aaDE_GIQ6zfC7a8lfMww4uXdf3k11arrT0Z35_e0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3I3Zml6/a3d6MGc0OGNzNHI5/OTBnLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Sl0aaDE_GIQ6zfC7a8lfMww4uXdf3k11arrT0Z35_e0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3I3Zml6/a3d6MGc0OGNzNHI5/OTBnLnBuZw" alt="Salary for an EN level Data Analyst" width="880" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;With this we have reached the end of the tutorial. In this tutorial, we created our own MindsDB Cloud account, uploaded a dataset to the cloud interface, trained a predictor model with our dataset and finally predicted the salaries of different Data Science jobs.&lt;/p&gt;

&lt;p&gt;It is really easy to go out yourself and try training your own predictor models using datasets available online through MindsDB. So, go ahead and give it a try and do all the predictions you want.&lt;/p&gt;

&lt;p&gt;Lastly, before you leave this page, drop a &lt;code&gt;LIKE&lt;/code&gt; if you learnt something new and interesting today and also don't forget to key in your feedback below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dataops</category>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>tutorials</category>
    </item>
    <item>
      <title>Getting Started with Speedscale on Civo Managed Kubernetes</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Mon, 20 Jun 2022 20:00:40 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/getting-started-with-speedscale-on-civo-managed-kubernetes-804</link>
      <guid>https://community.ops.io/rutamhere/getting-started-with-speedscale-on-civo-managed-kubernetes-804</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/u3bTxMEBr16OZPvJRI-DIvzCvQZOcoB85T5xV2ExO2M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2Rtenln/aWt1Mm1yeDY1emxu/cHF2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/u3bTxMEBr16OZPvJRI-DIvzCvQZOcoB85T5xV2ExO2M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2Rtenln/aWt1Mm1yeDY1emxu/cHF2LnBuZw" alt="Cover" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;We have been largely using APIs in our day to life to perform various operation in an application. APIs are quite crucial in establishing a connection between two intermediate services to maintain the dataflow.&lt;/p&gt;

&lt;p&gt;But managing and monitoring large number of APIs can be very overwhelming and time-consuming, and we still might miss some deeper insights if we do it manually. In such a situation, Speedscale comes into play.&lt;/p&gt;

&lt;p&gt;Speedscale is a framework that offers traffic replay using realistic API traffic and provides with auto-generated tests to simulate the load or chaos and infer the confidence by measuring the performance of the APIs inside the Kubernetes Clusters.&lt;/p&gt;

&lt;p&gt;In this tutorial, we will simply spin up a Civo managed Kubernetes cluster, add Speedscale to the cluster and then patch it's sidecar with one of the application deployments to gain insights into the real-time API traffic for that deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Civo Managed Kubernetes Cluster
&lt;/h2&gt;

&lt;p&gt;Now we will start by creating a Kubernetes Cluster using the Civo Dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Log in to the Civo dashboard with your credentials or you can simply sign up &lt;a href="https://www.civo.com/"&gt;here&lt;/a&gt; if you don't have an account yet. Civo provides 250$ worth of free credits for 1 month to its new users so that they can explore the platform freely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/fJL4-SqxtZJ3JToQM7roFDWVGkjyBBVkqC6ipS963kQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x6cHZj/OWVpMzY1NXF0d2c3/c3FmLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/fJL4-SqxtZJ3JToQM7roFDWVGkjyBBVkqC6ipS963kQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x6cHZj/OWVpMzY1NXF0d2c3/c3FmLnBuZw" alt="Civo Sign in" width="880" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you are logged in, make sure &lt;code&gt;Kubernetes&lt;/code&gt; is selected in the left navigation pane and then click on &lt;code&gt;Create new cluster&lt;/code&gt; or &lt;code&gt;Launch my first cluster&lt;/code&gt; to open the cluster configuration dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/63dRNMegAzvaLpBUE0fC1BfEAhc1ZNO1sav4_UhplUM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2hzaWU1/MHl1d3I4OGk4bThm/dG50LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/63dRNMegAzvaLpBUE0fC1BfEAhc1ZNO1sav4_UhplUM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2hzaWU1/MHl1d3I4OGk4bThm/dG50LnBuZw" alt="Create Cluster" width="880" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Once you're on the configuration page, you can select the specs you wish to have for your cluster. For the sake of this tutorial, you can use the specs mentioned below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-&amp;gt;Name&lt;/strong&gt;- Give a name as you want (For e.g, speedscale-demo)&lt;br&gt;
&lt;strong&gt;-&amp;gt;Network&lt;/strong&gt;- default&lt;br&gt;
&lt;strong&gt;-&amp;gt;Firewall&lt;/strong&gt;- Deafult, unless you want to configure anything specific&lt;br&gt;
&lt;strong&gt;-&amp;gt;Select size&lt;/strong&gt;- Large Standard (Switch to Hourly mode)&lt;br&gt;
&lt;strong&gt;-&amp;gt;Show advanced options&lt;/strong&gt;- Leave it at default&lt;br&gt;
&lt;strong&gt;-&amp;gt;Marketplace&lt;/strong&gt;- You can leave it at default or select any app if you wish to install (For e.g., Helm from Management Tab)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/RPNKC9y4b4JIhoP5eAkxbe5gXjD_PTZKRQq7E1_3xJY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzJxNTJl/MDhubWYxMjQ2a3I4/YWtiLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/RPNKC9y4b4JIhoP5eAkxbe5gXjD_PTZKRQq7E1_3xJY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzJxNTJl/MDhubWYxMjQ2a3I4/YWtiLnBuZw" alt="Cluster Config" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now click on &lt;code&gt;Create cluster&lt;/code&gt; and wait for it to get provisioned. This should take a while.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Once the cluster is ready, simply download the &lt;code&gt;kubeconfig&lt;/code&gt; and merge it in the config file in the &lt;code&gt;.kube&lt;/code&gt; folder on your local system or you can simply overwrite it as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/muUdk0gIPbnYb6XmP05MzIoO5r0VEnl7Xf_o75-Fnps/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3g0ZWxv/ZHg1d3ZlaG16ZHlu/NzV3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/muUdk0gIPbnYb6XmP05MzIoO5r0VEnl7Xf_o75-Fnps/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3g0ZWxv/ZHg1d3ZlaG16ZHlu/NzV3LnBuZw" alt="Cluster Config" width="880" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If you've merged the &lt;code&gt;kubeconfig&lt;/code&gt; in your existing config file, then make sure to switch the context to use the cluster you've just created. You can do that with the command below.&lt;/p&gt;


&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl config use-context CONTEXTNAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Now we will simply try to fetch the list of nodes using kubectl to cross-check if we are able to interact with the cluster or not. Run the command below to get it done.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get nodes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/PVV2ezl9pRdRHZldWBvgsPwivHV2iiWmRPr5WldCXEI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2s1d2Zh/Zjk1YXRkam9vMWZi/MGFhLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/PVV2ezl9pRdRHZldWBvgsPwivHV2iiWmRPr5WldCXEI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2s1d2Zh/Zjk1YXRkam9vMWZi/MGFhLnBuZw" alt="Kube Nodes" width="880" height="107"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it successfully returns the list of nodes, then we are good to go with the next steps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If you need help with configuring &lt;code&gt;kubectl&lt;/code&gt;, then you can find a detailed guide &lt;a href="https://kubernetes.io/docs/tasks/tools/#kubectl"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Deploying Speedscale on the Cluster
&lt;/h2&gt;

&lt;p&gt;Now we need to create a deployment for the Speedscale Kubernetes operator. Let's do it in the subsequent steps below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Sign up for a Free Trial account on &lt;a href="https://speedscale.com/free-trial/"&gt;Speedscale&lt;/a&gt;. Speedscale offers a 14-day trial and also a free community edition for all types of users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/FzAYAm2nP4ZjUQnQcrPeB0blnSg3yoZ6mv04mVoJqD4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzljejZh/YXBwczQ4NWR5dTBj/NWl4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/FzAYAm2nP4ZjUQnQcrPeB0blnSg3yoZ6mv04mVoJqD4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzljejZh/YXBwczQ4NWR5dTBj/NWl4LnBuZw" alt="Speedscale Signup" width="880" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you've signed up, you should receive a mail with the available ways to install Speedscale (Either using the Helm Chart or the command line tool). Also, log in to your dashboard and stay signed in as we will come back to use this dashboard at a later stage in this tutorial.&lt;/p&gt;

&lt;p&gt;For complete steps on using Helm chart, visit &lt;a href="https://github.com/speedscale/operator-helm"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For complete steps on using command line tool visit &lt;a href="https://docs.speedscale.com/install/overview/"&gt;here&lt;/a&gt; or for using the install wizard visit &lt;a href="https://docs.speedscale.com/install/install-wizard/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/VVbIJ9UcnhJB3f7K8d_r0F8UEieNxIHx9mfqDceJ09c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3hzYnZ3/ZzEzYnRteHcxZjJp/cWpkLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/VVbIJ9UcnhJB3f7K8d_r0F8UEieNxIHx9mfqDceJ09c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3hzYnZ3/ZzEzYnRteHcxZjJp/cWpkLnBuZw" alt="Email Header" width="878" height="962"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; For now, we will use the helm chart to install the Speedscale operator on our cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-&amp;gt;&lt;/strong&gt; Add the Speedscale repo using Helm first. Use the command below to do so.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;helm repo add speedscale https://speedscale.github.io/operator-helm/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;-&amp;gt;&lt;/strong&gt; Check and update the repo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;helm repo update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;-&amp;gt;&lt;/strong&gt; Now to install the chart, use the command below replacing the placeholders for your &lt;code&gt;Speedscale API Key&lt;/code&gt; and the &lt;code&gt;Cluster Name&lt;/code&gt; where you want to deploy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;helm install speedscale-operator speedscale/speedscale-operator \
    -n speedscale \
    --create-namespace \
    --set apiKey=&amp;lt;YOUR-SPEEDSCALE-API-KEY&amp;gt; \
    --set clusterName=&amp;lt;YOUR-CLUSTER-NAME&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/X7JiipDJjLV4uBVpVfiHBX4L25GtgB_Yu2Y10WSd0S4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzYzMWtw/djRwZGg1endwNnpo/b281LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/X7JiipDJjLV4uBVpVfiHBX4L25GtgB_Yu2Y10WSd0S4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzYzMWtw/djRwZGg1endwNnpo/b281LnBuZw" alt="Helm Chart" width="798" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If you face a pre-install job failure while installing, then you can follow the troubleshooting guide &lt;a href="https://github.com/speedscale/operator-helm#pre-install-job-failure"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now let's check the pods to confirm whether the Speedscale charts are deployed or not.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pods -n speedscale
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return a list of pods in the &lt;code&gt;speedscale&lt;/code&gt; namespace.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/6Y9WMfyI5DsHAfSIumHtGrBOxnccIzZUVjM5X_V_Ct4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3AxcjUx/ajB2YXJ6Z3JhcWc1/cTh1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/6Y9WMfyI5DsHAfSIumHtGrBOxnccIzZUVjM5X_V_Ct4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3AxcjUx/ajB2YXJ6Z3JhcWc1/cTh1LnBuZw" alt="Speedscale Pods" width="880" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are now ready with our Speedscale Kubernetes operator and can proceed with the next steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying the Demo Podtato App
&lt;/h2&gt;

&lt;p&gt;We will now deploy a demo app and stress test the API by pinging it multiple times. So, let's get started with that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Let's deploy the app using the Podtato yaml file. we can do that with the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f https://raw.githubusercontent.com/speedscale/podtato-head/main/delivery/kubectl/manifest.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/3wly2Ula_twpPJC4cPworkbk0OJlE8UMff7GbCxNhxE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3BhNHF1/ZjdiYnJ6eDVsamV6/bzRvLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/3wly2Ula_twpPJC4cPworkbk0OJlE8UMff7GbCxNhxE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3BhNHF1/ZjdiYnJ6eDVsamV6/bzRvLnBuZw" alt="Podtato App" width="880" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Now lets check if the respective pods for the app are already deployed or not.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pods (As it was deployed in the default namespace.)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/vmBII9nX85wjn9U0HFpebIWLvi_wgxTQIIbyAqwZHTo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RkZHB5/Z3V2cmZraDI5bXVw/MGxmLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/vmBII9nX85wjn9U0HFpebIWLvi_wgxTQIIbyAqwZHTo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RkZHB5/Z3V2cmZraDI5bXVw/MGxmLnBuZw" alt="Podtato Pods" width="877" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Now let's open this app in browser to check how it looks. The URL should look something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://[YOUR CLUSTER EXTERNAL IP]:31000/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now let's patch the Podtato app with the Speedscale operator sidecars to keep track of the traffic coming in/out of the app. We can achieve this with the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl annotate deployment --all sidecar.speedscale.com/inject="true"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/i3v2fSy--uN1eK553vcL2uC0fvr-v-ev1kAZvzJtmuE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVvM2Nj/bzFwbjV2cTF1c283/cjc5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/i3v2fSy--uN1eK553vcL2uC0fvr-v-ev1kAZvzJtmuE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVvM2Nj/bzFwbjV2cTF1c283/cjc5LnBuZw" alt="Speedscale Patching" width="802" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have now the Speedscale sidecars running with the Podtato app pods making it 2 deployments in &lt;code&gt;Running&lt;/code&gt; state. Let's move on to the next steps now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/vCGFyakHLmY42SLGwRTDTWoIeAEjw61xn3Ljy2_5E6E/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2E2dG1j/eGI5YWZuazg1czRt/OWY3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/vCGFyakHLmY42SLGwRTDTWoIeAEjw61xn3Ljy2_5E6E/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2E2dG1j/eGI5YWZuazg1czRt/OWY3LnBuZw" alt="Sidecar Pods" width="880" height="172"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Load testing the Podtato App
&lt;/h2&gt;

&lt;p&gt;It's time to put some load now on the Podtato app to trace them on the Speedscale dashboard and analyze the traffic. Follow the steps below and we should be good to go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Now we can simply generate some load/traffic by hitting the Podtato app URL multiple times or by simply refreshing the browser tab.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; After a while, we can see that our Podtato app services get enlisted in the Speedscale Dashboard. This ensures that the sidecars are successfully capturing the traffic logs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/WiyA6ASjCxOaArF0YeC9Dwf2ttGQUg5zd5xiIs1aj8o/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2tyZzdh/aTNibDFhM3M4dmZs/Z3d1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/WiyA6ASjCxOaArF0YeC9Dwf2ttGQUg5zd5xiIs1aj8o/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2tyZzdh/aTNibDFhM3M4dmZs/Z3d1LnBuZw" alt="Podtato Services" width="880" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Now if we click on each of the service names, it will take us to the Services insights page where we can see specific details about the services, the inbound/outbound transfer rates and health of the service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/yz-IBDuCh3ef0Evvx6gtLhEDhNOrQs_x7_UT6vW7_9I/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NpbzMw/cGZ4dm9keW5ybjB5/dGFjLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/yz-IBDuCh3ef0Evvx6gtLhEDhNOrQs_x7_UT6vW7_9I/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NpbzMw/cGZ4dm9keW5ybjB5/dGFjLnBuZw" alt="Services Insights" width="880" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now if we click on the first item on the list which was marked in red above, then it will take us to the traffic distribution page for that specific service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/3tkPAX2DkS94lkvguIAaajEb4Vst_akINGymUxLbfRk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzZvbnd6/YmY5aGlpNHJwOXN0/cjFpLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/3tkPAX2DkS94lkvguIAaajEb4Vst_akINGymUxLbfRk/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzZvbnd6/YmY5aGlpNHJwOXN0/cjFpLnBuZw" alt="Traffic Distribution" width="880" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It gives a brief information about the kind of request, no of requests, the port and the service that it hits, as a part of its &lt;code&gt;Service Map&lt;/code&gt; section.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/_pCjCfF55PswmqGMwClIR9yXpfo6vLsAMnkTRW-kJmc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2dqZ2Vo/MGVncjRjeWhqczhj/Y2N5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/_pCjCfF55PswmqGMwClIR9yXpfo6vLsAMnkTRW-kJmc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2dqZ2Vo/MGVncjRjeWhqczhj/Y2N5LnBuZw" alt="Service Map" width="880" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, it lists out all the traffic records below at its &lt;code&gt;Traffic&lt;/code&gt; section and clicking on each of them further provides insights like the request headers, response body, info and tags.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/hfB73hFS9g1BOWqmpF20QVcqgObOshzDtOBdzxVLTKo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lvemdr/dWV4YTM1Y2xlb3Vp/aGJoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/hfB73hFS9g1BOWqmpF20QVcqgObOshzDtOBdzxVLTKo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lvemdr/dWV4YTM1Y2xlb3Vp/aGJoLnBuZw" alt="Traffic Map" width="880" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, this is pretty much how we can load test the &lt;code&gt;Podtato&lt;/code&gt; app and visualize its traffic using Speedscale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We have now reached the end of this tutorial. In this tutorial, we created a cluster on Civo, installed Speedscale operator on it, deployed a demo app, patched it with the Speedscale operator and finally visualized the traffic after load testing.&lt;/p&gt;

&lt;p&gt;Speedscale definitely does a great job in logging the traffic for all the patched services. The way it visualizes their traffic on the dashboard and the number of insights it provides for each of them is pretty impressive. Feel free to sign up for Speedscale and give it a spin with your own use-cases.&lt;/p&gt;

&lt;p&gt;Lastly, show some love to this article if you really found this useful and don't forget to share your feedback as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images used here are sole properties of Civo and Speedscale respectively, and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/0X49pAvL0QPHx7y_pshmbW2ZykPTKsNvUL6NG3-Ug_4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVueG5m/bnozcWRyeWRvbTA5/ZHJtLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/0X49pAvL0QPHx7y_pshmbW2ZykPTKsNvUL6NG3-Ug_4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzVueG5m/bnozcWRyeWRvbTA5/ZHJtLnBuZw" alt="Powered by Civo" width="880" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>tutorials</category>
      <category>devops</category>
      <category>api</category>
    </item>
    <item>
      <title>Walk-through for DigitalOcean Functions Challenge</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Sat, 11 Jun 2022 21:28:32 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/walk-through-for-digitalocean-functions-challenge-21k6</link>
      <guid>https://community.ops.io/rutamhere/walk-through-for-digitalocean-functions-challenge-21k6</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/S_K54ds39YNOz_xz6lqix30bFxMSYyAoGjycir5dLYg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL25hdnVt/MWRreHh6NGJjMnZy/eDlvLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/S_K54ds39YNOz_xz6lqix30bFxMSYyAoGjycir5dLYg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL25hdnVt/MWRreHh6NGJjMnZy/eDlvLnBuZw" alt="Cover" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;DigitalOcean has recently launched a new feature for its platform users and it's the most awaited Serverless Functions. With the availability of Functions, the resources are managed internally by DigitalOcean and they even take care of scaling them up or down based on demand automatically. Some of the other basic key features include the following.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;More Focus on Code&lt;/strong&gt;&lt;br&gt;
This enables the developers to only work on their code and maintain its quality as DigitalOcean takes care of the provisioning and scaling of resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost-Saving&lt;/strong&gt;&lt;br&gt;
With the use of functions, we no longer need to keep any idle server up and running all the time. We are simply charged only when the functions are triggered by an event.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Autoscaling&lt;/strong&gt;&lt;br&gt;
DigitalOcean handles the infra as per the demand and one need not worry about its availability of it during its peak or idle hours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster Production-ready Deployments&lt;/strong&gt;&lt;br&gt;
With functions, we only need to choose the coding language and can then deploy them easily with a few clicks. This cuts the time which used to be wasted on infra-management and hence, makes deployments faster.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The DigitalOcean Functions Challenge
&lt;/h2&gt;

&lt;p&gt;DigitalOcean is always community-driven and widely wants its community to try the new features and provide suggestions for the further scope of improvements. So, they have come up with a brand-new Functions challenge where one needs to call a Serverless Function to deploy Sammy, the official DigitalOcean mascot, in the shark tank created for this challenge.&lt;/p&gt;

&lt;p&gt;Not only one can try the new Functions on the platform, but also the first 500 valid entries can win some DigitalOcean swags as well. You can find the detailed guidelines &lt;a href="https://www.digitalocean.com/community/pages/functions-challenge"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, let's figure out some of the ways by which you can easily complete this challenge and win some swags as well. Remember that you can do this in several other ways as well and the use of Functions is not really limited to the following ways. You are always encouraged to try as many things as possible with the all-new DigitalOcean Functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Namespace to Deploy Functions
&lt;/h2&gt;

&lt;p&gt;Before we begin, let's get the pre-requisites set up first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Sign up for a new &lt;a href="https://m.do.co/c/6e6e815feea2"&gt;DigitalOcean account&lt;/a&gt; if you don't have one yet or else use your existing credentials to log in to the platform &lt;a href="https://cloud.digitalocean.com/login"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/AB6LcpsXlUJOjvVNgDdrk8mrs6mPCIHPjzMD8Gllxv8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lwOGRs/endtc2J0Z3hzbHFn/c3ZnLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/AB6LcpsXlUJOjvVNgDdrk8mrs6mPCIHPjzMD8Gllxv8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lwOGRs/endtc2J0Z3hzbHFn/c3ZnLnBuZw" alt="Do Login Page" width="880" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; As soon as you log in, simply click on the &lt;code&gt;Functions&lt;/code&gt; tab from the left navigation pane to open the Functions dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ltQa62GJV1B84mK1aLA7rLr6X09NsOIMnBO4jEhMHdc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3U5NjBv/bmkxbGc1ODVmZDUw/aGVoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ltQa62GJV1B84mK1aLA7rLr6X09NsOIMnBO4jEhMHdc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3U5NjBv/bmkxbGc1ODVmZDUw/aGVoLnBuZw" alt="Functions Dashboard" width="880" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now click on launch to create a namespace. This should be ready in a few seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Once you're inside the Namespace dashboard, you can clearly see that there are two ways by which we can deploy the functions; either using our local machine and code editor or directly from the browser.&lt;/p&gt;

&lt;p&gt;We will use the second way of doing that directly through the browser for now. So, click on &lt;code&gt;Go to Source&lt;/code&gt; button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/g2W5jLZrA1PIt0OGgcJ8Hp9eItImRa-HXUbdWAtCpvg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FoYWN5/b2hmNGxjNXI0d3A1/Z203LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/g2W5jLZrA1PIt0OGgcJ8Hp9eItImRa-HXUbdWAtCpvg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FoYWN5/b2hmNGxjNXI0d3A1/Z203LnBuZw" alt="Namespace Dashboard" width="880" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Once you're in the &lt;code&gt;Source&lt;/code&gt; tab, simply click on the &lt;code&gt;New Function&lt;/code&gt; button. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/84xjDUT5-P89AB8jLGwtVPK1xtOwwA_SqszbtU4GFBI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FlYXZr/OWJ4aGgxYTVtbXQx/Yzl6LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/84xjDUT5-P89AB8jLGwtVPK1xtOwwA_SqszbtU4GFBI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FlYXZr/OWJ4aGgxYTVtbXQx/Yzl6LnBuZw" alt="Create New Function" width="880" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This opens a &lt;code&gt;New Function&lt;/code&gt; dialog box where we need to select the &lt;code&gt;Runtime&lt;/code&gt;, &lt;code&gt;Function Name&lt;/code&gt; and &lt;code&gt;Package Name (optional)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/RaaEfZfVIBko-bKktoatwQ4pm7bfr06MfvGB4FMn53c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzQwcTZt/d2NueTVqbTFwOTJl/MDJ4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/RaaEfZfVIBko-bKktoatwQ4pm7bfr06MfvGB4FMn53c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzQwcTZt/d2NueTVqbTFwOTJl/MDJ4LnBuZw" alt="New Function Details" width="607" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you would have noticed now, there are 4 available runtime options namely, &lt;code&gt;Go:1.17&lt;/code&gt;, &lt;code&gt;Nodejs:14&lt;/code&gt;, &lt;code&gt;Php:8.0&lt;/code&gt; and &lt;code&gt;Python:3.9&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/MQSRtkSuDMDuXVYuHQs0538E_M_LSInYHb_S1sNd-Gc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzB3a3ls/cWx0cmoxOXo5cmNq/eDJhLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/MQSRtkSuDMDuXVYuHQs0538E_M_LSInYHb_S1sNd-Gc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzB3a3ls/cWx0cmoxOXo5cmNq/eDJhLnBuZw" alt="Runtime Options" width="672" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, in this tutorial, we will go ahead and create Functions for each of these runtimes separately and deploy a &lt;code&gt;Sammy&lt;/code&gt; in each case. However, deploying the function for any one of the runtimes completes the challenge for you and you're eligible to win some swag.&lt;/p&gt;

&lt;h2&gt;
  
  
  Walk-throughs for the Challenge
&lt;/h2&gt;

&lt;p&gt;Now we are ready to deploy some Functions to create a Sammy in the Aquarium, let us first understand what exactly we need to do with the function that we create.&lt;/p&gt;

&lt;p&gt;So, basically, we need to do a POST API request to the challenge end-point URL with the specified headers and body parameters containing the &lt;code&gt;name&lt;/code&gt; of the user and the &lt;code&gt;type&lt;/code&gt; of Sammy they want to deploy. You can view the detailed completion steps and the Aquarium &lt;a href="https://functionschallenge.digitalocean.com/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/J8RJfanS0JrtbG4RO3NdO7F_4hnd5NHlQZBSEQGiyQw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2FiMW9m/bWZzZDd3NHMyZTY3/bDY3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/J8RJfanS0JrtbG4RO3NdO7F_4hnd5NHlQZBSEQGiyQw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2FiMW9m/bWZzZDd3NHMyZTY3/bDY3LnBuZw" alt="Challenge Completion Steps" width="880" height="854"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Walkthrough for Go:1.17 Runtime
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; After you click on &lt;code&gt;New Function&lt;/code&gt;, in the New Function dialog box, select &lt;code&gt;Go:1.17&lt;/code&gt; as the runtime, give a name as you want and then a package name if you wish to and finally hit the &lt;code&gt;Create&lt;/code&gt; button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/s1zbcACKY-s5goEVwCCIrgkzi5BA2J4tALmrtZlpdRU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2R1bjlm/NmpudWJnZDNrdXRz/dmZ2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/s1zbcACKY-s5goEVwCCIrgkzi5BA2J4tALmrtZlpdRU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2R1bjlm/NmpudWJnZDNrdXRz/dmZ2LnBuZw" alt="Go Function" width="575" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; As we know what the endpoint URL, method type, payloads and the headers to be included, we can now design a function like the one below to do the API call.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "strings"
)

func apiCall() []byte {
  url := "https://functionschallenge.digitalocean.com/api/sammy"
    method := "POST"

    payload := strings.NewReader(`{"name" : "YourNameHere","type" : "SammyTypeHere"}`)

    client := &amp;amp;http.Client{}
    req, err := http.NewRequest(method, url, payload)

    if err != nil {
        fmt.Println(err)
    }
    req.Header.Add("Accept", "application/json")
    req.Header.Add("Content-Type", "application/json")

    res, err := client.Do(req)
    if err != nil {
        fmt.Println(err)
    }
    defer res.Body.Close()

    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(string(body))
  return body

}

func main(){
  apiCall()
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Simply, replace the &lt;strong&gt;&lt;code&gt;YourNameHere&lt;/code&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;code&gt;SammyTypeHere&lt;/code&gt;&lt;/strong&gt; placeholders with exact values as you want, click on &lt;code&gt;Save&lt;/code&gt; and then hit the Run button to execute the function. This will successfully create the Sammy in the aquarium with your name and type selected.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/NNIFEXHkMEWHn2tJLfH5RqgzdM3II0f9iiU0Tg-yyQY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3o2M3hl/OHhzZnQyeDg1ZTNh/MzFoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/NNIFEXHkMEWHn2tJLfH5RqgzdM3II0f9iiU0Tg-yyQY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3o2M3hl/OHhzZnQyeDg1ZTNh/MzFoLnBuZw" alt="Go Output" width="880" height="837"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: You may find some developer errors when you run this code in the &lt;code&gt;Output&lt;/code&gt; viewer, but do not worry, this doesn't fail the Sammy Creation process as you can find a success message in the &lt;code&gt;Logs&lt;/code&gt; viewer. Feel free to go to the aquarium link &lt;a href="https://functionschallenge.digitalocean.com/"&gt;above&lt;/a&gt; to find your Sammy swimming there.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Walkthrough for Nodejs:14 Runtime
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; From the &lt;code&gt;Source&lt;/code&gt; tab, click on &lt;code&gt;New Function&lt;/code&gt; again and choose Nodejs:14 as the runtime this time. Make sure your Function names are unique if you are putting them inside the same package.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/S5xK9W45wSum0w995Utqoht96l0nsrtGpKQJX5u2JYo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2kydnZp/bDFtb3JvMjBmMmMy/OTl1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/S5xK9W45wSum0w995Utqoht96l0nsrtGpKQJX5u2JYo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2kydnZp/bDFtb3JvMjBmMmMy/OTl1LnBuZw" alt="NodeJS Function" width="573" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Similarly, we can formulate a NodeJS function with all the given API request payloads in the following way.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var axios = require('axios');
var data = JSON.stringify({
  "name": "YourNameHere",
  "type": "SammyTypeHere"
});

var config = {
  method: 'post',
  url: 'https://functionschallenge.digitalocean.com/api/sammy',
  headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json'
  },
  data : data
};

exports.main = () =&amp;gt;
  axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
  return (response.data)
})
.catch(function (error) {
  console.log(error);
  return (error)
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Now replace the YourNameHere and SammyTypeHere here placeholders with your details, click on save and then hit the Run button. This should easily create the specified Sammy in the aquarium and you can see the response on both the &lt;code&gt;Output&lt;/code&gt; and &lt;code&gt;Logs&lt;/code&gt; viewers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/HRMZPbqXgBkHOWMi5r91gb392T_gDUrWkrh4v8ODTmo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRvZXRi/bm9kZG5sbXZqbDlo/aGk2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/HRMZPbqXgBkHOWMi5r91gb392T_gDUrWkrh4v8ODTmo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRvZXRi/bm9kZG5sbXZqbDlo/aGk2LnBuZw" alt="NodeJS Output" width="880" height="860"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Walk-through for Php:8.0
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Click on the &lt;code&gt;New Function&lt;/code&gt; button in the &lt;code&gt;Source&lt;/code&gt; tab, select Php:8.0 as the runtime this time, fill in the name and package as you want and click on &lt;code&gt;Create&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/9P1BNM0RrGuLqWyeFQkCReverOPb4T44Q1IUt7yPGRw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3ppZjJl/NDRidTVxaTI3Nnhh/Y3NtLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/9P1BNM0RrGuLqWyeFQkCReverOPb4T44Q1IUt7yPGRw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3ppZjJl/NDRidTVxaTI3Nnhh/Y3NtLnBuZw" alt="Php Function" width="570" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Now in a very similar way, we can write the Php function in the following way to do the POST API call to the end-point.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?php
function main() {
  $curl = curl_init();
  curl_setopt_array($curl, array(
  CURLOPT_URL =&amp;gt; 'https://functionschallenge.digitalocean.com/api/sammy',
  CURLOPT_RETURNTRANSFER =&amp;gt; true,
  CURLOPT_ENCODING =&amp;gt; '',
  CURLOPT_MAXREDIRS =&amp;gt; 10,
  CURLOPT_TIMEOUT =&amp;gt; 0,
  CURLOPT_FOLLOWLOCATION =&amp;gt; true,
  CURLOPT_HTTP_VERSION =&amp;gt; CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST =&amp;gt; 'POST',
  CURLOPT_POSTFIELDS =&amp;gt;'{
    "name" : "YourNameHere",
    "type" : "SammyTypeHere"
}',
  CURLOPT_HTTPHEADER =&amp;gt; array(
    'Accept: application/json',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
return json_decode($response);

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; As we have already done before, let's replace the &lt;code&gt;YourNameHere&lt;/code&gt; and &lt;code&gt;SammyTypeHere&lt;/code&gt; placeholders with the values we want, click on &lt;code&gt;Save&lt;/code&gt; and then &lt;code&gt;Run&lt;/code&gt; the function. This creates the Sammy as we specified and we have done this using the &lt;code&gt;Php:8.0&lt;/code&gt; runtime.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/qk3HysTIOG01uC9vcKte1ftCtTpoGbdXlOpdfaJ1T1M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL280cjRw/eG9kejNmM2VyZjli/NWhlLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/qk3HysTIOG01uC9vcKte1ftCtTpoGbdXlOpdfaJ1T1M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL280cjRw/eG9kejNmM2VyZjli/NWhlLnBuZw" alt="Php Function" width="880" height="908"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Walk-through for Python:3.9
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; One last time, let's click on the &lt;code&gt;New Function&lt;/code&gt; button and then give the function name &amp;amp; package name and select Python:3.9 as the runtime. Now click on &lt;code&gt;Create&lt;/code&gt; to proceed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/zLnwDMkgO80MMTYYJraSLvzD-curv2WuMx_IbymuNHY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzcwY2U1/cHBlMjVvNzloaHd4/dTJuLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/zLnwDMkgO80MMTYYJraSLvzD-curv2WuMx_IbymuNHY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzcwY2U1/cHBlMjVvNzloaHd4/dTJuLnBuZw" alt="Python Create Function" width="562" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; We will now write a function similar to the one below providing all the request payloads needed to do the API call.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import http.client
import json
import requests

def main(args):
  url = "https://functionschallenge.digitalocean.com/api/sammy"

  payload = json.dumps({
    "name": "YourNameHere",
    "type": "SammyTypeHere"
  })
  headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  }

  response = requests.request("POST", url, headers=headers, data=payload)

  print(response.text)
  return {'Output' : response.text}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Now click on &lt;code&gt;Save&lt;/code&gt;, followed by the &lt;code&gt;Run&lt;/code&gt; button to execute the function. Make sure to replace the &lt;code&gt;YourNameHere&lt;/code&gt; and &lt;code&gt;SammyTypeHere&lt;/code&gt; placeholders with your desired values. This is how we can deploy Sammy in the aquarium using the &lt;code&gt;Python:3.9&lt;/code&gt; runtime.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Z6FSDM4BoI8WnXxSgLYTqYUVIepBh_WUlJDAo-DCwsM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pyMDVi/cXZrbGVxaHpucjFk/Z3NlLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Z6FSDM4BoI8WnXxSgLYTqYUVIepBh_WUlJDAo-DCwsM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3pyMDVi/cXZrbGVxaHpucjFk/Z3NlLnBuZw" alt="Python Function" width="880" height="917"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: The name you choose for Sammy should be completely unique. You can't use a name if it's already been used to deploy a Sammy in the aquarium.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Well, we have reached to the end of this walk-through now where we figured out how to trigger the serverless functions for this challenge using all the 4 available runtimes. But as I mentioned earlier, this is not the only way to complete this challenge. Everyone is welcome to use their creativity and come up with more amazing ways to achieve this.&lt;/p&gt;

&lt;p&gt;DigitalOcean is always striving to better the user experiences and is committed to it. More runtimes will be added gradually to the platform so that the developers have more options to choose from as per their preferences.&lt;/p&gt;

&lt;p&gt;Lastly, if you found this article really helpful, then do give it a like and feel free to drop in your feedback.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images used here are sole properties of DigitalOcean, and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>serverless</category>
      <category>cloudops</category>
      <category>devops</category>
      <category>tutorials</category>
    </item>
    <item>
      <title>Predicting Machine Failure Rates using MindsDB</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Thu, 09 Jun 2022 18:20:00 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/predicting-machine-failure-rates-using-mindsdb-4dkn</link>
      <guid>https://community.ops.io/rutamhere/predicting-machine-failure-rates-using-mindsdb-4dkn</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/LSm4sOvWxSYnvkbAacnzF41o5iwgERkdTBszGgLcOk8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzFiNjM5/dGJvc20yczIzcGli/ZnBtLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/LSm4sOvWxSYnvkbAacnzF41o5iwgERkdTBszGgLcOk8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzFiNjM5/dGJvc20yczIzcGli/ZnBtLnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;MindsDB powers the normal databases with the Machine Learning capability. They enable users to turn their normal tables into AI tables. They are on a mission to empower the in-database machine learning with the help of simple SQL queries only. One need not worry about the underlying coding or the setup to train such machine learning models.&lt;/p&gt;

&lt;p&gt;In this tutorial, we will be using &lt;a href="https://cloud.mindsdb.com/"&gt;MindsDB Cloud&lt;/a&gt; to train a &lt;code&gt;Predictor&lt;/code&gt; model that can predict the machine failure rates based on the following &lt;a href="https://www.kaggle.com/datasets/tolgadincer/predictive-maintenance?select=train.csv"&gt;dataset&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importing data to the database
&lt;/h2&gt;

&lt;p&gt;As a first step to complete this tutorial, we need to import the dataset from the above link into our database. So, let's start doing that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Download the dataset from &lt;a href="https://www.kaggle.com/datasets/tolgadincer/predictive-maintenance?select=train.csv"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/gXC7bTCQxpjd43ojPg7znwxRdte8og3R_VM-9v_ZEgE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzk5ZWd4/cmt1ZmFneW9wd3gz/cmk2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/gXC7bTCQxpjd43ojPg7znwxRdte8og3R_VM-9v_ZEgE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzk5ZWd4/cmt1ZmFneW9wd3gz/cmk2LnBuZw" alt="Downloading Dataset" width="880" height="656"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Now open the database manager that you generally use. I will be using MySQL workbench for this tutorial. You should have &lt;a href="https://dev.mysql.com/downloads/installer/"&gt;MySQL&lt;/a&gt; installed already and should be running on the localhost so that you can test a connection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/3rqsp9NYqS3eeKNN4Qnou6ai5jROE8w9VwVix9W-7Ds/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2tmOXdx/NTdwczUzNmpiMTE2/b29iLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/3rqsp9NYqS3eeKNN4Qnou6ai5jROE8w9VwVix9W-7Ds/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2tmOXdx/NTdwczUzNmpiMTE2/b29iLnBuZw" alt="Testing a DB connection" width="880" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the prompt returns successful, click on &lt;code&gt;OK&lt;/code&gt; to save the connection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Now once you are able to connect, simply click on &lt;code&gt;Create a new Schema in the connected server&lt;/code&gt; button and provide a name to the schema when prompted and then click on &lt;code&gt;Apply&lt;/code&gt; twice and then followed by &lt;code&gt;Finish&lt;/code&gt; button to create the schema.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/U-rFXK0BIezDXNjihmvq43LgMxRzRr_XfSeXsdN5xYM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRyN2Zm/MXJhdnRvZHQ2NmJs/NDBhLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/U-rFXK0BIezDXNjihmvq43LgMxRzRr_XfSeXsdN5xYM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRyN2Zm/MXJhdnRvZHQ2NmJs/NDBhLnBuZw" alt="Schema Creation" width="880" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now let's create a table with the dataset we have. Right-click on the schema name and click on &lt;code&gt;Table Data Import Wizard&lt;/code&gt;. On the next dialog box. click on &lt;code&gt;Browse&lt;/code&gt; and select the CSV file that just downloaded above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/1oW_2zmBKSUFapk2LZoqaytMNuvjCMZ4TOMU_kdJQS4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Vyc2kx/ZDZqdHdrMHR6NGdj/Y3EwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/1oW_2zmBKSUFapk2LZoqaytMNuvjCMZ4TOMU_kdJQS4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Vyc2kx/ZDZqdHdrMHR6NGdj/Y3EwLnBuZw" alt="Importing Table" width="880" height="615"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now click on &lt;code&gt;Next&lt;/code&gt;. On the &lt;code&gt;Select Destination&lt;/code&gt; dialog box, select the &lt;code&gt;Create New Table&lt;/code&gt; option, make sure that the selected schema is same as the one we created and assign a name to the table.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/LPopQru_EDiVQ6HIsmrgWQUBLTWCWQX5A74pxE2ZgvI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzN1N3hu/NXZxd3FtaGZ3Y3Uy/bnhwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/LPopQru_EDiVQ6HIsmrgWQUBLTWCWQX5A74pxE2ZgvI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzN1N3hu/NXZxd3FtaGZ3Y3Uy/bnhwLnBuZw" alt="Table Destination" width="880" height="708"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Again, click on &lt;code&gt;Next&lt;/code&gt;. On the &lt;code&gt;Configure Import Settings&lt;/code&gt; dialog box, leave everything at default and click on &lt;code&gt;Next&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ET3kycycmJEdxvm8zdq1TYmwDk_vXwpkX5FKXNkv8Wg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3piN20y/OGVmc3BhZXZoOG9p/MmwyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ET3kycycmJEdxvm8zdq1TYmwDk_vXwpkX5FKXNkv8Wg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3piN20y/OGVmc3BhZXZoOG9p/MmwyLnBuZw" alt="Import Settings" width="880" height="717"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now simply click on &lt;code&gt;Next&lt;/code&gt; again to begin the import. Wait for the execution to complete. It should take a while based on the amount of data in the dataset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/8AQxWDph-kOzlrOj_9bM5wlQQ_t8GNwqCMOtWPKwa04/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3B5amMw/cnhneHN1ZjF2YW4w/Zmt5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/8AQxWDph-kOzlrOj_9bM5wlQQ_t8GNwqCMOtWPKwa04/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3B5amMw/cnhneHN1ZjF2YW4w/Zmt5LnBuZw" alt="Finish Import" width="880" height="730"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the execution is complete, click on &lt;code&gt;Next&lt;/code&gt; and then click on &lt;code&gt;Finish&lt;/code&gt; to complete the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; We will now just check whether the data has been imported to the table properly or not by running a simple &lt;code&gt;SELECT&lt;/code&gt; statement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT * from machine_failure.machine_train LIMIT 10;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return 10 rows of data from the table as shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/GcyZltstfBZswQGxJSCOHyhFH-x4L4aphKVgkGVv5lA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lwaW91/OG5oZmZmdTQxOXR1/MGxtLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/GcyZltstfBZswQGxJSCOHyhFH-x4L4aphKVgkGVv5lA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3lwaW91/OG5oZmZmdTQxOXR1/MGxtLnBuZw" alt="Running SELECT statement on the table" width="880" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, that we are ready with the table, let's move on to the next phase of connecting to the MindsDB cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting the Database to MindsDB Cloud
&lt;/h2&gt;

&lt;p&gt;In this section, we will connect our local database to the MindsDB Cloud to train the Predictor models later in this tutorial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Sign up for a &lt;a href="https://cloud.mindsdb.com/"&gt;MindsDB cloud&lt;/a&gt; account if you haven't already or you can use your existing credentials to simply log in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Ch6pzisJk9mUwpd9YG2V0GVtJS3GxtaSwsGlNzk7y2g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzE1bDYw/MWJoeGFpdHRiNHRi/d3hlLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Ch6pzisJk9mUwpd9YG2V0GVtJS3GxtaSwsGlNzk7y2g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzE1bDYw/MWJoeGFpdHRiNHRi/d3hlLnBuZw" alt="MindsDB Cloud" width="880" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you're in the MindsDB Dashboard, you can find a few sections on the screen like the &lt;code&gt;Query Editor&lt;/code&gt; at the top, some &lt;code&gt;Learning Hub&lt;/code&gt; resources on the right and a &lt;code&gt;Result Viewer&lt;/code&gt; at the bottom. Click on &lt;code&gt;Add data&lt;/code&gt; from the top right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/6DA4addPhXv6MnTaPFvuIkasngYSg9fXUULhMhJPW9o/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RvcnJq/YWljZDVwNnR0bzNw/bjhzLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/6DA4addPhXv6MnTaPFvuIkasngYSg9fXUULhMhJPW9o/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2RvcnJq/YWljZDVwNnR0bzNw/bjhzLnBuZw" alt="Add Data" width="880" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Select &lt;code&gt;MySQL&lt;/code&gt; from the list of available databases and this should open the &lt;code&gt;Query Editor&lt;/code&gt; with a pre-defined query in it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/d2Gi4fRQVL_9wMGWGsmkCEdnEzuVryKsPsZG4Z4N1x4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2xvcjlq/cGMzMDRmemdtaDFi/bWZrLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/d2Gi4fRQVL_9wMGWGsmkCEdnEzuVryKsPsZG4Z4N1x4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2xvcjlq/cGMzMDRmemdtaDFi/bWZrLnBuZw" alt="Selecting Database" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; In this pre-filled query, we need to provide certain parameters to establish a connection to our local database. In order to that, we need to expose &lt;code&gt;localhost:3306&lt;/code&gt; to the internet so that we can establish a &lt;code&gt;tcp/ip&lt;/code&gt; connection to interact with it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/zHfSRtT5tpbu5KD_BoKRORxuoUzptAULB4_rA_FaJDU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3o4Z3R3/NmI4cnRuYWJmMHVo/OXh6LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/zHfSRtT5tpbu5KD_BoKRORxuoUzptAULB4_rA_FaJDU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3o4Z3R3/NmI4cnRuYWJmMHVo/OXh6LnBuZw" alt="Query for DB Connection" width="880" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; We have to now use &lt;code&gt;[ngrok](https://ngrok.com/)&lt;/code&gt; to tunnel our localhost to the internet. This command should do the job for you.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ngrok tcp 3306
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/mM7vF-fIFHWGt3O910m16th-Pvqu3lBA5vHkJy7hi2g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBxZXlk/bTh0dDVkdXc3NWxp/anM2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/mM7vF-fIFHWGt3O910m16th-Pvqu3lBA5vHkJy7hi2g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBxZXlk/bTh0dDVkdXc3NWxp/anM2LnBuZw" alt="ngrok URL" width="880" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure you signup for a &lt;code&gt;ngrok&lt;/code&gt; account and connect with your account using the auth token you received after signing up so that you are not time-limited for your tunnelling. You can do the following using this command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ngrok config add-authtoken YourAuthTokenHere
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; We can now fill in the parameters in the query above to connect to the database and then hit the &lt;code&gt;Run(Shift + Enter)&lt;/code&gt; button to fire the query. This query should execute successfully. Have a look at the snip below to learn more about each of the parameters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/j2WOdtWAvChgVSNSf6BC7z_-vGMkOgxcjaHzwMByiAU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Biem9j/aHQ3MmM3MWRoM3Jr/YWlzLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/j2WOdtWAvChgVSNSf6BC7z_-vGMkOgxcjaHzwMByiAU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Biem9j/aHQ3MmM3MWRoM3Jr/YWlzLnBuZw" alt="Parameter Description" width="880" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; Now let's run a simple SELECT query now to make sure that MindsDB can now access the data in the database.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select * from machine_failure.machine_train LIMIT 10;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return 10 records from the table &lt;code&gt;machine_train&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ez4KpWyIW45kLFy9KFsAZKFVKZFXipQfX1sPN7SopI8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzhqYTFp/cG8xbTM1aXB4a3dw/bTdrLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ez4KpWyIW45kLFy9KFsAZKFVKZFXipQfX1sPN7SopI8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzhqYTFp/cG8xbTM1aXB4a3dw/bTdrLnBuZw" alt="Table Data" width="880" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Training a Predictor Model
&lt;/h2&gt;

&lt;p&gt;As we are ready with all the data, we will now go ahead and create a predictor model to do the predictions for us. Let's find out how to do that in the steps below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; MindsDB has a &lt;code&gt;CREATE PREDICTOR&lt;/code&gt; syntax already that we need to use now to create the predictor model. Look at the snippet below to learn more about the syntax. The syntax looks as follows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE PREDICTOR mindsdb.predictor_name (Fill in the name you want)
FROM database_name                       (Fill in the Database Name)
(SELECT * FROM table_name LIMIT 10000)  (Fill in the training table name)
PREDICT target_parameter;               (Fill in the target parameter to Predict)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The query should get executed successfully.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/7dhNcjy77gdS1dIr4DHPymNuC31Pa7EHf2ya7FeNg_M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2plM2V4/d243bmJkb3Q5bDFo/czY2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/7dhNcjy77gdS1dIr4DHPymNuC31Pa7EHf2ya7FeNg_M/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2plM2V4/d243bmJkb3Q5bDFo/czY2LnBuZw" alt="Trainng the Model" width="880" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: We have used &lt;code&gt;LIMIT 10000&lt;/code&gt; above as MindsDB allows upto 10K rows in its free edition.&lt;br&gt;
Also, you may get an error as the column names have spaces in between them. So, try renaming the columns removing the spaces.&lt;br&gt;
For e.g., Change the target column name from &lt;code&gt;Machine failure&lt;/code&gt; to &lt;code&gt;Machine_failure&lt;/code&gt; so that the query works properly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; It takes a while to train the model. We can keep checking it's status by running the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT status
FROM mindsdb.predictors
WHERE name='name_of_the_predictor_model';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The status should gradually change from &lt;code&gt;training&lt;/code&gt; to &lt;code&gt;complete&lt;/code&gt; indicating that the model is now ready to use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/jiiIDti8pYSzPDD8wwtTTtrj_GdO0hbKPH4eSE2_Nhg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3IzcmFw/ZHExYXVxeDVvMndw/cmU0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/jiiIDti8pYSzPDD8wwtTTtrj_GdO0hbKPH4eSE2_Nhg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3IzcmFw/ZHExYXVxeDVvMndw/cmU0LnBuZw" alt="Checking the Status" width="880" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Describing the Model
&lt;/h2&gt;

&lt;p&gt;The predictor model is now ready to do the predictions, but we will first try to do a deep dive and learn more about this predictor model.&lt;/p&gt;

&lt;p&gt;We can simply use the DESCRIBE statement provided by MindsDB to gain insights into our predictor model. We can use this statement to find the details in the following three ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;By Features&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By Model&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By Model Ensemble&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  By Features
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DESCRIBE mindsdb.predictor_model_name.features;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This statement is used to display the way that the model encoded the data prior to training. You can find a sample output below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/JVT0fcyd_pONVkpvjbX68hXqJ5YBr9n8EESsM4i9nAU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBvc3Ux/eGpyZjEzMHNrdWZ2/ZGl1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/JVT0fcyd_pONVkpvjbX68hXqJ5YBr9n8EESsM4i9nAU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBvc3Ux/eGpyZjEzMHNrdWZ2/ZGl1LnBuZw" alt="Feature Description" width="880" height="923"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's figure out what each of these columns mean.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;column&lt;/strong&gt; - List of all the columns used from the Training Table&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;type&lt;/strong&gt; - Type of data inferred&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;encoder&lt;/strong&gt; - Encoder used&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;role&lt;/strong&gt; - Role of the column for the model (Here Machine_failure is the target as we want to predict it and all other columns are Features based on which we will try to do the prediction.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  By Model
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DESCRIBE mindsdb.predictor_model_name.model;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This statement is used to find out how each of the candidate models performed that we used to train the Predictor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/I88ONncn0gliU2ggvElNTdkNDOdmd5IyFnJ0eveACl4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBtYzZ6/MW9oZzhjejZxZ3Iy/bzE2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/I88ONncn0gliU2ggvElNTdkNDOdmd5IyFnJ0eveACl4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzBtYzZ6/MW9oZzhjejZxZ3Iy/bzE2LnBuZw" alt="Model Description" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's try to understand the result table below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;name&lt;/strong&gt; - Name of the candidate model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;performance&lt;/strong&gt; - Defines the accuracy of each candidate model which varies between 0-1. The value that is closer to 1 is considered to be more accurate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;training_time&lt;/strong&gt; - Time taken by each of the candidate models to complete the training&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;selected&lt;/strong&gt; - Either 0 or 1 is set for each candidate model. 1 is set for the most accurate model (Neural here) and the rest all are set at 0.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  By Model Ensemble
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DESCRIBE mindsdb.predictor_model_name.ensemble;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This statement shall return a JSON object that explains the different attributes used to select the best candidate model to do the prediction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/PhoHDEIn9xFc0GClN0_0u8CylfEIGeIfodziN6xlhuE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2kzcjhi/NzV2YzIwbWpiODJ0/OTFmLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/PhoHDEIn9xFc0GClN0_0u8CylfEIGeIfodziN6xlhuE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2kzcjhi/NzV2YzIwbWpiODJ0/OTFmLnBuZw" alt="Model ensemble Description" width="880" height="646"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this, we now have a clearer picture about our underlying model that we will be using for the predictions below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying the Model
&lt;/h2&gt;

&lt;p&gt;The predictor model &lt;code&gt;machine_failure_rate_predictor&lt;/code&gt; is now ready to predict the machine failure rates for us. MindsDB provides simple SELECT query statements that we can fire to find the predictions based on the specified features.&lt;/p&gt;

&lt;p&gt;Let's try predicting the failure rate based on a single feature. The SELECT statement would be as follows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT Machine_failure
FROM mindsdb.machine_failure_rate_predictor
WHERE torque =40;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return the &lt;code&gt;Machine_failure&lt;/code&gt; rate which would either be 1 or 0. 1 means the machine failure is expected whereas 0 means there won't be a machine failure for the given feature.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/hrCZeX12cPAsenm87cges4l1HV51Rs07OirSjS1E35w/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2VvY3g4/YXlkNnAwMzZiNnNm/aDZ1LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/hrCZeX12cPAsenm87cges4l1HV51Rs07OirSjS1E35w/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2VvY3g4/YXlkNnAwMzZiNnNm/aDZ1LnBuZw" alt="Failure rate Prediction based on Single Feature" width="732" height="762"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's try predicting the failure rate with more than one parameter. The query should look something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT Machine_failure
FROM mindsdb.machine_failure_rate_predictor
WHERE torque =100 AND Type="L";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/MxmFN3_rvB7-2Q163CmcTgtbDPebtOqKRUo4LXFnfFY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3YybGM5/Z3o1NG9wa25xcHcz/YWZuLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/MxmFN3_rvB7-2Q163CmcTgtbDPebtOqKRUo4LXFnfFY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3YybGM5/Z3o1NG9wa25xcHcz/YWZuLnBuZw" alt="Failure rate Prediction based on Multiple Features" width="665" height="746"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This, again returns either 0 or 1, determining whether the machine fails or not based on the provided feature parameters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We have now reached the end of this tutorial where we connected our local database to the MindsDB cloud, trained a predictor model using MindsDB by firing a few simple SQL queries and predicted the machine failure rates using the model that we created.&lt;/p&gt;

&lt;p&gt;Now you can also go ahead and try training predictor models and doing predictions using different datasets available online.&lt;/p&gt;

&lt;p&gt;Before you leave this page, please like the tutorial if it has really helped you to learn something new today. Feel free drop in your feedback as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images used here are sole properties of MindsDB &amp;amp; MySQL and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorials</category>
      <category>cloudops</category>
      <category>dataops</category>
    </item>
    <item>
      <title>Top 10 Video Tutorials in Kubernetes for Beginners</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Tue, 31 May 2022 18:43:19 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/top-10-video-tutorials-in-kubernetes-for-beginners-31jc</link>
      <guid>https://community.ops.io/rutamhere/top-10-video-tutorials-in-kubernetes-for-beginners-31jc</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/88Eva6FoJMKDlbS4nmlFgTx4Y97pqYohoNQ6PMrkwrU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzNyOTNh/MGNqZ3BvaTl2bmRr/aHlwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/88Eva6FoJMKDlbS4nmlFgTx4Y97pqYohoNQ6PMrkwrU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzNyOTNh/MGNqZ3BvaTl2bmRr/aHlwLnBuZw" alt="Cover" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Kubernetes is gradually becoming one of the most popular topics for the techies and DevOps enthusiasts to learn and use. But with all this enthusiasm and excitement, one gets confused on how to and where to start learning about K8s effectively.&lt;/p&gt;

&lt;p&gt;So, in this article we will list out the Top 10 video tutorial sources that one can follow to learn Kubernetes easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Video Tutorial Sources
&lt;/h2&gt;

&lt;p&gt;The video tutorial sources can vary from individual channels on YouTube to courses designed by various market-leaders in the Kubernetes space. This list is not sorted based on the best to worst. All of these sources have an equally good content and it depends on the individual to choose one from them or all together as per his/her choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free Code Camp&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Free Code Camp is not a new name to many of you. It is know to be the hub for several courses that are available for free to all the users on their YouTube channel. They also have an introductory crash course for the beginners who want to get started with K8s. You can either visit their YouTube channel &lt;a href="https://www.youtube.com/c/Freecodecamp"&gt;here&lt;/a&gt; or can watch the video below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/d6WC5n9G_sM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TechWorld with Nana&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This YouTube channel is run by Nana Janashia, who is a DevOps consultant and trainer. She is also a CNCF Ambassador and has great content available on her YouTube channel for free. She can not only help you get started with K8s but also she is a great guide for your DevOps journey as well. You can visit her channel &lt;a href="https://www.youtube.com/c/TechWorldwithNana"&gt;here&lt;/a&gt; or can simply watch her full course on K8s for beginners below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/X48VuDVv0do"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kunal Kushwaha&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kunal is someone you hear about more often in the Tech space. He is a cloud-native enthusiast and is a great mentor for the people in tech. He has a vision for quality and free education accessible to all and he aims to do that through his &lt;a href="https://www.youtube.com/c/KunalKushwaha"&gt;YouTube channel&lt;/a&gt; and also his community &lt;a href="https://www.commclassroom.org/"&gt;Common Classroom&lt;/a&gt;. You can watch his beginners tutorial on K8s below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/KVBON1lA9N8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Daily Code Buffer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This YouTube channel is run by Shabbir Dawoodi who is full-stack developer and loves to mentor people in several technologies through his YouTube channel &lt;a href="https://www.youtube.com/c/DailyCodeBuffer"&gt;&lt;code&gt;Daily Code Buffer&lt;/code&gt;&lt;/a&gt;. This channel also has a great all-in-one tutorial for beginners that you can watch below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/lXqqhyCPWC0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intellipaat&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://intellipaat.com/"&gt;Intellipaat&lt;/a&gt; is a online certification platform where they provide several programs for different kinds of certifications. They have also several course playlists available for free on their &lt;a href="https://www.youtube.com/c/Intellipaat"&gt;YouTube channel&lt;/a&gt;. You can check out their channel for other such videos and can watch the Kubernetes guide below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/MbXY5BAfkOk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kube by Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kubebyexample.com/"&gt;Kube by Example&lt;/a&gt; is an initiative by RedHat where you can find multiple lectures on various topics. And they provide a series of video lectures on &lt;a href="https://kubebyexample.com/learning-paths/kubernetes-fundamentals"&gt;Kubernetes Fundamentals&lt;/a&gt; which is a great place to start with. You can find one of their introductory video below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/nAJcVkDYWe0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting started with Kubernetes on Google Cloud&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're someone who is interested to start his/her K8s journey on GKE (Google Kubernetes Engine), then this is the place where you can start with. This is a curated list of 6 video sessions that are perfectly apt for a newbie in &lt;a href="https://cloudonair.withgoogle.com/events/kubernetes-with-google-cloud"&gt;Google K8s&lt;/a&gt;. You can watch one of the introductory session below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/PxVRSNWwNqE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simplilearn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Simplilearn is yet another platform that offers various bootcamps and certification programs that one can undertake and add verified credentials to their technical skill stack. They also provide several tutorials on their &lt;a href="https://www.youtube.com/c/SimplilearnOfficial"&gt;YouTube channel&lt;/a&gt; for free. They also have a Kubernetes introduction video that you can watch below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0keqgvSBqxM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KodeKloud&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kodekloud.com/"&gt;KodeKloud&lt;/a&gt; is a simple, fun and engaging DevOps Learning Platform that provides free hands-on labs as well. You can simply sign up for a free account and gain access to their tutorials and labs on the go. They also have a free &lt;a href="https://www.youtube.com/playlist?list=PL2We04F3Y_41jYdadX55fdJplDvgNGENo"&gt;curated playlist&lt;/a&gt; to get started with Kubernetes available on their &lt;a href="https://www.youtube.com/c/KodeKloud"&gt;YouTube channel&lt;/a&gt; for beginners. Find one of the introductory videos below.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uUupRagM7m0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Saiyam Pathak&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Last but not the least, this is a very special mention. Saiyam is someone I know personally and I don't mind calling him the Master Jedi in the cloud-native space. He is the Director of Technical Evangelism for Civo. He is a also a CNCF Ambassador. He loves teaching in public and building great cloud-native content for all. You can find some really awesome content on his &lt;a href="https://www.youtube.com/c/saiyam911"&gt;YouTube channel&lt;/a&gt;. He is the ultimate source if you want to start with All-Things-DevOps. You can watch one of his videos on Kubernetes below.&lt;/p&gt;

&lt;p&gt;And if you're preparing for any of the Kubernetes CNCF certifications, then he has some pretty great content for all of you.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/buHPsFgpsgU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Notes
&lt;/h2&gt;

&lt;p&gt;With this, we have come to an end of the list for our top 10 video resources to get started with Kubernetes. I hope all of you found something interesting and something that suits your way of learning and understanding from this list.&lt;/p&gt;

&lt;p&gt;Feel free to show some love to this article if you found this really useful and also don't forget to drop in you feedback or any other additional resources that I might have missed out.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the embedded video clips are sole properties of their respective owners and are used here only as referenced resources for this article.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>video</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Launching your first Vultr Kubernetes Cluster</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Mon, 30 May 2022 15:33:29 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/launching-your-first-vultr-kubernetes-cluster-37hg</link>
      <guid>https://community.ops.io/rutamhere/launching-your-first-vultr-kubernetes-cluster-37hg</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/fhsRYQeJszAXzwg212QkfLBXO-cA0HqHfJ5MkfNZx5g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRscjJv/Mm9ueDh1c2U5ejlw/aHV6LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/fhsRYQeJszAXzwg212QkfLBXO-cA0HqHfJ5MkfNZx5g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRscjJv/Mm9ueDh1c2U5ejlw/aHV6LnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Kubernetes has been a known player in the market for container orchestration systems for automating software deployment, scaling, and management. With the growing use of Kubernetes at the ORG level and also by the developers, there have been a lot of cloud service providers in the market who offer their managed Kubernetes services.&lt;/p&gt;

&lt;p&gt;Today in this article we are gonna try and learn to create a cluster using the Vultr Kubernetes Engine (VKE). Vultr has been a key player in the cloud-hosting solution space and they aim to provide highly reliable and high-performance cloud computing environments across all geographical regions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Cluster
&lt;/h2&gt;

&lt;p&gt;We will now go ahead and deploy our first cluster using VKE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Create a new &lt;a href="https://www.vultr.com/promo/try100/"&gt;Vultr&lt;/a&gt; account if you don't have one yet or simply log in using your existing credentials if you're already a user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/oDlldChqXF6Rq1WXTMZOyU2trL4vMjoM0foQ_1k-AoI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3A3MmR1/NjN1ajdyc25oY3Nl/amkwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/oDlldChqXF6Rq1WXTMZOyU2trL4vMjoM0foQ_1k-AoI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3A3MmR1/NjN1ajdyc25oY3Nl/amkwLnBuZw" alt="Vultr Sing Up" width="880" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you're logged in, click on the &lt;code&gt;Kubernetes&lt;/code&gt; tab from the dashboard and then hit the &lt;code&gt;Add Cluster&lt;/code&gt; button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ogVMldj5zzKjQ97asSt3aWNjeWaRc6XQllx9YuP2hz4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2E1eDh2/NGM2MGsydWRjbGdj/djY4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ogVMldj5zzKjQ97asSt3aWNjeWaRc6XQllx9YuP2hz4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2E1eDh2/NGM2MGsydWRjbGdj/djY4LnBuZw" alt="Vultr Dashboard" width="880" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; On the &lt;code&gt;Create a Cluster&lt;/code&gt; dashboard, we need to define the specs we want to use for the cluster. Feel free to choose them as per your requirements, or you can always follow the specs mentioned below for the sake of this tutorial.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Cluster Name&lt;/strong&gt;- Name it as you wish (democluster for now)&lt;br&gt;
&lt;strong&gt;- Kubernetes Version&lt;/strong&gt;- Choose the latest one (v1.23.5+3 for now)&lt;br&gt;
&lt;strong&gt;- Cluster Location&lt;/strong&gt;- Choose the closest one (Mumbai for me)&lt;br&gt;
&lt;strong&gt;- Cluster Capacity&lt;/strong&gt;- Fill in the details mentioned below&lt;br&gt;
   -&amp;gt; Node Pool Name- Assign a name as you wish (demo-pool for now)&lt;br&gt;
   -&amp;gt; Node Pool Type- Intel High Performance&lt;br&gt;
   -&amp;gt; Plan- $24/mo (2CPUs, 4096 MB Memory, 100GB Storage)&lt;br&gt;
   -&amp;gt; Amount of Nodes- 3&lt;/p&gt;

&lt;p&gt;Now click on &lt;code&gt;Deploy Now&lt;/code&gt; button to provision the cluster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/RAYyPtW7NL_q4vSxoOxFJMiJqaX3xo5IBP2CnSrMgWo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y4d3dy/cmx0NG44d3plaG1y/dnByLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/RAYyPtW7NL_q4vSxoOxFJMiJqaX3xo5IBP2CnSrMgWo/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y4d3dy/cmx0NG44d3plaG1y/dnByLnBuZw" alt="Cluster Configuration" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now it should take a few moments for the cluster to complete its installation and be ready for use. Keep checking the status until it shows &lt;code&gt;Running&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ygW9koztM9DLme1ca7XBjBnaFbFzB95K-qowhzUgoLw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzYzcWJt/Z29oNWx1anAzdHZ1/dml3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ygW9koztM9DLme1ca7XBjBnaFbFzB95K-qowhzUgoLw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzYzcWJt/Z29oNWx1anAzdHZ1/dml3LnBuZw" alt="Clsuter Status" width="880" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the status is set to running, click on the cluster name to navigate to the cluster dashboard page where you can find all the details about the cluster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/V6KfIABQx4v944IdKlV0L57QH3a9LpP2Hm1dVZ2ljdE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3VienJy/bHB1N2Y4ajFnZTkx/OHpkLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/V6KfIABQx4v944IdKlV0L57QH3a9LpP2Hm1dVZ2ljdE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3VienJy/bHB1N2Y4ajFnZTkx/OHpkLnBuZw" alt="Cluster Dashboard" width="880" height="460"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Connecting to the Cluster
&lt;/h2&gt;

&lt;p&gt;Our cluster is now created and is running. We now need to connect to our cluster from our local system to start using it. To do that, simply follow the steps below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Download the cluster config by hitting the &lt;code&gt;Download Configuration&lt;/code&gt; button on the cluster dashboard page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/YxiuP3IWOYxa2YxtNxtJqkI7TEY34GtGL_EVuCq1ps0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y2ZnIy/N2UzbjNjazR3c2Zq/dzY0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/YxiuP3IWOYxa2YxtNxtJqkI7TEY34GtGL_EVuCq1ps0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y2ZnIy/N2UzbjNjazR3c2Zq/dzY0LnBuZw" alt="Download Cluster Config" width="880" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you've downloaded the config file to your system, you can either use it explicitly by mentioning its path in the terminal or you can simply add/overwrite your current &lt;code&gt;config&lt;/code&gt; file in the &lt;code&gt;.kube&lt;/code&gt; folder and start using it directly using &lt;code&gt;kubectl&lt;/code&gt; with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get nodes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return you the list of nodes in our node pool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/QNpWThSUUo0uwiWOxE5nY8KTzv7mUcdWU3jqwxTLhe8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NtaW11/ZGtoeDczNnpmdXVx/bGY3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/QNpWThSUUo0uwiWOxE5nY8KTzv7mUcdWU3jqwxTLhe8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3NtaW11/ZGtoeDczNnpmdXVx/bGY3LnBuZw" alt="Node List" width="695" height="118"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If you don't have &lt;code&gt;kubectl&lt;/code&gt; configured in your local machine, then you follow the steps &lt;a href="https://kubernetes.io/docs/tasks/tools/"&gt;here&lt;/a&gt; to get it done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; You can also go ahead and fetch the list of pods in all namespaces with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pods -A
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should return the list of pods in all namespaces.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/tIng8oyONSZrImL5IwF1N06WBesfV4LGuif2zT_d7BQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3B0dHEz/NndsNnY2MmttaWIz/Ymd4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/tIng8oyONSZrImL5IwF1N06WBesfV4LGuif2zT_d7BQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3B0dHEz/NndsNnY2MmttaWIz/Ymd4LnBuZw" alt="Pod List" width="880" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you're ready to use your cluster in any way you want using the terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
This completes the tutorial here. We have successfully deployed a cluster using Vultr Kubernetes Engine and also connected it from our local machine using the cluster configuration file.&lt;/p&gt;

&lt;p&gt;I hope all of you had a good time reading this and do show some love to this article if you found it useful.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images used here are sole properties of Vultr and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>tutorials</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Getting Started with Kubecost on Digital Ocean Managed Kuberenetes</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Sun, 29 May 2022 18:27:20 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/getting-started-with-kubecost-on-digital-ocean-managed-kuberenetes-1imh</link>
      <guid>https://community.ops.io/rutamhere/getting-started-with-kubecost-on-digital-ocean-managed-kuberenetes-1imh</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/rECzON4c4q3uwEV3AOgnnciySENLXU8vWPMePEkH3nI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzlpaXZz/NzZpeG1obmhzdG9z/czhyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/rECzON4c4q3uwEV3AOgnnciySENLXU8vWPMePEkH3nI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzlpaXZz/NzZpeG1obmhzdG9z/czhyLnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The use of Kubernetes has grown largely over a few years. But managing Kubernetes on a large Org level is never easy. Apart from security and configuration management, another crucial aspect of management is Cost. This can be a tedious task to monitor all running resources and identify the cost leaks or figure out the ways to optimize the cost consumption.&lt;/p&gt;

&lt;p&gt;In such a scenario, &lt;a href="https://www.kubecost.com/"&gt;Kubecost&lt;/a&gt; comes into play. Kubecost provides real-time cost visibility and insights by inspecting the cost allocation using Kubernetes concepts and providing unified cost monitoring and optimization suggestions.&lt;/p&gt;

&lt;p&gt;In this tutorial, we will be creating a cluster on Digital Ocean and then deploying Kubecost on top of it to find the cost insights for the cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding a cluster on Digital Ocean
&lt;/h2&gt;

&lt;p&gt;Digital Ocean is a cloud hosting provider that offers cloud computing solutions and IaaS on the core principles of high scalability, reliability, and affordable pay-as-you-use pricing models. Now let's go ahead and create a cluster with the below-mentioned steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Sign up for a &lt;a href="https://try.digitalocean.com/freetrialoffer/"&gt;Digital Ocean&lt;/a&gt; account if you don't have one yet or else use your existing credentials to log in. They provide 100$ credits for 60 days when you sign up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/r75kYYJflZ6BgTPyzjIYsQhZAnTOpkGOxeckSTLAtUY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL20xcHQz/dHN6cmdyb2F0bm96/Mm4wLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/r75kYYJflZ6BgTPyzjIYsQhZAnTOpkGOxeckSTLAtUY/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL20xcHQz/dHN6cmdyb2F0bm96/Mm4wLnBuZw" alt="Digital Ocean Signup" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you're signed in, click on &lt;code&gt;Kubernetes&lt;/code&gt; from the left navigation panel and then hit the &lt;code&gt;Create Cluster&lt;/code&gt; button to choose the cluster configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/UlnynP3wOxykB2DWnP73wn-blwjE_H1X98joalkEeSA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3dtNG9v/d2J4c2k5bWEwczR4/eDRuLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/UlnynP3wOxykB2DWnP73wn-blwjE_H1X98joalkEeSA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3dtNG9v/d2J4c2k5bWEwczR4/eDRuLnBuZw" alt="Create Cluster" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; In the &lt;code&gt;Create a Kubernetes cluster&lt;/code&gt; window, you can choose the config you want for your cluster. But for the sake of this tutorial, you can use the config mentioned below to create the cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose a datacenter region&lt;/strong&gt; - Choose the one closest to you (BLR1 for me)&lt;br&gt;
&lt;strong&gt;VPC network&lt;/strong&gt; - This will be already set at Default&lt;br&gt;
&lt;strong&gt;Select a version&lt;/strong&gt; - Use the &lt;code&gt;Recommended&lt;/code&gt; one (1.22.8-do.1 for now)&lt;br&gt;
&lt;strong&gt;Choose Cluster Capacity&lt;/strong&gt; - Select as mentioned below.&lt;br&gt;
   -&amp;gt; Node Pool Name - Give a name as you want&lt;br&gt;
   -&amp;gt; Node Plan - $24/month per node&lt;br&gt;
   -&amp;gt; Machine Type - Basic Nodes (Premium Intel)&lt;br&gt;
   -&amp;gt; Nodes - 3&lt;br&gt;
&lt;strong&gt;Add extra reliability to critical workloads&lt;/strong&gt; - Leave it at default&lt;br&gt;
&lt;strong&gt;Finalize&lt;/strong&gt; - Select as mentioned below&lt;br&gt;
   -&amp;gt; Name - Assign a name to you cluster&lt;br&gt;
   -&amp;gt; Project - Leave it at default&lt;br&gt;
   -&amp;gt; Tags - Leave it for now&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/orLyXMdzBFBGs1ChEMzGgaSIxgsXYK-7XOMsa_3erxI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3doZXpj/djV2bW44MTd5bTMy/emczLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/orLyXMdzBFBGs1ChEMzGgaSIxgsXYK-7XOMsa_3erxI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3doZXpj/djV2bW44MTd5bTMy/emczLnBuZw" alt="Create Cluster Dashboard" width="880" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now click on &lt;code&gt;Create Cluster&lt;/code&gt; button and wait for the cluster to get provisioned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Once the cluster is provisioned and is in a running state, we will have 2 ways to connect to the cluster from our local machine. We can either choose the automated way by using the &lt;code&gt;[doctl](https://docs.digitalocean.com/reference/doctl/how-to/install/)&lt;/code&gt; or we can opt to use the manual way by downloading the config file for the cluster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/xsVcRdYqq3y8Rd9XYxD4Gv7omMRHYsIvtqWY7pSPi7o/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzU4ZjA1/bG0wMGlmb2dxaGFo/dWo5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/xsVcRdYqq3y8Rd9XYxD4Gv7omMRHYsIvtqWY7pSPi7o/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzU4ZjA1/bG0wMGlmb2dxaGFo/dWo5LnBuZw" alt="Cluster Dashboard" width="880" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will use the manual way, for now, to connect to our cluster. So, let's download the cluster config file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Once you have the config file downloaded, either use the config file explicitly with the command below to fetch the cluster nodes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl --kubeconfig=~/&amp;lt;pathtodirectory&amp;gt;/kubecost-demo-kubeconfig.yaml" get nodes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can simply overwrite the &lt;code&gt;config&lt;/code&gt; file in the &lt;code&gt;.kube&lt;/code&gt; folder in your system to access the nodes normally using &lt;code&gt;kubectl&lt;/code&gt; without specifying anything extra. This should return you the list of nodes in your cluster.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get nodes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/iCDwQx91UuSZq0wGtzGfAz1j0x7YzpaBX2oM2y22JUE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3MwYWgx/bXNsZWEwbHpvMjRt/bWY0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/iCDwQx91UuSZq0wGtzGfAz1j0x7YzpaBX2oM2y22JUE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3MwYWgx/bXNsZWEwbHpvMjRt/bWY0LnBuZw" alt="Cluster Nodes" width="671" height="118"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This confirms that we are now ready to work with our cluster from the terminal.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If you don't have &lt;code&gt;kubectl&lt;/code&gt; installed already, please follow this &lt;a href="https://kubernetes.io/docs/tasks/tools/"&gt;guide&lt;/a&gt; to get it done.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Deploying Kubecost in the Cluster
&lt;/h2&gt;

&lt;p&gt;We have to now deploy Kubecost in our cluster to see it in action. So, let's get started with the following steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Navigate to the &lt;a href="https://www.kubecost.com/install#show-instructions"&gt;Kubecost&lt;/a&gt; install page and provide your email and click &lt;code&gt;Get Started&lt;/code&gt;. This will take you to the instructions page and a unique &lt;code&gt;kubecostToken&lt;/code&gt; will be generated for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Hn-dCUzNd61en81daBaAIRNFJCurNbpKDCUeL6RbO68/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzdpa2py/Zm9hZDNyd3pyNjI0/bW5rLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Hn-dCUzNd61en81daBaAIRNFJCurNbpKDCUeL6RbO68/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzdpa2py/Zm9hZDNyd3pyNjI0/bW5rLnBuZw" alt="Kubecost Getting Started" width="880" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Now we will create a namespace for Kubecost and then run the commands below to install Prometheus, Grafana, and kube-state-metrics, along with Kubecost.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl create namespace kubecost
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm install kubecost kubecost/cost-analyzer --namespace kubecost --set kubecostToken="YourKubecostTokenHere"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/wgQtGxY3kOFewlmA02f_R979m10uB5hWJwNih6quKqw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzExenFs/ZHU3MWdsY2ZpMjBs/dXJ4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/wgQtGxY3kOFewlmA02f_R979m10uB5hWJwNih6quKqw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzExenFs/ZHU3MWdsY2ZpMjBs/dXJ4LnBuZw" alt="Kubecost Install" width="880" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; We have to now check the pods in the &lt;code&gt;kubecost&lt;/code&gt; namespace and wait till all of them are in a running state.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pod -n kubecost
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/mABE8dfzFe5bAzUhqpRt3RvvawNRyQ_40Za9uq0NLM8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL25wOGtj/dW83bDJnY2tuajVp/MTgxLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/mABE8dfzFe5bAzUhqpRt3RvvawNRyQ_40Za9uq0NLM8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL25wOGtj/dW83bDJnY2tuajVp/MTgxLnBuZw" alt="Get Pods" width="880" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Once we have all the pods running, we simply need to enable the port forwarding to be able to interact with the Kubecost GUI hosted on &lt;code&gt;localhost:9090&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/_P6VAnI6YV0_8p4NahfW6N5BVGydLTTklWYj6TSdtsw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3I2dGl6/dWVvNHU3aXRqODRj/NHJoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/_P6VAnI6YV0_8p4NahfW6N5BVGydLTTklWYj6TSdtsw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3I2dGl6/dWVvNHU3aXRqODRj/NHJoLnBuZw" alt="Port Forwarding" width="880" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we are ready to explore the Kubecost UI and gain insights into our cost utilization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kubecost GUI
&lt;/h2&gt;

&lt;p&gt;Kubecost GUI is generally hosted at localhost:9090. You can also expose the port &lt;code&gt;9090&lt;/code&gt; as a secure endpoint on your cluster to remove the need to port forward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/mpLBnWkhhko8PNr4Dj_CcQkbmx5-0sJN24RHbwHCzRM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzN3Y3R1/c3EyYzdlZmFuOGZ2/ZzFqLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/mpLBnWkhhko8PNr4Dj_CcQkbmx5-0sJN24RHbwHCzRM/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzN3Y3R1/c3EyYzdlZmFuOGZ2/ZzFqLnBuZw" alt="Kubecost Dashboard" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can now explore different aspects of the cost consumption as mentioned below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost Allocation&lt;/strong&gt;&lt;br&gt;
This section shows the cumulative cost allocation/utilization for the last 7 days for each namespace in the cluster. The table provides a clearer picture of what configuration of resources are being consumed by that namespace and how much cost it incurs.&lt;/p&gt;

&lt;p&gt;You can simply visit this page by clicking on &lt;code&gt;Cost Allocation&lt;/code&gt; from the left navigation pane or by clicking on the same &lt;code&gt;Cost Allocation&lt;/code&gt; button under the cost allocation graph on the Overview page itself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/k91tZ5X_SL_QiSrhBUsQAsPGgtAOd-5NGLbjTvNgOXA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x0OHl3/eGY3NXg5cGx4Yzc0/c2k3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/k91tZ5X_SL_QiSrhBUsQAsPGgtAOd-5NGLbjTvNgOXA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x0OHl3/eGY3NXg5cGx4Yzc0/c2k3LnBuZw" alt="Cost Allocation" width="880" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assets&lt;/strong&gt;&lt;br&gt;
This section lists out the assets utilized and the total cost incurred in the last 7 days filtered by &lt;code&gt;daily&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can visit this page in a similar way from the left navigation pane or from the Assets graph on the &lt;code&gt;Overview&lt;/code&gt; page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/q3BGqRmxOQhot2kJPzQ7jOMUjZNuPo7eFG8NoIqttlQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2FqNHNk/YmVrNXRrZnJ5N21t/eXF4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/q3BGqRmxOQhot2kJPzQ7jOMUjZNuPo7eFG8NoIqttlQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2FqNHNk/YmVrNXRrZnJ5N21t/eXF4LnBuZw" alt="Asset Page" width="880" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Savings&lt;/strong&gt;&lt;br&gt;
This is gonna be the favorite part for any ORG as it lists out the different cost-saving optimization techniques that could save them a huge amount of money in the monthly bill.&lt;/p&gt;

&lt;p&gt;Navigating to this page is really easy and you can do that from the same navigation pane or by clicking on the &lt;code&gt;View Savings&lt;/code&gt; on the &lt;code&gt;Overview&lt;/code&gt; page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/-NXqsUZqewYIyTo7ilISZSgsjYIoBLWfg5Ea9A1YnhI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x6ZmRt/dG4weXRlYXd5NGNu/b2c0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/-NXqsUZqewYIyTo7ilISZSgsjYIoBLWfg5Ea9A1YnhI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2x6ZmRt/dG4weXRlYXd5NGNu/b2c0LnBuZw" alt="Savings Page" width="880" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you're on this page, you can click on each of these suggestions to find out more detailed information on how to achieve those.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/SxhZzylHwlCDo6p0CZi4nrvQJLcnogw4aCtE8Iee84g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3VucWhz/ZWI0bGY3MngyNGVj/bnoyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/SxhZzylHwlCDo6p0CZi4nrvQJLcnogw4aCtE8Iee84g/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3VucWhz/ZWI0bGY3MngyNGVj/bnoyLnBuZw" alt="Savings Description" width="880" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Health&lt;/strong&gt;&lt;br&gt;
In addition to all those things related to cost, Kubecost also has its in-built metrics to determine the overall cluster health score based on infrastructure reliability and performance risks.&lt;/p&gt;

&lt;p&gt;You can simply click on &lt;code&gt;Health&lt;/code&gt; from the left navigation pane and scroll through the list of all accessed parameters for the health test.&lt;/p&gt;

&lt;p&gt;Clicking on each of these parameters will open up a pop-up with more information about them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/YMTulzR0H5YP-p2zATx1lTODpCMyeU5S-S_07fphZww/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3F6Njds/c2UyMm5xZHZ1Y2Jo/eHJ4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/YMTulzR0H5YP-p2zATx1lTODpCMyeU5S-S_07fphZww/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3F6Njds/c2UyMm5xZHZ1Y2Jo/eHJ4LnBuZw" alt="Health Page" width="880" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kubecost also allows you to set up customized reports and alerts as per requirement based on specific filters. For all the cost-related information that we saw above, we also have the option to download those reports in CSV formats.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We have now reached the end of this tutorial where we successfully created a cluster using Digital Ocean managed K8s and then deployed Kubecost in it to find out on-the-go cost-utility insights for the cluster.&lt;/p&gt;

&lt;p&gt;We are now clear on how to configure Kubecost and how to use its GUI to gain all the information relating to Cost in our cluster. Apart from all the features, one mentionable thing is that Kubecost provides all these features even in their free plan. But, you can also have the option to upgrade to a paid Business or Enterprise version as well.&lt;/p&gt;

&lt;p&gt;Lastly, feel free to drop in your feedback and show some love to the article if you really liked it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images used in this article are sole properties of Digital Ocean and Kubecost respectively and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>tutorials</category>
      <category>kubernetes</category>
      <category>o11y</category>
    </item>
    <item>
      <title>Deploying MindsDB on a Vultr Cloud Instance</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Sat, 28 May 2022 16:49:27 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/deploying-mindsdb-on-a-vultr-cloud-instance-40bm</link>
      <guid>https://community.ops.io/rutamhere/deploying-mindsdb-on-a-vultr-cloud-instance-40bm</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/lsiCLAQAGZipRwX3IcBLAClYcOunK1l0f9ZM2NEe93c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2ZldDYz/d2ZoaGcydWVrOWVx/Y3dzLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/lsiCLAQAGZipRwX3IcBLAClYcOunK1l0f9ZM2NEe93c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2ZldDYz/d2ZoaGcydWVrOWVx/Y3dzLnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://mindsdb.com/"&gt;MindsDB&lt;/a&gt; is unique in its approach as it turns the normal tables in our databases into AI-Tables. It simply powers the In-Database machine learning as it is capable of pulling data from your tables and then feeding them into in-house machine learning models to fetch you some of the most accurate prediction tools instantly. &lt;/p&gt;

&lt;p&gt;And what's even more awesome is its simplicity. You can simply train and use multiple prediction tools by using standard SQL queries and you don't really need to bother about the underlying programming.&lt;/p&gt;

&lt;p&gt;So, in this tutorial, we will try to deploy MindsDB on a Vultr Cloud Instance and try to connect with it from one of our local database managers called &lt;code&gt;DBeaver&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying a Vultr Cloud Instance
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.vultr.com/promo/try100/"&gt;Vultr&lt;/a&gt; provides cloud computing solutions globally with its multiple data centers spanning several geographical regions ensuring a standardised highly reliable and high performance cloud computing environment.&lt;/p&gt;

&lt;p&gt;Now let's dive in and create a Cloud Instance in the Vultr Platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Sign up for a &lt;a href="https://www.vultr.com/promo/try100/"&gt;Vultr&lt;/a&gt; account if you haven't already or simply log in using your existing credentials. Vultr offers 100$ worth of credits to try out the platform for 30 days.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/sd2Kxrq68fEhVntL2jH66kTJ1lWrrOMMtmNsXq5jxy4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2Mxbm0x/bGcxeGkyZTl1bGpy/bmQ3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/sd2Kxrq68fEhVntL2jH66kTJ1lWrrOMMtmNsXq5jxy4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2Mxbm0x/bGcxeGkyZTl1bGpy/bmQ3LnBuZw" alt="Vultr Signup Page" width="880" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Once you have signed in, you will land on the Dashboard. Select the &lt;code&gt;Instances&lt;/code&gt; tab and click on &lt;code&gt;Deploy Server&lt;/code&gt;. This should take you to the &lt;code&gt;Deploy New Instance&lt;/code&gt; screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/yxXeAHuubobrRz6-NlJxuCcNemwhZ35tvWjoMYKCVH8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3JubTgy/bXdwOWhqbnIwZW1s/dm0wLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/yxXeAHuubobrRz6-NlJxuCcNemwhZ35tvWjoMYKCVH8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3JubTgy/bXdwOWhqbnIwZW1s/dm0wLnBuZw" alt="Create Instance" width="880" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; On this screen, we need to choose the specs for the compute instance that we will be creating. You are free to choose them as per your needs but for the purpose of this tutorial, you can always go ahead and use the config mentioned below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Choose Server:&lt;/strong&gt; Cloud Compute&lt;br&gt;
&lt;strong&gt;- CPU &amp;amp; Storage Technology:&lt;/strong&gt; Intel High Performance&lt;br&gt;
&lt;strong&gt;- Server Location:&lt;/strong&gt; Choose the closest one (Mumbai for me)&lt;br&gt;
&lt;strong&gt;- Server Image:&lt;/strong&gt; Navigate to &lt;code&gt;Marketplace Apps&lt;/code&gt;. Select &lt;code&gt;Docker&lt;/code&gt; on &lt;code&gt;Ubuntu 20.04 x64 Image&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;- Server Size:&lt;/strong&gt; $24/month (100GB NVMe/ 2 vCPUs / 4GB Memory)&lt;br&gt;
&lt;strong&gt;- Add Auto Backups:&lt;/strong&gt; You can either leave it turned on or turn it off (It will cost you extra bucks.)&lt;br&gt;
&lt;strong&gt;- Additional Features:&lt;/strong&gt; You can check any of the features if you need them. However, we can skip it for this tutorial.&lt;br&gt;
&lt;strong&gt;- SSH Keys:&lt;/strong&gt; Leave it as it is. We don't need to add any SSH keys as well.&lt;br&gt;
&lt;strong&gt;- Server Hostname &amp;amp; Label:&lt;/strong&gt; Assign a Server Hostname as you wish&lt;br&gt;
&lt;strong&gt;- Server Qty:&lt;/strong&gt; Leave it at 1&lt;/p&gt;

&lt;p&gt;Now we are done with selecting all the specs for the server and can simply hit the &lt;code&gt;Deploy Now&lt;/code&gt; button to get it booted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/sJsqiZl8P8f_IreFI8SPaSiEf624rONE2mV_xwkm3KI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL25wNTF2/YnQ5dzM5MmZtOWZw/MzUyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/sJsqiZl8P8f_IreFI8SPaSiEf624rONE2mV_xwkm3KI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL25wNTF2/YnQ5dzM5MmZtOWZw/MzUyLnBuZw" alt="Deploy New Instance Configuration" width="880" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; We have to now wait for the installation to complete and the status of the server should be set to &lt;code&gt;running&lt;/code&gt; on the next page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/6sUB2L5uuEl-LtIS9lpR5h6oeoTyzA44m-T4DSOnTrU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2JyejNt/M3Y0cmhtNGF2ZnI5/ZzRoLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/6sUB2L5uuEl-LtIS9lpR5h6oeoTyzA44m-T4DSOnTrU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2JyejNt/M3Y0cmhtNGF2ZnI5/ZzRoLnBuZw" alt="Server Image Installing" width="880" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now once we get the status as &lt;code&gt;running&lt;/code&gt; we can simply click on the server name and navigate to the Server dashboard where we can find all the details about the server and can then click on &lt;code&gt;View Console&lt;/code&gt; to get started with the terminal and carry on the further steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/ATo-JL8e1Ifs3x2ffV0Kp8NNfv6mCxRy3lR_FtKsI9k/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2lvNXRt/ZWk4dGE3azVuYnEw/bWVnLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/ATo-JL8e1Ifs3x2ffV0Kp8NNfv6mCxRy3lR_FtKsI9k/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2lvNXRt/ZWk4dGE3azVuYnEw/bWVnLnBuZw" alt="Server Dashboard" width="880" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure to note down the &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; from the server dashboard screen as we will be needing them to log in to our system using the terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/6wGXBq74aUG2ahtdgIssGPnh-VeY4kanNl_pH12LQR8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y5Znc2/YTZiZWxwdnhodGUw/Z3lpLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/6wGXBq74aUG2ahtdgIssGPnh-VeY4kanNl_pH12LQR8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3Y5Znc2/YTZiZWxwdnhodGUw/Z3lpLnBuZw" alt="Console Login" width="880" height="485"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Installing MindsDB on the Server
&lt;/h2&gt;

&lt;p&gt;We have now set up a cloud instance that is up and running and we are ready to install MindsDB on top of it using &lt;code&gt;Docker&lt;/code&gt;. So, let's get started with this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Before we start, let's check whether Docker is installed properly or not using the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should successfully run and return the message &lt;code&gt;Hello from Docker&lt;/code&gt;. This confirms that the Docker is working properly on our instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/NtzSIpjRKy0FJ4ImjCzLVgvBKDxtzbzaGEYPtwhJm88/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3gzMzZw/a3lqamdzbXFjOXd0/bjgwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/NtzSIpjRKy0FJ4ImjCzLVgvBKDxtzbzaGEYPtwhJm88/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3gzMzZw/a3lqamdzbXFjOXd0/bjgwLnBuZw" alt="Docker Hello World" width="697" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; We can now run the following command using Docker to pull the latest stable MindsDB image into our server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/4nJ7PdTutztA-uUUzofmHiRUCjd8kcU6i4I5Z7n8Q_c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2gzYzNv/b2M1dGlnb3A5cWs5/dWx0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/4nJ7PdTutztA-uUUzofmHiRUCjd8kcU6i4I5Z7n8Q_c/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2gzYzNv/b2M1dGlnb3A5cWs5/dWx0LnBuZw" alt="Pulling MindsDB Image using Docker" width="860" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can also fetch the latest Beta version image using the command below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull mindsdb/mindsdb_beta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Note: The &lt;a href="https://docs.mindsdb.com/info/"&gt;MindsDB Getting Started&lt;/a&gt; documentation provides more such ways to install MindsDB other than Docker as well.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; We have to now expose the specific ports that will be needed to communicate with the MindsDB instance on the cloud from our local database manager. Use the following command to do the same.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -p 47334:47334 -p 47335:47335 mindsdb/mindsdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/yfjI3PyOIEYqXtzJ7jz52uKk3ysYtEtFf8VJpIZEeUA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzcxbnd0/NGFsN3R0ZnJ3dmM1/OXgwLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/yfjI3PyOIEYqXtzJ7jz52uKk3ysYtEtFf8VJpIZEeUA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzcxbnd0/NGFsN3R0ZnJ3dmM1/OXgwLnBuZw" alt="Exposing Ports" width="880" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Port 47334&lt;/strong&gt; - It is used to host the MindsDB GUI. You can always use your &lt;code&gt;CloudInstanceIPv4:47334&lt;/code&gt; to access the GUI in the browser.&lt;br&gt;
&lt;strong&gt;Port 47335&lt;/strong&gt; - It will be used as the MySQL communication port to carry out database transactions over TCP/IP.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Ke3HDtAWav9N6S5C5_nfdLVZg3p5faX7mIwdftQLFqw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2wwOXY0/NzlzM25uaDgzOGpz/ZXZ3LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Ke3HDtAWav9N6S5C5_nfdLVZg3p5faX7mIwdftQLFqw/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2wwOXY0/NzlzM25uaDgzOGpz/ZXZ3LnBuZw" alt="MindsDB GUI" width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting with DBeaver (Local Database Manager)
&lt;/h2&gt;

&lt;p&gt;We will now try to connect to the MindDB cloud instance using &lt;a href="https://dbeaver.io/"&gt;DBeaver&lt;/a&gt; DB manager and check the tables present inside the MindsDB instance. You can also check &lt;a href="https://docs.mindsdb.com/connect/"&gt;here&lt;/a&gt; to find out the steps for connecting to the cloud instance using some other database client.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Once you've installed DBeaver on your local system, you can open it up and click on &lt;code&gt;New Database Connection&lt;/code&gt; to setup the connection wizard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/5DUUQu6ugAGZOQu8cLn00rPpErDClQ0HF-gCwW1JvN0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3A4YmZ3/bTUzaHl1am9uZXg0/OWh2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/5DUUQu6ugAGZOQu8cLn00rPpErDClQ0HF-gCwW1JvN0/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3A4YmZ3/bTUzaHl1am9uZXg0/OWh2LnBuZw" alt="New Database Connection Wizard" width="880" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; From the new connection wizard, select &lt;code&gt;MySQL&lt;/code&gt; as the database and click on &lt;code&gt;Next&lt;/code&gt;. On the next screen, we need to provide the connection parameters so that we can establish the connection. The following are required to complete the connection successfully.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Server Host:&lt;/strong&gt; Your Server IPv4 only&lt;br&gt;
&lt;strong&gt;- Port:&lt;/strong&gt; 47335 (Default Port for MySQL)&lt;br&gt;
&lt;strong&gt;- Username:&lt;/strong&gt; mindsdb (Default Username)&lt;br&gt;
&lt;strong&gt;- Password:&lt;/strong&gt; Leave it empty (Default Password is empty.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/Qe4n07Y_80VcAHBD61Fnb1Xe0_NBWQuDoSFm8M-r4Y4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2VmeGgz/MXBpc2JnOXNwMmUz/dGhuLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/Qe4n07Y_80VcAHBD61Fnb1Xe0_NBWQuDoSFm8M-r4Y4/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2VmeGgz/MXBpc2JnOXNwMmUz/dGhuLnBuZw" alt="Connection Details" width="796" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now hit the &lt;code&gt;Test Connection&lt;/code&gt; button. This should return success. You can now click on &lt;code&gt;Finish&lt;/code&gt; to save the connection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/4idXj9UfuOtZhFyGmjcGPTkdAYMIwJKL8H-8GD-_YbQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzlwdWVj/a2p1bHl2cWQza2tz/anFpLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/4idXj9UfuOtZhFyGmjcGPTkdAYMIwJKL8H-8GD-_YbQ/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzlwdWVj/a2p1bHl2cWQza2tz/anFpLnBuZw" alt="Test Connection" width="756" height="733"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: You may sometimes require to download some additional driver files in DBeaver before you can establish a connection. So, make sure to select all the recommended driver files and download those as and when prompted.&lt;br&gt;
Also, with the latest release, MindsDB instance has its own SQL Editor that we can use to run the queries and train the models.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Exploring Tables inside MindsDB
&lt;/h2&gt;

&lt;p&gt;As we are now connected with the MindsDB instance, we can either use the file explorer on the right side of DBeaver to explore the tables inside the instance or can otherwise use SQL queries to filter out the required data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/tRhFGhRqqz_j2g20XvpK2lSn8ZoKImL_GeHYg2R95OU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2kweDNz/dG1wM3l6NWt4c2Ru/YWZ0LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/tRhFGhRqqz_j2g20XvpK2lSn8ZoKImL_GeHYg2R95OU/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2kweDNz/dG1wM3l6NWt4c2Ru/YWZ0LnBuZw" alt="Tables inside MindsDB" width="880" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can also use the following query to fetch the list of tables present.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;show tables;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://community.ops.io/images/svsCzN3XOBZ5-Rc7rxvD2hpXq0T3jrdaMrdl8E7_Zh8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzQzaXJr/NW5ra3hjMzk2Zjdi/dWwzLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/svsCzN3XOBZ5-Rc7rxvD2hpXq0T3jrdaMrdl8E7_Zh8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzQzaXJr/NW5ra3hjMzk2Zjdi/dWwzLnBuZw" alt="Tables in MindsDB" width="880" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Predictors&lt;/code&gt; table is used to store the predictor models when we train them whereas the &lt;code&gt;Databases&lt;/code&gt; table contains the list of databases connected with our MindsDB cloud instance. Each new predictor model is stored as a new record in the table and each of its columns contain specific information about that model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;With this, we have successfully completed all the steps that are required to host a local instance of MindsDB on our preferred cloud partner Vultr. We have also learnt how to connect to our cloud-hosted instance using any local database manager. Additionally, we can also sign up and use the &lt;a href="https://cloud.mindsdb.com/"&gt;MindsDB web version&lt;/a&gt; for free.&lt;/p&gt;

&lt;p&gt;Lastly, if you liked the article and found this helpful, don't forget to drop a like. Feel free to drop in your feedback as well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the dashboard images used here are sole properties of MindsDB, DBeaver and Vultr, and are only used here for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorials</category>
      <category>cloudops</category>
      <category>dataops</category>
    </item>
    <item>
      <title>Top 5 Lab Simulations to Learn Kubernetes</title>
      <dc:creator>Rutam Prita Mishra</dc:creator>
      <pubDate>Fri, 27 May 2022 08:58:44 +0000</pubDate>
      <link>https://community.ops.io/rutamhere/top-5-lab-simulations-to-learn-kubernetes-48g2</link>
      <guid>https://community.ops.io/rutamhere/top-5-lab-simulations-to-learn-kubernetes-48g2</guid>
      <description>&lt;p&gt;&lt;a href="https://community.ops.io/images/buaCYwo0E70VhPHq0fO8AjWOIRjLgPeSvSL0Jz6rvL8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2dkeHVm/ZDlhNnk5azRqaXQ5/M3luLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/buaCYwo0E70VhPHq0fO8AjWOIRjLgPeSvSL0Jz6rvL8/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2dkeHVm/ZDlhNnk5azRqaXQ5/M3luLnBuZw" alt="Cover" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Kubernetes is an open-source system of containerized apps for automating deployment, scaling, and management. We also call it &lt;code&gt;K8S&lt;/code&gt; because it starts with &lt;code&gt;K&lt;/code&gt; and there are &lt;code&gt;8 letters&lt;/code&gt; in between and ends with &lt;code&gt;S&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In modern times, K8s has been a part of every enterprise solution and all the cloud-native enthusiasts are very keen on learning about it. So, this article lists 5 such free resources where one can read and have hands-on experience by completing labs using K8S.&lt;/p&gt;

&lt;h2&gt;
  
  
  List of Lab Simulations
&lt;/h2&gt;

&lt;p&gt;The labs listed here are equally good and are not really sorted from best to least. It will completely depend on the individual to choose which one suits him/her the best out of the following.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kubernetes.io
&lt;/h3&gt;

&lt;p&gt;The official &lt;a href="https://kubernetes.io/docs/tutorials/kubernetes-basics"&gt;Kubernetes&lt;/a&gt; website provides some basic modules for the K8s beginners to learn using an interactive lab environment powered by &lt;a href="https://katacoda.com/"&gt;Katacoda&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/aP-8dzHtUgAyTD5HqaM7yV8XqrVhvfWYuQbOc-XMSVI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2oxYjFk/bTc2b28zZTY4MGl6/cDJ2LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/aP-8dzHtUgAyTD5HqaM7yV8XqrVhvfWYuQbOc-XMSVI/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL2oxYjFk/bTc2b28zZTY4MGl6/cDJ2LnBuZw" alt="Kubenertes.io Tutorials Homepage" width="880" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whenever you start a module, you will have a brief theory section to read through and then you can start the lab scenario to check what you have learnt and see it in action. The labs are easy to do with instructions and commands provided already. One has to just understand the objective and then run these commands to achieve the outcome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Civo Academy
&lt;/h3&gt;

&lt;p&gt;Everyone might be knowing Civo in the cloud-native space but what is even more special about them is their free course on Kubernetes available on &lt;a href="https://www.civo.com/academy"&gt;Civo Academy&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/qdZbVxiC3wS1jgwu3mmvgnZFBi5_JrbnK9eIoCD05hc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL21rODUx/NGU0MXc5b2YwMDB4/d2pkLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/qdZbVxiC3wS1jgwu3mmvgnZFBi5_JrbnK9eIoCD05hc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL21rODUx/NGU0MXc5b2YwMDB4/d2pkLnBuZw" alt="Civo Academy Homepage" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will find some of the great mentors in the cloud-native space teaching you with all their expertise and you can feel the ease of learning and trying hands-on using the free Civo Credits. The Civo Academy currently has 39 sessions divided into multiple courses with more sessions coming up soon. Whether you are a Beginner or a Pro, you can find these courses marked with the tags of &lt;code&gt;Beginners&lt;/code&gt; or &lt;code&gt;Intermediate&lt;/code&gt; or &lt;code&gt;Pro&lt;/code&gt; which will help you decide which course you need the most at the moment.&lt;/p&gt;

&lt;h3&gt;
  
  
  KubeAcademy by VMware
&lt;/h3&gt;

&lt;p&gt;Another great place to start your beginner's journey in K8S is with the &lt;a href="https://kube.academy/"&gt;KubeAcademy&lt;/a&gt; powered by VMware. They have designed a set of courses which you can choose based on your preference. If you're not sure where to start, then they have a short assessment Quiz as well after which they will start suggesting you the courses that you should take.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/jjE0wJKajhiK17Z9xBfs6hL50B3ynIrtRNTxBSum8Mc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FvOW5m/ZTV3OTljc3pjdGNx/dHh6LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/jjE0wJKajhiK17Z9xBfs6hL50B3ynIrtRNTxBSum8Mc/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3FvOW5m/ZTV3OTljc3pjdGNx/dHh6LnBuZw" alt="KubeAcademy Homepage" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;KubeAcademy provides 30 online courses with hands-on spanning over a duration of 39 hours tailored by 29 industry experts. You can even get a bunch of K8S &lt;a href="https://tanzu.vmware.com/developer/"&gt;Developer Resources&lt;/a&gt; from the VMware Tanzu Developer Centre or can even grab the &lt;a href="https://tanzu.vmware.com/content/ebooks/production-kubernetes"&gt;Production Kubernetes&lt;/a&gt; e-Book written by 3 KubeAcademy instructors themselves.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning Kasten.io by Veeam
&lt;/h3&gt;

&lt;p&gt;One can also start the K8S learning journey with &lt;a href="https://learning.kasten.io/"&gt;Kasten Learning&lt;/a&gt;. They provide you with multiple Lab Modules where you can learn and carry out different live scenarios to see how things work within your K8s clusters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/bPW7Gq0CaWFMPbZ66jVevbi8mgRvLLM3NIg-OxIfaAA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzA1cjUz/bmpoZDI0eHdsc2li/Y3kyLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/bPW7Gq0CaWFMPbZ66jVevbi8mgRvLLM3NIg-OxIfaAA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzA1cjUz/bmpoZDI0eHdsc2li/Y3kyLnBuZw" alt="Kasten Learning Homepage" width="880" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Within each lab, you get materials to read followed by MCQs for knowledge check and finally the Lab execution. They even award you with badges after you complete each lab successfully that you can share with your connections to show off your learning progress and to keep you motivated to learn and complete even more labs to earn more such badges.&lt;/p&gt;

&lt;h3&gt;
  
  
  Play With Kubernetes
&lt;/h3&gt;

&lt;p&gt;If you're someone who is well-versed with the K8s basics and just wants to try out the commands and carry out different use cases within K8s clusters, then &lt;a href="https://labs.play-with-k8s.com/"&gt;Play with Kubernetes&lt;/a&gt; is the right place for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/5rLmc3ESFh84SDFUQjdFNFW5CpDsrGzTJ41aLJZyDuA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzh3aWF0/YjFhemVvOTdjcGVm/aGd4LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/5rLmc3ESFh84SDFUQjdFNFW5CpDsrGzTJ41aLJZyDuA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzh3aWF0/YjFhemVvOTdjcGVm/aGd4LnBuZw" alt="Play with Kubernetes Homepage" width="880" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Play with Kubernetes is powered by Docker. You can simply log in with your Github or Docker credentials and start working with your instances. Each session in the playground stays for 4 hours. So, you have 4 hours per session to try out everything you want. But don't worry, once your session is consumed, you can always go ahead and start another new session and you will have 4 hours again to do something new.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/J9fXL1uGQD7qvCYiKKtrPZDxPXIwGBCbI3EPg98ONdA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3N5Nm9i/ODhjZGFpem50OXR6/MnRqLnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/J9fXL1uGQD7qvCYiKKtrPZDxPXIwGBCbI3EPg98ONdA/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzL3N5Nm9i/ODhjZGFpem50OXR6/MnRqLnBuZw" alt="Play With Kubernetes Session" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But if you're someone who is not sure what to run and how to run things in the lab environment, then I would suggest you use &lt;a href="https://collabnix.github.io/kubelabs/"&gt;Kubelabs&lt;/a&gt; as a learning aid and additional resource to learn and then try things out in the Play with Kubernetes sessions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://community.ops.io/images/3DCPPNVtVbdf1ahMz9hpBxCY2EA5DGOtV4R_mPaf7hE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRtc2h1/dWx1YzY0d2R2cHky/MDQ5LnBuZw" class="article-body-image-wrapper"&gt;&lt;img src="https://community.ops.io/images/3DCPPNVtVbdf1ahMz9hpBxCY2EA5DGOtV4R_mPaf7hE/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzRtc2h1/dWx1YzY0d2R2cHky/MDQ5LnBuZw" alt="Kubelabs Homepage" width="880" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Notes
&lt;/h2&gt;

&lt;p&gt;Kubernetes may seem very vast and challenging initially, but you can always start with learning and growing each day with all these resources and many more available for free on YouTube and other platforms.&lt;/p&gt;

&lt;p&gt;You can also get free credits when you sign up with so many cloud providers like &lt;a href="https://www.civo.com/"&gt;Civo&lt;/a&gt;, &lt;a href="https://www.digitalocean.com/"&gt;Digital Ocean&lt;/a&gt;, &lt;a href="https://www.linode.com/"&gt;Linode&lt;/a&gt; and so on. Use the free credits, spin up a cluster and start doing things and learning at your own pace.&lt;/p&gt;

&lt;p&gt;And, always remember that you're not alone in this. There are plenty of resources, communities and mentors in the cloud-native space who are always there to guide you and help you to learn and succeed in your Kubernetes journey.&lt;/p&gt;

&lt;p&gt;If you found this really helpful, don't forget to show some love to this article. Also, feel free to drop in your feedback or mention more such free resources for our Kubernetes Learners. Happy Learning!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: All the homepage/dashboard images are sole properties of the respective websites &amp;amp; platforms, and are used here only for illustrative purposes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/sponsors/Rutam21"&gt;&lt;img src="https://community.ops.io/images/XpYWjHse1hu7Q22WMK2AHD8fWk_UhCcgFRco_ORU5gg/w:880/mb:500000/ar:1/aHR0cHM6Ly9jb21t/dW5pdHkub3BzLmlv/L3JlbW90ZWltYWdl/cy91cGxvYWRzL2Fy/dGljbGVzLzM4dXI0/ZDRjbnRsbmNxZWp4/OHE1LnBuZw" alt="Github Sponsor" width="880" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>productivity</category>
      <category>kubernetes</category>
    </item>
  </channel>
</rss>
