惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
NISL@THU
NISL@THU
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Tenable Blog
Forbes - Security
Forbes - Security
V2EX - 技术
V2EX - 技术
Webroot Blog
Webroot Blog
Schneier on Security
Schneier on Security
T
The Exploit Database - CXSecurity.com
T
Tor Project blog
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
PCI Perspectives
PCI Perspectives
O
OpenAI News
C
Cyber Attacks, Cyber Crime and Cyber Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
量子位
D
Docker
AI
AI
Blog — PlanetScale
Blog — PlanetScale
S
Security @ Cisco Blogs
S
Schneier on Security
The GitHub Blog
The GitHub Blog
W
WeLiveSecurity
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
P
Privacy International News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog
C
Check Point Blog
A
About on SuperTechFans
D
Darknet – Hacking Tools, Hacker News & Cyber Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
I
InfoQ
T
Threat Research - Cisco Blogs
Project Zero
Project Zero
Cloudbric
Cloudbric
MongoDB | Blog
MongoDB | Blog
Cisco Talos Blog
Cisco Talos Blog
L
Lohrmann on Cybersecurity
S
Securelist

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Arquitectura y Seguridad en la Nube: El próximo nivel del desarrollador
Xin Lin · 2026-06-17 · via DEV Community

Arquitectura y Seguridad en la Nube: el próximo nivel del desarrollador

Cuando una aplicación web funciona en local, parece que ya esta casi terminada. Pero en realidad todavía queda una parte muy importante: decidir donde va a vivir, como se va a proteger y que pasara si de repente la usan muchas personas a la vez.

En este articulo voy a explicar, desde el punto de vista de un desarrollador Full-Stack, como llevar una aplicación web al entorno cloud de forma segura. La idea de esta guía es entender los conceptos que permiten tomar buenas decisiones técnicas a la hora de subir nuestra aplicación a la nube.

Imagen de portada: Adi Goldstein en Unsplash.

1. Donde vive mi código: PaaS y modelos de servicio

En cloud hay varias formas de ejecutar una aplicación. Una de las mas importantes para desarrollo web es PaaS, que significa Platform as a Service o Plataforma como Servicio.

Con PaaS, el proveedor cloud se encarga de gran parte de la infraestructura: servidores, sistema operativo, parches, red, escalado y despliegue, mientras que el equipo de desarrollo se centra mas en el código, las variables de entorno, la seguridad de la aplicación y la experiencia del usuario.

Para una aplicación web moderna, PaaS suele ser una opción muy cómoda porque permite desplegar sin tener que administrar maquinas virtuales manualmente.

AWS App Runner

AWS App Runner permite desplegar una aplicación desde código fuente o desde una imagen de contenedor y convertirla en una aplicación web escalable y segura en AWS. Es una opción pensada para reducir la cantidad de infraestructura que el desarrollador tiene que configurar.

En un escenario real, podría usar App Runner si tengo una API o una aplicación web empaquetada en contenedor y quiero que AWS gestione despliegue, escalado y operaciones básicas.

Azure App Service

Azure App Service es la opción PaaS de Microsoft Azure para ejecutar aplicaciones web, APIs REST y backends móviles sin gestionar directamente la infraestructura.

Una ventaja importante de Azure App Service es que se integra muy bien con el ecosistema Microsoft: GitHub Actions, Azure DevOps, certificados gestionados y escalado.

Google Cloud Run

Google Cloud Run es una plataforma gestionada para ejecutar código, funciones o contenedores sobre la infraestructura escalable de Google. Es muy interesante porque permite ejecutar aplicaciones en contenedores sin administrar clusters.

Cloud Run puede escalar automáticamente según el trafico e incluso escalar a cero cuando no hay peticiones. Esto ayuda a ahorrar costes en aplicaciones con trafico irregular.

2. Seguridad en Cloud: el escudo de la aplicación

Subir una aplicación a la nube no significa que automáticamente sea segura. El cloud da herramientas, pero es el desarrollador quien tiene que usarlas bien.

La primera idea clave es el principio de mínimo privilegio: cada usuario, servicio o proceso debe tener solo los permisos que necesita.

En AWS se usa IAM para gestionar usuarios, roles, políticas y permisos. En Azure, el servicio de identidad principal es Microsoft Entra ID, antes llamado Azure Active Directory. En Google Cloud se usa Cloud IAM. Aunque cada proveedor tiene sus nombres, la idea es similar: controlar quien puede hacer que, sobre que recurso y en que condiciones.

Variables de entorno

Uno de los errores mas comunes es dejar una contraseña o token dentro del repositorio. Por ejemplo:

const password = "Pwd123";

Esto es peligroso porque si el repositorio se hace publico, esa credencial queda expuesta. La practica correcta es usar variables de entorno:

const password = process.env.DB_PASSWORD;

Y el archivo .env debe estar dentro de .gitignore:

.env

En producción, esas variables se configuran desde el panel de Vercel, Netlify, Azure, AWS o Google Cloud, no dentro del código.

