Cum ar trebui gandite aplicatiile de maine in cloud ?

Partea de securitate e foarte importanta pe cloud, bazele de date de la yahoo au fost sparte de nenumarate ori, astfel incat numai folosesc adrese de yahoo nicaieri, ca sa nu mai spunem de spam-ul de la yahoo, astea sunt cateva din elementele de baza care fac diferenta, la care se adauga celelalte aspecte tehnice, la polul opus este google care are un cloud model pe partea de securitate, spam, etc.

Edit: JIRA imi zice de cateva ore is setting up si nu e accesibil, bine ca Google nu face asa ceva.

Cateva concepte foarte importante :

  1. Frontend-ul trebuie total separat de backend
  2. Resursele frontend-ului trebuie stocate pe un CDN distribuit.
  3. Backend-ul trebuie sa fie mereu in spatele unor proxy-uri de load balancing si honeypot.
  4. Round robin DNS la backend si frontend. (un singur DNS duce la mai multe ip-uri)
  5. Codul care prelucreaza datele nu trebuie sa aiba stare. (docker/virtualizare)
  6. Baza de date trebuie sa fie distribuita si in spatele unor proxy-uri cu o latenta cat mai mica.
  7. In cazul unor sisteme mai complexe baza de date trebuie total criptata cu cryptdb sau solutii asemanatoare. In acest fel evitam sa avem probleme chiar daca baza de date este accesata de terti.
  8. Se utilizeaza Ceph/GlusterFS/o baza de date distribuita sau o solutie asemanatoare pentru a stoca fisierele binare.
  9. Proxy-urile interne si proxy-urile externe trebuie sa fie pe doua retele izolate. (adica ai o retea prin care iti comunica serverele si o retea prin care iti comunica clientii)
  10. Infrastructura cloud se bazeaza pe dns-uri interne si externe, nu folosesti ip-uri. Eventual MAC-ul fiecarei interfete va fi utilizat pentru securitate.
  11. Cautarile si computatiile complexe trebuie efectuate printr-un cluster cu Apache Spark/Elastic Search etc.

Ideal ar fi si sa stim cate operatii ia in total fiecare functie si sa avem o limita ca sa putem estima cat mai precis de cate servere avem nevoie si cand suntem atacati.

5 Likes