Nebo devops cloud
Skill lifenewjob/nebo-claude-skills-public/skills/nebo-devops-cloud
10 production-tested Claude Code skills · SEO/design/code/devops · MIT
npx -y skills add lifenewjob/nebo-claude-skills-public --skill nebo-devops-cloudAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
DEVOPS-CLOUD. Triggers: docker", "kubernetes", "CI/CD", "деплой", "AWS", "nginx", "systemd", "devops", "monitoring", "Helm
SKILL.md
5.7 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
DEVOPS-CLOUD SuperSkill
Заменяет: devops-automation, docker-best-practices, kubernetes-operations, ci-cd-pipelines, monitoring-observability, aws-cloud-patterns (6 скилов) Триггеры: "docker", "kubernetes", "CI/CD", "деплой", "AWS", "nginx", "systemd", "devops", "monitoring", "Helm" Атомов: 87
КОГДА ПРИМЕНЯТЬ
- Настройка CI/CD pipeline (GitHub Actions, GitLab CI)
- Docker: Dockerfile, compose, оптимизация образов
- Kubernetes: манифесты, Helm charts, troubleshooting
- Мониторинг: OpenTelemetry, Prometheus, Grafana
- AWS: Lambda, ECS, DynamoDB, CDK/Terraform
- Деплой: blue-green, canary, rolling updates
КЛЮЧЕВЫЕ ПРИНЦИПЫ
- Multi-stage Docker builds: deps → build → runtime. Final stage только runtime artifacts + non-root user
- K8s: always set resources: requests + limits на каждом контейнере, topologySpreadConstraints для HA
- CI/CD: concurrency + needs:
cancel-in-progress: trueдля stale runs,needsдля зависимостей между jobs - Observability = traces + metrics + logs: OpenTelemetry SDK → OTLP collector → backends. Structured JSON logging
- AWS Lambda: init outside handler: SDK clients вне handler для переиспользования между invocations
- DynamoDB: access patterns first: Single-table design, composite keys (PK + SK), GSI для альтернативных запросов
- IaC: CDK/Terraform over console: Всё в коде, state в remote backend, plan перед apply
ПАТТЕРНЫ И ТЕХНИКИ
Docker
FROM node:22-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --only=production
FROM node:22-alpine AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:22-alpine AS runtime
WORKDIR /app
RUN addgroup -g 1001 -S app && adduser -S app -u 1001 -G app
COPY --from=deps /app/node_modules ./node_modules
COPY --from=build /app/dist ./dist
USER app
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/healthz || exit 1
CMD ["node", "dist/server.js"]
Docker Compose
services:
api:
build: { context: ., target: runtime }
depends_on:
db: { condition: service_healthy }
deploy:
resources: { limits: { memory: 512M } }
restart: unless-stopped
GitHub Actions
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
services:
postgres:
image: postgres:16
options: --health-cmd pg_isready --health-interval 10s
Kubernetes
spec:
containers:
- resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 512Mi }
livenessProbe:
httpGet: { path: /healthz, port: 8080 }
readinessProbe:
httpGet: { path: /ready, port: 8080 }
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
Helm Chart
chart/
Chart.yaml # metadata + dependencies
values.yaml # default values
templates/
deployment.yaml
service.yaml
ingress.yaml
_helpers.tpl # template helpers
OpenTelemetry
const sdk = new NodeSDK({
serviceName: "order-service",
traceExporter: new OTLPTraceExporter({ url: "http://collector:4318/v1/traces" }),
metricReader: new PeriodicExportingMetricReader({
exporter: new OTLPMetricExporter(),
exportIntervalMillis: 15000,
}),
instrumentations: [new HttpInstrumentation(), new PgInstrumentation()],
});
- Custom spans:
tracer.startActiveSpan("name", async (span) => { ... span.end() }) - Custom metrics: counter, histogram, gauge через
meter.create*()
AWS Lambda + DynamoDB
// Init outside handler
const client = DynamoDBDocumentClient.from(new DynamoDBClient({}));
export const handler: APIGatewayProxyHandlerV2 = async (event) => {
const result = await client.send(
new GetCommand({ TableName: process.env.TABLE_NAME!, Key: { pk: id } })
);
return { statusCode: 200, body: JSON.stringify(result.Item) };
};
Structured Logging
logger.info("order_created", {
orderId, customerId, amount,
traceId: span.spanContext().traceId
});
- Всегда JSON format, severity levels, correlation IDs
- Никогда PII в логах без маскирования
ЧЕКЛИСТ
- Docker: non-root user, multi-stage, .dockerignore, HEALTHCHECK
- K8s: resource limits, probes, topology spread, secrets через SecretRef
- CI/CD: concurrency cancellation, cache dependencies, matrix testing
- Monitoring: traces + metrics + structured logs connected
- Alerts: на SLO breach, не на каждую ошибку
- IaC: remote state, план перед apply, модульная структура
ПРИМЕРЫ
Full CI/CD → Deploy pipeline
jobs:
lint: { runs-on: ubuntu-latest, steps: [checkout, setup-node, npm ci, npm run lint] }
test: { needs: lint, strategy: { matrix: { node: [20, 22] } } }
build: { needs: test, steps: [docker build, docker push] }
deploy: { needs: build, if: "github.ref == 'refs/heads/main'", environment: production }
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 2 of the 12 instructions most containers cloud skills give in ~1.5k tokens
Counted across 607 of the 657 authors here whose files we hold, read 2026-08-07
- Run containers as a non-root userhere, and in 66 of 607, across 46 files
- Use multi-stage buildshere, and in 53 of 607, across 44 files
- Use Promise.all for independent operationsin 47 of 607, across 13 files
- Import directly instead of barrel filesin 46 of 607, across 12 files
- Use ternary instead of AND for conditionalsin 45 of 607, across 12 files
- Use Set or Map for O(1) lookupsin 42 of 607, across 10 files
- Create a .dockerignore filein 41 of 607, across 31 files
- Read individual rule files for detailsin 39 of 607, across 9 files
- Copy dependency files before source codein 36 of 607, across 23 files
- Authenticate server actions like API routesin 35 of 607, across 7 files
- Use next/dynamic for heavy componentsin 34 of 607, across 9 files
- Use React.cache for per-request deduplicationin 34 of 607, across 10 files
Said here and by no other author read
- cancel stale CI runs in progress
- connect traces metrics and structured logs
- store IaC state in remote backend
- mask PII in structured logs
- alert on SLO breaches not individual errors
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.