3. 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.
4. What I am going to present
Overview
The Goods
The Bads
The Uglies
Best way to get on board
5. 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
6. 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
10. 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?
11. Probably will be the largest distributed system
AWS 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
12. 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
13. 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.
14. The Goods ( cont )
Variety of Services
Most services are derived from Amazon’s internal services.
New services and features on customer feedback
15. 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.
16. The Goods ( Cont )
A lot of third party offerings
A lot of niche offering on management, monitoring, training, data analysis, IoT
17. 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.
18. The Bads
Relative 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
19. 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?
20. 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
21. 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.
22. 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.
23. 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.
24. 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
25. 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
26. 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.
27. 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
28. Thanks
Thanks for my coworkers to review my slides
Daniel T. Kristjansson
Milen Pavlov
Ilya A. Sukhanov
Kulesh Shanmugasundaram
Aaron W. Harnly
Pratap Chand