SlideShare uma empresa Scribd logo
1 de 60
Το Azure Δεν είναι
χορτοφάγο
ΠΑΝΑΓΙΩΤΗΣ ΚΑΝΑΒΟΣ
DOTNETZONE MODERATOR
59ο DotNetZone Event
Το Azure είναι …
 Φτηνό Hosting
 Για startups
 Για περιστασιακή χρήση
 Για να στηρίξει mobile apps
 Ικανό να σηκώσει ολόκληρη την παραγωγή μίας επιχείρησης
Το Σενάριο ONLINE TRAVEL AGENCY
Online Travel Agency (Μεγάλο)
 Ευρωπαϊκό Top 10, 3η στη Ρωσία
 Εκατομμύρια αναζητήσεις/μέρα
 Χιλιάδες πωλήσεις/μέρα
 ~ 5 Billion Events/year
 Μερικά εκατομμύρια/μέρα
 50+ servers
 Δεκάδες εφαρμογές, services
 Διάρκεια αναζήτησης: ~6 sec
 10 sec = The china syndrome
Μία απλή αναζήτηση
Web Site Back End
GDS
ΑΤΗ – SKG
21/3 – 5/4
WS
Request
Search time 1-6sec
Response
100-300 results
2 MB
Parse
Trim junk
Price
Add extra info (punctuality, reliability)
Build out/return combinations
REST
call
Recommendations
Render
Μία απλή κράτηση
Web Site Back End
GDS
OA1234
Φουφουτόπο
υλος
Reservation
Request
Record reservation
Start cancellation timers
REST
call
Display
Reservation info
Μία απλή πληρωμή
Web Site Back End
GDS
OA1234 ..
Issue Ticket
Payment call
Display ticket info
Payment
Gateway
Πληρωμή με
πιστωτική
Approval code
CRM
Η Αρχιτεκτονική
 Front end web sites
 Ruby
 ALT.NET κανείς ?
 Αναζητήσεις, κρατήσεις πληρωμές
 Πολλαπλά Backend services σε .ΝΕΤ
 REST API
 Integration με third parties
 Mobile Apps
 Background batch jobs
 Ακυρώσεις
 Ανανεώσεις κρατήσεων …
 Όχι Microservices, Lots of services
Integration με τρίτους
 GDS – Αυτοί που πουλάνε τα εισιτήρια
 Ας πούμε Web Services
 Βαρύ payload  μπόλικο processing
 Payment Gateways
  Payments μέσω web services
  Financial Reports σε οτιδήποτε (WS, flat files, screen scraping)
 Αεροπορικές
 Κυρίως financial
 IATA
Η υποδομή
Front End Web Servers
Backend Services
Batch Jobs
CRM
Load Balancer
Redis Cluster
Couchbase Cluster MySQL
SQL Server
SNS
SQS
Οι προκλήσεις
 Μεγάλος αριθμός αναζητήσεων
 Ενδοεπικοινωνίες συστημάτων
 End-to-End παρακολούθηση κράτησης
 Συνεχής εξέλιξη
 Ασταμάτητη αλλαγή
Γιατί Cloud;
 Αξιοπιστία
 Κι αν πλημμυρίσει το data center;
 Κεραυνός στον ουδέτερο
 Ατυχείς πρωτοβουλίες
 Μακαρονάδα
 Κι ας είναι ακριβότερο, είναι φθηνότερο
 < 5 IT
 20+ Developers
 DevOps!
 You build it, you deploy it
Οι ανάγκες
Ενδοεπικοινωνίες
 Πολλά services
 Από CRM μέχρι τρέχουσες ισοτιμίες
 Αποφυγή tight coupling
 Κι αν είναι κάτω;
 Deployment
 Fault
 Meltdown
Ενδοεπικοινωνίες – Λύσεις
 Publish/subscribe
 Queued delivery
 Συνήθως τα ίδια προϊόντα on premises
 Διαφορετικές υπηρεσίες στο Cloud
 Διαφορετικά lifetimes, persistence
Queues και Pub/Sub
Hosted Queues
 Persistent
 Rabbit MQ
 In Memory
 Zero MQ, Redis Lists και blocking
 Και queueing και pub/sub στο ίδιο σύστημα
 Χρειάζονται VMs
 AMQP protocol – συμβατότητα με Azure
Service Bus
 Εναλλαξιμότητα ?
Cloud Services
 Pub/sub με Amazon SNS/Azure Service Bus
 Καλό για microservices, REST APIs
 Queueing με Amazon SQS/Azure Queues
 Κόλλα και σπάγκος
 Δεν χρειάζονται VMs
Πολλαπλά συστήματα
 Best of breed
 Managed ή VM;
 Κόστος;
 Διαθεσιμότητα;
 Διαχείριση;
 Κόστος αδειών (ακόμα και για open source)
