Cloud Technologies and Cloud Platforms Cloud Concepts, IaaS, PaaS, SaaS, Public Cloud Platforms SoftUni Team Technical Trainers Software University http://softuni.bg.
Post on 28-Dec-2015
Embed Size (px)
Cloud Technologies and Cloud Platforms
Cloud Technologiesand Cloud PlatformsCloud Concepts, IaaS, PaaS,SaaS, Public Cloud PlatformsSoftUni TeamTechnical TrainersSoftware Universityhttp://softuni.bg
Software University Foundation http://softuni.orgThis work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.1Table of ContentsWhat is Cloud Computing?Cloud Computing ModelsIaaS, PaaS, BaaS, SaaSPublic Clouds for DevelopersAmazon Web Services (AWS)Google App Engine (GAE)Windows AzureHeroku, AppHarbor2
Software University Foundation http://softuni.orgThis work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike license.2What is Cloud Computing?
4VirtualizationRunning several virtual machines (virtual computers) inside a single powerful hardware machineSupported by special software called hypervisorUse resources more efficientlyE.g. 12 GB physical RAM is shared to 6 virtual machines with 4 GB each (with memory sharing)Most applications use 1-5% of the CPUA single shared CPU can serve thousands of users / hundreds of appsReduces costs due to better utilizationWhat is Virtualization?5Cloud combine the computing power and resources of multiple hardware machinesShare the cloud resources between multiple users and appsGoal: save costs, use resources more efficiently, better serviceCloud computing environmentSuppose we have 20-30 powerful machinesWe can run 100-200 virtual machines (VMs)We can deploy hundreds applicationsWe can serve millions of usersWhat is Cloud Computing?
6In the cloud everyone consumes a portion of the shared computing resourcesCPU, memory, storage, IO, networking, etc.If you business is small, you consume lessIf your business is growing, you consume more cloud resourcesPay as you goStart for free, pay when yougrow and need more resourcesHow the Cloud Works?
7Suppose we have a mail server softwareIt needs computing resources (CPU, disk operations, networking, etc.) only when sending or receiving emailsIt the rest of the time it does nothing (waits)The mail server on dedicated machine will use less than 1% of its power and resourcesYou can run 100 mail servers in the cloud on the same hardwareLess hardware, reduced costs, increased qualityCloud Computing Example8Cloud computing benefitsComputing on demand pay as you goRent a hosting + CPU power + RAM + storage + IO operations + networking + other services (e.g. databases, CDN, analytics, )Cloud has better support and reliabilityYour data lives in a professional data centerHas 24 x 7 monitoring + backup + supportReduces costs: rent a piece of a data center instead build you own IT infrastructure / data center
Cloud == Computing Resources on Demand9Public cloudsIT infrastructure, platform or service publicly accessible from Internet (free or paid), e.g. Amazon AWS, Windows AzurePrivate cloudsCloud infrastructure (hardware + software) for internal use only, e.g. for banking / governmentHybrid cloudsMix of private and public cloud infrastructure and services, e.g. private cloud + backup in Amazon S3Public / Private / Hybrid CloudCloud Computing ModelsIaaS, PaaS, BaaS, SaaS
IaaSInfrastructure as a Service
14VPS == virtual private server (a virtual machine, VM)IaaS (Infrastructure as a Service)IaaS rent a dynamic virtual machine (VM, VPS) in the cloudDynamic VM == you could change your VM resources at runtimeE.g. add more 100 GB HDD storage + 2 GB RAM at runtimeAlso known as rent a "cloud server"IaaS provides an API for managing the cloud infrastructureE.g. programmable create a new virtual machine / allocate more resources / configure the network / install software / etc.IaaS (Infrastructure as a Service)15IaaS providers offer different pricing modelsFixed price per month for a cloud server with fixed parametersOffered by most hosting companiesPricing based on computing hours for fixed parametersE.g. Amazon EC2, Rackspace Cloud Servers, Windows Azure ComputeDynamic pricing per resources usedE.g. $0.024 per GB storage, $0.026 per CPU hour, $0.06 per GB data transferIaaS Pricing ModelsPaaS: Platform as a Service
PaaS: Cloud for Developers
Typical PaaS Services (2)21Other PaaS Services and APIsQueuesAmazon SQS, Google Task Queues, Azure Queues, CloudAMQPNotification servicesAmazon SNS, Windows Push Notifications, Apple Push Notification Service, PubNubEmail services: SendGrid, MailJet, Elastic Email, Amazon SESCDN (content delivery networks): Amazon CloudFlare, Akamai, DNS, load balancing, quality of services, logging, monitoring, analytics, and many others Typical PaaS Services (3)The typical cloud architecture is multi-tier, SOA, highly-scalable and highly-available
26SaaS rent an application in the cloudFully managed application just login and use itExamples of public SaaS servicesWordPress.com managed hosting of WordPress sitesMailChimp managed email marketing platformBasecamp web-based project management and team collaborationSalesforce.com managed CRM platform on demandAdobe Creative Cloud cloud for designers and creative artistsAutodesk 360 cloud for building architects / AutoCAD usersSaaS (Software as a Service)BaaSBack-End as a Service
28BaaS rent a backend in the cloudAlso known as mBaaS (Mobile Backend as a Service)Fully managed backend for your mobile or SPA applicationTypically provides database + REST API + storage services + notificationsRegister, create your data model and use it through REST / other APIExamples of public BaaS clouds: Parse.com, BaasBox, Kinvey, KumulosParse.com simple and powerful BaaS from FacebookProvides NoSQL database (object and queries), users, roles, permissions, file storage, push notifications, analytics, GEO points, etc.BaaS (Backend as a Service)Cloud DevelopmentChallenges for Cloud Developers
30Cloud software developmentDesign and develop an application for the cloudEspecially for the public PaaS cloud platformsTypical steps in cloud software developmentChoose a development stack of technologiesChoose a public cloud platform + servicesDesign the application for the cloudDevelop the application using the cloud APIsDeploy, run and monitor the application in the cloudWhat is Cloud Development?
31Public cloudsProvide computing resources on demandPublicly in Internet, for everyonePaid or free of charge (to some limit)Could be IaaS, PaaS, SaaS or mix of themExamples of public cloudsAmazon AWS, Google App Engine (GAE), Windows Azure, Rackspace, Heroku, AppHarbor, Force.com AppForce, Joyent, dotCloud, Engineyard, OpenShift, CloudBees, CloudSwing, Cloud Foundry, Oracle Public Cloud, Salesforce, Parse.com, WordPress.com, What is a Public Cloud?
PublicCloudsAmazon Web Services (AWS)The Largest Public Cloud Platform
33Amazon Web Services (AWS)The pioneer of the public cloudsProvides cloud platform and services from 2002Provides IaaS and PaaS on demandAmazon Elastic Compute Cloud (Amazon EC2)Virtual machines on demand (cloud VPS)Runs Windows / Linux / other OSMultiple locations: US, EU, Japan, Brazil, http://aws.amazon.com/ec2/Amazon Web Services
34Amazon Elastic Block Store (Amazon EBS)Virtual hard disk (HDD) volumesUsed with the EC2 to keep the OS file systemhttp://aws.amazon.com/ebs/Amazon Simple Storage Service (Amazon S3)Hosting binary data (files, images, videos, etc.)Accessible through the WebWith or without authenticationhttp://aws.amazon.com/s3/
Amazon Web Services (2)
35Amazon DynamoDB / SimpleDBManaged NoSQL cloud databaseHighly scalable, fault-tolerantDynamoDB is newer and faster than SimpleDBhttp://aws.amazon.com/dynamodb/Amazon Relational Database Service (RDS)Managed MySQL and Oracle databasesScalability, automated backup, replicationhttp://aws.amazon.com/rds/Amazon Web Services (3)
36Other AWS servicesAmazon SQS (message queue)Amazon CloudFront (content delivery network)Amazon ElastiCache (caching)Amazon Route 53 (cloud DNS)Amazon SES (email)PricingOn-demand pricing (per hour / per GB)Has 1-year free trial (credit card required)Amazon Web Services (4)
Google App Engine (GAE)The Google's Public Cloud Platform
38Google App Engine (GAE)PaaS public cloud for Java, Python and PHPInfrastructure similar to the one driving GMail and Google Docs operated by Googlehttps://cloud.google.com/appengine/Provides CPU / bandwidth / storage capable to serve 5 000 000 page views / monthApp Engine has a completely free trial versionInstant registration with SMS confirmation (no credit card)
Google App Engine39App Engine instancesComputing units that host the applicationsFully managed sandboxes (they are not VMs!)Provide CPU + RAM + storage + language runtimeApp Engine Console: https://appengine.google.comApp Engine back-endsLike the App Engine instancesBut provides higher computing resourcesUsed for background processingGoogle App Engine Services
44Microsoft Windows AzureFast-growing public cloud from MicrosoftProvides rich PaaS platformMainly for .NET developersProvides also Java, PHP, Python, and Node.js APIsDatabases, storage, mobile back-ends, CDN, Provides IaaS cloud (Windows VMs)No free version, only 1 month trial (credit card required)Windows Azure
45Azure Compute VMs in the Azure cloudStorage servicesSQL Database cloud version of SQL ServerAzure Table Storage (NoSQL database)Azure Queue Storage message queue servicesAzure Blobs / Drives blob / file storage, NTFS volumesAzure CDN content delivery networkAzure Caching distributed, in-memory, application cache
Windows Azure Services
HerokuRich and Powerful Cloud Platform
48RoutingHTTP load balancersDynos managed workersWeb / Worker / CronBack-ends systemsDB: MySQL / PostgreSQLAdd-ons: MongoDB, RedisAuto-scaling technologyLogging and monitoring (Logplex)Git-based deploymentThe Heroku Platform
49Large set of add-ons for developers @ HerokuAirbrake, Amazon RDS, Apigee for Facebook, Apigee for Twitter, Appoxy SimpleWorker, Blitz, Chargify, ClearDB MySQL, Cloudant (CouchDB + MapReduce), CloudMailin, Cron, Custom Domains, DbInsights, Deploy Hooks, DocRaptor, DynectSMB, Exceptional, Flying Sphinx, Heroku PG Backups, Heroku PostgreSQL, Heroku Scheduler, Heroku Shared PostgreSQL, Hoptoad, IndexTank, IronMQHeroku Add-Ons50Large set of add-ons for developers @ HerokuIronWorker, JustOneDB, Loggly, Mailgun, Memcache, MongoHQ, MongoLab, Moonshado SMS, Neo4j, New Relic, Panda Stream, Progs...