cover photo

COURSEWORK

Jitha's CL-CY-001 course work. Lv 2

Jitha JayeshAUTHORACTIVE
This Report is yet to be approved by a Coordinator.

JITHA'S CL-CY LEVEL 1 REPORT

29 / 3 / 2025


TASK 1: Working of a Version Control

Objectives:

  1. Understand the theory behind version control, commits, branches, merges, and the role of repositories in version control
  2. Install Git on the machine, initialize a simple repository using Git commands like git branch, git merge, git revert, git cherry-pick etc.

Learnings and outcome:

  • When some changes are made in an existing project, a new version of the existing project is being made.
  • Key features of version control include: i)it saves versions properly in a professional way ii)it can easily see and understand the changes made iii)it can restore previous versions iv)it even helps to collaborate with others without overwriting each other v)it also provides backup of the project vi)branches help to work safely in separate contexts
  • Modified means that we have changed the file but have not committed it to our database yet. Staged means that we have marked a modified file in its current version to go into our next commit snapshot. Committed means that the data is safely stored in our local database.
  • Git branch command is used as a branch management tool which can list the branches we have, create a new branch, delete branches and even rename branches.
  • The git merge tool is used to merge one or more branches into the branch we have checked out. It will then advance the current branch to the result of the merge.
  • The git cherry-pick command is used to take the change introduced in a single Git commit and try to re-introduce it as a new commit on the branch we’re currently on. This can be useful to only take one or two commits from a branch individually rather than merging in the branch which takes all the changes.
  • The git revert command is essentially a reverse git cherry-pick command. It creates a new commit that applies the exact opposite of the change introduced in the commit we’re targeting, essentially undoing or reverting it.

TASK 2: Database task - DynamoDB

Objectives:

  1. Learn about DynamoDB
  2. Create a simple user login system that stores and validates user credentials for login, further add user credentials and validate login using username and password using DynamoDB
  3. Learn the difference between SQL, MySQL and NoSQL.

Learnings and outcome:

  • DynamoDB is a fully managed NoSQL database service provided by AWS. It is highly scalable, durable, and ideal for low-latency data storage
  • Key differences between MySQL and NoSQL:
MySQLNoSQL
1.relational database that is based on a tabular designnon-relational database that has a document-based design
2.query language used is SQLquery language used varies (Ex: MongoDB uses JSON-like queries)
3.not easily scalable due to rigid schema restrictionscan easily be scaled because of its dynamic schema nature
4.requires a detailed database model before the creation of the databaserequires no detailed modeling
5.is available with a broad range of reporting tools that can help the validity of an applicationdo not have reporting tools for performance testing and analysis
6.has a large community as it is currently more popular in markethas a comparatively small community
Ex: PostgreSQL, MariaDBEx: MongoDB, CouchDB

TASK 3: Create an application on EC2 instance

Objectives:

  1. Learn how to create, configure and manage an EC2 instance on Amazon Web Services, then connect to them and manage their security and performance
  2. Build and run virtually any dynamic application.

Learnings and outcome:

  • Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud
  • Steps to start Amazon EC2 instance:
  1. Log in to our AWS account
  2. Open the Amazon EC2 dashboard and choose “Launch Instance” to create our virtual machine
  3. Configure the instance with desired storage and security group, then choose "Launch instances" to complete the setup
  4. Connect to the instance
  5. Terminate the instance
  • Amazon EC2 offers many options that help you build and run virtually any application

TASK 4: AWS CloudFront - Serve content from multiple S3 buckets

Objective:

Complete the below Amazon CloudFront Tutorials: Setting up a Dynamic Content Distribution for Amazon S3

AWS CloudFront Tutorials

Learnings:

  • Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds, all within a developer-friendly environment , whereas Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance
  • Benefits of setting up an Amazon CloudFront content delivery network (CDN) distribution with Amazon S3 include:
  1. Rapid data transfer speeds
  2. Improved security and performance
  3. Cost-effective data transfers
  • Steps to set up CloudFront CDN distribution for Amazon S3:
  1. Go to the AWS Console, login and select Amazon S3 from the service list
  2. Create an Amazon S3 bucket by selecting Create bucket, then specify a DNS-complaint bucket name and further select the region where we want our bucket to be located.
  3. Go to CloudFront from the Networking & Content Delivery section of the AWS console service list then create a new web distribution by clicking on Create Distribution
  4. Enter distribution settings
  5. Configure origin
  6. Configure Origin Access Identity
  7. Configure default cache behavior
  8. Configure our TTLs
  9. Configure additional features like smooth streaming, restrict viewer access etc.
    then save... Once saved, we can review the settings and even add some additional origins and multiple cache behaviors like create customer error response, enable geo-restrictions (from restrictions tab), apply custom tags (from tags tab) etc.
  10. Test our CloudFront distribution: copy the domain and paste it into the browser to see our distribution in action

TASK 5: Kali Linux

Objectives:

  1. Learn about the working of Kali Linux, penetration testing concepts and tools
  2. Perform a basic penetration test on a virtual machine using Kali Linux tools such as Nmap

Learnings and outcome:

  • Kali Linux is a powerful Linux distribution used for penetration testing and security auditing

TASK 6: Socket.IO

