Skip to content

ayeshasajid1034/DevOps-Course-2024

Repository files navigation

DevOps Course 2024

This repository contains the work completed for the DevOps Course 2024 assignment, which includes:

  • Guide to Learning and Contribution
  • View Blog Summaries
  • Sample repo from the internet and applying DevOps tooling.Pick and choose (your existing) knowledge and expand it to guide.
  • A sample landing page with my CV.

Documentation:


DevOps Tooling

Doctor Appointment System:

A test app to show doctors, patient & appointments system to just show microservices & their responses This is a sample application, which consists of

frontend: a simple frontend application which shows Doctors & Appointments in UI form doctors: a backend app written in python, which shows list of doctors appointments: a backend app written in python, which shows list of appointments

Docker and Kubernetes Tooling Guide

This project leverages Docker and Kubernetes to streamline deployment and ensure consistency across environments. Docker is used to containerize the application, encapsulating all dependencies and configurations, making it easy to deploy and run on any machine. A Dockerfile defines the environment setup, and Docker Compose allows multiple services—such as the app and database—to be managed locally in a unified manner. For production, Kubernetes is used to orchestrate these containers at scale. Kubernetes configuration files (.yaml) define the application deployment, replica scaling, and service exposure. Together, Docker and Kubernetes enable smooth development, scalable deployment, and efficient resource management, supporting modern DevOps workflows.


Guide to Learning and Contribution:

  1. 🎓 Learning Plan A. Foundational Knowledge Programming Languages: Continue strengthening skills in Python and JavaScript. Focus on writing clean, efficient code and understanding data structures and algorithms. Operating Systems & Networking: Learn the fundamentals of Linux, shell scripting, and how networking works (e.g., DNS, HTTP, TCP/IP) as these are crucial in the DevOps world. Version Control Systems: Master Git and GitHub for efficient collaboration and version control.. B. DevOps & Cloud Technologies Containers & Orchestration: Gain proficiency in Docker and Kubernetes. Understand how to build, manage, and deploy applications in a containerized environment. Cloud Platforms: Learn about AWS, Azure, or Google Cloud Platform. Start with services like EC2, S3, and Lambda, and understand concepts like cloud storage, networking, and load balancing. Infrastructure as Code (IaC): Study Terraform or AWS CloudFormation to automate infrastructure provisioning. Continuous Integration/Continuous Deployment (CI/CD): Set up a CI/CD pipeline using tools like Jenkins, GitHub Actions, or GitLab CI/CD.

  2. 🌐 Contribution Goals Content Creation Write Blog Posts: Written blogs on medium related to Devops tools which helped me to explore and learn more.


Blog Summaries

Blog 1 Summary:

GitOps: The Future of Kubernetes and Cloud-Native Deployments GitOps has revolutionized the way we handle cloud-native and Kubernetes deployments by making infrastructure management scalable, automated, and more secure. At the core of GitOps is the principle that Git serves as the single source of truth for both application code and infrastructure configurations. This approach uses a continuous synchronization loop that ensures the system’s actual state matches the desired state defined in Git.

Key Points:

Declarative Infrastructure: GitOps relies on defining infrastructure in a declarative manner, ensuring consistency across environments. Auditability: Every change is recorded in Git, providing a complete history and making rollbacks seamless. Automation and Consistency: Automation tools, like Argo CD and Flux, continuously monitor and synchronize with Git to prevent configuration drift. GitOps Workflow: Involves pushing changes to Git, running through CI pipelines for validation, and using tools like Argo CD to sync with Kubernetes. Benefits: GitOps provides scalability, enhanced security, easy rollbacks, and reduced human error by automating processes. Challenges and Best Practices: Address complexities in large teams, manage permissions securely, and ensure environments are properly monitored to detect drift. GitOps has become a gold standard for deploying applications in modern cloud-native environments, offering benefits like rapid deployments and reliability. As this paradigm evolves, teams must follow best practices to fully leverage its potential.

Blog 2 Summary:

Kubernetes Autoscaling: Optimizing Resource Utilization Kubernetes autoscaling is crucial for optimizing resources and handling fluctuating workloads. Autoscaling ensures that applications have just the right amount of resources, dynamically adjusting as the demand changes, thereby maximizing performance while minimizing costs.

Types of Kubernetes Autoscalers:

Horizontal Pod Autoscaler (HPA): Automatically adjusts the number of Pods based on CPU, memory, or custom metrics. HPA increases the number of Pods when traffic spikes and decreases them during low activity periods. Vertical Pod Autoscaler (VPA): Adjusts the resource requests and limits of Pods based on historical and real-time data, optimizing resource allocation. Cluster Autoscaler: Scales the entire cluster by adding or removing nodes based on unscheduled Pods. It integrates with cloud providers like AWS, GCP, and Azure for efficient resource management. Setting Up HPA:

Deploy your application and create an HPA to monitor CPU usage. Use kubectl commands to apply configurations and verify that autoscaling is working correctly. Best Practices:

Reasonable Limits: Set min and max replicas to avoid over- or under-provisioning. Performance Monitoring: Use tools like Prometheus and Grafana for data-driven scaling decisions. Combining HPA and VPA: Use both to optimize resource usage and the number of Pods. Testing in Staging: Ensure autoscaling configurations are validated in a non-production environment. Custom Metrics: Sometimes, custom metrics provide better scaling criteria than default CPU/memory metrics. Kubernetes autoscaling provides flexibility and efficiency in managing resources, ensuring that applications can handle variable traffic with minimal resource wastage.

Link to Blogs:

         https://medium.com/@i200862/gitops-the-future-of-kubernetes-and-cloud-native-deployments-32f741537bd5
         https://medium.com/@i200862/kubernetes-autoscaling-a-guide-to-efficient-resource-management-e4cd792cf937

CV

Hi, I'm Ayesha Sajid

Enthusiastic and driven Computer Science graduate with a strong foundation in Artificial Intelligence, Machine Learning, Deep Learning, and Natural Language Processing, along with a passion for website development. Looking to leverage my skills in a professional setting to contribute to innovative projects and continuous learning.


📫 Connect with me:


🎯 Objective

Enthusiastic and driven Computer Science graduate with a strong foundation in Artificial Intelligence, Machine Learning, Deep Learning, and Natural Language Processing. Passionate about website development and seeking opportunities to contribute to innovative projects and continue learning.


🎓 Education

  • BS in Computer Science
    FAST NUCES
    Graduation Year: 2025

💡 Skills

  • Programming Languages: Python, JavaScript, C++
  • AI & Machine Learning: TensorFlow, PyTorch, Scikit-Learn
  • Deep Learning: CNNs, RNNs
  • Natural Language Processing: Text Preprocessing, Sentiment Analysis, Language Models
  • Web Development: HTML, CSS, JavaScript, React, Node.js
  • Data Analysis: Pandas, NumPy, Matplotlib
  • Version Control: Git, GitHub

🛠️ Tools & Technologies

AWS Python React TensorFlow PyTorch Node.js


📁 Projects

  • AI-Driven Investment Bot for Stock Prediction
    Description: Creating a bot that predicts stock performance using financial indicators, focusing on the tech sector in Pakistan.

💼 Experience

  • Intern, AI and Machine Learning
    Funavry Technologies, Islamabad
    Duration: June 2023 - Aug 2023
    • Worked on data pre processing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published