diff --git a/content/Azure/01_intro_to_cloud_console.ipynb b/content/Azure/01_intro_to_cloud_console.ipynb index b48fb8c..efa722f 100644 --- a/content/Azure/01_intro_to_cloud_console.ipynb +++ b/content/Azure/01_intro_to_cloud_console.ipynb @@ -28,7 +28,7 @@ }, { "cell_type": "markdown", - "id": "41948653", + "id": "61be7c43-99c1-4033-8252-6955b942bee4", "metadata": {}, "source": [ "## Setup\n", @@ -38,18 +38,22 @@ "```{admonition} Be Aware\n", ":class: danger\n", "If you are doing self-paced learning, your login information may be different!\n", - "```\n", - "\n", - "### Logging in to the console\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "f57d9cdf-8ed5-4cab-87f7-4219cb33bf2b", + "metadata": {}, + "source": [ + "## Logging in to the console\n", "Paste your console login link into your web browser. You will see the Azure site requesting your username and password. Fill in your username and password that was assigned to you in the csv file. \n", "\n", "You are now logged on. Welcome to the first step of your cloud journey! \n", "\n", - "Figure 1 is what your screen should look like when you log in to the Azure console. Next, let's take a closer look at some key concepts and components of the Azure console. \n", - "\n", - "\n", + "The below is what your screen should look like when you log in to the Azure console. Next, let's take a closer look at some key concepts and components of the Azure console. \n", "\n", - "
Figure 1: Logging in to the Azure console

" + "![cloud-shell](images/azure_intro_console.jpg)" ] }, { @@ -57,7 +61,7 @@ "id": "27fc9127", "metadata": {}, "source": [ - " **1. Hamburger**\n", + "**1. Hamburger**\n", ": If you click on the hamburger (three horizontal lines) you will get a dropdown menu and see a list of services that are offered by Azure. Currently, Azure has over N services ranging from compute to machine learning to networking to data storage. The list grows frequently!\n", "\n", "**2. Search bar**\n", @@ -87,21 +91,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" + "display_name": "Bash", + "language": "bash", + "name": "bash" }, "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" } }, "nbformat": 4, diff --git a/content/Azure/02_intro_to_compute.ipynb b/content/Azure/02_intro_to_compute.ipynb index 0777636..dca45b7 100644 --- a/content/Azure/02_intro_to_compute.ipynb +++ b/content/Azure/02_intro_to_compute.ipynb @@ -28,13 +28,11 @@ "id": "05306c25", "metadata": {}, "source": [ - "**Create a VM**\n", + "## Create a VM\n", "\n", "Hamburger in upper left -> Virtual Machines -> Create (+) in upper left -> virtual machines ->\n", "In the middle of the page under \"Create Virtual Machine\" heading there are menu options from left to right: Basic, Disk, Networking, Management, Advanced, Tags, Review & Create\n", - " \n", - "**Basic:**\n", - " \n", + "\n", "**Part 1**\n", "* Check subscription \n", "* select or create Resource Group\n", @@ -43,7 +41,7 @@ "* Spot\n", "* Size\n", "\n", - "\n", + "![vm-create](images/01_CLASS_Azure_VM_basic_01.png)\n", "\n", "**Part 2**\n", "* Authentication type \n", @@ -57,7 +55,7 @@ "* Ports (none)\n", " * Open inbound ports (default: none)\n", "\n", - "\n" + "![vm-create](images/01_CLASS_Azure_VM_basic_02.png)" ] }, { @@ -75,7 +73,7 @@ "* Data disk (create or attach)\n", " * Leave as default\n", "\n", - "\n" + "![vm-disks](images/02_CLASS_Azure_VM_disks.png)\n" ] }, { @@ -95,8 +93,8 @@ " * Allow selected port\n", "* Select inbound port(s)\n", " * Use 22 for ssh access\n", - " \n", - "\n" + "\n", + "![vm-networking](images/03_CLASS_Azure_VM_networking.png)" ] }, { @@ -104,7 +102,7 @@ "id": "1e052657", "metadata": {}, "source": [ - "Now let's continue to provision the VM. The next three menu options accross the top are outside the scope of this tutoial so now we are ready to click Review & Create.\n", + "Now let's continue to provision the VM. The next three menu options across the top are outside the scope of this tutorial so now we are ready to click Review & Create.\n", "\n", "**Management**\n", "* Outside of scope\n", @@ -132,7 +130,7 @@ "* You should see your VM name\n", "* Click on VM name to get more information about your VM\n", "\n", - "" + "![vm-networking](images/04_CLASS_Azure_VM_verify.png)" ] }, { @@ -150,21 +148,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" + "display_name": "Bash", + "language": "bash", + "name": "bash" }, "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" } }, "nbformat": 4, diff --git a/content/Azure/04_intro_to_cli.ipynb b/content/Azure/04_intro_to_cli.ipynb index 0d58806..46c1fac 100644 --- a/content/Azure/04_intro_to_cli.ipynb +++ b/content/Azure/04_intro_to_cli.ipynb @@ -5,7 +5,7 @@ "id": "bfb78c2d", "metadata": {}, "source": [ - "## Navigating the Command Line Interface (CLI)\n", + "# Navigating the Command Line Interface (CLI)\n", "\n", "Learner Questions\n", " * How do I use the Cloud CLI?\n", @@ -25,7 +25,7 @@ "id": "e8cda207", "metadata": {}, "source": [ - "### Open the Cloud Shell\n", + "## Open the Cloud Shell\n", "\n", "The Cloud Shell is Debian running in a container with 5GB of no-charge persistent storage with most of the Azure tools and a lot of other useful tools (git, docker, jq, Docker, etc.) installed by default.\n", "\n", @@ -41,7 +41,7 @@ "id": "1799e8dd", "metadata": {}, "source": [ - "### Exercise\n", + "## Exercise\n", "Take a couple of minutes to explore your new Cloud Shell environment.\n", " * How much RAM is available?\n", " * How much storage is available to you?\n", @@ -54,7 +54,7 @@ "id": "da18d22e", "metadata": {}, "source": [ - "### Basic Cloud Commands\n", + "## Basic Cloud Commands\n", "\n", "The cloud can also be controlled using a command line interface (CLI) or a programming language such as Python. Collectively these tools interact with the cloud over a Application Programming Interface (API) and this capability forms the basis of the cloud, the ability to control infrastructure programmatically. \n", "\n", @@ -68,12 +68,12 @@ "id": "f7b90dba", "metadata": {}, "source": [ - "Now let us look at your account information. " + "Now let us look at your account information (your details will be different). " ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "27170c24", "metadata": {}, "outputs": [ @@ -109,7 +109,7 @@ "id": "cd6323ad", "metadata": {}, "source": [ - "### Environment Variables\n", + "## Environment Variables\n", "\n", "When using the CLI you quickly notice that you have to enter many of the details, such as a Resource Group, many times. Not only is this tedious, it also makes moving to another project difficult making reusability and collaboration painful. We will demonstrate the use environment variables to address these issues. As a reminder, environment variables used to store configuration information that can be easily passed between programs and programming languages. Most cloud environments and tools rely heavily on this technique.\n", "\n", @@ -118,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "b8f74fe9-0943-4bd9-a91b-da09c001f8a1", "metadata": {}, "outputs": [], @@ -128,7 +128,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "b937f6c7-3697-4bc0-8e32-da0b0faec593", "metadata": {}, "outputs": [ @@ -156,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "bae0587c-0379-40e3-9c31-16ba5505487a", "metadata": {}, "outputs": [ @@ -174,7 +174,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "52b4add5-0d18-4faf-a304-b7e0ee8ba82e", "metadata": {}, "outputs": [ @@ -208,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "776806e4-209f-45fa-b14e-f771f5d5089d", "metadata": {}, "outputs": [ @@ -216,7 +216,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Thu Dec 2 14:50:43 UTC 2021\n" + "Thu Dec 2 17:16:22 UTC 2021\n" ] } ], @@ -226,7 +226,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "560fde63-0eb8-4c52-9787-4debfe35ec23", "metadata": {}, "outputs": [ @@ -234,7 +234,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Date: Thu Dec 2 14:50:52 UTC 2021\n" + "Date: Thu Dec 2 17:16:23 UTC 2021\n" ] } ], @@ -264,18 +264,18 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "d00a37e4", "metadata": {}, "outputs": [], "source": [ - "MYRG=\"MyResourceGroup\"\n", + "RG=\"rg-essentials\"\n", "REGION=\"eastus\"" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "d7988c45", "metadata": {}, "outputs": [ @@ -283,17 +283,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "MyResourceGroup\n" + "rg-essentials\n" ] } ], "source": [ - "echo $MYRG" + "echo $RG" ] }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 13, "id": "49f484a6", "metadata": {}, "outputs": [ @@ -302,21 +302,22 @@ "output_type": "stream", "text": [ "{\n", - " \"id\": \"/subscriptions/ae186240-1b93-42b5-bb33-e9b8c4e527de/resourceGroups/MyResourceGroup\",\n", + " \"id\": \"/subscriptions/975b9702-e6b9-47b5-94a5-ca5f2b110ca8/resourceGroups/rg-essentials\",\n", " \"location\": \"eastus\",\n", " \"managedBy\": null,\n", - " \"name\": \"MyResourceGroup\",\n", + " \"name\": \"rg-essentials\",\n", " \"properties\": {\n", " \"provisioningState\": \"Succeeded\"\n", " },\n", " \"tags\": null,\n", " \"type\": \"Microsoft.Resources/resourceGroups\"\n", - "}\n" + "}\n", + "\u001b[0m" ] } ], "source": [ - "!az group create --name $MYRG --location $REGION" + "az group create --name $RG --location $REGION" ] }, { @@ -324,12 +325,12 @@ "id": "7fe71e66", "metadata": {}, "source": [ - "Now use the `MYRG` envrionment variable to get information about your RG. This information is available at any time with the following command not just at creation." + "Now use the `RG` environment variable to get information about your resource group. This information is available at any time with the following command not just at creation." ] }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 14, "id": "31b01f78-94b1-44f0-a2af-d657058941b2", "metadata": {}, "outputs": [ @@ -338,21 +339,22 @@ "output_type": "stream", "text": [ "{\n", - " \"id\": \"/subscriptions/ae186240-1b93-42b5-bb33-e9b8c4e527de/resourceGroups/MyResourceGroup\",\n", + " \"id\": \"/subscriptions/975b9702-e6b9-47b5-94a5-ca5f2b110ca8/resourceGroups/rg-essentials\",\n", " \"location\": \"eastus\",\n", " \"managedBy\": null,\n", - " \"name\": \"MyResourceGroup\",\n", + " \"name\": \"rg-essentials\",\n", " \"properties\": {\n", " \"provisioningState\": \"Succeeded\"\n", " },\n", " \"tags\": null,\n", " \"type\": \"Microsoft.Resources/resourceGroups\"\n", - "}\n" + "}\n", + "\u001b[0m" ] } ], "source": [ - "!az group show --resource-group $MYRG" + "az group show --resource-group $RG" ] }, { @@ -360,7 +362,8 @@ "id": "270e0abb-d5e9-476a-af91-060cc0ea0349", "metadata": {}, "source": [ - "### Exercise\n", + "## Exercise\n", + "FIXME:\n", " * What command shows the project number? (hint: we used it already)\n", " * What is the name of this variable? (hint: it is case sensitive)\n", " * What command shows *just* the Project Number (hint: use `--format`)\n", @@ -368,20 +371,18 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "b9eebea3", + "cell_type": "markdown", + "id": "3b744cd4-3c7e-43f2-83ae-0ff02ec9de83", "metadata": {}, - "outputs": [], "source": [ - "### Advanced Call-Out: Formating Output.\n", + "## Advanced Call-Out: Formating Output.\n", "\n", "The following example shows how to output the configuration as `JSON`." ] }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 18, "id": "678a1735-8cad-403c-b302-639de1fb0f4b", "metadata": { "tags": [] @@ -391,46 +392,57 @@ "name": "stdout", "output_type": "stream", "text": [ - "[\n", - " {\n", - " \"id\": \"/subscriptions/ae186240-1b93-42b5-bb33-e9b8c4e527de/resourceGroups/cloud-shell-storage-eastus\",\n", - " \"location\": \"eastus\",\n", - " \"managedBy\": null,\n", - " \"name\": \"cloud-shell-storage-eastus\",\n", - " \"properties\": {\n", - " \"provisioningState\": \"Succeeded\"\n", - " },\n", - " \"tags\": null,\n", - " \"type\": \"Microsoft.Resources/resourceGroups\"\n", - " },\n", - " {\n", - " \"id\": \"/subscriptions/ae186240-1b93-42b5-bb33-e9b8c4e527de/resourceGroups/NetworkWatcherRG\",\n", - " \"location\": \"eastus\",\n", - " \"managedBy\": null,\n", - " \"name\": \"NetworkWatcherRG\",\n", - " \"properties\": {\n", - " \"provisioningState\": \"Succeeded\"\n", - " },\n", - " \"tags\": null,\n", - " \"type\": \"Microsoft.Resources/resourceGroups\"\n", - " },\n", - " {\n", - " \"id\": \"/subscriptions/ae186240-1b93-42b5-bb33-e9b8c4e527de/resourceGroups/MyResourceGroup\",\n", - " \"location\": \"eastus\",\n", - " \"managedBy\": null,\n", - " \"name\": \"MyResourceGroup\",\n", - " \"properties\": {\n", - " \"provisioningState\": \"Succeeded\"\n", - " },\n", - " \"tags\": null,\n", - " \"type\": \"Microsoft.Resources/resourceGroups\"\n", - " }\n", - "]\n" + "\u001b[1;39m[\n", + " \u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"id\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"/subscriptions/975b9702-e6b9-47b5-94a5-ca5f2b110ca8/resourceGroups/cloudshell\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"location\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"centralus\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"managedBy\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"name\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"cloudshell\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"properties\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"provisioningState\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Succeeded\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"tags\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"type\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Microsoft.Resources/resourceGroups\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m,\n", + " \u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"id\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"/subscriptions/975b9702-e6b9-47b5-94a5-ca5f2b110ca8/resourceGroups/rg-essentials-dev\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"location\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"centralus\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"managedBy\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"name\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"rg-essentials-dev\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"properties\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"provisioningState\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Succeeded\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"tags\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"type\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Microsoft.Resources/resourceGroups\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m,\n", + " \u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"id\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"/subscriptions/975b9702-e6b9-47b5-94a5-ca5f2b110ca8/resourceGroups/NetworkWatcherRG\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"location\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"eastus\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"managedBy\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"name\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"NetworkWatcherRG\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"properties\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"provisioningState\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Succeeded\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"tags\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"type\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Microsoft.Resources/resourceGroups\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m,\n", + " \u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"id\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"/subscriptions/975b9702-e6b9-47b5-94a5-ca5f2b110ca8/resourceGroups/rg-essentials\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"location\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"eastus\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"managedBy\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"name\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"rg-essentials\"\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"properties\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;39m{\n", + " \u001b[0m\u001b[34;1m\"provisioningState\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Succeeded\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"tags\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[1;30mnull\u001b[0m\u001b[1;39m,\n", + " \u001b[0m\u001b[34;1m\"type\"\u001b[0m\u001b[1;39m: \u001b[0m\u001b[0;32m\"Microsoft.Resources/resourceGroups\"\u001b[0m\u001b[1;39m\n", + " \u001b[1;39m}\u001b[0m\u001b[1;39m\n", + "\u001b[1;39m]\u001b[0m\n" ] } ], "source": [ - "!az group list --output json" + "az group list --output json | jq" ] } ], diff --git a/content/Azure/05_intro_to_cloud_storage.ipynb b/content/Azure/05_intro_to_cloud_storage.ipynb index 98030c8..eaa38c6 100644 --- a/content/Azure/05_intro_to_cloud_storage.ipynb +++ b/content/Azure/05_intro_to_cloud_storage.ipynb @@ -94,19 +94,19 @@ "* Navigate to storage accounts\n", "* Click \"+ create\" in the upper left \n", "\n", - "\n", + "![vm-create-storage](images/04_azure_create_storage_account.png)\n", "\n", "* Select (or create) a Resource Group\n", "* Select a name for your Storage account\n", "* Leave the rest as default\n", "* Click Review & Create\n", "\n", - "\n", + "![vm-create-storage-account](images/04_azure_storage_account_create_name.png)\n", "\n", "* After passing validation, click create\n", "* The page will indicate when the account has been deployed. Click on \"go to resource\"\n", "\n", - "\n" + "![vm-create-finished](images/04_azure_storage_account_finished_page.png)\n" ] }, { @@ -126,7 +126,7 @@ "* Type a name for your new container.\n", "* Select OK to create the container.\n", "\n", - "\n" + "![vm-create-container](images/04_azure_storage_create_container.png)\n" ] }, { @@ -163,7 +163,6 @@ "cell_type": "markdown", "id": "9f28062e", "metadata": { - "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ @@ -183,21 +182,15 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" + "display_name": "Bash", + "language": "bash", + "name": "bash" }, "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" } }, "nbformat": 4, diff --git a/content/Azure/06_running_analysis.ipynb b/content/Azure/06_running_analysis.ipynb index a6ca11e..a0ec478 100644 --- a/content/Azure/06_running_analysis.ipynb +++ b/content/Azure/06_running_analysis.ipynb @@ -11,48 +11,29 @@ "```{admonition} Overview\n", ":class: tip\n", "\n", + "**Teaching:**\n", "\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "502f2360", - "metadata": {}, - "source": [ - "```{code-cell} ipython3\n", - ":tags: [mytag]\n", + "**Exercises:**\n", + "\n", + "**Questions:**\n", + "\n", + "**Objectives:**\n", "\n", - "print(\"A python cell\")\n", "```" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c543528f", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "display_name": "Bash", + "language": "bash", + "name": "bash" }, "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.5" + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" } }, "nbformat": 4, diff --git a/content/Azure/07_monitoring_costs.ipynb b/content/Azure/07_monitoring_costs.ipynb index c8b0712..0c280fa 100644 --- a/content/Azure/07_monitoring_costs.ipynb +++ b/content/Azure/07_monitoring_costs.ipynb @@ -11,48 +11,30 @@ "```{admonition} Overview\n", ":class: tip\n", "\n", + "**Teaching:**\n", + "\n", + "**Exercises:**\n", + "\n", + "**Questions:**\n", + "\n", + "**Objectives:**\n", "\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "502f2360", - "metadata": {}, - "source": [ - "```{code-cell} ipython3\n", - ":tags: [mytag]\n", "\n", - "print(\"A python cell\")\n", "```" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c543528f", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "display_name": "Bash", + "language": "bash", + "name": "bash" }, "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.5" + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" } }, "nbformat": 4, diff --git a/content/Azure/08_cleaning_up_resources.ipynb b/content/Azure/08_cleaning_up_resources.ipynb index d1604da..52b682f 100644 --- a/content/Azure/08_cleaning_up_resources.ipynb +++ b/content/Azure/08_cleaning_up_resources.ipynb @@ -11,48 +11,115 @@ "```{admonition} Overview\n", ":class: tip\n", "\n", + "**Teaching:**\n", + "\n", + "**Exercises:**\n", + "\n", + "**Questions:**\n", + "\n", + "**Objectives:**\n", "\n", "```" ] }, { "cell_type": "markdown", - "id": "502f2360", + "id": "1377081d-7da5-4088-8ba9-966f297af1d6", "metadata": {}, "source": [ - "```{code-cell} ipython3\n", - ":tags: [mytag]\n", + "## Remove Resource Group\n", "\n", - "print(\"A python cell\")\n", - "```" + "Removing a resource group removes all the resources associated with the resource group.\n", + "\n", + "**WARNING: This will remove all resources (virtual machines, storage buckets, etc.) from the `rg-essentials` resource group!**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7a134850-8c4f-47c6-9816-6d487a88eda1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rg-essentials\n" + ] + } + ], + "source": [ + "RG=rg-essentials\n", + "echo $RG" + ] + }, + { + "cell_type": "markdown", + "id": "826bc0e0-545c-46e3-9ede-aa7663754b76", + "metadata": {}, + "source": [ + "List resources we will be deleting (not exclusive) when the resource group is deleted." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "6ccd79ab-0068-4a2a-9aca-2c47454f9d85", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\u001b[0m" + ] + } + ], + "source": [ + "az vm list --resource-group $RG --output table" + ] + }, + { + "cell_type": "markdown", + "id": "8ada5056-3963-4ca0-9250-ac0e6dc8aba8", + "metadata": {}, + "source": [ + "Remove Resource Group. Note, this will take many seconds.\n", + "\n", + "**WARNING: This will remove all resources (virtual machines, storage buckets, etc.) from the `rg-essentials` resource group!**" ] }, { "cell_type": "code", - "execution_count": null, - "id": "c543528f", + "execution_count": 9, + "id": "3ff9bb93-aadf-4319-aed4-b5fc1f2518c8", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[K\u001b[0minished .." + ] + } + ], + "source": [ + "az group delete --resource-group $RG --yes" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "display_name": "Bash", + "language": "bash", + "name": "bash" }, "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.5" + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" } }, "nbformat": 4, diff --git a/content/Azure/images/01_CLASS_Azure_VM_basic_01.pg b/content/Azure/images/01_CLASS_Azure_VM_basic_01.pg deleted file mode 100644 index 0d8a3ed..0000000 Binary files a/content/Azure/images/01_CLASS_Azure_VM_basic_01.pg and /dev/null differ diff --git a/content/Azure/images/is_the_cloud_right.ipynb b/content/Azure/images/is_the_cloud_right.ipynb deleted file mode 100644 index 60aefce..0000000 --- a/content/Azure/images/is_the_cloud_right.ipynb +++ /dev/null @@ -1,72 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "1b6fcbc0", - "metadata": {}, - "source": [ - "# Is the Cloud Right for Me?\n", - "\n", - "Now that you have an idea of what cloud computing is, the question that is most pertinent to researchers is whether or not you ***should*** move your work to the cloud. The following chart outlines some fundamental questions to ask in your assessment: \n", - "\n", - "
\n", - "\n", - "Many researchers move to the commercial cloud simply because their local compute resources (local HPC clusters, or departmental clusters) are insufficient to deal with the volume of data and type of computation. With the cloud, there is no wait time to obtain the computing resources you need. With sufficient funds, you may even be able to obtain a near infinite number of CPUs, RAM and GPUs and compute can start as soon as you want it!\n", - "\n", - "```{note}\n", - "Scalable computing is the ability to obtain more computers(horizontal scaling) and/or to obtain more powerful computers(vertical scaling)\n", - "```\n", - "\n", - "With cloud computing, you do not need to purchase or maintain and update hardware, operating systems and a slew of dependencies. For the most part, providers maintain their hardware. Further, cloud providers just keep making new services to keep up with demands the rapidly expanding community building cloud-native workflows. Cloud providers are constantly evolving their tools and resources with a focus on storage, reliability, and security. \n", - "\n", - "\n", - "Other factors that will play in your decision to move to the cloud include knowing where common large datasets are hosted. The core idea in working on the cloud involves a paradigm shift: researchers should no longer bring their data to the compute (i.e. downloading data) but should instead bring their compute to the data! If you think about it, why spend hours on end to download data and find a place to store it when you can work directly with the data?\n", - "\n", - "\n", - "If your collaborators are already working in the cloud i.e. hosting data on the cloud or building cloud-based workflows, it would also make sense for you to bring your work to the cloud. Go here for more on Open Science and Collaboration.\n", - "\n", - "\n", - "## Why *not* to migrate to the cloud?\n", - "\n", - "If you have already identified an adequate-to-your-needs computing environment like XSEDE or you already have the access to the resources you need, it just doesn't make sense to migrate to the cloud!\n", - "\n", - "Using the public cloud requires a learning curve. Sometimes you may just simply not have the time or resources to do this important step. The CLASS program can help you overcome some of these hurdles, but you may prefer to spend your time learning other things or exploring other avenues and it just doesn't seem worth it to invest your time in learning about the cloud. \n", - "\n", - "If you operate your computer(s) at a very high duty cycle i.e. you computer is constantly computing something and you have massive datasets that you work with frequently that is stored on-premise, the cloud may not be a very cost-effective option. \n", - "\n", - "Finally, if there is too much of an administrative drag preventing you from using the cloud (e.g. regulations and compliance such as HIPAA or FERPA), you may want to reconsider staying with your local infrastructure. \n", - "\n", - "In the next chapter, we will discuss the million dollar question: \"But which cloud provider should I choose?!\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1ddad00f", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/content/Azure/images/readme.md b/content/Azure/images/readme.md deleted file mode 100644 index eca3e78..0000000 --- a/content/Azure/images/readme.md +++ /dev/null @@ -1 +0,0 @@ -This dir hold the images for the Azure essentials diff --git a/content/Azure/intro_to_Azure_Essentials.ipynb b/content/Azure/intro_to_Azure_Essentials.ipynb index 6d14a5b..c7ec784 100644 --- a/content/Azure/intro_to_Azure_Essentials.ipynb +++ b/content/Azure/intro_to_Azure_Essentials.ipynb @@ -35,7 +35,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.10" } }, "nbformat": 4,