Cloud Concepts

Multi-tenancy in cloud

Multi-tenancy in cloud computing is exemplified by services like Gmail, Netflix, and Salesforce, where a single instance of software serves multiple customers (tenants) who share the same underlying infrastructure but have their own isolated data. Public cloud providers such as AWS and Microsoft Azure also use multi-tenancy, allowing many different users to run their virtual machines and applications on the same physical hardware, with strict security and isolation between them.  
Software as a Service (SaaS)
Email and Productivity: 
Services like Gmail and Microsoft 365 host millions of users on shared infrastructure, ensuring each person's inbox, documents, and settings are separate and secure. 
Streaming Services: 
Netflix and YouTube use a multi-tenant architecture to serve countless users simultaneously. Each user has their own profile and viewing history, but they all access the content from a shared platform and data center. 
CRM and Business Software: 
Salesforce and Workday are examples of multi-tenant SaaS applications. Multiple companies use the same platform, but the software ensures that each company's customer data and business processes remain isolated. 
Online Storage: 
Services like Dropbox and Google Drive allow many users to store files in the cloud, sharing the backend storage infrastructure while keeping each user's files private. 
Infrastructure as a Service (IaaS) 
Public Cloud Providers: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud use multi-tenancy to allow different customers to run their own virtual machines, storage, and databases on the same physical servers. Customers' data and workloads are kept completely separate even though they are running on shared hardware

Zabbix

Zabbix is an open-source monitoring solution for IT infrastructure, including networks, servers, applications, and cloud services. It provides real-time performance data, automated alerting, and visualization to ensure system reliability and stability. Key features include its ability to monitor a wide range of operating systems and platforms, flexible notification mechanisms, and enterprise-level capabilities for security and scalability. 

What Zabbix does

How it works

What to know before using Zabbix

AWS Lambda

AWS Lambda is a serverless compute service from Amazon Web Services (AWS) that lets you run code (functions) without provisioning or managing servers, automatically handling scaling and infrastructure, allowing you to pay only for compute time used, ideal for event-driven tasks like data processing, web backends, and automationDevelopers upload code in languages like Python, Node.js, Java, etc., and Lambda executes it in response to triggers (e.g., S3 file upload, API call).  
Key Concepts
Serverless: Focus on code, not servers; AWS manages the underlying infrastructure. 
Event-Driven: Functions run in response to events (triggers) from other AWS services or custom sources. 
Automatic Scaling: Scales from zero to handle traffic spikes and scales down when idle. 
Pay-Per-Use: You only pay for the milliseconds your code runs. 
How it Works
Write Code: Create a function (e.g., in Python, Node.js, Java). 
Upload: Package and upload your code as a ZIP file or container image. 
Set Trigger: Configure an event source (e.g., S3, API Gateway, DynamoDB) to invoke your function. 
Execute: Lambda automatically provisions resources, runs your code when triggered, and then shuts down. 
Common Use Cases
File Processing: Resize images after S3 upload.
Data Processing: Real-time stream processing, batch jobs.
Web & Mobile Backends: APIs, IoT backends.
Scheduled Tasks: Run code on a timer. 
Benefits
Reduced Operations: No server management, patching, or OS updates.
Cost-Effective: Pay for execution time, not idle servers.
High Availability: Built on fault-tolerant AWS infrastructure.
Scalability: Handles massive, unpredictable traffic automatically. 

General CI/CD pipeline examples

A general Continuous Integration/Continuous Deployment (CI/CD) pipeline is an automated workflow designed to streamline software delivery, from a developer's initial code commit to the application's deployment in a production environment. 
The pipeline typically consists of several core stages:

General CI/CD Pipeline Stages

Stage  Description Key Activities Example Tools
Source/Commit The process is triggered when a developer pushes code changes to a shared repository. Code commit, version control, manage branches. GitGitHubGitLabBitbucket
Build The committed code is fetched, compiled into an executable artifact (like a container image), and its dependencies are linked. Compiling code, packaging application, running static analysis (SAST), creating container images (Docker). Maven, Gradle, Docker, Jenkins, AWS CodeBuild
Test Automated tests are run to validate the new code and ensure it doesn't break existing functionality. Unit testing, integration testing, security testing (DAST, IAST), performance testing, regression testing. JUnit, Selenium, Jest, Pytest, Katalon, SonarQube
Staging/Deploy The application artifact is deployed to a staging or pre-production environment that mirrors the production setting. Environment provisioning, configuration, user acceptance testing (UAT). Ansible, Chef, Spinnaker, Kubernetes, AWS CodeDeploy
Production If all tests pass and stakeholders approve (in CD, this is automatic), the application is automatically deployed to the live production environment for end-users. Automated deployment, canary releases, blue-green deployments. Kubernetes, Docker, Jenkins, AWS CodePipelineAzure DevOps
Monitor/Feedback Post-deployment, the application's health, performance, and user feedback are continuously tracked. Tracking performance, error reporting, collecting user feedback. Prometheus, Grafana, New Relic, PagerDuty

Real-World Examples by Platform
Specific implementations combine the general stages using different toolchains and configurations: 

jenkins


Key Functions & Features:

Plugins: Extensible with thousands of plugins for integrating with other tools (Git, Docker, Maven, cloud services).Pipelines: Defines automated workflows as code (Jenkinsfile) using Declarative or Scripted syntax.Distributed Builds: Can scale by using multiple agents (nodes) for parallel execution.Platform Agnostic: Runs on Windows, Linux, macOS, and other Unix-like systems. 


How it Works:

  1. Trigger: Code commit to a repository (e.g., GitHub) triggers a Jenkins job.
  2. Build: Jenkins pulls the code and builds the application.
  3. Test: Automated tests (unit, integration) are run.
  4. Deploy: If tests pass, the application is deployed to different environments (QA, Staging, Prod). 


Benefits:


Considerations:

 

storage domain

A storage domain is a logical grouping of physical storage (like drive groups) that allows for the organized management of data in IT environments. It can be used to partition storage for specific purposes, such as separating data by department, access frequency, or confidentiality level. In virtualization, it's a collection of images and virtual machine disks, which can be either a block device (SAN) or a file system (NAS). 

Key functions and benefits

Data security: Domains can be created to enforce confidentiality by grouping highly sensitive data separately.Virtualization support: In virtualization platforms like Red Hat Virtualization, storage domains are used to store virtual disks, templates, and snapshots for virtual machines. 


Common examples

 

network in cloud environment

A network in a cloud environment uses the internet to connect virtualized resources (servers, storage, apps) hosted in data centers, replacing physical hardware for agility, scalability, and remote management, using components like Virtual Private Clouds (VPCs), VPNsfirewalls, and load balancers, all managed via cloud provider tools for flexible, on-demand IT. 

Key Concepts

Types of Cloud Networks

Benefits

How it Works
  1. Define Virtual Network: Create a Virtual Private Cloud (VPC) with subnets, IP ranges, and security rules.
  2. Deploy Resources: Launch virtual servers (VMs), databases, etc., within your VPC.
  3. Secure Access: Configure firewalls (Security Groups, NACLs) and VPNs for secure traffic flow.
  4. Distribute Traffic: Use load balancers for high availability and performance.
  5. Connect: Access via internet, VPN, or direct connect; cloud provider handles underlying physical network.