Upload
soho-dragon
View
311
Download
0
Embed Size (px)
Citation preview
New York Enterprise Collaboration Meet up
Dec 2nd 2015 Meetup No. 9wireless -MSFTOpen
Dec MeetupAzure vs AWS
www.sohodragon.nyc
AWS vs Azure Bakeoff
AWS by Eugene Y. Jen
Who I am
I am a software engineer for a long time, have worn different hats in my career.
I also worked in system administration on and off.
I built some interested software, unfortunately not open sourced.
I did some startups; one was close to be bought to join AWS before AWS launched then it failed through.
I had used AWS since 2007 on and off.
I am using AWS daily since 2014.
I have been in a project to do immutable deployment in AWS in last 2 years.
What I am going to present
Overview
The Goods
The Bads
The Uglies
Best way to get on board
Overview of AWS
It is an alphabet soup.
Luckily, AWS in Plain English
Launched officially in 2006 with S3 (Simple Storage Service) and EC2 (Elastic Computing Cloud)
But SQS (Simple Queue Service) was launched in 2004 publicly.
EC2 was Linux focused. But it added support to Microsoft Windows later. and even FreeBSD.
Sorry no OS X
AWS built most of their services on top of EC2 and S3
Overview of AWS (cont 2/5)
EIP ( Elastic Ip Address )
EBS ( Elastic Block Store )
VPC ( Virtual Private Cloud )
IAM ( Identity and Access Management )
ELB ( Elastic Load Balancer )
RDS ( Relational Data Service ), MySQL, Oracle, MS SQL, PostgresQL
DynamoDB
SimpleDB
ElasticCache: Memcached, Redis
Redshift: PostgresQL
Overview of AWS (cont 3/5)
Route 53
Elastic MapReduce
CloudFront
OpsWork
CodeDeploy
CloudWatch
Management Console
KMS ( Key Management Service )
CloudHSM
SES ( Simple Email Service )
Overview of AWS ( cont 4/5 )
SNS (Simple Notification Service )
Mechanical Turk
Machine Learning
Kinesis
Fulfillment
API Gateway
CloudSearch
ElasticSearch
Congito
Lambda
Elastic Beanstalk
Overview of AWS ( cont 5/5 )
Device Farms
FPS ( Flexible Payments Service )
DevPay
EFS
Glacier
Storage Gateway
DirectConnect
Inspector
CloudTrail
Service Catalog
Snowball
I think you have given up now
There are more services unlisted in previous slides.
AWS is keeping on adding new services
AWS is keeping on adding new features to existing products
AWS is keeping on fixing bugs
AWS is keeping on adding more data centers around the world see regions
What are those services and regions all about? A dream from a mad scientist?
Probably will be the largest distributed systemAWS is probably will be largest working distributed system
I maybe wrong. Maybe Google or Facebook has bigger distributed systems.
It serves Amazon.com itself
It serves a lot of Web traffic ( Netflix, AirBnB, Slack, FourSquare …)
So far, it seems like under pretty good leadership of Werner Vogels
It also starts to bring us to microservices based architecture due to AWS success. And success from Netflix as a customer start to encourage other companies to use AWS to build elastic scalable computing systems
AWS is the Cloud, just as Facebook/Google/Instagram/Twitter is Internet as 2015.
The Goods
Elasticity on resources
Elasticity is more than scalability.
Enable computing as utilities
Plan well, then it enables you to see the cost of your own services.
Plan well, then it also changse your company’s tax deduction ( From investment of capital expenditures of data centers to operating cost of AWS service charges )
Lambda, API Gateway
EC2 Beanstalk
The Goods ( cont )
Fully programmable
Enable infrastructure as code
Enable automated infrastructure operation
Enable immutable deployment
Enable reproducible infrastructures
Easier continuous delivery
You almost can build anything you can imagine
Enpower tech teams if plan well.
The Goods ( cont )
Variety of Services
Most services are derived from Amazon’s internal services.
New services and features on customer feedback
The Goods ( Cont )
A very large group of users
AWS re:Invent 2015: more than 10k attendees
A lot of code in Github that utilize AWS APIs.
The Goods ( Cont )
A lot of third party offerings
A lot of niche offering on management, monitoring, training, data analysis, IoT
The Goods ( cont )
Relative strong customer supports and training material
In NYC, A monthly meetup in AWS Pop-up Loft.
Relative well written documentation
A lot of videos and slides from past conference online, and you can spend time to learn from other pioneers that use AWS before you.
The BadsRelative expensive than hosting your own servers.
Your EC2 instances died
Relative complex in IAM configuration
Relative complex in Glacier policies
UDP packet lost is high
Cloud Formation config file is hard to maintained
VPC lacks some features to make peering easier
Most service are just good enough in comparison to other similar offering if you really want some good features.
AWS may steal your favorite service provider’s ideas and kill them
The Uglies
AWS is going to be the single point of success, especially in U.S.
I have not yet seen competitors’ offerings catching up
If you want to use AWS efficiently, you probably need to rewrite everything in your current stack.
Otherwise it is more expensive than running your service on other providers, such as Softlayers, Rackspace, Linode and Digital Ocean.
Or more expensive to run your own data centers if you are big as Facebook or Google
Do you trust Amazon with your data?
Migrating data out of AWS will be very expensive if your business are successful.
Best way to get on board
Move some of system to AWS and read the doc.
Depends who you are, and you need to change your ways of thinkings
C-level Management of existing software company
C-level Management of startups
Middle Management of existing software company
Developer/Engineer
System Admin/DevOps
Database Administrators
Data Scientists
C-Level Management of Existing Software
If you commit to migrate to AWS, being prepared for expenses increase in current software stack in the beginning.
You need to invest to retool your software stack to use AWS efficiently to reduce your cost
You need to invest your tech team to train them in AWS and learn basic distributed systems in computer science. So they will use the AWS well.
That means it may take years to reap benefits
Know your external dependencies.
C-Level Management of Startups
You probably should use Lambda and Beanstalk in the beginning.
Build MVP first.
You probably can scale up to EC2 later if the product is proven
Lambda probably saves you a lot of money in operations than salary to developers
Exploit the elasticity of AWS and services. Focus on your own product/service and lower operation cost.
Middle Management of existing software
Be sure to include cost of software rewriting / re-architect from existing software
Support you tech team to exploit elasticity to create continuous delivery pipeline for your own software
Train your tech team to learn AWS and distributed systems
Educate your product team to utilize the elasticity of computations in your own service and product to your customers and support tech team to build those
Use AWS to track down costs in your software systems and perform cost benefit analysis for product development
Encourage work smarter, instead of long hours.
Encourage experiments on changes.
Talk to your vendors
Developers/Engineers
Learn By Doing, trials and errors.
Learn basics of distributed system if you did not take course before in school.
Read some great papers in distributed computing / systems
Build micro service based system.
Build stateless workers
Avoid database schema spaghetti
Exploit Continuous Integration / Continuous Delivery for your own good
Test driven development
You build it, you break it, you run it.
Be a good provider for self service model. Be a good customer to your service provider
System Administrators/DevOps
Infrastructure as code
Configuration Management may not be scalable. So use with caution.
Code and Configurations are artifact
Build continuous integration / continuous delivery pipeline for your dev teams
Educate yourselfs for distributed systems
Monitoring
Build / Adopt tools for your tech teams
Build your service as self-service so it can scale
Don’t be the single point of success
Don’t overwork, work smart, think more and learn more.
Learn operational engineering and chaos engineering from Netflix
Database Administrators
You should now do frequent backup and restore exercises. There is no excuses of not doing those tasks due to you have a elastic database services in AWS.
Investigate how to migrate data among your environment in AWS to encourage better test driven development in your tech team.
You may not be able to tweak too much on AWS instances. But if you build a reproducible infrastructure, then you now can experiment on your databases without worrying screwing up critical company’s business.
Remove yourself from critical path and single point of success.
Data Scientists
Storage is cheap
Learn to script and reproducible experiment with source control
Exploit the elasticity in computing power
Learn how to move large data from S3 to your instances/containers
Learn to exploit EMR, RedShift, Beanstalk
Thanks
Thanks for my coworkers to review my slides
Daniel T. Kristjansson
Milen Pavlov
Ilya A. Sukhanov
Kulesh Shanmugasundaram
Aaron W. Harnly
Pratap Chand