Managed
 Μικρότερο διαχειριστικό κοστος
 Χωρίς άδειες
 Διαθεσιμότητα
 Scalable
 Pay as you go
 Ακριβότερο operation σε μεγάλη χρήση
 SaaS για developers ?
VM deployment
 Φθηνότερη χρήση σε αρκετές περιπτώσεις
 Up front cost vs pay per use
 Μπελάδες και πονοκέφαλοι
  Κόστος διαχείρισης
  Ευθύνη για availability, recovery
Πολλά VM
 Πολλαπλά λειτουργικά
 Linux
 Windows
 Καλύτερα βαρύτερο VM παρά πολλά μικρά
 Azure Web Sites, Web Roles θέλουν το αντίθετο
 Ανάγκη για
 Αυτοματοποιημένο Deployment
 Cross platform monitoring
 Containers και Docker!
Docker ?
 Application Isolation μέσα σε containers
 Κάθε App βλέπει το δικό του περιβάλλον, hardware resources
 Κάθε container μπορεί να κάνει reference άλλα containers
 Περίπου σαν package dependencies
 Εύκολο να κάνεις deploy πολλές εφαρμογές σε ένα VM
 Δεν χρειάζεσαι ένα VM Image με-απ-όλα
 Μα δεν το είχαμε αυτό στα mainframes του `80?
Πολύ processing
 GDS responses ακόμα και 2 MB
 Mainframe-style communications
 Χεράτη διαχείριση συνδέσεων
 Parsing, pricing
  Πολύ CPU
 Αποφυγή dumb processing όσο γίνεται
 Οι γκάφες κοστίζουν
Server Meltdown
Server Meltdown - 1
 Load Balanced φάρμα
 Μεγάλος φόρτος
 Πρώτος server κολλάει στα 100% CPU
 Timeouts, App pool Recycle
 Περισσότερα requests στους υπόλοιπους server
 Ο δεύτερος server φτάνει 100%
 Κάτσε κάτω από τη μπάρα!
 …
Server Meltdown - 2
 Το αυτόματο scale out *μπορεί* να βοηθήσει
 Αν υπάρχει μεγάλος φόρτος
 Μπορεί να βλάψει
 Αν οφείλεται σε γκάφα
Ζέσταμα
 Δεν αρκεί να σηκώσεις ένα VM ή Site
 Ζέσταμα local cache
 Άνοιγμα συνδέσεων με GDS, Databases
 Μεγάλο CPU στο VM Αργή απάντηση network layers
 Timeouts χωρίς καν σύνδεση
 Network virtualization matters!
 Amazon only issue?
Δεδομένα
 Διαφορετικές ανάγκες
 Μεγάλες και ακριβές αναζητήσεις, δεν σπάνε
 Κρατήσεις, πληρωμές = κλασσικό OLTP
 Reference data
 Αεροδρόμια, Αεροπορικές, Προορισμοί
 Logs και events
Δεδομένα – Λύσεις
 Document databases
 Memcache, Redis για reference δεδομένα, volatile data
 Κλασσικό OLTP
Caching
 Ακριβά searches
 Αλλά και μεγάλα DTOs
 Πολλά Reference data
 Πολλοί servers/ clients
 Μεγάλο traffic - > μεγάλο κόστος lookup
 Συγχρονισμός μεταξύ servers
 Μα πότε άλλαξε η τιμή;
End-to-End παρακολούθηση
 Γίνεται και με Events, Logs
 Όχι ό,τι ωραιότερο
 Workflow
 Απλουστεύει τον κώδικα και τα services
 Διευκολύνει failure handling, timeouts, compensations
 Orchestration μεν φτάνει να μην είναι βαρύ σαν συμφωνική ορχήστρα
 Sagas αλα NServiceBus
 Μάλλον το καλύτερο
 Έξτρα framework
Deployment & Automation - 1
 Windows Group Policies
 Ένα λειτουργικό
 Πολλά μηχανήματα
 Drop-in deployments
 Ανεξάρτητα πακέτα
 Το αντίστροφο
 Δεκάδες servers
 Διακριτοί ρόλοι
 Πολλαπλά βήματα
 Αλληλεξαρτήσεις
 Πολλά Λειτουργικά
 Rollout waves
Deployment & Automation – Puppet,
Chef
 H Microsoft λατρεύει τα Puppet και Chef!
 Declarative ορισμός του configuration
 VMs, services, accounts
 Περιγραφή σε Ruby
 Cross platform
 Windows Specific
 Octopus Deploy
Monitoring
 Διαφορετικές μορφές
 Admins want Performance Counters
 Devs want Log records
 Biz want business events
 Different systems
Big data
 >1 εκατομμύριο search τη μέρα
 50000000000 events το χρόνο
 Κάθε αναζήτηση, κράτηση προκαλεί πολλαπλά events
 Logs σε κάθε βήμα
 Ανάγκη για
 Document DBs
 Blob storage
 Splunk για log processing
Internet of Things ?
 Δεν είναι ένα app που μιλάει με ένα server
 Χιλιάδες συσκευές χωρίς UI που στέλνουν συνέχεια events
 «Μερικοί» servers που στέλνουν εκατοντάδες events το δευτερόλεπτο
Analytics & recommendations
 Μασάει data, βγάζουμε μοντέλα
 Αποτελέσματα καμπάνιας – offline
 Recommendations – online
 Πολλές πηγές και μορφές
 Βάσεις
 Χύμα κείμενο
 REST calls
 Ανάγκη για batch processing
Τι προσφέρει το
Azure
Ενδοεπικοινωνίες – Βασική ιδέα
 Κάθε “service” ορίζει ένα topic ή queue
 Οι clients κάνουν post στο queue
 Τα Azure Service Bus queues έχουν ένα subscriber
 Topics – πολλοί subscribers
 Azure Ta Storage Queues απαιτούν polling
 Αλλά είναι πιο γρήγορα
 Scale out με το μέγεθος του Queue 
Ενδοεπικοινωνίες - Υπηρεσίες
 Azure Service Bus Queues/Topics
 Pub/Sub
 256ΚΒ per message, 5 GB per topic, indefinite lifetime 
 Slower than Storage queues
 AMQP  συμβατό με άλλα queue services!
 Δεν έχει retries
 Azure Service Bus Relay
 Επικοινωνία με on-premises! (λογιστήριο)
 Azure Storage Queues
 64KB per message, 7 days lifetime
 Επιτρέπει retries
 Γρηγορότερο
 Κόστος?
 Βγάλε άκρη
Storage
 SQL Database
 Azure DocumentDB
 Redis
Azure SQL Database
 Σχεδόν Enterprise στην V12 Preview (Premium)
 Table Partitioning
 Online Indexing
 Columnstore Indexes
 Τρέμε Redshift …. Ας πούμε
 Γενικώς
 Windowing functions
 Change Tracking
 500 GB max. Not quite IoT scale big data
 Cloud only extras!
 Row-level security
 Data Masking
Azure SQL Database Scale Out
 Elastic Scale
 Sharding
 NOT the same as clustering
 I hear voices ….
Azure DocumentDB
 Δεν είναι MongoDB δεν είναι RavenDB
 Docs as Json objects
 Fully indexed
 Κατάλληλη για BI σενάρια
 Αποθήκευση των «raw» events ως docs αντί να τα πετάμε
 Νέα επεξεργασία όταν αλλάξουν οι απαιτήσεις/διαδικασίες
 Όριο 512KB για την ώρα
 Ακατάλληλο για search result caching (maybe)
 Κατάλληλο για τις περισσότερες άλλες περιπτώσεις
Caching
 Redis!
 Recommended for all new development
 In memory
 Clustered
 Rich types
 Lists
 Dictionaries
 Atomic operations
 Pub/sub μέσω blocking
 Lua scripting
 Transactions!
 No persistence
Πολλαπλά συστήματα
 Ποικιλία Linux
 Docker στa Linux, έρχεται και για Windows
 Κυρίως PaaS, όχι τόσα managed applications
 Long running services μέσω
 Worker Roles
 Web Jobs
 Ή πολλά services σε ένα VM?
Deployment
 Step by step
 Azure Automation
 Powershell scripts
 Worklflow
 Συνεργάζεται με Puppet, Chef
 Ώρα για ζέσταμα!
 Declarative
 Powershell DSC
 Puppet/Chef
 Τα θέλουμε και τα δύο
 Cross platform
 OneGet
 Κλασσικό Package management
αλα rpm
Event Processing
 Internet of Things Scale
 Millions per second
 Event Streams
 Event Hubs
 Κατάλληλο για Infrastructure monitoring
 Χρησιμοποιείται από το εσωτερικό IT της Microsoft
Machine Learning
 Ίσως το δυνατότερο προτέρημα
 Machine Learning Studio
 Hadoop
 Python
 R – η δημοφιλέστερη γλώσσα για στατιστικά
 Εξαγορά της Revolution Analytics
 Batch Processing μεγάλου όγκου
Night of the howling machines!
 Models as REST services
  REAL TIME!
 Δένει με Event Processing
 Recommendations
 Fraud detection
 Anomaly detection
 Attack detection και αντιμετώπιση
Events & Machine Learning
 Νι Χάο Πεν Γιου
 Εντοπισμός ανώμαλων κλήσεων
 Αναγνώριση
 Αντιμετώπιση
 Redirect σε άλλους server
 Αλλαγή κανόνων σε load balancer, IP restrictions
Business Intelligence
 Power BI μέσω Office 365
 Hosted BI, reporting στο ίδιο σύννεφο
 Άρα γλυτώνεις το bandwidth cost
 Χωρίς πονοκεφάλους για πρόσβαση χρηστών, VPNs
Αγορά και αδειοδότηση
 Pay as you go ή μπροστά
 Ακόμα δεν έχει auctions (νομίζω)
 Παίζει όμως ακόμα σε licensing πακέτα
 Μπορείτε ακόμα να ζητήσετε έκπτωση 
 Και να πονοκεφαλιάσετε με το τι συμφέρει
Σύγκριση με το
Am..άλλο
Azure vs Amazon
Azure
 Καλύτερο PaaS
 Βάζει Docker
 Το καλύτερο Docker για Windows
 Managed Υπηρεσίες
 Άριστο Integration με on-premises
Amazon
 Καλύτερο IaaS
 Έχει ήδη Docker
 Όχι όμως για Windows
 Managed Εφαρμογές
 Έχει ήδη πολλά
 On-Prem ?
Pub/Sub και Queues
Azure
 Polled queues
 Καλύτερο Pub/Sub
 Service Bus - indefinite lifetime
 Service Bus integration με on-premise
συστήματα
 AMQP
 χρήση διαφορετικών queues
Amazon
 Polled queues
 SNS κρατάει τα μηνύματα μέχρι 1 ώρα
 Ανάγκη για Queue subscriptions και
polling
 Full featured database
 Γρήγορο insert σε columnstores
 Δεν έχει clustering
 Autoscale
 Αλλά δεν είναι το ίδιο
SQL Database vs Redshift
SQL Database Redshift
 Έχει clustering=Θέλει clustering
 Ειδικευμένου σκοπού
 Γρήγορο bulk insert
 ΑΑΑΡΡΡΓΓΓΟΟΟ row-by-row
Business Intelligence
Azure
 Power BI
 Από τα καλύτερα στην κατηγορία
Amazon
 E?
 Βάλε μωρέ ένα QlikView image και θα
τα βρούμε
Event Processing & Machine Learning
Azure
 Event Hubs, Streams
 Hadoop
 Deluxe Machine Learning 
 Models as Services
Amazon
 Kinesis, AWS Lambda
 Hadoop
 Build your own
Workflows and Orchestration
Azure
 Biztalk Services
 Complex, Orchestration
 Connectors and EDI, oh my!
 Πληρωμή με την ώρα
 Self-hosted Workflow Foundation
 In-process ή AppFabric
Simple Workflow Service
 Simple, workflow
 Πληρωμή με την εκτέλεση, χρόνο
διατήρησης του record
 Κάποια στιγμή πρέπει να σβηστεί
Αγορά
Azure
 Ασκήσεις επί χάρτου
 Και σε licensing πακέτα για on prem
 Μπορείτε να ψήσετε τον account
manager
 Πονοκεφάλιασμα με τα licenses
Amazon
 Ασκήσεις επί χάρτου
 Licensing? Τι’ν’τουτ?
 Ο Account manager είναι στις
Μπαχάμες
 Πονοκεφάλιασμα με τα auctions

Mais conteúdo relacionado

Semelhante a Το Azure δεν είναι χορτοφάγο! - 59ο DotNetZone Event

Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Nikos Dimitrakopoulos
 
Υπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικό
Υπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικόΥπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικό
Υπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικόTilemahos Manolatos
 
The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...
The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...
The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...Panagiotis Kanavos
 
ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ
ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ
ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ 1lykspartis
 
labs.opengov: Fighting bureaucracy with the Calipso Platform
labs.opengov: Fighting bureaucracy with the Calipso Platformlabs.opengov: Fighting bureaucracy with the Calipso Platform
labs.opengov: Fighting bureaucracy with the Calipso PlatformManos Batsis
 
Ι. Χρυσάφης OTS
Ι. Χρυσάφης OTSΙ. Χρυσάφης OTS
Ι. Χρυσάφης OTSOTS SA
 
1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge Support
1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge Support1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge Support
1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge SupportAlexandros Sigaras
 
Micro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentISSEL
 
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...ISSEL
 
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup SolutionΣυμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup SolutionTicTac Data Recovery
 
Εφαρμογές Νέφους
Εφαρμογές ΝέφουςΕφαρμογές Νέφους
Εφαρμογές ΝέφουςOmada_31
 
Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168ISSEL
 
Παρουσίαση Office365_C2
Παρουσίαση Office365_C2Παρουσίαση Office365_C2
Παρουσίαση Office365_C2Aris Kolleris
 

Semelhante a Το Azure δεν είναι χορτοφάγο! - 59ο DotNetZone Event (20)

Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]Ruby On Rails Introduction [Εισαγωγή στο Rails]
Ruby On Rails Introduction [Εισαγωγή στο Rails]
 
5.3 SaaSPaaSIaaS
5.3 SaaSPaaSIaaS5.3 SaaSPaaSIaaS
5.3 SaaSPaaSIaaS
 
5.3 saas paasiaas
5.3 saas paasiaas5.3 saas paasiaas
5.3 saas paasiaas
 
Υπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικό
Υπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικόΥπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικό
Υπηρεσία Μίας Στάσης για την σύσταση επιχειρήσεων και ανοικτό λογισμικό
 
The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...
The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...
The Server-SIde Story: Παράλληλος και ασύγχρονος προγραμματισμός στο .NET - I...
 
ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ
ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ
ΤΑΞΙΔΙ ΣΤΟ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ
 
SingularLogic Galaxy
SingularLogic GalaxySingularLogic Galaxy
SingularLogic Galaxy
 
Frontend Optimizations (Greek)
Frontend Optimizations (Greek)Frontend Optimizations (Greek)
Frontend Optimizations (Greek)
 
labs.opengov: Fighting bureaucracy with the Calipso Platform
labs.opengov: Fighting bureaucracy with the Calipso Platformlabs.opengov: Fighting bureaucracy with the Calipso Platform
labs.opengov: Fighting bureaucracy with the Calipso Platform
 
DTW presentation Smart LOB
DTW presentation Smart LOBDTW presentation Smart LOB
DTW presentation Smart LOB
 
Client server computing
Client server computing Client server computing
Client server computing
 
Ι. Χρυσάφης OTS
Ι. Χρυσάφης OTSΙ. Χρυσάφης OTS
Ι. Χρυσάφης OTS
 
1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge Support
1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge Support1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge Support
1st StudentGuru Live Meeting | Imagine Cup 2011 | IT Challenge Support
 
Micro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application Development
 
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
 
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup SolutionΣυμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
Συμβουλές για σωστό και αξιόπιστο Backup - TicTac Hybrid Backup Solution
 
Εφαρμογές νέφους (cloud computing)
Εφαρμογές νέφους (cloud computing)Εφαρμογές νέφους (cloud computing)
Εφαρμογές νέφους (cloud computing)
 
Εφαρμογές Νέφους
Εφαρμογές ΝέφουςΕφαρμογές Νέφους
Εφαρμογές Νέφους
 
Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168
 
Παρουσίαση Office365_C2
Παρουσίαση Office365_C2Παρουσίαση Office365_C2
Παρουσίαση Office365_C2
 

Το Azure δεν είναι χορτοφάγο! - 59ο DotNetZone Event

  • 1. Το Azure Δεν είναι χορτοφάγο ΠΑΝΑΓΙΩΤΗΣ ΚΑΝΑΒΟΣ DOTNETZONE MODERATOR 59ο DotNetZone Event
  • 2. Το Azure είναι …  Φτηνό Hosting  Για startups  Για περιστασιακή χρήση  Για να στηρίξει mobile apps  Ικανό να σηκώσει ολόκληρη την παραγωγή μίας επιχείρησης
  • 4. Online Travel Agency (Μεγάλο)  Ευρωπαϊκό Top 10, 3η στη Ρωσία  Εκατομμύρια αναζητήσεις/μέρα  Χιλιάδες πωλήσεις/μέρα  ~ 5 Billion Events/year  Μερικά εκατομμύρια/μέρα  50+ servers  Δεκάδες εφαρμογές, services  Διάρκεια αναζήτησης: ~6 sec  10 sec = The china syndrome
  • 5. Μία απλή αναζήτηση Web Site Back End GDS ΑΤΗ – SKG 21/3 – 5/4 WS Request Search time 1-6sec Response 100-300 results 2 MB Parse Trim junk Price Add extra info (punctuality, reliability) Build out/return combinations REST call Recommendations Render
  • 6. Μία απλή κράτηση Web Site Back End GDS OA1234 Φουφουτόπο υλος Reservation Request Record reservation Start cancellation timers REST call Display Reservation info
  • 7. Μία απλή πληρωμή Web Site Back End GDS OA1234 .. Issue Ticket Payment call Display ticket info Payment Gateway Πληρωμή με πιστωτική Approval code CRM
  • 8. Η Αρχιτεκτονική  Front end web sites  Ruby  ALT.NET κανείς ?  Αναζητήσεις, κρατήσεις πληρωμές  Πολλαπλά Backend services σε .ΝΕΤ  REST API  Integration με third parties  Mobile Apps  Background batch jobs  Ακυρώσεις  Ανανεώσεις κρατήσεων …  Όχι Microservices, Lots of services
  • 9. Integration με τρίτους  GDS – Αυτοί που πουλάνε τα εισιτήρια  Ας πούμε Web Services  Βαρύ payload  μπόλικο processing  Payment Gateways   Payments μέσω web services   Financial Reports σε οτιδήποτε (WS, flat files, screen scraping)  Αεροπορικές  Κυρίως financial  IATA
  • 10. Η υποδομή Front End Web Servers Backend Services Batch Jobs CRM Load Balancer Redis Cluster Couchbase Cluster MySQL SQL Server SNS SQS
  • 11. Οι προκλήσεις  Μεγάλος αριθμός αναζητήσεων  Ενδοεπικοινωνίες συστημάτων  End-to-End παρακολούθηση κράτησης  Συνεχής εξέλιξη  Ασταμάτητη αλλαγή
  • 12. Γιατί Cloud;  Αξιοπιστία  Κι αν πλημμυρίσει το data center;  Κεραυνός στον ουδέτερο  Ατυχείς πρωτοβουλίες  Μακαρονάδα  Κι ας είναι ακριβότερο, είναι φθηνότερο  < 5 IT  20+ Developers  DevOps!  You build it, you deploy it
  • 14. Ενδοεπικοινωνίες  Πολλά services  Από CRM μέχρι τρέχουσες ισοτιμίες  Αποφυγή tight coupling  Κι αν είναι κάτω;  Deployment  Fault  Meltdown
  • 15. Ενδοεπικοινωνίες – Λύσεις  Publish/subscribe  Queued delivery  Συνήθως τα ίδια προϊόντα on premises  Διαφορετικές υπηρεσίες στο Cloud  Διαφορετικά lifetimes, persistence
  • 16. Queues και Pub/Sub Hosted Queues  Persistent  Rabbit MQ  In Memory  Zero MQ, Redis Lists και blocking  Και queueing και pub/sub στο ίδιο σύστημα  Χρειάζονται VMs  AMQP protocol – συμβατότητα με Azure Service Bus  Εναλλαξιμότητα ? Cloud Services  Pub/sub με Amazon SNS/Azure Service Bus  Καλό για microservices, REST APIs  Queueing με Amazon SQS/Azure Queues  Κόλλα και σπάγκος  Δεν χρειάζονται VMs
  • 17. Πολλαπλά συστήματα  Best of breed  Managed ή VM;  Κόστος;  Διαθεσιμότητα;  Διαχείριση;  Κόστος αδειών (ακόμα και για open source)
  • 18. Managed  Μικρότερο διαχειριστικό κοστος  Χωρίς άδειες  Διαθεσιμότητα  Scalable  Pay as you go  Ακριβότερο operation σε μεγάλη χρήση  SaaS για developers ?
  • 19. VM deployment  Φθηνότερη χρήση σε αρκετές περιπτώσεις  Up front cost vs pay per use  Μπελάδες και πονοκέφαλοι   Κόστος διαχείρισης   Ευθύνη για availability, recovery
  • 20. Πολλά VM  Πολλαπλά λειτουργικά  Linux  Windows  Καλύτερα βαρύτερο VM παρά πολλά μικρά  Azure Web Sites, Web Roles θέλουν το αντίθετο  Ανάγκη για  Αυτοματοποιημένο Deployment  Cross platform monitoring  Containers και Docker!
  • 21. Docker ?  Application Isolation μέσα σε containers  Κάθε App βλέπει το δικό του περιβάλλον, hardware resources  Κάθε container μπορεί να κάνει reference άλλα containers  Περίπου σαν package dependencies  Εύκολο να κάνεις deploy πολλές εφαρμογές σε ένα VM  Δεν χρειάζεσαι ένα VM Image με-απ-όλα  Μα δεν το είχαμε αυτό στα mainframes του `80?
  • 22. Πολύ processing  GDS responses ακόμα και 2 MB  Mainframe-style communications  Χεράτη διαχείριση συνδέσεων  Parsing, pricing   Πολύ CPU  Αποφυγή dumb processing όσο γίνεται  Οι γκάφες κοστίζουν
  • 24. Server Meltdown - 1  Load Balanced φάρμα  Μεγάλος φόρτος  Πρώτος server κολλάει στα 100% CPU  Timeouts, App pool Recycle  Περισσότερα requests στους υπόλοιπους server  Ο δεύτερος server φτάνει 100%  Κάτσε κάτω από τη μπάρα!  …
  • 25. Server Meltdown - 2  Το αυτόματο scale out *μπορεί* να βοηθήσει  Αν υπάρχει μεγάλος φόρτος  Μπορεί να βλάψει  Αν οφείλεται σε γκάφα
  • 26. Ζέσταμα  Δεν αρκεί να σηκώσεις ένα VM ή Site  Ζέσταμα local cache  Άνοιγμα συνδέσεων με GDS, Databases  Μεγάλο CPU στο VM Αργή απάντηση network layers  Timeouts χωρίς καν σύνδεση  Network virtualization matters!  Amazon only issue?
  • 27. Δεδομένα  Διαφορετικές ανάγκες  Μεγάλες και ακριβές αναζητήσεις, δεν σπάνε  Κρατήσεις, πληρωμές = κλασσικό OLTP  Reference data  Αεροδρόμια, Αεροπορικές, Προορισμοί  Logs και events
  • 28. Δεδομένα – Λύσεις  Document databases  Memcache, Redis για reference δεδομένα, volatile data  Κλασσικό OLTP
  • 29. Caching  Ακριβά searches  Αλλά και μεγάλα DTOs  Πολλά Reference data  Πολλοί servers/ clients  Μεγάλο traffic - > μεγάλο κόστος lookup  Συγχρονισμός μεταξύ servers  Μα πότε άλλαξε η τιμή;
  • 30. End-to-End παρακολούθηση  Γίνεται και με Events, Logs  Όχι ό,τι ωραιότερο  Workflow  Απλουστεύει τον κώδικα και τα services  Διευκολύνει failure handling, timeouts, compensations  Orchestration μεν φτάνει να μην είναι βαρύ σαν συμφωνική ορχήστρα  Sagas αλα NServiceBus  Μάλλον το καλύτερο  Έξτρα framework
  • 31. Deployment & Automation - 1  Windows Group Policies  Ένα λειτουργικό  Πολλά μηχανήματα  Drop-in deployments  Ανεξάρτητα πακέτα  Το αντίστροφο  Δεκάδες servers  Διακριτοί ρόλοι  Πολλαπλά βήματα  Αλληλεξαρτήσεις  Πολλά Λειτουργικά  Rollout waves
  • 32. Deployment & Automation – Puppet, Chef  H Microsoft λατρεύει τα Puppet και Chef!  Declarative ορισμός του configuration  VMs, services, accounts  Περιγραφή σε Ruby  Cross platform  Windows Specific  Octopus Deploy
  • 33. Monitoring  Διαφορετικές μορφές  Admins want Performance Counters  Devs want Log records  Biz want business events  Different systems
  • 34. Big data  >1 εκατομμύριο search τη μέρα  50000000000 events το χρόνο  Κάθε αναζήτηση, κράτηση προκαλεί πολλαπλά events  Logs σε κάθε βήμα  Ανάγκη για  Document DBs  Blob storage  Splunk για log processing
  • 35. Internet of Things ?  Δεν είναι ένα app που μιλάει με ένα server  Χιλιάδες συσκευές χωρίς UI που στέλνουν συνέχεια events  «Μερικοί» servers που στέλνουν εκατοντάδες events το δευτερόλεπτο
  • 36. Analytics & recommendations  Μασάει data, βγάζουμε μοντέλα  Αποτελέσματα καμπάνιας – offline  Recommendations – online  Πολλές πηγές και μορφές  Βάσεις  Χύμα κείμενο  REST calls  Ανάγκη για batch processing
  • 38. Ενδοεπικοινωνίες – Βασική ιδέα  Κάθε “service” ορίζει ένα topic ή queue  Οι clients κάνουν post στο queue  Τα Azure Service Bus queues έχουν ένα subscriber  Topics – πολλοί subscribers  Azure Ta Storage Queues απαιτούν polling  Αλλά είναι πιο γρήγορα  Scale out με το μέγεθος του Queue 
  • 39. Ενδοεπικοινωνίες - Υπηρεσίες  Azure Service Bus Queues/Topics  Pub/Sub  256ΚΒ per message, 5 GB per topic, indefinite lifetime   Slower than Storage queues  AMQP  συμβατό με άλλα queue services!  Δεν έχει retries  Azure Service Bus Relay  Επικοινωνία με on-premises! (λογιστήριο)  Azure Storage Queues  64KB per message, 7 days lifetime  Επιτρέπει retries  Γρηγορότερο  Κόστος?  Βγάλε άκρη
  • 40. Storage  SQL Database  Azure DocumentDB  Redis
  • 41. Azure SQL Database  Σχεδόν Enterprise στην V12 Preview (Premium)  Table Partitioning  Online Indexing  Columnstore Indexes  Τρέμε Redshift …. Ας πούμε  Γενικώς  Windowing functions  Change Tracking  500 GB max. Not quite IoT scale big data  Cloud only extras!  Row-level security  Data Masking
  • 42. Azure SQL Database Scale Out  Elastic Scale  Sharding  NOT the same as clustering  I hear voices ….
  • 43. Azure DocumentDB  Δεν είναι MongoDB δεν είναι RavenDB  Docs as Json objects  Fully indexed  Κατάλληλη για BI σενάρια  Αποθήκευση των «raw» events ως docs αντί να τα πετάμε  Νέα επεξεργασία όταν αλλάξουν οι απαιτήσεις/διαδικασίες  Όριο 512KB για την ώρα  Ακατάλληλο για search result caching (maybe)  Κατάλληλο για τις περισσότερες άλλες περιπτώσεις
  • 44. Caching  Redis!  Recommended for all new development  In memory  Clustered  Rich types  Lists  Dictionaries  Atomic operations  Pub/sub μέσω blocking  Lua scripting  Transactions!  No persistence
  • 45. Πολλαπλά συστήματα  Ποικιλία Linux  Docker στa Linux, έρχεται και για Windows  Κυρίως PaaS, όχι τόσα managed applications  Long running services μέσω  Worker Roles  Web Jobs  Ή πολλά services σε ένα VM?
  • 46. Deployment  Step by step  Azure Automation  Powershell scripts  Worklflow  Συνεργάζεται με Puppet, Chef  Ώρα για ζέσταμα!  Declarative  Powershell DSC  Puppet/Chef  Τα θέλουμε και τα δύο  Cross platform  OneGet  Κλασσικό Package management αλα rpm
  • 47. Event Processing  Internet of Things Scale  Millions per second  Event Streams  Event Hubs  Κατάλληλο για Infrastructure monitoring  Χρησιμοποιείται από το εσωτερικό IT της Microsoft
  • 48. Machine Learning  Ίσως το δυνατότερο προτέρημα  Machine Learning Studio  Hadoop  Python  R – η δημοφιλέστερη γλώσσα για στατιστικά  Εξαγορά της Revolution Analytics  Batch Processing μεγάλου όγκου
  • 49. Night of the howling machines!  Models as REST services   REAL TIME!  Δένει με Event Processing  Recommendations  Fraud detection  Anomaly detection  Attack detection και αντιμετώπιση
  • 50. Events & Machine Learning  Νι Χάο Πεν Γιου  Εντοπισμός ανώμαλων κλήσεων  Αναγνώριση  Αντιμετώπιση  Redirect σε άλλους server  Αλλαγή κανόνων σε load balancer, IP restrictions
  • 51. Business Intelligence  Power BI μέσω Office 365  Hosted BI, reporting στο ίδιο σύννεφο  Άρα γλυτώνεις το bandwidth cost  Χωρίς πονοκεφάλους για πρόσβαση χρηστών, VPNs
  • 52. Αγορά και αδειοδότηση  Pay as you go ή μπροστά  Ακόμα δεν έχει auctions (νομίζω)  Παίζει όμως ακόμα σε licensing πακέτα  Μπορείτε ακόμα να ζητήσετε έκπτωση   Και να πονοκεφαλιάσετε με το τι συμφέρει
  • 54. Azure vs Amazon Azure  Καλύτερο PaaS  Βάζει Docker  Το καλύτερο Docker για Windows  Managed Υπηρεσίες  Άριστο Integration με on-premises Amazon  Καλύτερο IaaS  Έχει ήδη Docker  Όχι όμως για Windows  Managed Εφαρμογές  Έχει ήδη πολλά  On-Prem ?
  • 55. Pub/Sub και Queues Azure  Polled queues  Καλύτερο Pub/Sub  Service Bus - indefinite lifetime  Service Bus integration με on-premise συστήματα  AMQP  χρήση διαφορετικών queues Amazon  Polled queues  SNS κρατάει τα μηνύματα μέχρι 1 ώρα  Ανάγκη για Queue subscriptions και polling
  • 56.  Full featured database  Γρήγορο insert σε columnstores  Δεν έχει clustering  Autoscale  Αλλά δεν είναι το ίδιο SQL Database vs Redshift SQL Database Redshift  Έχει clustering=Θέλει clustering  Ειδικευμένου σκοπού  Γρήγορο bulk insert  ΑΑΑΡΡΡΓΓΓΟΟΟ row-by-row
  • 57. Business Intelligence Azure  Power BI  Από τα καλύτερα στην κατηγορία Amazon  E?  Βάλε μωρέ ένα QlikView image και θα τα βρούμε
  • 58. Event Processing & Machine Learning Azure  Event Hubs, Streams  Hadoop  Deluxe Machine Learning   Models as Services Amazon  Kinesis, AWS Lambda  Hadoop  Build your own
  • 59. Workflows and Orchestration Azure  Biztalk Services  Complex, Orchestration  Connectors and EDI, oh my!  Πληρωμή με την ώρα  Self-hosted Workflow Foundation  In-process ή AppFabric Simple Workflow Service  Simple, workflow  Πληρωμή με την εκτέλεση, χρόνο διατήρησης του record  Κάποια στιγμή πρέπει να σβηστεί
  • 60. Αγορά Azure  Ασκήσεις επί χάρτου  Και σε licensing πακέτα για on prem  Μπορείτε να ψήσετε τον account manager  Πονοκεφάλιασμα με τα licenses Amazon  Ασκήσεις επί χάρτου  Licensing? Τι’ν’τουτ?  Ο Account manager είναι στις Μπαχάμες  Πονοκεφάλιασμα με τα auctions