Objectives:

Set up a basic chat application using Node.js and Socket.IO on a Linux system

Learnings and work done:

A client is a program or device that sends requests to a server for any information or services and the server, which is also a program or device, in turn responds to the requests, thereby enabling communication and resource sharing on a network. Socket.IO allows this bi-directional communication between client and server. Bi-directional communications are enabled when the client has Socket.IO in the browser, and the server has also integrated the Socket.IO package. JSON is the simplest form in which data can be sent. chat https://github.com/JithaJ-21/socket.io


TASK 7: OSI

Objectives:

  1. Research and create a simple visual representation or diagram of the OSI model using a cloud-based diagramming tool like Draw.io.
  2. Learn about the OSI architecture along with the protocols, switching, routing, handshakes, and IP addressing.
  3. Write a brief explanation of each layer of the OSI model and how it relates to cloud computing!

Learnings:

OSI (Open Systems Interconnection) model describes seven layers that computer systems use to communicate over a network. It was designed by ISO in 1984.

  1. Application layer provides services for network applications with the help of protocols to perform user activities like for file transfer FTP(File Transfer Protocol), for web surfing HTTP(S)(Hypertext Transfer Protocol(Secure)), for emails SMTP(Simple Mail Transfer Protocol) etc.
  2. Presentation layer receives data(which will be in the form of characters and numbers) from application layer, then reduces it into computer understandable binary form (Translation), further reduces the bits(Data compression), encrypts the data at the sender’s end(Encryption) and decrypts it at the receiver’s end(Decryption).
  3. Session layer helps in authentication, authorisation and session management with the help of APIs like NETBIOS(Network Basic Input Output System).
  4. Transport layer controls the reliability of communication through segmentation, flow control and error control(by checksum) and performs both connection oriented as well as connectionless transmission of data via TCP(Transmission Control Protocol) and UDP(User Datagram Protocol)
  5. Network Layer receives data segments from Transport layer. These data segments will now be called packets. Functions of this layer include : logical addressing(IP addressing), routing(moving of data from source to destination based on logical addressing and mask) and path determination(choosing best possible path for data delivery, using protocols like OSPF(Open Shortest Path First), BGP(Border Gateway Protocol), IS-IS(Intermediate System to Intermediate System) etc.)
  6. Data Link Layer receives data packets from network layer and further adds header and tailer to form frame. With CSMA(Carrier-sense multiple access) method, it controls data transmission by preventing collisions and managing access to communication media shared by devices on a network. Tail of the frame generally contains bits which are used to detect errors in the received data.
  7. Physical layer transmits the binary data(0s and 1s) in the form of signals between devices through cables or wireless media like LAN cable, optical fibre, air etc.

OSI 7 LAYERS


TASK 8: IaaS, PaaS and SaaS

Objective:

Learn about the types of cloud computing service models and write a brief explanation of each.

Learnings:

Cloud computing refers to the delivery of computing services over the internet

Types of Cloud Computing service models:

Infrastructure as a Service (IaaS)

  • Provides virtualized computing resources like servers, storage, and networking
  • Users have control over operating systems, applications, and storage.
  • Examples: Amazon Web Services (AWS) EC2, Google Compute Engine, Microsoft Azure.

Advantages:

  • Scalability: Easily scale up/down based on demand.
  • Cost-Effective: Pay only for what you use.
  • Full Control: You manage OS, storage, deployed apps, etc.
  • No Hardware Maintenance: Infrastructure is managed by the provider.

Disadvantages:

  • Management Complexity: Requires skilled personnel to manage and configure.
  • Security: You're responsible for securing your own apps and data.
  • Vendor Lock-in: Switching providers may be difficult.

Applications:

  • Hosting websites or applications
  • Storage, backup, and recovery
  • High-performance computing (HPC)
  • Development and testing environments

Platform as a Service (PaaS)

  • Delivers a platform that allows developers to build, test, and deploy applications without managing the underlying infrastructure.
  • Examples: Google App Engine, Microsoft Azure App Service, Heroku.

Advantages:

  • Speed: Quick development and deployment of apps.
  • No OS Maintenance: Provider manages OS, runtime, and middleware.
  • Built-in Tools: Database, DevOps, analytics, etc., are included.

Disadvantages:

  • Limited Control: Less control over underlying infrastructure.
  • Vendor Lock-in: Custom features may not be portable.
  • Runtime Restrictions: Limited to languages and frameworks supported by the provider.

Applications:

  • Application development frameworks
  • Business analytics and intelligence
  • API development and management

Software as a Service (SaaS)

  • Offers software applications over the internet on a subscription basis.
  • Examples: Microsoft 365, Salesforce, Google Workspace.

Advantages:

  • No Installation Needed: Access via browser or app.
  • Automatic Updates: Always up-to-date.
  • Accessibility: Accessible from anywhere with internet.

Disadvantages:

  • Limited Customization: Can't tweak core functionality.
  • Data Security: Sensitive data stored offsite.
  • Dependency: You're at the mercy of the provider’s uptime and policies.

Applications:

  • Email, collaboration tools, CRM
  • Document management
  • Accounting and billing systems pic1

pic2

Part 2

UVCE,
K. R Circle,
Bengaluru 01