// Master cloud platforms and DevOps tools including Docker, Kubernetes, Terraform, AWS, and CI/CD pipelines. Use when building infrastructure, containerizing applications, or setting up deployment automation.
| name | cloud-devops |
| description | Master cloud platforms and DevOps tools including Docker, Kubernetes, Terraform, AWS, and CI/CD pipelines. Use when building infrastructure, containerizing applications, or setting up deployment automation. |
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
# Build and run
docker build -t myapp:1.0 .
docker run -p 3000:3000 myapp:1.0
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://db:5432/myapp
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: password
POSTGRES_DB: myapp
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: app
image: myapp:1.0
ports:
- containerPort: 3000
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: db-secret
key: url
resources:
limits:
memory: "512Mi"
cpu: "500m"
---
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
selector:
app: myapp
ports:
- port: 80
targetPort: 3000
type: LoadBalancer
provider "aws" {
region = "us-east-1"
}
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
tags = {
Name = "my-instance"
}
}
resource "aws_s3_bucket" "data" {
bucket = "my-data-bucket"
versioning {
enabled = true
}
}
output "instance_ip" {
value = aws_instance.web.public_ip
}
# values.yaml
image:
repository: myapp
tag: 1.0
replicas: 3
service:
type: LoadBalancer
port: 80
# In template
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-app
spec:
replicas: {{ .Values.replicas }}
template:
spec:
containers:
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
name: Deploy
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: npm run build
- name: Test
run: npm test
- name: Deploy
run: npm run deploy
env:
DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
stages:
- build
- test
- deploy
build:
stage: build
script:
- npm install
- npm run build
artifacts:
paths:
- dist/
test:
stage: test
script:
- npm test
deploy:
stage: deploy
script:
- ./deploy.sh
only:
- main
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'app'
static_configs:
- targets: ['localhost:9090']
alerting:
alertmanagers:
- static_configs:
- targets: ['localhost:9093']
# System info
uname -a
lsb_release -a
ps aux
# File management
ls -la
find . -name "*.log"
tar -czf backup.tar.gz ./data
# User management
useradd username
passwd username
sudo usermod -aG sudo username
# Networking
ifconfig
netstat -tuln
curl -X GET http://example.com
# Package management
apt update && apt upgrade
yum install package_name
# Process management
systemctl start service
systemctl enable service
See Also: system-design, database-technologies, security-compliance