0% found this document useful (0 votes)
1 views

Cloud Sim

Cloud application development involves creating software that runs on remote servers, enabling easy access and scalability. Key stages include planning, backend and frontend development, deployment, and monitoring, utilizing various tools and simulators for testing and optimization. Simulators play a crucial role in safely testing applications, analyzing performance, and estimating costs before deployment.

Uploaded by

Divyanshu Garg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

Cloud Sim

Cloud application development involves creating software that runs on remote servers, enabling easy access and scalability. Key stages include planning, backend and frontend development, deployment, and monitoring, utilizing various tools and simulators for testing and optimization. Simulators play a crucial role in safely testing applications, analyzing performance, and estimating costs before deployment.

Uploaded by

Divyanshu Garg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 51

Cloud Application Development -Tools

Cloud Application Development -Tools


Definition:
Cloud application development refers to creating software
applications that run on remote servers (the cloud) instead of
local machines. These apps are accessed via the internet and
can scale easily depending on demand.
Why it matters:
• No need to manage physical servers
• Easy to update and maintain
• Users can access it anytime, anywhere
Example:
• An online banking app is a cloud app – it stores user data
securely in the cloud and allows transactions to be done from
anywhere.
2. Planning & Designing the App
Purpose:
Before writing code, define what the app should do, who the users are, and
how the parts of the app will interact.
Tools:
• Lucidchart / Draw.io: Create system architecture, flow diagrams
• Notion / Jira: Task management and feature planning
Example:
• For a food delivery app, you’d map out:
• User login
• Menu browsing
• Order placement
• Payment processing
• Delivery tracking
3. Backend Development (Server-Side
Logic)
Purpose:
This is where the app’s brain lives. It handles logic, databases, user data,
security, and API (Application Programming Interface) connections.
Tools:
• Languages: Node.js, Python, Java
• Databases: MongoDB, MySQL, PostgreSQL
• API Testing: Postman
Example:
• In an e-learning platform, the backend stores:
• Courses and video content
• User profiles
• Quiz scores
• Access permissions
4. Frontend Development (User Interface)
Purpose:
Frontend is what users see and interact with — web pages or mobile
screens.
Tools:
• Web UI: React, Angular, Vue.js
• Mobile UI: Flutter, React Native
• Hosting: Vercel, Netlify, Firebase Hosting
Example:
• A student visiting your online course site sees:
• Course catalog
• Progress bar
• “Start Learning” button
• All this is the frontend, built using web technologies.
5. Deployment & Continuous
Integration/Delivery (CI/CD)
Purpose:
Once the app is built, it needs to be deployed so users can access it.
CI/CD automates building, testing, and deploying the app
continuously.
Tools:
• Docker: Package the app into portable containers
• Kubernetes / AWS / GCP / Azure: Run the app in cloud servers
• CI/CD Tools: GitHub Actions, GitLab CI, Jenkins
Example:
• You push a new feature to GitHub, and GitHub Actions
automatically builds and deploys your app to AWS. No manual
steps!
6. Add Functional Services – Auth,
Payments, Notifications
Purpose:
Modern apps require features like user login, payment processing,
and sending updates to users.
Tools:
• Auth: Firebase Auth, Auth0 (e.g., Google Sign-In)
• Payments: Stripe, Razorpay
• Notifications: Firebase Cloud Messaging (FCM), OneSignal
Example:
• In a shopping app:
• Users sign in with their Google account
• Pay securely via Razorpay
• Get push notification when their order is shipped
7. Monitoring & Observability
Purpose:
Ensure the app is always available, performing well, and
doesn’t crash under pressure.
Tools:
• Grafana + Prometheus: Real-time dashboards and alerting
• AWS CloudWatch / Datadog / New Relic: Logs, error
tracking, metrics
Example:
• A spike in users causes server load to increase. Your
monitoring dashboard shows CPU usage and memory so you
can take action immediately.
8. Use Case: Online Learning App (End-to-
End)
Step Tools Used Purpose

Design Draw.io, Notion Visualize user flows & architecture

Backend Node.js, MongoDB Manage users, courses, progress

Frontend React, Tailwind, Vercel UI for students & instructors

Auth Firebase Authentication Secure login and role-based access

Payments Stripe Course fee payments

Deployment Docker, AWS ECS App runs on cloud infrastructure

Monitoring Prometheus + Grafana Track errors, performance, uptime


Cloud Application Development Summary

• Plan → Build → Deploy → Monitor


• Use cloud tools to save time, cost, and effort
• Ensure security, performance, and scalability
• Use real-time simulators and automation tools
to speed up dev cycles
What are Simulators in Cloud Application
Development?
• Definition:
Simulators are software environments that
imitate real systems (e.g., cloud networks, IoT
devices, or user behavior) to test, analyze, or
optimize your application before deployment.
Why Use Simulators?
• Safe Testing: No impact on real users or data.
• Performance Analysis: Check how your app behaves
under load.
• Cost-Effective: No need to use paid cloud resources
for early testing.
• Faster Debugging: Quickly repeat scenarios and fix
bugs.
• Complex Systems: Model interactions between
many devices or services (e.g., in IoT or
microservices).
Simulators in Cloud Application Development
1. Infrastructure Simulators

