28
@startupdecode /startupDecode /user/startupDecode meetup.com/startupDecode < StartupDecode /> Cloud 101: Hands-on Heroku & AWS Meetup #01 With Amine Sadry Happy developer Startupdecode Mathieu Cadet Account Manager Amazon Web Services

Cloud 101: Hands-on Heroku & AWS

Embed Size (px)

Citation preview

Page 1: Cloud 101: Hands-on Heroku & AWS

@startupdecode /startupDecode /user/startupDecodemeetup.com/startupDecode

< StartupDecode />Cloud 101:

Hands-on Heroku & AWS

Meetup #01With

Amine SadryHappy developer Startupdecode

Mathieu CadetAccount ManagerAmazon Web Services

Page 2: Cloud 101: Hands-on Heroku & AWS

< Program />

1. What is cloud computing ? (20 min )

2. Cloud computing on AWS (30 min)

3. Hands-on Heroku (30 min)

4. Hands-on AWS (40 min)

5. Apéro Networking (30 min)

www.startupdecode.com

Page 3: Cloud 101: Hands-on Heroku & AWS

What is cloud computing ?

Page 4: Cloud 101: Hands-on Heroku & AWS

< Nightmare />

www.startupdecode.com By Fleshas via Wikimedia Commons

● Rack space

● Power

● Cooling

● Disaster recovery

Page 5: Cloud 101: Hands-on Heroku & AWS

Server Server

< Virtualization />

www.startupdecode.com

Hardware

Operating System

Application

Hardware

Virtualization Layer

A

OSVM

A

OSVM

A

OSVM

Page 6: Cloud 101: Hands-on Heroku & AWS

< Cloud is tech />

www.startupdecode.com

● Virtualization

● automation

● Elasticity

Page 7: Cloud 101: Hands-on Heroku & AWS

< Cloud is business model />

www.startupdecode.com

● Pay as you go

● Self-service

● Computing as utility

Page 8: Cloud 101: Hands-on Heroku & AWS

< Benefits />

www.startupdecode.com

● No investment

● No maintenance

● No admin expertise

● IT on Demand

● Scalability

● Focus on core business

Page 9: Cloud 101: Hands-on Heroku & AWS

< Deployment models />

www.startupdecode.com

Public PrivateHybrid

Available to general publicMix of both

Available to solely one organisation

Infrastructure owned by a provider of cloud services Infrastructure owned by the

organisation or a third party

Page 10: Cloud 101: Hands-on Heroku & AWS

< Service models />

www.startupdecode.com

IaaS PaaS SaaS

Hardware

Virtual Machine

Hardware

Virtual Machine

OS

Runtime

Hardware

Virtual Machine

OS

Runtime

Application

Database

OS

Runtime

Database

Application

Database

Application

Page 11: Cloud 101: Hands-on Heroku & AWS

Cloud computing on AWS

Page 12: Cloud 101: Hands-on Heroku & AWS

< AWS />

www.startupdecode.com

Page 13: Cloud 101: Hands-on Heroku & AWS

Hands-on Heroku

Page 14: Cloud 101: Hands-on Heroku & AWS

< Prerequisite />

www.startupdecode.com

● Install Ruby on Rails: http://installrails.com

● Create account on heroku.com

● Install toolbelt kit: https://toolbelt.heroku.com

● Create account on http://aws.amazon.com

● Install ImageMagick http://www.imagemagick.org

Page 15: Cloud 101: Hands-on Heroku & AWS

< Install app />

www.startupdecode.com

$ git clone [email protected]:StartupDecode/lcapp.git

1. Clone

2. Go into rails project

$ cd lcapp

$ bundle install

3. Install gems

Page 16: Cloud 101: Hands-on Heroku & AWS

< Install Database/>

www.startupdecode.com

1. Migrate Database

$ rake db:migrate

$ rails server

3. restart server

$ rake db:seed

2. Populate Database

Page 17: Cloud 101: Hands-on Heroku & AWS

< Update GemFile/>

www.startupdecode.com

1. Update Gemfile and run bundle install

group :development do

gem 'sqlite3'

end

group :production do

gem 'pg'

gem 'rails_12factor' gem 'rails_log_stdout', github: 'heroku/rails_log_stdout'

gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'

end

Page 18: Cloud 101: Hands-on Heroku & AWS

< Heroku app />

www.startupdecode.com

1. Create heroku app

$ heroku apps:create lcapp-xxx

$ git commit -m “add heroku config”

3. Commit

$ git add .

2. Track updated files

Page 19: Cloud 101: Hands-on Heroku & AWS

< Deploy />

www.startupdecode.com

1. Push to heroku

$ git push heroku master

$ heroku run rake db:seed

3. Populate production database

$ heroku run rake db:migrate

2. Migrate production database

Page 20: Cloud 101: Hands-on Heroku & AWS

< Create S3 Bucket />

www.startupdecode.com

Page 21: Cloud 101: Hands-on Heroku & AWS

< Create IAM User />

www.startupdecode.com

Page 22: Cloud 101: Hands-on Heroku & AWS

< Create IAM Group />

www.startupdecode.com

Page 23: Cloud 101: Hands-on Heroku & AWS

< Add secret Key />

www.startupdecode.com

1. Add bucket name

$ heroku config:set AWS_BUCKET=your_bucket_name

$ heroku config:set AWS_SECRET_ACCESS_KEY=your_aws_secret_key

3. Add secret access key

$ heroku config:set AWS_ACCESS_KEY_ID=your_aws_access_key_id

2. Add access key ID

Page 24: Cloud 101: Hands-on Heroku & AWS

< S3 config />

www.startupdecode.com

gem 'aws-sdk'

1. Add S3 gem and run bundle install

config.paperclip_defaults = { :storage => :s3, :s3_credentials => { :bucket => ENV['AWS_BUCKET'], :access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] }}

2. Add production config

Page 25: Cloud 101: Hands-on Heroku & AWS

< Deploy />

www.startupdecode.com

1. Install gem

$ bundle install

$ git push heroku master

4. Push to heroku

$ git add .

2. Track changes

3. Commit changes

$ git commit -m “add S3 config”

Page 26: Cloud 101: Hands-on Heroku & AWS

Hands-on AWS

Page 27: Cloud 101: Hands-on Heroku & AWS

< AWS />

www.startupdecode.com

Page 28: Cloud 101: Hands-on Heroku & AWS

@startupdecode /startupDecode /user/startupDecodemeetup.com/startupDecode

< StartupDecode />

A bientôt

Next meetup:Object-oriented programming