IBM Cloud Quick Reference
Goals
- Understanding IBM Cloud platform and hybrid cloud approach
- Using key services (Compute, Storage, Kubernetes, Watson AI)
- Leveraging Free Tier (Lite plan + $200 credit for 30 days)
- Preparing for enterprise hybrid cloud (on-prem + cloud)
- Understanding Company OpenShift on IBM Cloud
Prerequisites
- IBM Cloud account: https://cloud.ibm.com/registration
- IBM Cloud CLI installed
- Basic Linux/bash knowledge
- Credit card (for trial credit, won't charge on Lite plan)
- Understanding of Kubernetes basics (helpful for OpenShift)
4-WEEK LEARNING PLAN
Week 1: FUNDAMENTALS + COMPUTE + NETWORKING
Day 1-2: IBM Cloud Console + IAM + CLI
Why important: Identity management and resource organization. IBM Cloud uses Resource Groups and Access Groups.
Exercises:
Create IBM Cloud account
Understand Resource Groups
Create Access Groups
Assign IAM policies
Install IBM Cloud CLI
Install CLI plugins (container-service, kubernetes-service)
Create Service ID (machine identity)
Generate API keys
Hands-on:
-
Install IBM Cloud CLI:
-
Install plugins:
-
Create Resource Group:
-
Create Service ID (for automation):
# Create Service ID ibmcloud iam service-id-create my-service-id \ --description "Service ID for automation" # Create API key for Service ID ibmcloud iam service-api-key-create my-api-key my-service-id \ --description "API key for CI/CD" # Assign policy ibmcloud iam service-policy-create my-service-id \ --roles Editor \ --resource-group-name my-learning-rg
Key concepts: - Resource Group: Logical container for resources (billing, access) - Access Group: Collection of users/service IDs with same access - Service ID: Machine identity (for apps, automation) - IAM Policy: Permissions (Platform roles, Service roles) - API Key: Programmatic authentication
IBM Cloud IAM concepts used in enterprises: - Trusted profiles (workload identity for Kubernetes) - Context-based restrictions (CBR) - Enterprise account structure - Access tags
Day 3-5: Virtual Server (Classic & VPC)
Why important: IBM Cloud offers both Classic and VPC-based virtual servers.
Exercises:
Create VPC
Create subnet
Create security group
Launch Virtual Server for VPC (VSI)
SSH into instance
Attach block storage
Create floating IP
Configure user data script
Hands-on Project: Web Server on VPC
-
Create VPC and subnet:
# Install VPC plugin ibmcloud plugin install vpc-infrastructure # Create VPC ibmcloud is vpc-create my-vpc # Get VPC ID VPC_ID=$(ibmcloud is vpcs --output json | jq -r '.[] | select(.name=="my-vpc") | .id') # Create subnet ibmcloud is subnet-create my-subnet $VPC_ID \ --zone us-south-1 \ --ipv4-cidr-block 10.240.0.0/24 -
Create security group:
# Create security group ibmcloud is security-group-create my-sg $VPC_ID # Get security group ID SG_ID=$(ibmcloud is security-groups --output json | jq -r '.[] | select(.name=="my-sg") | .id') # Allow SSH ibmcloud is security-group-rule-add $SG_ID inbound tcp \ --port-min 22 --port-max 22 # Allow HTTP ibmcloud is security-group-rule-add $SG_ID inbound tcp \ --port-min 80 --port-max 80 -
Create SSH key:
-
Launch Virtual Server:
# Get subnet ID SUBNET_ID=$(ibmcloud is subnets --output json | jq -r '.[] | select(.name=="my-subnet") | .id') # Get key ID KEY_ID=$(ibmcloud is keys --output json | jq -r '.[] | select(.name=="my-key") | .id') # Create instance ibmcloud is instance-create web-server \ $VPC_ID us-south-1 cx2-2x4 $SUBNET_ID \ --image ibm-ubuntu-22-04-minimal-amd64-1 \ --keys $KEY_ID \ --security-groups $SG_ID \ --user-data @startup.sh -
Startup script (startup.sh):
-
Create floating IP:
-
SSH and test:
Key concepts: - VPC: Isolated virtual network - Subnet: IP range within VPC - Security Group: Stateful firewall - VSI: Virtual Server Instance - Floating IP: Public IP address - Profile: Instance size (cx2-2x4 = 2 vCPU, 4 GB RAM)
IBM Cloud compute concepts used in enterprises: - Auto Scale for VPC - Placement groups (affinity/anti-affinity) - Dedicated hosts - Bare metal servers
Day 6-7: Networking (VPC, Load Balancer, VPN)
Why important: Enterprise-grade networking for hybrid cloud.
Exercises:
Create Load Balancer for VPC
Configure backend pool
Health checks
Create VPN Gateway
VPC peering (transit gateway)
Public Gateway (for private instances)
Hands-on: Load Balancer Setup
# Get subnet ID
SUBNET_ID=$(ibmcloud is subnets --output json | jq -r '.[] | select(.name=="my-subnet") | .id')
# Create load balancer
ibmcloud is load-balancer-create my-lb public \
--subnet $SUBNET_ID
# Get LB ID
LB_ID=$(ibmcloud is load-balancers --output json | jq -r '.[] | select(.name=="my-lb") | .id')
# Create backend pool
ibmcloud is load-balancer-pool-create my-pool $LB_ID \
round_robin http 15 2 5 http
# Get pool ID
POOL_ID=$(ibmcloud is load-balancer-pools $LB_ID --output json | jq -r '.[] | select(.name=="my-pool") | .id')
# Add instance to pool
ibmcloud is load-balancer-pool-member-create $LB_ID $POOL_ID \
80 $INSTANCE_ID
# Create listener
ibmcloud is load-balancer-listener-create $LB_ID \
80 http --default-pool $POOL_ID
Key concepts: - Load Balancer: Public or private load balancing - Backend Pool: Collection of instances - Health Check: Monitor instance health - VPN Gateway: Site-to-site VPN - Transit Gateway: Multi-VPC connectivity
Week 2: STORAGE + DATABASE + CONTAINERS
Day 1-2: Cloud Object Storage (COS)
Why important: S3-compatible object storage, used for backups, archives, analytics.
Exercises:
Create COS instance
Create bucket
Upload/download objects
Configure lifecycle policies
Enable versioning
Set bucket access policies
Generate presigned URLs
Hands-on: Static Website on COS
-
Create COS instance:
-
Create bucket:
-
Upload files:
-
Make bucket public:
-
Configure static website:
- Navigate to bucket in IBM Cloud Console
- Configuration → Static website hosting
- Set index.html as index document
Key concepts: - COS: S3-compatible object storage - Storage Classes: Standard, Vault, Cold Vault, Flex - Bucket: Container for objects - HMAC credentials: S3-compatible access keys - Aspera: High-speed data transfer
COS concepts used in enterprises: - Cross-region replication - Archive policies - Immutable object storage (WORM) - Key Protect integration
Day 3-4: Databases for IBM Cloud
Why important: Managed databases (PostgreSQL, MongoDB, MySQL, Redis, Elasticsearch).
Exercises:
Create Databases for PostgreSQL instance
Configure firewall (allowlists)
Connect with psql
Create database and tables
Configure automated backups
Scale resources (CPU, RAM, disk)
Hands-on: PostgreSQL Database
-
Create database instance:
-
Get connection info:
-
Connect:
-
Database operations:
-
Configure backup:
Key concepts: - Databases for PostgreSQL: Managed PostgreSQL - Databases for MongoDB: Managed MongoDB - Databases for Redis: Managed Redis - High Availability: Multi-zone deployment - Point-in-time recovery: Restore to any point in time
Day 5-7: Company OpenShift on IBM Cloud
Why important: Enterprise Kubernetes platform, IBM's strategic container platform.
Exercises:
Create OpenShift cluster
Access OpenShift web console
Deploy application from Git (S2I)
Create route (ingress)
Deploy using oc CLI
OpenShift Pipelines (Tekton)
Understand Operators
Hands-on: Deploy Application on OpenShift
-
Create OpenShift cluster:
-
Get cluster config:
-
Create project:
-
Deploy from Git (Source-to-Image):
-
Deploy using YAML:
# deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: route.openshift.io/v1 kind: Route metadata: name: nginx spec: to: kind: Service name: nginx port: targetPort: 80 -
Apply and access:
Key concepts: - OpenShift: Enterprise Kubernetes distribution by Company - Project: Kubernetes namespace with additional security - Route: OpenShift-specific ingress (easier than Ingress) - S2I (Source-to-Image): Build container from source code - Operator: Kubernetes application management pattern - OperatorHub: Marketplace for Operators
OpenShift concepts used in enterprises: - OpenShift Pipelines (Tekton CI/CD) - OpenShift GitOps (ArgoCD) - OpenShift Service Mesh (Istio) - OpenShift Serverless (Knative) - Company Quay (container registry)
Week 3: AI/ML + MONITORING + SECURITY
Day 1-2: Watson Services (AI/ML)
Why important: IBM's differentiator - enterprise AI services.
Exercises:
Create Watson Assistant (chatbot)
Watson Natural Language Understanding (NLU)
Watson Speech to Text
Watson Text to Speech
Watson Machine Learning
Hands-on: Build Chatbot with Watson Assistant
-
Create Watson Assistant:
-
Access Watson Assistant UI:
- Navigate to IBM Cloud Console → Watson Assistant
- Create skill (Dialog skill)
-
Add intents, entities, dialog flows
-
Example API usage (Python):
from ibm_watson import AssistantV2 from ibm_cloud_sdk_core.authenticators import IAMAuthenticator authenticator = IAMAuthenticator('YOUR_API_KEY') assistant = AssistantV2( version='2021-11-27', authenticator=authenticator ) assistant.set_service_url('YOUR_SERVICE_URL') # Create session session = assistant.create_session( assistant_id='YOUR_ASSISTANT_ID' ).get_result() # Send message response = assistant.message( assistant_id='YOUR_ASSISTANT_ID', session_id=session['session_id'], input={ 'message_type': 'text', 'text': 'Hello' } ).get_result() print(response['output']['generic'][0]['text'])
Watson NLU Example:
from ibm_watson import NaturalLanguageUnderstandingV1
from ibm_watson.natural_language_understanding_v1 import Features, EntitiesOptions, KeywordsOptions
nlu = NaturalLanguageUnderstandingV1(
version='2022-04-07',
authenticator=IAMAuthenticator('YOUR_API_KEY')
)
nlu.set_service_url('YOUR_SERVICE_URL')
response = nlu.analyze(
text='IBM is an American multinational technology company.',
features=Features(entities=EntitiesOptions(), keywords=KeywordsOptions())
).get_result()
print(response)
Key concepts: - Watson Assistant: Conversational AI (chatbots) - Watson NLU: Extract entities, keywords, sentiment - Watson Discovery: AI-powered search - Watson Studio: Data science workbench - Watson Machine Learning: Deploy ML models
Day 3-4: Monitoring & Logging (IBM Cloud Monitoring, Log Analysis)
Why important: Observability for IBM Cloud resources.
Exercises:
Create IBM Cloud Monitoring instance
Configure monitoring agent
View metrics and dashboards
Create alerts
Create Log Analysis instance
Stream logs from applications
Hands-on: Monitoring Setup
-
Create monitoring instance:
-
Install monitoring agent on VSI:
-
View metrics:
- Navigate to IBM Cloud Console → Monitoring
- Open Sysdig dashboard
-
View system metrics (CPU, memory, disk, network)
-
Create alert:
- Sysdig UI → Alerts
- Condition: CPU > 80% for 5 minutes
- Notification: Email/Slack
Log Analysis:
# Create Log Analysis instance
ibmcloud resource service-instance-create my-logging \
logdna standard us-south
# Install logging agent
curl -sL https://ibm.biz/install-logdna-agent | \
sudo bash -s -- -k YOUR_INGESTION_KEY
Key concepts: - IBM Cloud Monitoring: Powered by Sysdig - IBM Cloud Log Analysis: Powered by LogDNA - Platform metrics: Automatic metrics for IBM Cloud services - Activity Tracker: Audit logs (who did what)
Day 5-7: Security (Secrets Manager, Key Protect, Security & Compliance)
Why important: Enterprise-grade security and compliance.
Exercises:
Create Secrets Manager instance
Store secrets (API keys, certificates)
Create Key Protect instance
Generate encryption keys
Encrypt Cloud Object Storage with KYOK
Enable Activity Tracker
Security and Compliance Center
Hands-on: Secrets Management
-
Create Secrets Manager:
-
Store secret:
-
Create Key Protect instance:
-
Create root key:
-
Encrypt COS bucket:
- Navigate to COS bucket
- Encryption → Key Protect
- Select root key
Key concepts: - Secrets Manager: Store and manage secrets - Key Protect: Hardware Security Module (HSM) backed encryption - Hyper Protect Crypto Services: FIPS 140-2 Level 4 certified HSM - Activity Tracker: Audit trail (SIEM integration) - Security and Compliance Center: Compliance posture management
Week 4: SERVERLESS + CI/CD + HYBRID CLOUD
Day 1-2: Code Engine (Serverless Containers)
Why important: Run containers or code without managing servers.
Exercises:
Create Code Engine project
Deploy container image
Deploy from source code (buildpack)
Configure autoscaling
Create jobs (batch processing)
Event subscriptions (COS, Kafka)
Hands-on: Deploy API on Code Engine
-
Create project:
-
Deploy from container image:
-
Deploy from source code:
-
Get URL:
-
Create job (batch):
Key concepts: - Code Engine: Serverless containers and code - Application: Long-running HTTP service - Job: Batch/scheduled workload - Build: Source-to-image conversion - Subscription: Event-driven triggers
Day 3-4: IBM Cloud Continuous Delivery (CI/CD)
Why important: Native CI/CD toolchain with DevOps insights.
Exercises:
Create toolchain
Add Git repository
Configure delivery pipeline
Deploy to OpenShift
Add Slack notifications
DevOps Insights integration
Hands-on: CI/CD Pipeline
- Create toolchain:
- Navigate to IBM Cloud Console → DevOps
- Create toolchain from template (Kubernetes/OpenShift)
-
Connect GitHub repository
-
Pipeline configuration (.bluemix/pipeline.yml):
stages: - name: BUILD inputs: - type: git branch: main jobs: - name: Build Docker Image type: builder build_type: cr target: region_id: ${REGISTRY_REGION_ID} api_key: ${API_KEY} namespace: ${REGISTRY_NAMESPACE} image_name: ${APP_NAME} script: | docker build -t ${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${APP_NAME}:${BUILD_NUMBER} . docker push ${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${APP_NAME}:${BUILD_NUMBER} - name: DEPLOY inputs: - type: job stage: BUILD job: Build Docker Image jobs: - name: Deploy to OpenShift type: deployer target: region_id: ${PROD_REGION_ID} api_key: ${API_KEY} kubernetes_cluster: ${PROD_CLUSTER_NAME} script: | oc apply -f deployment.yaml oc set image deployment/${APP_NAME} ${APP_NAME}=${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${APP_NAME}:${BUILD_NUMBER}
Key concepts: - Toolchain: Integrated DevOps tools - Delivery Pipeline: CI/CD automation - DevOps Insights: Quality gates and risk analysis - Tekton Pipelines: Kubernetes-native CI/CD
Day 5-7: Satellite & Hybrid Cloud
Why important: Extend IBM Cloud to on-premises and edge locations.
Exercises:
Understand Satellite architecture
Create Satellite location (demo/simulation)
Deploy Satellite-enabled services
Understand Company Advanced Cluster Management
Multi-cluster management
Satellite Concepts:
IBM Cloud (Control Plane)
|
+--------------------|--------------------+
| | |
Satellite Satellite Satellite
Location 1 Location 2 Location 3
(On-prem DC) (Edge) (Other Cloud)
| | |
OpenShift OpenShift OpenShift
+ IBM Services + IBM Services + IBM Services
Key concepts: - Satellite: Bring IBM Cloud services anywhere - Satellite Location: On-prem, edge, or other cloud - Link: Secure connection to IBM Cloud - Satellite-enabled services: COS, Databases, OpenShift
IBM Cloud Services Priority (For Enterprise)
| Priority | Service | Why important |
|---|---|---|
| ** HIGH** | Company OpenShift | Container platform |
| ** HIGH** | VPC | Networking |
| ** HIGH** | Cloud Object Storage | Object storage |
| ** HIGH** | IAM | Access management |
| ** MEDIUM** | Databases for PostgreSQL | Managed databases |
| ** MEDIUM** | Code Engine | Serverless |
| ** MEDIUM** | Secrets Manager | Secrets management |
| ** MEDIUM** | Monitoring & Logging | Observability |
| ** LOW** | Watson Services | AI/ML (if needed) |
| ** LOW** | Satellite | Hybrid cloud (if needed) |
Learning Resources
Official IBM Cloud: - IBM Cloud Docs: https://cloud.ibm.com/docs - IBM Cloud Learning: https://www.ibm.com/training/cloud - IBM Cloud Architecture Center: https://www.ibm.com/cloud/architecture - Free Tier: https://www.ibm.com/cloud/free
Hands-on Labs: - IBM Developer: https://developer.ibm.com/ - IBM Cloud Code Patterns: https://developer.ibm.com/patterns/ - OpenShift Learning Portal: https://learn.openshift.com/
YouTube: - IBM Technology - IBM Cloud - OpenShift (Company)
COST MANAGEMENT
Free Tier (Lite Plan):
| Service | Free Tier | Duration |
|---|---|---|
| Trial Credit | $200 credit | 30 days |
| Cloud Object Storage | 25 GB storage | Always Free |
| Code Engine | 100K vCPU-seconds/month | Always Free |
| Databases for PostgreSQL | Lite plan available | Trial period |
| Watson Assistant | Lite plan (10K messages) | Always Free |
| Virtual Server (Classic) | Limited instances | Trial credit |
Cost Protection:
- Set spending notifications:
- Navigate to Manage → Billing and usage → Spending notifications
-
Set threshold (e.g., $50)
-
Monitor usage:
- Billing and usage → Usage
-
View by service and resource group
-
Clean up resources:
Weekly Checklist
Week 1:
- IBM Cloud account created
- IBM Cloud CLI installed
- Resource group created
- VPC and subnet created
- Virtual Server launched
- Spending notification set
Week 2:
- Cloud Object Storage bucket created
- Database instance created
- OpenShift cluster created
- Application deployed on OpenShift
Week 3:
- Watson service tested
- Monitoring configured
- Secrets Manager secret created
- Key Protect key created
Week 4:
- Code Engine application deployed
- CI/CD toolchain created
- Satellite concepts understood
- Cleanup completed
Ready? Start with Week 1, Day 1-2: IAM + CLI!