Intro to Cloud Computing 1 Who am I? Sergejus Barinovas Software Architect at Adform Email: sergejus.barinovas@[adform|gmail].com Blog: http://sergejus.blogas.lt Twitter: @sergejusb 2 Disclaimer We do use Cloud Computing internally and we want to share our experience with you! 3 “The global cloud computing market to reach $241B in 2020 compared to $40.7B in 2010” Forrester Research 5 Gartner top 10 strategic technologies for 2012: Media Tablets and Beyond, Mobile-Centric Applications and Interfaces, Contextual and Social User Experience, Internet of Things, App Stores and Marketplaces, Next-Generation Analytics, Big Data, In-Memory Computing, Extreme Low-Energy Servers, Cloud Computing 6 “Cloud computing is the provision of dynamically scalable and often virtualized resources as a service over the Internet on a utility basis” 7 Cloud is scalable, elastic (dynamic resources), available as-a-service, based on utility billing (pay for what you use) 8 So, basically Cloud is … … elastic scalable compute resources on demand 9 But more important … … Cloud is not a technology, it is a way of THINKING 10 Cloud as a way of thinking Existing technologies adopted in a new way ex. virtualization Utility model is welcomed by everyone startups and enterprises DevOps are everywhere developers spin 100’s of servers in minutes IT operations write automation scripts 11 Cloud types Public publicly available Private built for / available inside enterprise only Hybrid on-premise with extension to public Cloud 12 Cloud offerings Infrastructure-as-a-Service or IaaS host applications Platform-as-a-Service or PaaS build applications Software-as-a-Service or SaaS consume applications 13 Infrastructure-as-a-Service Virtual machines and infrastructure on demand OS, CPU / RAM, storage, load balancer, VPN Web portal for controlling and managing servers Remote desktop / shell 14 IaaS players Amazon Microsoft RackSpace Google Terremark others 15 Platform-as-a-Service Working not with the virtual machines per se, but with the abstraction Rich set of APIs and client libraries / frameworks Automatic high-availability and load balancing Hardware and / or OS agnostic 16 PaaS players Microsoft Google Amazon SalesForce others 17 Software-as-a-Service Available for more than 10 years Hotmail, Yahoo! Mail Usually implemented as a Web application with optional on-premises extensions You don’t need to use Cloud to run SaaS 18 IT-as-a-Service 19 Sounds cool? In real-world this not always a case… 20 Infrastructure-as-a-Service No or limited options to choose hardware from HDD speed, network throughput Variant performance due to resource sharing Limited options to configure TCP ports Limited options for load balancing 21 Platform-as-a-Service No or limited options to choose hardware from HDD speed, network throughput No or very limited access to the OS internals Very restrictive firewalls / load balancers Dynamic IP addresses 22 Want to migrate to the Cloud? First change you DC oriented mindset… 23 Changes in mindset #1 Before: we have enough hardware resources powerful servers, fast hard drives, 10 Gb network After: only mid-range hardware is available no topnotch servers, little chance to get SSD 24 Changes in mindset #2 Before: number of servers is more or less fixed failures are very unlike, all maintenance and new hardware is planned in advance After: number of servers is dynamic (unknown) failures are OK, no hardware maintenance implies scale-out resilient architecture 25 Changes in mindset #3 Before: We have reliable network connection connection time-out is a BUG, not a FEATURE After: Network connection can always FAIL every operation should have retries 26 So, is Cloud cheaper? NO, unless you’ve applied one of the Cloud usage patterns 27 On and off Compute On and off workloads (e.g. batch job) Over provisioned capacity is wasted Inactivity Period Usage Average Time 28 Growing fast Compute Successful services needs to grow/scale Keeping up with growth is big IT challenge Average Usage Time 29 Unpredictable bursting Compute Unexpected/unplanned peak in demand Sudden spike impacts performance Average Usage Time 30 Predictable bursting Compute Peaks due to periodic increased demand IT complexity and wasted capacity Average Usage Time 31 To the Cloud! 32 AWS / Azure feature comparison Feature Amazon Windows Azure Compute Elastic Compute Cloud (EC2) Compute Load balancing Elastic Load Balancing (ELB) Compute Auto scaling Auto Scaling Attachable disks Elastic Block Store (EBS) Drive Blob storage Simple Storage Service (S3) Blob Storage n/a Scheme-less storage SimpleDB Table Storage Content delivery CloudFront CDN Distributed cache ElastiCache Caching Database Relational DB Service (RDS) SQL Azure Reporting n/a SQL Azure Reporting 33 AWS / Azure feature comparison Feature Amazon Windows Azure Queue Simple Queue Service (SQS) Queue Storage Email Simple Email Service (SES) VPN Virtual Private Cloud (VPC) VPN, Connect DNS Route 53 Traffic Manager (Geo) Service bus n/a n/a Service Bus Identity Identity & Access Management (IAM) Access Control Big Data Elastic MapReduce Elastic MapReduce Monitoring CloudWatch n/a 34 That’s a lot! 35 Cloud @ Adform Amazon EC2 used for test campaigns, stress testing and research Amazon S3 storage used for raw data 300+ GB of uncompressed raw transactions daily 36 Cloud @ Adform Amazon S3 storage used for RTB logs 1+ TB of uncompressed logs daily Amazon Elastic MapReduce used by RTB Research team 2+ TB of data on 30+ EC2 instances daily 37 Cloud Computing is elastic scalable compute resources on demand offered as public or private IaaS, PaaS or SaaS requires to change mindset and adapt patterns available from Amazon, Microsoft, Google, etc. 38 Don’t forget: Cloud is not for everyone, but it makes impossible possible! 39 40