There are several different deployment services on Amazon Web Services including OpsWorks, ECS and Elastic Beanstalk. The speaker will share the company's experience with these services and some real world use cases.
2. iCook 愛料理
• Leading recipe sharing platform in Taiwan
• People share & view recipes from web / native apps
• 5M+ monthly visitors
• 3M+ app downloads
3. Business Challenges
Every business needs monetization
Our core businesses:
• VIP premium service
• User insights for brand customers
• E-commerce of selected items
4. Several Small Apps
Beyond our main site, we have several related sites,
prototypes and internal tools.
• iCook Market
• iCook TV
• iCook Blog
• Internal dashboards & BI tools
5. Why is this a trouble?
We had limited ops, and most of us are developers.
But we want to make it easy and fast to deploy as well.
6. Common Use Case
To deploy a new app to instances, we need:
1. Set up Linux environment
2. Install required runtime (Ruby / Node.js)
3. Deploy apps via Git
4. Set up monitoring & permissions and many others
9. Building AMI using Packer
There’re several ways to build AMI. We use Packer
1. Dev, test & production using same tool
2. Integration for different provisioning tools (e.g. Chef)
3. Simple CLI to make it run on your CI system
11. Pros
• Simple and straight forward
• Tons of resources online
Pros & Cons of AMI
Cons
• Slow
• Not quite suitable for app
deployment
12. Elastic Beanstalk
AWS’s PaaS solution with several common app stacks.
1. Deployment from Git
2. Easy UIs for tweaking everything
3. However, do use ECS for Docker
13. Pros
• Prebuilt stacks
• Integrated deployment system
Pros & Cons of Elastic Beanstalk
Cons
• Hard to customize
• e.g. Want to use latest runtime
or OS version
• Limited options
14. OpsWorks
Hosted Chef integration for AWS
1. Infrastructure as code
2. Different scaling workflow
3. Hard to start but really powerful
15. Pros
• Good community
• e.g. Many official recipes
• Scaling is easier than ASG
• Customizable but with some
prebuilt stacks
Pros & Cons of OpsWorks
Cons
• Provisioning is slow
• OpsWorks server failures
• Invest time to learn & build
own cookbooks
16. ECS
AWS’s answer to container revolution.
1. Based on Docker
2. ECS as a container scheduler & sets of APIs
17. Pros
• Prebuilt Docker host AMIs
• Easily add instances to cluster
• Rolling updates
Pros & Cons of ECS
Cons
• Invest time to learn & build
Docker images
• No automatically task scaling
• Random bugs in ecs-agent
18. How to choose?
1. Use Elastic Beanstalk if you just want to set it up fast
2. Use custom AMI otherwise
3. If you know or want to learn Chef, use OpsWorks
4. If you use Docker, use ECS
You can use combo, our stack: AMI + OpsWorks + ECS
19. Learning resources beyond docs & guides
1. AWS official blogs (I love Ruby / Compute blogs)
2. Jeff Barr or other AWS staffs’ Twitter or posts
3. GitHub’s repos (aws / awslabs)
4. AWS account managers & official partners