These simulate cloud infrastructure (e.g., AWS, Azure) locally,


helping developers prototype without incurring cloud costs.
Tools & Simulators:
LocalStack (AWS)
– Simulates: S3, Lambda, DynamoDB, SQS, SNS, and more.
– Use Case: Test AWS services offline or in CI
pipelines(Continuous Integration pipelines, are
automated workflows that build, test, and validate code
every time a developer commits changes to a version
control system (like Git).
1. Infrastructure Simulators
Azurite (Azure)
– Simulates: Azure Blob, Queue, Table Storage.
– Use Case: Local development and testing of apps using
Azure storage.
MinIO
– Simulates: AWS S3-compatible object storage.
– Use Case: For testing object storage integrations in
microservices.
2. Container & Kubernetes Simulators

Allow testing and development of containerized apps locally before deploying to


Kubernetes in the cloud.
Tools:
• Docker Desktop with Kubernetes
– Use Case: Run a full Kubernetes cluster on your local machine.
• Minikube
– Lightweight Kubernetes simulator.
– Use Case: Developers can deploy services and test YAML ( Yet Another
Markup Language- dictionaries, lists, and nested objects)configurations locally.
• Kind (Kubernetes in Docker)
– Fast Kubernetes cluster in Docker containers.
• Use Case: CI/CD pipelines(Build the application,Test the code, Deliver or
Deploy the software to users)
– , integration testing.
• K3s / K3d
– Lightweight Kubernetes distributions.
– Use Case: Simulate multi-node clusters on local/dev machines.
3. Serverless Simulators

Used to emulate serverless functions locally.


Tools:
• Serverless Framework + Offline Plugin
– Simulates: AWS Lambda, API Gateway, DynamoDB.
– Use Case: Full-featured local dev and test of serverless stacks.
• SAM CLI (AWS Serverless Application Model)
– Use Case: Simulate and debug AWS Lambda and API Gateway
using Docker.
• Google Cloud Functions Emulator
– Use Case: Local testing of GCP Functions.
4. Network Simulators

• Used to simulate real-world network behavior such as


latency, packet loss, and disconnections.
Tools:
• Chaos Mesh / LitmusChaos (Kubernetes-native)
– Simulates: Network partitions, latency, CPU/memory faults.
– Use Case: Cloud-native chaos engineering.
• tc (Traffic Control) / NetEm
– Linux tools to simulate latency, delay, packet loss.
– Use Case: Simulating poor internet conditions or DDoS effects.
• Toxiproxy
– Simulates: Database/network faults for resiliency testing.
5. Load Testing Simulators
• Emulate heavy traffic, concurrent users, and load spikes on cloud-based
APIs and services.
Tools:
• Apache JMeter
– Use Case: Load test APIs, databases, websites.
– Supports: Web, SOAP, REST (Representational State Transfer), JDBC, FTP.
• k6 (Grafana Labs)
– Scriptable load testing tool using JavaScript.
– Use Case: Load/stress testing cloud APIs with metrics export to
Grafana.
• Locust
– Python-based load testing.
– Use Case: Realistic traffic simulation for REST APIs and web apps.
• Artillery
– Use Case: Lightweight cloud-native performance testing with CI/CD
integration.
6. Cloud Cost Simulators

• Estimate the cost of simulated workloads.


• Tools:
• AWS Pricing Calculator
• Azure Pricing Tool
• GCP Cost Estimator
• Use Case:
• Simulate deployment configurations (e.g., EC2
instances, RDS, S3 usage).
• Predict monthly billing and optimize infrastructure
accordingly.
7. End-to-End Cloud Emulators

• These simulate entire cloud environments, allowing offline


development and full-stack testing.
• Tools:
• Firecracker (by AWS)
– MicroVMs for serverless or container simulation.
– Use Case: Efficient testing of isolation/security for FaaS models.
• Cloud Foundry Dev Environments
– Use Case: PaaS simulation for developers.
• HashiCorp Nomad (w/ Vagrant)
– Use Case: Simulating distributed workload orchestration across
machines.
Popular Simulators & Their Use Cases

Simulator Tool Purpose Real-Time Use Case

GNS3 / Cisco Packet Test network flow for cloud


Simulate networks and routers
Tracer data centers

AWS CloudSim Simulate virtual machines and Optimize VM placement in


(CloudSim++) cloud services AWS before real use

Create simulated dev/test Test updates in a virtual


Azure DevTest Labs
environments cloud setting

Send dummy data from


Simulate IoT device data in the
IoTIFY 1,000+ sensors to a cloud
cloud
app

Emulates software-defined Test data routing in edge


Mininet
networks (SDN) computing

Firebase Emulator Simulate backend (Auth, Test login, databases, and


Suite Firestore, etc.) functions offline
Introduction to CloudSim
• CloudSim is a simulation toolkit for modeling
and simulating cloud computing services and
infrastructures.
• Primarily used in research and academia to
experiment with cloud scenarios.
• Developed at the Cloud Computing and
Distributed Systems (CLOUDS) Laboratory,
University of Melbourne.
CloudSim
CloudSIM Architecture
CloudSIM Architecture

• 1. User Code Layer


• This is the top layer where simulation parameters are defined
by the user.
• Simulation Specification:
– Cloud Scenario: Defines the cloud environment setup.
– User Requirements: Specifies workload and performance needs.
– Application Configuration: Sets up the type and behavior of
applications.
• Scheduling Policy: Users can implement and test various
scheduling algorithms.
• User or Data Center Broker: Acts as an intermediary that
manages VM and task (cloudlet) distribution based on user
needs.
CloudSIM Architecture
2. CloudSim Layer
• This is the core of the simulator that handles infrastructure and service
simulation.
User Interface Structures
• Cloudlet: Represents a task/job to be executed.
• Virtual Machine (VM): The virtualized computing unit where tasks run.
VM Services
• Cloudlet Execution: Manages task execution on VMs.
• VM Management: Handles VM creation, deployment, and destruction.
Cloud Services
• VM Provisioning: Assigns VMs to available hosts.
• CPU, Memory, Storage, Bandwidth Allocation: Simulates resource
allocation and utilization metrics.
CloudSIM Architecture
Cloud Resources
• Events Handling: Controls event generation for simulation.
• Sensor: Gathers performance/environment data.
• Cloud Coordinator: Coordinates overall cloud activity.
• Data Center: Models real-world datacenter configurations.
Networking
• Network Topology: Models physical or logical network
structures.
• Message Delay Calculation: Simulates communication
latency between components.
CloudSIM Architecture
• CloudSim Core Simulation Engine
• Acts as the foundation layer, driving event-
based simulation.
• Ensures synchronization, message passing,
and timing of simulation components.
What CloudSim Does?
• Simulates core components of cloud
environments:
– Data centers
– Virtual Machines (VMs)
– Cloudlets (Tasks)
– Brokers
• Provides a discrete event simulation engine
to model and analyze cloud behavior.
• Enables design and testing of custom cloud
infrastructure and policies.
Who Uses CloudSim?
• Researchers in cloud and distributed
computing
• Academia for cloud computing education
• Developers testing scheduling and resource
allocation algorithms
• PhD/MTech/BTech students working on
projects or thesis work
Use Cases of CloudSim
• Evaluating resource management strategies
• Testing and comparing task scheduling algorithms
• Investigating energy efficiency in data centers
• Simulating load balancing and VM migration
strategies
• Tuning system bottlenecks before deploying apps
in real clouds
• Experimenting with diverse workloads and cloud
configuration
Key Features of CloudSim
• Written in Java
• Open-source and highly extensible
• Modular design to plug in different policies
• Allows simulation of heterogeneous
environments
• Supports custom extensions for complex
research needs
Where to Find CloudSim
• Available on GitHub
https://github.com/Cloudslab/cloudsim
• Comes with examples, templates, and
documentation
CloudSim vs CloudSim Plus
Feature CloudSim CloudSim Plus

Original Version Yes Forked from CloudSim

Modularity Moderate High

Extensibility Basic APIs Improved design

Thread Safety Limited Enhanced

Performance Adequate Optimized

Community Active academic users Growing open-source


CloudSim Plus
• CloudSim Plus: Designed to improve
modularity, correctness, and maintainability.
• GitHub:
https://github.com/manoelcampos/cloudsim-
plus
Real-Time Example: Cloud-Based Medical
Imaging System
A hospital network is deploying a cloud-based
medical imaging system to store and process MRI
and CT scan images. The system must:
• Handle large image files
• Process images using AI models for diagnosis
• Provide low-latency access to doctors across
different branches
• Scale automatically based on demand (e.g.,
during outpatient peak hours)
Simulated Using CloudSim:
• Cloud Infrastructure:
• One data center with high I/O and GPU-
enabled hosts
• 50+ VMs for:
– Image upload & preprocessing
– AI inference (diagnostic engine)
– User interface/dashboard
Workloads (Cloudlets):
• Upload and processing of 500+ high-res DICOM (DiGITAL Imaging
and Communication-MRI,CRT,ULTRASOUND,)images per day
• AI tasks take varying compute time based on image type and
quality
• Access requests from doctors across 5 branches (simulate
network delay)
Policies Tested:
• Resource scheduling based on file size and priority
• AI inference tasks allocated to GPU-enabled VMs only
• Simulate network delays and bandwidth bottlenecks
Metrics Collected:
• Metrics Collected:
• Image processing latency
• VM utilization
• Queue waiting time for AI analysis
• Energy consumption of GPU hosts
• User experience delay across branches
Insights Obtained:
• Identified peak load hours (10 AM – 2 PM)
• AI task scheduling using priority-based policy
reduced average wait time by 25%
• Recommended adding 5 more GPU VMs for
future load
Impact:
• The simulation helped the hospital IT team:
• Avoid over-provisioning
• Optimize AI pipeline for diagnostic efficiency
• Ensure cost-effective scaling of cloud
resources

You might also like