This document discusses the challenges of developing distributed applications in the cloud. It describes key cloud computing concepts like infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). Specific challenges covered include session management, storage management, using distributed databases, and communication between cloud and on-premise systems. Solutions for session management using caching and affinity are presented.
Pregătire: management portal, uptime monitoringPrezentare speakeriAgendă: vom împărtăși din experiența noastră în implementarea unei platforme în cloud pentru Opel
Ceintelegetiprin cloud computing?Stick premiu
Folosirearesurselor hardware și software livrate sub formă de serviciu
IaaS – servere, reteua, load balancer, firewall, masini virtualePaaS – sistem de operare, runtime, baze de date, web server, apiSaaS – nu trebuie instalat la client, nu trebuie gestionată infrastructura sau platforma
Poateavem startup-uriprinIașiScalabilitate, investiție minimăCe se intamplă de Black FridayUptime greu de garantat, probleme server propriu: os update, crash
Ceintelegetiprinscalabilitate?Capacitateaunui sistem de a face față și a se adapta unui încărcări suplimentareVerticala: un server maiputernic. Existalimitati. Pretulcreste exponential de la un punctincoloOrizontala: maimulteservere. Aspecte specifice de avut în vedere
Câți de 9 oferă? Cum:redundanță99,90% 1 instanță – 1minutși jumatatepezi downtime99,95% >1instanță – sub 1 minutpezidowntimeGrafic
FirewallDDOS protectionHTTPSNetwork Segmentation – rețea privată după load balancer, segmentare pe rețeleSecuritate fizică
Ceeste o aplicațiedistribuită?CD premiu
Un program proiectat să ruleze pe mai multe server simultan pentru a îndeplini un obiectiv comunScop : Scalabilitate, uptime ridicatCum – gandimapilicatia in mod distribuitpemaimulteniveleNivelulaplicatiei - maimulteinstanteNivelulcacheului - cache distribuitNivelulstocarii - stocaredistribuitaNivelulbazei de date - baza de date distribuita
Provocaricheie : SesiuneStocareBaze de dateComunicații
Sesiune web : perioada de timp in care userulinteractioneaza cu o aplicatie webProvocarea majoră: natura stateless a clouduluiProbleme: sincronizareaobiectelorîn memorie, stocareadatelor de sesiuneUndestocamdatele de sesiune? – ASP.NET –InProc (memory of ASP.NET worker process)ExplicațieschemăExemplele cu ASP.NET
3 instanțe, sesiune defaultProbleme
Solutiile cloud trebuieganditepentruredundantaSession affinity – redirectareaclientuluispreaceeasiinstantaTable storage – ieftindarmaiincetdecatcelelaltesolutiiSQL Azure – potrivit in special dacafolositideja SQL Azure, sesiunileexpiratetrebuiescsterseprinapelareaunei proc. Stoc
- Serviciu de cache pentruaplicatiileceruleaza in Windows Azure - Cache distribuit - Investitie minima –foloseste din memoriainstantei (procent) -Scalabil – memoriacresteodata cu numarul de instante - Potrivitpentru a stoca date de sesiune, dar nu numai (cache la nivel de aplicatie) - Tehnica de evacuare - Least Recently Used – celmaiputinfolosit item
- Caching tab terms explained
Imagini către browse-reStocare fișiere pentru acces distribuitStreaming video și audio
Blob Storage– serviciu pentru stocarea unor cantități mari de date nestructuratePoate conține până la 100TB de datePartitionare + Georeplicare
ContainersNo folder structure
Disponibilitate ridicată – prinbackup în mai multe locațiiElasticitate – query-urile consumatoare de resurse au prioritate scazută pentru a nu le bloca pe celelalteProvisioning – Alocarea resurselor în funție de prioritatea query-urilorBenchmarks
Motoarele anti-spam sebazeazamultsipereputatia server-ului de pe care pleaca email-ulAdresele IP suntalocatedoar in momentul deploymentSecurizare prin firewall pe clase de IP-uri și autentificareuser/parolă
Pentru a avea o aplicație distribuită scalabilăsi cu uptimeridicattrebuie tratate provocările de:Gestiunea sesiunii, Gestuinea stocării și distribuirea bazei de date