Idei
Articole tehnice și perspective despre inginerie software, AI pragmatic și arhitectură modernă.
Plătesc $200 pe lună pentru Claude. Iată cât ar costa la tarif API.
Anthropic a depus un S-1 confidențial pe 1 iunie. Presa vorbește de o listare în octombrie, neconfirmată de companie. Eu sunt un contractor solo care își fac...
Infrastructure as code nu înseamnă Terraform. CDK, Pulumi și întrebarea care decide de fapt
Pe undeva prin 2019, „infrastructure as code” a devenit sinonim cu Terraform în majoritatea conversațiilor, așa cum „căutare” înseamnă Google. E un default r...
Ce a scris Claude Code din infrastructura noastră, și ce am refuzat să facem merge
Folosim Claude Code zilnic pentru muncă de infrastructură, pe o platformă pe care o operăm pentru un client din SUA: stack-uri CDK, scripturi de deploy, poli...
Cozi fără Kafka: SQS, EventBridge și singurul loc în care chiar am avut nevoie de un stream
Fiecare platformă ajunge la momentul în care o cerere face prea multe. Handler-ul de checkout trimite un email, actualizează indexul de căutare, anunță depoz...
DynamoDB single-table sau Postgres? Cum am ales, pe fiecare workload, și unde am greșit
Dezbaterea DynamoDB versus Postgres e purtată de obicei ca o religie. O tabără spune că datele relaționale aparțin unei baze relaționale și că designul singl...
Imagini Docker pentru Node în 2026: multi-stage, distroless și imaginea de 1,1 GB care a ajuns la 140 MB
Primul Dockerfile din majoritatea proiectelor Node are unsprezece linii, pleacă de la node:20, copiază repository-ul, rulează npm install și npm run build și...
Un monorepo cu trei aplicații: cum construim doar ce s-a schimbat și am dus pipeline-ul de la opt minute la trei
Trei aplicații Next.js, patru pachete partajate, un singur repository. Asta e forma platformei pe care o rulăm pentru un client din SUA, și e forma corectă: ...
Rate limiting: la margine, în gateway sau în aplicație? Trei straturi, trei treburi
„Adaugă rate limiting” e un tichet de un rând care ascunde trei probleme diferite. Cineva bate ruta de login de la un singur IP: ăla e abuz, și vrei să fie o...
Health check-uri care mint: șase moduri în care serviciul tău zice „ready” când nu e
Un health check e un contract între aplicația ta și lucrul care îi rutează traficul. Router-ul întreabă „poți lua un request?” și aplicația răspunde. Când ră...
Backup-urile pe care nu le-ai restaurat niciodată nu sunt backup-uri. Un exercițiu de restaurare, cronometrat.
Fiecare data store din AWS are backup-uri pornite implicit sau printr-o bifă. Aurora păstrează backup-uri automate. DynamoDB are point-in-time recovery. S3 a...
Un runbook de incident pentru o echipă fără on-call
Companiile mari au rotații de on-call, incident commanderi, matrici de severitate și un buget de tooling pe măsură. O echipă de trei are un chat de grup și p...
Rotația parolei de bază de date fără downtime: lucrul pe care îl tot amâni
Toată lumea e de acord că parola bazei de date ar trebui rotită. Aproape nimeni n-o face, iar motivul nu e lenea. E că prima dată când încerci, ceva se stric...
WAF pentru o aplicație Next.js: regulile managed care blochează trafic legitim, și ce am făcut cu ele
Să pornești AWS WAF în fața unei aplicații web e un construct CDK și o bifă de grupuri de reguli managed. E și, din experiența noastră, garantat să blocheze ...
Secrete în CDK: Secrets Manager, Parameter Store și niciodată nimic în template
Un template CloudFormation e un fișier text. E stocat de CloudFormation, e în cdk.out pe discul fiecărui developer, e în logurile de CI de la ultimul synth, ...
Reserved, Savings Plans sau nimic: când un angajament pe un an chiar merită la scară mică
AWS îți dă până la 72 % reducere la compute dacă promiți să continui să plătești pentru el timp de trei ani. Numărul e real și e în fiecare checklist de opti...
NAT Gateway e cea mai scumpă linie pe care n-o vezi
Nu e pe factură. Nu ca „NAT Gateway”, în orice caz. E sub EC2-Other, un tip de utilizare numit NatGateway-Hours, lângă altul numit NatGateway-Bytes, iar în v...
Deploy-urile fără downtime nu sunt o funcție a platformei. Sunt o disciplină a migrărilor de schemă.
Orice platformă de containere îți va spune că face deployment-uri fără downtime. App Runner, Fargate, Cloud Run, Kubernetes: toate pornesc instanțe noi, aște...
Dev, staging și prod din prima zi: de ce o echipă de trei n-ar trebui să aștepte
„Separăm mediile mai târziu, când avem utilizatori.” Am auzit propoziția asta de la fiecare echipă mică cu care am lucrat și am spus-o și noi. Sună a prudenț...
Nu ai nevoie de Kubernetes. Ai nevoie de un Dockerfile bun și de un loc unde să-l rulezi.
La câteva luni, o echipă de trei până la cinci ingineri ne întreabă dacă ar trebui să se mute pe Kubernetes. Aplicația e un front-end web, un API, câțiva wor...
Cât costă cu adevărat observabilitatea managed la 100 GB pe zi: Datadog, Grafana Cloud, self-hosted
Factura de observabilitate e cea care surprinde de două ori. Prima dată, când sosește și e o treime din factura de compute. A doua, un an mai târziu, când e ...
Alerte care nu știu în ce cloud rulează
Fiecare cloud îți vinde alarme. CloudWatch Alarms, reguli de alertă Azure Monitor, politici de alertare Cloud Monitoring: fiecare e preconfigurată, fiecare e...
Nici trace-urile tale nu ar trebui să știe în ce cloud rulează
Am argumentat că logurile aplicației n-ar trebui deținute de cloud: aplicația emite, un agent ștampilează cloud-ul pe ele, un backend neutru le stochează. Lo...
Același tag, niciun deploy: de ce cdk deploy cu o imagine neschimbată nu face nimic, și scriptul de 300 de linii pe care l-am scris în jurul lui
Două povești despre același pipeline de deploy, spuse împreună pentru că a doua există din cauza primei. Prima e un bug care nu e bug: am reconstruit o imagi...
Politici de protecție a datelor în CloudWatch: mascarea PII înainte să ajungă în loguri
Un inginer de suport a cerut un log de debug pe o rută de API, „doar o săptămână”, ca să vâneze un bug în validarea adreselor. Linia de log era tot corpul re...
Aurora Serverless v2 după șase luni: pragul de 0,5 ACU și mitul auto-pause
Aurora Serverless v2 se vinde cu o singură propoziție: plătești capacitatea de bază de date pe care o folosești, scalată în fracțiuni de secundă. Șase luni d...
Limita de 500 de resurse din CloudFormation și cum am spart un stack fără să pierdem date
cdk deploy a picat cu un mesaj pe care nu-l mai văzuserăm: Template format error: Number of resources, 503, is greater than maximum allowed, 500. Nimic din d...
GitHub OIDC în loc de access keys: un rol de deploy per cont AWS, zero secrete în CI
Există o cheie de acces AWS cu viață lungă în secretele repository-ului tău de GitHub. A fost creată de cine a configurat primul pipeline, are AdministratorA...
Config la build vs config la runtime în Next.js pe containere: bug-ul care a avut nevoie de două deploy-uri
Am comutat un feature flag. Flag-ul era o variabilă de mediu pe serviciul App Runner, NEXT_PUBLIC_NEW_CHECKOUT=true, schimbată prin CDK, desfășurată curat, s...
Medii de preview per pull request pe AWS, fără Vercel
Code review-ul are un plafon. Un reviewer poate citi un diff și poate raționa pe el, dar nu poate da click pe el. Pentru un produs cu UI, cel mai util coment...
Factura AWS a unui startup de trei oameni, linie cu linie
Toată lumea publică diagrame de arhitectură. Nimeni nu publică factura. Păcat, pentru că factura e locul unde arhitectura devine sinceră: serviciul de care e...