Soberanía de datos

La soberanía de datos significa saber donde se almacenan los datos y que leyes se aplican sobre ellos. No es lo mismo guardar información de usuarios europeos en una región europea que en otra zona con normas diferentes.

Para una aplicación real, especialmente si maneja datos personales, hay que hacerse preguntas como:

  • ¿En que región se almacenan los datos?
  • ¿Hay copias de seguridad en otras regiones?
  • ¿Quien tiene acceso administrativo?
  • ¿Se cumplen normas como RGPD si los usuarios son de la Unión Europea?

3. Escalabilidad y disponibilidad: que pasa si mi web se vuelve viral

Imaginemos que publicamos una web de venta de entradas. Al principio entran 20 personas y todo va bien, pero de repente un influencer comparte el enlace y entran miles de usuarios en pocos minutos.

En un servidor mal preparado, podrían pasar varias cosas:

  • La CPU se satura.
  • La memoria se agota.
  • La base de datos recibe demasiadas conexiones.
  • La web carga muy lento.
  • El servidor deja de responder.

La escalabilidad intenta evitar esto. En cloud, muchos servicios pueden crear más instancias automáticamente cuando aumenta el tráfico. Eso se llama autoescalado.

Hay dos formas de verlo:

  • Escalado vertical: hacer mas potente una máquina, por ejemplo más CPU o RAM.
  • Escalado horizontal: crear más instancias de la aplicación y repartir el tráfico entre ellas.

Para aplicaciones modernas, el escalado horizontal suele ser muy importante. Si una instancia no puede con todo, se levantan mas instancias y un balanceador reparte las peticiones.

La disponibilidad, por otro lado, significa que la aplicación siga funcionando aunque haya fallos. Para mejorarla se usan ideas como:

  • Desplegar en varias zonas.
  • Usar balanceadores de carga.
  • Tener backups.
  • Separar frontend, backend y base de datos.
  • Monitorizar errores y tiempos de respuesta.

4. Comparación rápida: AWS, Azure y Google Cloud

Plataforma Servicio ejemplo Ideal para Punto fuerte
AWS App Runner Apps web/API en contenedores Integration con ecosistema AWS y despliegue gestionado
Azure App Service Webs, APIs y stacks variados Integration con Microsoft, GitHub y Entra ID
Google Cloud Cloud Run Contenedores serverless Escalado automation, HTTPS gestionado y posible escala a cero

La mejor plataforma no existe sino que depende del equipo, el presupuesto, los conocimientos previos, la región de datos y el tipo de aplicación.

Para empezar, Vercel o Netlify son opciones muy prácticas. Para una API o backend mas completo, Azure App Service o Google Cloud Run pueden ser alternativas muy buenas.

5. Actividad práctica: El Desafío del Viral

Situación

Has lanzado una web de venta de entradas y un influencer la acaba de compartir. Tienes 5 minutos para que la web sea escalable y no muera por el trafico.

Objetivo

Desplegar una web estática en una plataforma cloud moderna y comprobar que usa buenas practicas básicas de seguridad.

Paso 1: sube el código a GitHub o GitLab

Crea un repositorio con tu web. Puede ser una pagina HTML/CSS/JS sencilla o una aplicación hecha con React, Angular, Vue o Astro.

Antes de subirlo, revisa que no haya datos sensibles:

.env
node_modules/
dist/

El archivo .env debe estar ignorado por Git.

Paso 2: conéctalo a Vercel, Netlify, AWS Amplify o Azure Static Web Apps

Para una web estática, Vercel y Netlify son muy directos:

  1. Inicia sesión.
  2. Importa el repositorio.
  3. Elige el framework si lo detecta automáticamente.
  4. Pulsa deploy.

La plataforma construirá la web y la publicara en una URL HTTPS.

Paso 3: configura una variable de entorno

Aunque una web estática no debería exponer secretos privados en el navegador, este paso sirve para practicar una buena costumbre.

Ejemplo:

PUBLIC_SITE_NAME=Entradas Cloud

Si fuera una aplicación con backend, una contraseña de base de datos nunca debería estar escrita en el código ni visible en el frontend. Debe configurarse como secreto o variable de entorno en el proveedor de despliegue.

Paso 4: comprueba el certificado SSL

Abre la URL desplegada y revisa que empiece por:

https://

También debe aparecer el candado en el navegador. Esto indica que la comunicación viaja cifrada mediante TLS.

Resultado esperado

Al terminar la práctica, deberías tener:

  • Un repositorio publico sin secretos.
  • Una web publicada en una plataforma cloud.
  • HTTPS activo.
  • Variables de entorno configuradas correctamente.

6. Test de autoevaluación

A continuación tenemos un test de 10 preguntas en Kahoot para comprobar si se han entendido los conceptos principales.

Enlace al test: Kahoot - Arquitectura y Seguridad en la Nube

Fuentes consultadas