Sitemap

How I took advantage of Udacity’s Free Month offer during Lockdown

5 min readApr 25, 2020

--

Photo by Wes Hicks on Unsplash

Hey guys, I hope you and your family are doing well and all your loved ones are safe and sound. Amid this coronavirus pandemic, many online learning platforms offered free courses to make learner’s time at home productive.

Udacity offered one-month free access to all of the Nanodegrees during the march. So I took two Nanodegrees to fulfill my time and energy productively. Both in the Cloud domain, one was Cloud DevOps, and the other was Cloud Developer Nanodegree.

Why?

Because my knowledge in Cloud was incomplete. However, I got industrial training in AWS during placements but that just went over my head and I found AWS interesting and my urge to learn more about it. Fortunately, during this pandemic, I got the opportunity to learn.

What did you learn?

Well, a hell lot of things. let's start off.

  • Fundamentals of AWS i.e. EC2, S3, VPC, EBS, DynamoDB, RDS, EKS, ECR, EBS.
    I didn't just learn about them but practically implemented and interacted with each one of these services and deployed a static website on S3.
  • Deploy Infrastructure as Code
    Imagine you don’t have to go to AWS console to manage or deploy your EC2 or S3 Bucket. Well, you can with the help of CloudFormation Scripts. Deploying, updating, and managing the Cloud Infrastructure with just a script? No Console, No Mouse Clicking?
    Yes, You heard that right. On the AWS CloudFormation, you can deploy the infrastructure stack with the help of a Yaml or JSON script also. That sounded magical to me when I first heard that.
    I deployed infrastructure for a highly available app with the help of CloudFormation Script.
    https://github.com/anshul1098/cloud-devops-p2
  • Developing Code and Deploying that on the Cloud.
    I always listened from people that you can deploy your project/code on Cloud but never know how to do it. But due to this course, now I can deploy the code on the cloud with confidently. The most amazing part was how they taught me to handle the secrets on the cloud. :D (security, you know)
    In this part, I deployed an API on the cloud with the help of Elastic BeanStalk using EB CLI.
    https://github.com/anshul1098/image-filter-api
  • Build CI/CD Pipelines
    Is it amazing to updating new features in your app faster than ever and do not need to wait for days to integrate it? Well, It can be achieved by CI/CD Pipelines. CI stands for Continuous Integration and CD for Continuous Deployment. In the pipeline, the CI parts integrate the code to the Development Environment and the CD part deploys the code rapidly for the end-users. I learned to set up the pipeline using Jenkins and it was fun honestly. I also learned to setup monitoring and logging in the application with the help of various tools like Prometheus, ELK Stack (ElasticSearch, LogStash, Kibana), and Grafana. Ansible was also a part of this learning which lets you configure your infrastructure through playbooks written in YAML. I deployed two projects which use CI/CD Pipelines. I also used CircleCI as a pipeline tool.
    https://github.com/anshul1098/ci-cd-pipelines-jenkins
    https://github.com/anshul1098/operationalize-ml-microservice
  • Microservices architecture
    I was amazed to see this pattern. How easily you can break a project into smaller pieces to make them less dependent on each other and to make them failure-prone and highly available.
    I learned Kubernetes in this section and I must say its an amazing container orchestration technology by Google. AWS provides this service named as Elastic Kubernetes Service. Though at first, I was so confused about deploying the project in EKS as I troubleshot my project step by step to achieve the end goal, I learned its workarounds under the hood.
    I deployed a previous project taught in this course named as Udagram by breaking it into from Monolith to Microservices architecture.
    https://github.com/anshul1098/refactor-udagram-app
  • Serverless Architecture
    Now comes the most beautiful part, Serverless. Imagine you need no servers to deploy your app. That's what Serverless does as the name implies. Serverless architecture in AWS can be achieved with the help of Lambda functions. In GCP, they are named as Cloud functions and in Azure, Azure Functions.
    This architecture lets you deploy your small codebase with the help of lambda functions and you pay only for every function invocation. Functions can be invoked via events and events can be anything like file uploading to S3 or API gets called, etc.
    In this section, I learned about API Gateway which is responsible for request routing, composition, and protocol translation. All requests from clients first go through the API Gateway and hence serves as a single entry point to the system. I also learned about REST API and Authentication in the server.
    In the project, I implemented the user login via Auth0 and deployed all the code through various lambda functions that were interconnected, hence served as Microservices and Serverless pattern both. All these I managed with so fewer efforts via Serverless Framework- a very beautiful framework that lets you manage the Serverless Apps. In the project, I used DynamoDB as the primary database to store the user data.
    https://github.com/anshul1098/serverless-todo-udacity
  • Capstone Project
    Building this project was fun actually. I aggregated all the knowledge acquired through both ND in this project. Main features of this project are-
    - CI/CD Pipelines using Jenkins
    - Build Docker Images in the pipeline
    - Blue/Green Deployment
    - Deployed with YAML script
    - Used Kubernetes as Container Orchestration service.
    https://github.com/anshul1098/capstone-cloud-devops

Well, that's all. :D

Cloud itself is amazing and magical.

How did you managed the time and completed both courses + projects in 30 days?

Haha, Its a heck. Fortunately, I can grasp things faster. So I gave my 40% time in watching videos at 1.25x and the rest of the time investing time in projects to get time for more errors and solving them. I enjoyed the latter more though.
Both NDs are of the same domain so they could be completed faster because the content was relatable to each other. However, there were some days when I couldn't figure out issues coming in projects and was just hopeless but I didn't give up, took a short break, and jumped again to fight with the errors.

What’s Next?

Next? I will brush up on my knowledge gained in these courses and learn some topics again harder which I feel I am weak at like Ansible, Prometheus, and ELK.
I am grateful to everyone around me and to myself that I utilized my time properly. This time is perfect to learn something new.

Thank you for reading. I would love to connect and interact with the people out there who are reading this.

LinkedIn — https://www.linkedin.com/in/ansh-sh/

Github — https://www.github.com/anshul1098

--

--

No responses yet