From 9f991439ebf2277665ac34e05a9c2c4e01da1616 Mon Sep 17 00:00:00 2001 From: agustinoli Date: Fri, 22 May 2026 11:02:32 -0300 Subject: [PATCH] =?UTF-8?q?feat=1B[38;2;102;102;102m:=1B[39m=1B[38;2;187;1?= =?UTF-8?q?87;187m=20=1B[39madd=1B[38;2;187;187;187m=20=1B[39mpending=1B[3?= =?UTF-8?q?8;2;187;187;187m=20=1B[39mtutorials=1B[38;2;187;187;187m=20=1B[?= =?UTF-8?q?39m=1B[38;2;102;102;102m(=1B[39mEstado=1B[38;2;102;102;102m:=1B?= =?UTF-8?q?[39m=1B[38;2;187;187;187m=20=1B[39mNuevo=1B[38;2;102;102;102m,?= =?UTF-8?q?=1B[39m=1B[38;2;187;187;187m=20=1B[39mcontent=1B[38;2;187;187;1?= =?UTF-8?q?87m=20=1B[39mTBD=1B[38;2;102;102;102m)=1B[39m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Placeholder structure for 8 tutorials that are not yet written. Keeping them tracked so content can be added in a future PR. Tutorials (EN + ES): - api-gateway-webservices - docker-desktop-alternative - e2e-testing - kubernetes-migration-tips - migrate-ecs-to-kubernetes - tips-avoid-latency - what-is-kubernetes-sleakops - write-dockerfile Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --- .../tutorials/en/api-gateway-webservices.mdx | 49 +++++++ .../en/docker-desktop-alternative.mdx | 54 ++++++++ content/tutorials/en/e2e-testing.mdx | 40 ++++++ .../en/kubernetes-migration-tips.mdx | 53 ++++++++ .../en/migrate-ecs-to-kubernetes.mdx | 57 ++++++++ content/tutorials/en/tips-avoid-latency.mdx | 45 ++++++ .../en/what-is-kubernetes-sleakops.mdx | 50 +++++++ content/tutorials/en/write-dockerfile.mdx | 46 +++++++ .../tutorials/es/api-gateway-webservices.mdx | 49 +++++++ .../es/docker-desktop-alternative.mdx | 54 ++++++++ content/tutorials/es/e2e-testing.mdx | 40 ++++++ .../es/kubernetes-migration-tips.mdx | 53 ++++++++ .../es/migrate-ecs-to-kubernetes.mdx | 57 ++++++++ content/tutorials/es/tips-avoid-latency.mdx | 45 ++++++ .../es/what-is-kubernetes-sleakops.mdx | 53 ++++++++ content/tutorials/es/write-dockerfile.mdx | 46 +++++++ src/data/tutorials-generated.json | 128 ++++++++++++++++++ 17 files changed, 919 insertions(+) create mode 100644 content/tutorials/en/api-gateway-webservices.mdx create mode 100644 content/tutorials/en/docker-desktop-alternative.mdx create mode 100644 content/tutorials/en/e2e-testing.mdx create mode 100644 content/tutorials/en/kubernetes-migration-tips.mdx create mode 100644 content/tutorials/en/migrate-ecs-to-kubernetes.mdx create mode 100644 content/tutorials/en/tips-avoid-latency.mdx create mode 100644 content/tutorials/en/what-is-kubernetes-sleakops.mdx create mode 100644 content/tutorials/en/write-dockerfile.mdx create mode 100644 content/tutorials/es/api-gateway-webservices.mdx create mode 100644 content/tutorials/es/docker-desktop-alternative.mdx create mode 100644 content/tutorials/es/e2e-testing.mdx create mode 100644 content/tutorials/es/kubernetes-migration-tips.mdx create mode 100644 content/tutorials/es/migrate-ecs-to-kubernetes.mdx create mode 100644 content/tutorials/es/tips-avoid-latency.mdx create mode 100644 content/tutorials/es/what-is-kubernetes-sleakops.mdx create mode 100644 content/tutorials/es/write-dockerfile.mdx diff --git a/content/tutorials/en/api-gateway-webservices.mdx b/content/tutorials/en/api-gateway-webservices.mdx new file mode 100644 index 000000000..8894f4770 --- /dev/null +++ b/content/tutorials/en/api-gateway-webservices.mdx @@ -0,0 +1,49 @@ +--- +title: Use an API Gateway in Front of Multiple Services +sidebar_label: API Gateway for Multiple Services +sidebar_position: 45 +description: Configure an API gateway on SleakOps to route requests to multiple backend web services — path-based routing, authentication, rate limiting, and load balancing patterns. +tags: + - kubernetes + - networking + - deployment +image: /img/tutorials/api-gateway-webservices/api-gateway-webservices.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Configure an API gateway on SleakOps to route requests to multiple backend web services — enabling path-based routing, centralized authentication, rate limiting, and simplified client-facing APIs. + +{/* TODO: Add full tutorial content */} +{/* Reference: https://hub.qovery.com/guides/tutorial/use-an-api-gateway-in-front-of-multiple-services/ */} + +## Why Use an API Gateway? + +{/* TODO: Explain the pattern — single entry point, routing to multiple services, +centralized cross-cutting concerns (auth, rate limiting, logging) */} + +## Architecture Overview + +{/* TODO: Diagram showing gateway → service-a, service-b, service-c */} + +## Step 1 — Deploy Your Backend Services + +{/* TODO: Deploy multiple web services in the same SleakOps Environment */} + +## Step 2 — Configure the API Gateway + +{/* TODO: Options — AWS API Gateway, Kong, nginx ingress with path-based routing, Traefik */} + +## Step 3 — Set Up Path-Based Routing + +{/* TODO: Route /api/users → user-service, /api/orders → order-service, etc. */} + +## Step 4 — Add Authentication + +{/* TODO: JWT validation at the gateway, forwarding headers to services */} + +## Step 5 — Configure Rate Limiting and Observability + +{/* TODO: Rate limiting rules, logging, tracing headers */} diff --git a/content/tutorials/en/docker-desktop-alternative.mdx b/content/tutorials/en/docker-desktop-alternative.mdx new file mode 100644 index 000000000..588bce944 --- /dev/null +++ b/content/tutorials/en/docker-desktop-alternative.mdx @@ -0,0 +1,54 @@ +--- +title: Docker Desktop Alternatives +sidebar_label: Docker Desktop Alternatives +sidebar_position: 43 +description: Free and open-source alternatives to Docker Desktop for running containers locally — Rancher Desktop, Podman Desktop, OrbStack, and Colima compared. +tags: + - docker + - performance +image: /img/tutorials/docker-desktop-alternative/docker-desktop-alternative.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Free and open-source alternatives to Docker Desktop for building and running containers locally — compared by setup complexity, performance, and compatibility. + +{/* TODO: Add full tutorial content */} +{/* Reference: https://www.qovery.com/blog/4-best-docker-desktop-alternatives/ */} + +## Why Consider an Alternative? + +{/* TODO: Docker Desktop licensing changes for enterprise users, resource usage, etc. */} + +## Alternatives Overview + +{/* TODO: +| Tool | Platform | Free | Kubernetes | Notes | +|------|----------|------|------------|-------| +| Rancher Desktop | macOS, Windows, Linux | Yes | Yes | Uses containerd or dockerd | +| Podman Desktop | All | Yes | Partial | Daemonless, rootless | +| OrbStack | macOS only | Free tier | Yes | Very fast, low resource usage | +| Colima | macOS, Linux | Yes | Optional | CLI-only, Lima-based | +*/} + +## Rancher Desktop + +{/* TODO: Install, features, kubectl integration */} + +## Podman Desktop + +{/* TODO: Install, differences from Docker, compatibility layer */} + +## OrbStack (macOS) + +{/* TODO: Install, performance characteristics, drop-in Docker replacement */} + +## Colima (macOS/Linux) + +{/* TODO: CLI setup, VM configuration, Docker socket compatibility */} + +## Recommendation + +{/* TODO: Quick guidance on which to pick based on use case */} diff --git a/content/tutorials/en/e2e-testing.mdx b/content/tutorials/en/e2e-testing.mdx new file mode 100644 index 000000000..397b7d11f --- /dev/null +++ b/content/tutorials/en/e2e-testing.mdx @@ -0,0 +1,40 @@ +--- +title: Build E2E Testing with Ephemeral Environments on SleakOps +sidebar_label: E2E Testing +sidebar_position: 38 +description: Set up end-to-end testing pipelines with ephemeral environments on SleakOps — spin up isolated test environments per PR, run E2E tests, and tear down automatically. +tags: + - ci-cd + - kubernetes + - deployment +image: /img/tutorials/e2e-testing/e2e-testing.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Set up end-to-end testing with ephemeral environments on SleakOps — create an isolated environment per pull request, run your E2E test suite, and tear it down automatically when done. + +{/* TODO: Add full tutorial content */} +{/* Reference: https://hub.qovery.com/guides/tutorial/build-e2e-testing-ephemeral-environments/ */} + +## Prerequisites + +{/* TODO: List prerequisites — SleakOps account, cluster, E2E test framework (Playwright/Cypress/etc.) */} + +## Step 1 — Configure the Ephemeral Environment + +{/* TODO: Describe how to create a short-lived Environment in SleakOps for testing */} + +## Step 2 — Set Up the CI/CD Pipeline + +{/* TODO: GitHub Actions / GitLab CI example that creates the environment, waits for it to be ready, runs tests, then deletes it */} + +## Step 3 — Run the E2E Test Suite + +{/* TODO: Show how to point the E2E framework at the ephemeral environment URL */} + +## Step 4 — Tear Down the Environment + +{/* TODO: Show cleanup step in the pipeline */} diff --git a/content/tutorials/en/kubernetes-migration-tips.mdx b/content/tutorials/en/kubernetes-migration-tips.mdx new file mode 100644 index 000000000..109012b15 --- /dev/null +++ b/content/tutorials/en/kubernetes-migration-tips.mdx @@ -0,0 +1,53 @@ +--- +title: Migrating to Kubernetes — Tips and Best Practices +sidebar_label: Kubernetes Migration Tips +sidebar_position: 40 +description: Key tips and best practices for migrating your applications to Kubernetes on SleakOps — planning, containerization, configuration management, and common pitfalls. +tags: + - kubernetes + - deployment + - docker +image: /img/tutorials/kubernetes-migration-tips/kubernetes-migration-tips.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Key tips and best practices for migrating your applications to Kubernetes on SleakOps — from planning and containerization to configuration management and common pitfalls to avoid. + +{/* TODO: Add full tutorial content */} + +## Before You Start + +{/* TODO: Prerequisites — containerized app, stateless vs stateful considerations, 12-factor app principles */} + +## Step 1 — Containerize Your Application + +{/* TODO: Dockerfile best practices, health checks, graceful shutdown */} + +## Step 2 — Manage Configuration and Secrets + +{/* TODO: Use Var Groups for env vars, Kubernetes Secrets for sensitive data */} + +## Step 3 — Handle Persistent Storage + +{/* TODO: Stateless vs stateful workloads, PVCs, EBS/EFS options in SleakOps */} + +## Step 4 — Set Resource Requests and Limits + +{/* TODO: Why they matter, how to right-size, HPA */} + +## Step 5 — Configure Health Checks + +{/* TODO: Liveness, readiness probes — why they're critical for zero-downtime deploys */} + +## Common Pitfalls + +{/* TODO: +- Hardcoded config / secrets in images +- Missing graceful shutdown (SIGTERM handling) +- No resource limits (noisy neighbor problem) +- Storing state in container filesystem +- Ignoring log aggregation +*/} diff --git a/content/tutorials/en/migrate-ecs-to-kubernetes.mdx b/content/tutorials/en/migrate-ecs-to-kubernetes.mdx new file mode 100644 index 000000000..d6fccbbc7 --- /dev/null +++ b/content/tutorials/en/migrate-ecs-to-kubernetes.mdx @@ -0,0 +1,57 @@ +--- +title: Migrate from ECS to Kubernetes on SleakOps +sidebar_label: Migrate ECS to Kubernetes +sidebar_position: 41 +description: Step-by-step guide for migrating containerized workloads from Amazon ECS to a SleakOps Kubernetes cluster — mapping ECS concepts to Kubernetes, service configuration, and networking. +tags: + - kubernetes + - aws + - deployment + - docker +image: /img/tutorials/migrate-ecs-to-kubernetes/migrate-ecs-to-kubernetes.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Migrate your containerized workloads from Amazon ECS to a SleakOps Kubernetes cluster — mapping ECS concepts to their Kubernetes equivalents and walking through the migration steps. + +{/* TODO: Add full tutorial content */} + +## ECS vs Kubernetes Concept Mapping + +{/* TODO: Table mapping ECS concepts to K8s equivalents +| ECS | Kubernetes | +|-----|-----------| +| Task Definition | Pod spec | +| Service | Deployment + Service | +| Cluster | Namespace | +| Task Role | ServiceAccount + IAM Role | +| ALB Target Group | Ingress | +| CloudWatch Logs | Loki / CloudWatch via Fluent Bit | +*/} + +## Step 1 — Audit Your ECS Workloads + +{/* TODO: Inventory of task definitions, services, environment variables, secrets, volumes */} + +## Step 2 — Create the SleakOps Project + +{/* TODO: Create a Project in SleakOps pointing to the same repo/Dockerfile */} + +## Step 3 — Migrate Environment Variables and Secrets + +{/* TODO: Move task environment variables to SleakOps Var Groups; migrate Secrets Manager references to Kubernetes Secrets or SleakOps Dependencies */} + +## Step 4 — Configure the Workload + +{/* TODO: Set resources, replicas, health checks equivalent to ECS service settings */} + +## Step 5 — Update DNS and Routing + +{/* TODO: Point traffic to the new cluster endpoint; update Route53 or load balancer */} + +## Step 6 — Cut Over and Decommission ECS + +{/* TODO: Blue/green cutover strategy, monitoring, ECS teardown */} diff --git a/content/tutorials/en/tips-avoid-latency.mdx b/content/tutorials/en/tips-avoid-latency.mdx new file mode 100644 index 000000000..2a678d57c --- /dev/null +++ b/content/tutorials/en/tips-avoid-latency.mdx @@ -0,0 +1,45 @@ +--- +title: Tips to Reduce Latency in Your Applications +sidebar_label: Tips to Reduce Latency +sidebar_position: 44 +description: Practical techniques to identify and reduce latency in applications running on SleakOps — database replicas, avoiding synchronous third-party calls, and the secondary service pattern. +tags: + - performance + - database + - kubernetes +image: /img/tutorials/tips-avoid-latency/tips-avoid-latency.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Practical techniques to identify and reduce latency in applications running on SleakOps — focusing on database access patterns, third-party integrations, and service isolation. + +{/* TODO: Add full tutorial content */} + +## 1. Avoid Synchronous Third-Party Calls in Your Web Service + +{/* TODO: Explain the anti-pattern of blocking HTTP calls to external services in the request path. +Move them to background workers (see /tutorial/workers-use-cases). +Show request path before/after with estimated latency impact. */} + +## 2. Use a Read Replica for Heavy Queries + +{/* TODO: Explain read replicas in RDS — how to configure a replica in SleakOps, +how to point read-heavy queries (reports, dashboards, search) at the replica, +and how this reduces load and latency on the primary. */} + +## 3. The Secondary Service Pattern + +{/* TODO: Describe the pattern of offloading latency-sensitive operations to a second web service. +Example: main API handles user requests synchronously; a secondary service handles +async/heavy processing so the main API stays fast. */} + +## 4. Connection Pooling + +{/* TODO: Why too many DB connections hurt latency, and how connection pooling (PgBouncer) helps */} + +## 5. Cache Frequently-Read Data + +{/* TODO: Redis/ElastiCache for caching query results, session data, computed values */} diff --git a/content/tutorials/en/what-is-kubernetes-sleakops.mdx b/content/tutorials/en/what-is-kubernetes-sleakops.mdx new file mode 100644 index 000000000..57f83e759 --- /dev/null +++ b/content/tutorials/en/what-is-kubernetes-sleakops.mdx @@ -0,0 +1,50 @@ +--- +title: What is Kubernetes and How Does SleakOps Help? +sidebar_label: What is Kubernetes? +sidebar_position: 46 +description: A practical introduction to Kubernetes — what it is, why it matters, and how SleakOps simplifies Kubernetes cluster management and application deployment. +tags: + - kubernetes +image: /img/tutorials/what-is-kubernetes-sleakops/what-is-kubernetes-sleakops.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +A practical introduction to Kubernetes — what it is, the core concepts you need to know, and how SleakOps handles cluster management so you can focus on your applications. + +{/* TODO: Add full tutorial content */} + +## What is Kubernetes? + +{/* TODO: Plain-language explanation — container orchestration, why you need it, +the problems it solves (scaling, self-healing, deployments, service discovery) */} + +## Core Concepts + +{/* TODO: Brief, practical explanations of: +- Pod +- Deployment / ReplicaSet +- Service +- Ingress +- Namespace +- ConfigMap / Secret +- PersistentVolume +*/} + +## The Kubernetes Hierarchy in SleakOps + +{/* TODO: Map SleakOps concepts to Kubernetes objects: +- Cluster → EKS cluster +- Environment → Namespace +- Project → Deployment(s) + Service(s) +- Workload → Pod template / Deployment +- Dependency → Helm chart (RDS, Redis, etc.) +*/} + +## What SleakOps Manages For You + +{/* TODO: Cluster provisioning, node management (Karpenter), networking (ALB Ingress), +storage (EBS/EFS CSI drivers), observability (Loki, Prometheus), upgrades */} + diff --git a/content/tutorials/en/write-dockerfile.mdx b/content/tutorials/en/write-dockerfile.mdx new file mode 100644 index 000000000..dbcfa3c51 --- /dev/null +++ b/content/tutorials/en/write-dockerfile.mdx @@ -0,0 +1,46 @@ +--- +title: How to Write a Dockerfile +sidebar_label: Write a Dockerfile +sidebar_position: 39 +description: Learn how to write an efficient Dockerfile for your application — from a basic single-stage build to production-ready multi-stage builds with best practices. +tags: + - docker + - deployment +image: /img/tutorials/write-dockerfile/write-dockerfile.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Learn how to write a Dockerfile for your application — from a basic single-stage build to production-ready multi-stage builds optimized for size and security. + +{/* TODO: Add full tutorial content */} + +## What is a Dockerfile? + +{/* TODO: Brief explanation */} + +## Step 1 — A Basic Dockerfile + +{/* TODO: Simple example (Node.js, Python, or language-agnostic) */} + +## Step 2 — Multi-Stage Builds + +{/* TODO: Show a multi-stage build that separates build and runtime stages to reduce image size */} + +## Step 3 — Use a `.dockerignore` File + +{/* TODO: Explain why .dockerignore matters and show a typical example */} + +## Step 4 — Choose the Right Base Image + +{/* TODO: Alpine vs Debian-slim vs distroless tradeoffs */} + +## Step 5 — Layer Caching + +{/* TODO: Explain how layer order affects build time and how to optimize it */} + +## Common Mistakes to Avoid + +{/* TODO: Running as root, copying .env files, not using .dockerignore, etc. */} diff --git a/content/tutorials/es/api-gateway-webservices.mdx b/content/tutorials/es/api-gateway-webservices.mdx new file mode 100644 index 000000000..2fdbacbc2 --- /dev/null +++ b/content/tutorials/es/api-gateway-webservices.mdx @@ -0,0 +1,49 @@ +--- +title: Usar un API Gateway para Múltiples Webservices +sidebar_label: API Gateway para Webservices +sidebar_position: 45 +description: Configurá un API gateway en SleakOps para enrutar requests a múltiples web services backend — routing basado en paths, autenticación, rate limiting y patrones de load balancing. +tags: + - kubernetes + - networking + - deployment +image: /img/tutorials/api-gateway-webservices/api-gateway-webservices.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Configurá un API gateway en SleakOps para enrutar requests a múltiples web services backend — habilitando routing basado en paths, autenticación centralizada, rate limiting y APIs simplificadas para clientes. + +{/* TODO: Agregar contenido completo del tutorial */} +{/* Referencia: https://hub.qovery.com/guides/tutorial/use-an-api-gateway-in-front-of-multiple-services/ */} + +## ¿Por Qué Usar un API Gateway? + +{/* TODO: Explicar el patrón — punto de entrada único, routing a múltiples servicios, +preocupaciones transversales centralizadas (auth, rate limiting, logging) */} + +## Visión General de la Arquitectura + +{/* TODO: Diagrama mostrando gateway → service-a, service-b, service-c */} + +## Paso 1 — Desplegar los Servicios Backend + +{/* TODO: Desplegar múltiples web services en el mismo Environment de SleakOps */} + +## Paso 2 — Configurar el API Gateway + +{/* TODO: Opciones — AWS API Gateway, Kong, nginx ingress con routing por paths, Traefik */} + +## Paso 3 — Configurar Routing Basado en Paths + +{/* TODO: Enrutar /api/users → user-service, /api/orders → order-service, etc. */} + +## Paso 4 — Agregar Autenticación + +{/* TODO: Validación de JWT en el gateway, reenvío de headers a servicios */} + +## Paso 5 — Configurar Rate Limiting y Observabilidad + +{/* TODO: Reglas de rate limiting, logging, headers de trazado */} diff --git a/content/tutorials/es/docker-desktop-alternative.mdx b/content/tutorials/es/docker-desktop-alternative.mdx new file mode 100644 index 000000000..ad6a1032e --- /dev/null +++ b/content/tutorials/es/docker-desktop-alternative.mdx @@ -0,0 +1,54 @@ +--- +title: Alternativas a Docker Desktop +sidebar_label: Alternativas a Docker Desktop +sidebar_position: 43 +description: Alternativas gratuitas y open-source a Docker Desktop para correr contenedores localmente — Rancher Desktop, Podman Desktop, OrbStack y Colima comparados. +tags: + - docker + - performance +image: /img/tutorials/docker-desktop-alternative/docker-desktop-alternative.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Alternativas gratuitas y open-source a Docker Desktop para construir y correr contenedores localmente — comparadas por complejidad de configuración, rendimiento y compatibilidad. + +{/* TODO: Agregar contenido completo del tutorial */} +{/* Referencia: https://www.qovery.com/blog/4-best-docker-desktop-alternatives/ */} + +## ¿Por Qué Considerar una Alternativa? + +{/* TODO: Cambios de licencia de Docker Desktop para usuarios empresariales, uso de recursos, etc. */} + +## Comparativa de Alternativas + +{/* TODO: +| Herramienta | Plataforma | Gratuita | Kubernetes | Notas | +|-------------|------------|----------|------------|-------| +| Rancher Desktop | macOS, Windows, Linux | Sí | Sí | Usa containerd o dockerd | +| Podman Desktop | Todas | Sí | Parcial | Sin demonio, rootless | +| OrbStack | Solo macOS | Tier gratuito | Sí | Muy rápido, bajo uso de recursos | +| Colima | macOS, Linux | Sí | Opcional | Solo CLI, basado en Lima | +*/} + +## Rancher Desktop + +{/* TODO: Instalación, funcionalidades, integración con kubectl */} + +## Podman Desktop + +{/* TODO: Instalación, diferencias con Docker, capa de compatibilidad */} + +## OrbStack (macOS) + +{/* TODO: Instalación, características de rendimiento, reemplazo directo de Docker */} + +## Colima (macOS/Linux) + +{/* TODO: Configuración CLI, configuración de VM, compatibilidad con Docker socket */} + +## Recomendación + +{/* TODO: Orientación rápida sobre cuál elegir según el caso de uso */} diff --git a/content/tutorials/es/e2e-testing.mdx b/content/tutorials/es/e2e-testing.mdx new file mode 100644 index 000000000..fc372cd48 --- /dev/null +++ b/content/tutorials/es/e2e-testing.mdx @@ -0,0 +1,40 @@ +--- +title: Tests E2E con Entornos Efímeros en SleakOps +sidebar_label: Tests E2E +sidebar_position: 38 +description: Configurá pipelines de testing end-to-end con entornos efímeros en SleakOps — creá un entorno aislado por PR, ejecutá los tests E2E y eliminalo automáticamente. +tags: + - ci-cd + - kubernetes + - deployment +image: /img/tutorials/e2e-testing/e2e-testing.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Configurá testing end-to-end con entornos efímeros en SleakOps — creá un entorno aislado por pull request, ejecutá tu suite de tests E2E y eliminalo automáticamente cuando termine. + +{/* TODO: Agregar contenido completo del tutorial */} +{/* Referencia: https://hub.qovery.com/guides/tutorial/build-e2e-testing-ephemeral-environments/ */} + +## Prerrequisitos + +{/* TODO: Listar prerrequisitos — cuenta SleakOps, cluster, framework E2E (Playwright/Cypress/etc.) */} + +## Paso 1 — Configurar el Entorno Efímero + +{/* TODO: Describir cómo crear un Environment de corta duración en SleakOps para testing */} + +## Paso 2 — Configurar el Pipeline CI/CD + +{/* TODO: Ejemplo con GitHub Actions / GitLab CI que crea el entorno, espera que esté listo, corre los tests y lo elimina */} + +## Paso 3 — Ejecutar la Suite de Tests E2E + +{/* TODO: Mostrar cómo apuntar el framework E2E a la URL del entorno efímero */} + +## Paso 4 — Eliminar el Entorno + +{/* TODO: Mostrar el paso de limpieza en el pipeline */} diff --git a/content/tutorials/es/kubernetes-migration-tips.mdx b/content/tutorials/es/kubernetes-migration-tips.mdx new file mode 100644 index 000000000..6a598273d --- /dev/null +++ b/content/tutorials/es/kubernetes-migration-tips.mdx @@ -0,0 +1,53 @@ +--- +title: Migrar a Kubernetes — Tips y Buenas Prácticas +sidebar_label: Tips de Migración a Kubernetes +sidebar_position: 40 +description: Tips clave y buenas prácticas para migrar tus aplicaciones a Kubernetes en SleakOps — planificación, containerización, gestión de configuración y errores comunes a evitar. +tags: + - kubernetes + - deployment + - docker +image: /img/tutorials/kubernetes-migration-tips/kubernetes-migration-tips.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Tips clave y buenas prácticas para migrar tus aplicaciones a Kubernetes en SleakOps — desde la planificación y containerización hasta la gestión de configuración y los errores comunes a evitar. + +{/* TODO: Agregar contenido completo del tutorial */} + +## Antes de Empezar + +{/* TODO: Prerrequisitos — app containerizada, consideraciones stateless vs stateful, principios 12-factor */} + +## Paso 1 — Containerizar tu Aplicación + +{/* TODO: Buenas prácticas de Dockerfile, health checks, graceful shutdown */} + +## Paso 2 — Gestionar Configuración y Secretos + +{/* TODO: Usar Var Groups para env vars, Kubernetes Secrets para datos sensibles */} + +## Paso 3 — Manejar Almacenamiento Persistente + +{/* TODO: Workloads stateless vs stateful, PVCs, opciones EBS/EFS en SleakOps */} + +## Paso 4 — Configurar Resource Requests y Limits + +{/* TODO: Por qué importan, cómo dimensionar correctamente, HPA */} + +## Paso 5 — Configurar Health Checks + +{/* TODO: Liveness y readiness probes — por qué son críticos para deploys sin downtime */} + +## Errores Comunes + +{/* TODO: +- Configuración / secretos hardcodeados en imágenes +- Falta de graceful shutdown (manejo de SIGTERM) +- Sin resource limits (problema del noisy neighbor) +- Almacenar estado en el filesystem del container +- Ignorar la agregación de logs +*/} diff --git a/content/tutorials/es/migrate-ecs-to-kubernetes.mdx b/content/tutorials/es/migrate-ecs-to-kubernetes.mdx new file mode 100644 index 000000000..4140b7513 --- /dev/null +++ b/content/tutorials/es/migrate-ecs-to-kubernetes.mdx @@ -0,0 +1,57 @@ +--- +title: Migrar de ECS a Kubernetes en SleakOps +sidebar_label: Migrar ECS a Kubernetes +sidebar_position: 41 +description: Guía paso a paso para migrar workloads containerizados de Amazon ECS a un cluster Kubernetes de SleakOps — mapeo de conceptos ECS a Kubernetes, configuración de servicios y networking. +tags: + - kubernetes + - aws + - deployment + - docker +image: /img/tutorials/migrate-ecs-to-kubernetes/migrate-ecs-to-kubernetes.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Migrá tus workloads containerizados de Amazon ECS a un cluster Kubernetes de SleakOps — mapeando conceptos de ECS a sus equivalentes en Kubernetes y recorriendo los pasos de migración. + +{/* TODO: Agregar contenido completo del tutorial */} + +## Mapeo de Conceptos ECS vs Kubernetes + +{/* TODO: Tabla de equivalencias +| ECS | Kubernetes | +|-----|-----------| +| Task Definition | Pod spec | +| Service | Deployment + Service | +| Cluster | Namespace | +| Task Role | ServiceAccount + IAM Role | +| ALB Target Group | Ingress | +| CloudWatch Logs | Loki / CloudWatch via Fluent Bit | +*/} + +## Paso 1 — Auditar tus Workloads en ECS + +{/* TODO: Inventario de task definitions, services, variables de entorno, secretos, volúmenes */} + +## Paso 2 — Crear el Proyecto en SleakOps + +{/* TODO: Crear un Proyecto en SleakOps apuntando al mismo repo/Dockerfile */} + +## Paso 3 — Migrar Variables de Entorno y Secretos + +{/* TODO: Mover variables de entorno de las tasks a Var Groups de SleakOps; migrar referencias a Secrets Manager a Kubernetes Secrets o Dependencies de SleakOps */} + +## Paso 4 — Configurar el Workload + +{/* TODO: Configurar resources, réplicas, health checks equivalentes a la configuración del servicio ECS */} + +## Paso 5 — Actualizar DNS y Routing + +{/* TODO: Apuntar el tráfico al nuevo endpoint del cluster; actualizar Route53 o el load balancer */} + +## Paso 6 — Cutover y Dar de Baja ECS + +{/* TODO: Estrategia de cutover blue/green, monitoreo, desmantelamiento de ECS */} diff --git a/content/tutorials/es/tips-avoid-latency.mdx b/content/tutorials/es/tips-avoid-latency.mdx new file mode 100644 index 000000000..e3c1eb866 --- /dev/null +++ b/content/tutorials/es/tips-avoid-latency.mdx @@ -0,0 +1,45 @@ +--- +title: Tips para Reducir la Latencia en tus Aplicaciones +sidebar_label: Tips para Reducir Latencia +sidebar_position: 44 +description: Técnicas prácticas para identificar y reducir la latencia en aplicaciones que corren en SleakOps — réplicas de base de datos, evitar llamadas síncronas a terceros y el patrón de servicio secundario. +tags: + - performance + - database + - kubernetes +image: /img/tutorials/tips-avoid-latency/tips-avoid-latency.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Técnicas prácticas para identificar y reducir la latencia en aplicaciones que corren en SleakOps — enfocándose en patrones de acceso a base de datos, integraciones con terceros y aislamiento de servicios. + +{/* TODO: Agregar contenido completo del tutorial */} + +## 1. Evitar Llamadas Síncronas a Terceros en tu Web Service + +{/* TODO: Explicar el anti-patrón de llamadas HTTP bloqueantes a servicios externos en el request path. +Moverlas a workers en segundo plano (ver /tutorial/workers-use-cases). +Mostrar el request path antes/después con impacto estimado en latencia. */} + +## 2. Usar una Réplica de Lectura para Queries Pesadas + +{/* TODO: Explicar las read replicas en RDS — cómo configurar una réplica en SleakOps, +cómo apuntar queries de lectura intensiva (reportes, dashboards, búsqueda) a la réplica, +y cómo esto reduce la carga y latencia en la primaria. */} + +## 3. El Patrón de Servicio Secundario + +{/* TODO: Describir el patrón de descargar operaciones sensibles a latencia a un segundo web service. +Ejemplo: el API principal maneja requests de usuario síncronamente; un servicio secundario maneja +procesamiento async/pesado para que el API principal se mantenga rápido. */} + +## 4. Connection Pooling + +{/* TODO: Por qué demasiadas conexiones a DB degradan la latencia, y cómo el connection pooling (PgBouncer) ayuda */} + +## 5. Cachear Datos Frecuentemente Leídos + +{/* TODO: Redis/ElastiCache para cachear resultados de queries, datos de sesión, valores computados */} diff --git a/content/tutorials/es/what-is-kubernetes-sleakops.mdx b/content/tutorials/es/what-is-kubernetes-sleakops.mdx new file mode 100644 index 000000000..1671f6e6b --- /dev/null +++ b/content/tutorials/es/what-is-kubernetes-sleakops.mdx @@ -0,0 +1,53 @@ +--- +title: ¿Qué es Kubernetes y cómo ayuda SleakOps? +sidebar_label: ¿Qué es Kubernetes? +sidebar_position: 46 +description: Una introducción práctica a Kubernetes — qué es, por qué importa, y cómo SleakOps simplifica la gestión de clusters Kubernetes y el despliegue de aplicaciones. +tags: + - kubernetes +image: /img/tutorials/what-is-kubernetes-sleakops/what-is-kubernetes-sleakops.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Una introducción práctica a Kubernetes — qué es, los conceptos clave que necesitás conocer, y cómo SleakOps gestiona el cluster para que puedas enfocarte en tus aplicaciones. + +{/* TODO: Agregar contenido completo del tutorial */} + +## ¿Qué es Kubernetes? + +{/* TODO: Explicación en lenguaje claro — orquestación de contenedores, por qué lo necesitás, +los problemas que resuelve (escalado, self-healing, despliegues, service discovery) */} + +## Conceptos Clave + +{/* TODO: Explicaciones breves y prácticas de: +- Pod +- Deployment / ReplicaSet +- Service +- Ingress +- Namespace +- ConfigMap / Secret +- PersistentVolume +*/} + +## La Jerarquía de Kubernetes en SleakOps + +{/* TODO: Mapear conceptos de SleakOps a objetos de Kubernetes: +- Cluster → cluster EKS +- Environment → Namespace +- Project → Deployment(s) + Service(s) +- Workload → template de Pod / Deployment +- Dependency → Helm chart (RDS, Redis, etc.) +*/} + +## Qué Gestiona SleakOps por Vos + +{/* TODO: Aprovisionamiento del cluster, gestión de nodos (Karpenter), networking (ALB Ingress), +almacenamiento (EBS/EFS CSI drivers), observabilidad (Loki, Prometheus), upgrades */} + +## Próximos Pasos + +{/* TODO: Apuntar a la guía de Getting Started, docs del cluster, docs del environment */} diff --git a/content/tutorials/es/write-dockerfile.mdx b/content/tutorials/es/write-dockerfile.mdx new file mode 100644 index 000000000..d6876c548 --- /dev/null +++ b/content/tutorials/es/write-dockerfile.mdx @@ -0,0 +1,46 @@ +--- +title: Cómo Escribir un Dockerfile +sidebar_label: Escribir un Dockerfile +sidebar_position: 39 +description: Aprendé a escribir un Dockerfile eficiente para tu aplicación — desde un build básico de una sola etapa hasta builds multi-stage listos para producción con buenas prácticas. +tags: + - docker + - deployment +image: /img/tutorials/write-dockerfile/write-dockerfile.png +--- + +import Zoom from "react-medium-image-zoom"; +import "react-medium-image-zoom/dist/styles.css"; +import { FiExternalLink } from "react-icons/fi"; + +Aprendé a escribir un Dockerfile para tu aplicación — desde un build básico de una sola etapa hasta builds multi-stage listos para producción, optimizados para tamaño y seguridad. + +{/* TODO: Agregar contenido completo del tutorial */} + +## ¿Qué es un Dockerfile? + +{/* TODO: Explicación breve */} + +## Paso 1 — Un Dockerfile Básico + +{/* TODO: Ejemplo simple (Node.js, Python, o agnóstico al lenguaje) */} + +## Paso 2 — Builds Multi-Stage + +{/* TODO: Mostrar un build multi-stage que separa las etapas de build y runtime para reducir el tamaño de imagen */} + +## Paso 3 — Usar un Archivo `.dockerignore` + +{/* TODO: Explicar por qué importa .dockerignore y mostrar un ejemplo típico */} + +## Paso 4 — Elegir la Imagen Base Correcta + +{/* TODO: Tradeoffs entre Alpine vs Debian-slim vs distroless */} + +## Paso 5 — Cache de Capas + +{/* TODO: Explicar cómo el orden de capas afecta el tiempo de build y cómo optimizarlo */} + +## Errores Comunes a Evitar + +{/* TODO: Correr como root, copiar archivos .env, no usar .dockerignore, etc. */} diff --git a/src/data/tutorials-generated.json b/src/data/tutorials-generated.json index 221e5df19..1445419fb 100644 --- a/src/data/tutorials-generated.json +++ b/src/data/tutorials-generated.json @@ -174,6 +174,70 @@ ], "image": "/img/tutorials/openvpn-profile/openvpn-profile.png", "sidebar_position": 11 + }, + { + "id": "e2e-testing", + "title": "Build E2E Testing with Ephemeral Environments on SleakOps", + "description": "Set up end-to-end testing pipelines with ephemeral environments on SleakOps — spin up isolated test environments per PR, run E2E tests, and tear down automatically.", + "tags": [], + "image": "/img/tutorials/e2e-testing/e2e-testing.png", + "sidebar_position": 38 + }, + { + "id": "write-dockerfile", + "title": "How to Write a Dockerfile", + "description": "Learn how to write an efficient Dockerfile for your application — from a basic single-stage build to production-ready multi-stage builds with best practices.", + "tags": [], + "image": "/img/tutorials/write-dockerfile/write-dockerfile.png", + "sidebar_position": 39 + }, + { + "id": "kubernetes-migration-tips", + "title": "Migrating to Kubernetes — Tips and Best Practices", + "description": "Key tips and best practices for migrating your applications to Kubernetes on SleakOps — planning, containerization, configuration management, and common pitfalls.", + "tags": [], + "image": "/img/tutorials/kubernetes-migration-tips/kubernetes-migration-tips.png", + "sidebar_position": 40 + }, + { + "id": "migrate-ecs-to-kubernetes", + "title": "Migrate from ECS to Kubernetes on SleakOps", + "description": "Step-by-step guide for migrating containerized workloads from Amazon ECS to a SleakOps Kubernetes cluster — mapping ECS concepts to Kubernetes, service configuration, and networking.", + "tags": [], + "image": "/img/tutorials/migrate-ecs-to-kubernetes/migrate-ecs-to-kubernetes.png", + "sidebar_position": 41 + }, + { + "id": "docker-desktop-alternative", + "title": "Docker Desktop Alternatives", + "description": "Free and open-source alternatives to Docker Desktop for running containers locally — Rancher Desktop, Podman Desktop, OrbStack, and Colima compared.", + "tags": [], + "image": "/img/tutorials/docker-desktop-alternative/docker-desktop-alternative.png", + "sidebar_position": 43 + }, + { + "id": "tips-avoid-latency", + "title": "Tips to Reduce Latency in Your Applications", + "description": "Practical techniques to identify and reduce latency in applications running on SleakOps — database replicas, avoiding synchronous third-party calls, and the secondary service pattern.", + "tags": [], + "image": "/img/tutorials/tips-avoid-latency/tips-avoid-latency.png", + "sidebar_position": 44 + }, + { + "id": "api-gateway-webservices", + "title": "Use an API Gateway in Front of Multiple Services", + "description": "Configure an API gateway on SleakOps to route requests to multiple backend web services — path-based routing, authentication, rate limiting, and load balancing patterns.", + "tags": [], + "image": "/img/tutorials/api-gateway-webservices/api-gateway-webservices.png", + "sidebar_position": 45 + }, + { + "id": "what-is-kubernetes-sleakops", + "title": "What is Kubernetes and How Does SleakOps Help?", + "description": "A practical introduction to Kubernetes — what it is, why it matters, and how SleakOps simplifies Kubernetes cluster management and application deployment.", + "tags": [], + "image": "/img/tutorials/what-is-kubernetes-sleakops/what-is-kubernetes-sleakops.png", + "sidebar_position": 46 } ], "es": [ @@ -351,6 +415,70 @@ ], "image": "/img/tutorials/openvpn-profile/openvpn-profile.png", "sidebar_position": 11 + }, + { + "id": "e2e-testing", + "title": "Build E2E Testing with Ephemeral Environments on SleakOps", + "description": "Set up end-to-end testing pipelines with ephemeral environments on SleakOps — spin up isolated test environments per PR, run E2E tests, and tear down automatically.", + "tags": [], + "image": "/img/tutorials/e2e-testing/e2e-testing.png", + "sidebar_position": 38 + }, + { + "id": "write-dockerfile", + "title": "How to Write a Dockerfile", + "description": "Learn how to write an efficient Dockerfile for your application — from a basic single-stage build to production-ready multi-stage builds with best practices.", + "tags": [], + "image": "/img/tutorials/write-dockerfile/write-dockerfile.png", + "sidebar_position": 39 + }, + { + "id": "kubernetes-migration-tips", + "title": "Migrating to Kubernetes — Tips and Best Practices", + "description": "Key tips and best practices for migrating your applications to Kubernetes on SleakOps — planning, containerization, configuration management, and common pitfalls.", + "tags": [], + "image": "/img/tutorials/kubernetes-migration-tips/kubernetes-migration-tips.png", + "sidebar_position": 40 + }, + { + "id": "migrate-ecs-to-kubernetes", + "title": "Migrate from ECS to Kubernetes on SleakOps", + "description": "Step-by-step guide for migrating containerized workloads from Amazon ECS to a SleakOps Kubernetes cluster — mapping ECS concepts to Kubernetes, service configuration, and networking.", + "tags": [], + "image": "/img/tutorials/migrate-ecs-to-kubernetes/migrate-ecs-to-kubernetes.png", + "sidebar_position": 41 + }, + { + "id": "docker-desktop-alternative", + "title": "Docker Desktop Alternatives", + "description": "Free and open-source alternatives to Docker Desktop for running containers locally — Rancher Desktop, Podman Desktop, OrbStack, and Colima compared.", + "tags": [], + "image": "/img/tutorials/docker-desktop-alternative/docker-desktop-alternative.png", + "sidebar_position": 43 + }, + { + "id": "tips-avoid-latency", + "title": "Tips to Reduce Latency in Your Applications", + "description": "Practical techniques to identify and reduce latency in applications running on SleakOps — database replicas, avoiding synchronous third-party calls, and the secondary service pattern.", + "tags": [], + "image": "/img/tutorials/tips-avoid-latency/tips-avoid-latency.png", + "sidebar_position": 44 + }, + { + "id": "api-gateway-webservices", + "title": "Use an API Gateway in Front of Multiple Services", + "description": "Configure an API gateway on SleakOps to route requests to multiple backend web services — path-based routing, authentication, rate limiting, and load balancing patterns.", + "tags": [], + "image": "/img/tutorials/api-gateway-webservices/api-gateway-webservices.png", + "sidebar_position": 45 + }, + { + "id": "what-is-kubernetes-sleakops", + "title": "What is Kubernetes and How Does SleakOps Help?", + "description": "A practical introduction to Kubernetes — what it is, why it matters, and how SleakOps simplifies Kubernetes cluster management and application deployment.", + "tags": [], + "image": "/img/tutorials/what-is-kubernetes-sleakops/what-is-kubernetes-sleakops.png", + "sidebar_position": 46 } ] } \ No newline at end of file