View
517
Download
1
Category
Preview:
DESCRIPTION
What is "the cloud"? What types of cloud there are, and what are the tools it gives us.
Citation preview
The Cloud Beyond the Buzzword
Bozhidar Bozhanov
About me
● Cloud user – from small personal projects to millions of users
● Java, Scala, etc.● StackOverflow *cough*● twitter: @bozhobg
The cloud: what is it?
● everything● nothing● “the internet”● XaaS● “something remote, parts of the
infrastructure of which is managed by someone else”
Buzzword
● managers● investors● clients● ...and other incompetent
people
Classification
● Cloud computing (CPU as a Service)● SaaS - Software as a Service● PaaS - Platform as a Service● IaaS - Infrastructure as a Service
SaaS - Software as a Service
● Your software is “in the cloud” from the point of view of your users
● multi-tenant software● DropBox, SalesForce, Gmail, JIRA, GitHub● pros – easy upgrade, can’t be cracked, users don’t have
to manage infrastructure● cons – internet connection dependence, ownership of
data, privacy, harder to personalize
PaaS - Platform as a Service
● Providers give a platform with limited access where you deploy your application
● Components are plugins (databases,message queues, caches, log collection, monitoring, etc…)
● Heroku, CloudFoundry, OpenShift, GoogleAppEngine● pros: easy setup (UI/CLI), no server administration
experience needed, supports autoscaling, cheap.● cons: sandbox, specific learning curve, hard plugin
version management, privacy.
IaaS - Infrastructure as as Service
● You get virtual machines and APIs/UI, to manage them● The provider takes care only of the infrastructure● Amazon AWS, ??? (Microsoft Azure, Rackspace,
OpenStack, GetClouder)● pros – almost complete freedom, cheaper than own
data-center [citation needed] , auto-scaling, extras.● Cons - learning curve, privacy, single provider
dependence.
AWS (Amazon Web Services)
● pioneers[citation needed] and market leaders● API, CLI● extras: S3, CloudFront, CloudWatch, RDS,
SQS, SES, SNS, ElastiCache, Beanstalk (PaaS), …
● multiple regions, multiple availability zones● prices are dropping; spot instances
Auto-scaling
● valid for both PaaS and IaaS● Conditionally starting and stopping virtual machines
(based on CPU, memory, I/O, network I/O)● Keeping a certain number of machines up, in case one
or more “die”. ● The harder part: making your application scale
automatically
Embrace failure
● virtual machines (instances) die often● Information written on them is lost.
Alternatives: EBS, S3, clusters● A whole availability zone (= data center) can
be down● chaos monkey● => good practices
Scripting stacks
● Servers, networks, access control, load balancers, etc. – declared with a script.
● AWS CloudFormation - JSON-based language for scripting infrastructure
● calling shell scripts on initialization = endless possibilities
● Allows for almost identical environments for test, staging, production
Should we be “in the cloud”
● It depends● To be “in the cloud” is not a marketing
decision - it’s a technical choice. ● SaaS doesn’t mean you are “in the cloud”, it
means your software is in the cloud from your users’ perspective
● in any case - embrace failure
Recommended