SlideShare a Scribd company logo
1 of 86
Heroku
   Jeweler + Gemcutter
                    All Ruby Goodness



a riej a n .dev ro om@k a bi sa .n l



                     http://slideshare.net/ariejan/heroku-jeweler-gemcutter
What the ...?
What the ...?



Rails deployment with Heroku
What the ...?



Rails deployment with Heroku

Creating gems with Jeweler and Gemcutter
Heroku
What’s Heroku?
What’s Heroku?

Easy deployment of Ruby-based apps
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-party services
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-party services

Pay as you go
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-party services

Pay as you go

Scales!
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-party services

Pay as you go

Scales!

Hosts 42k apps! Including Shopify
“Problems”
“Problems”

You don’t have root access
“Problems”

You don’t have root access

Your app lives in the cloud.
“Problems”

You don’t have root access

Your app lives in the cloud.

You need Heroku to pull your data out
“Problems”

You don’t have root access

Your app lives in the cloud.

You need Heroku to pull your data out

You have no direct database access
“Problems”

You don’t have root access

Your app lives in the cloud.

You need Heroku to pull your data out

You have no direct database access

You have limited access to logs (heroku logs)
Amazon EC2 vs. Heroku
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service

Ruby Oriented
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service

Ruby Oriented

No hardware knowledge required
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service

Ruby Oriented

No hardware knowledge required

Limiting in choice for third party tools
Heroku vs. Kabisa Hosting
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - only pay for the resources you use
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - only pay for the resources you use

No hardware to maintain or worry about
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - only pay for the resources you use

No hardware to maintain or worry about

Less control over hardware and software choices
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - only pay for the resources you use

No hardware to maintain or worry about

Less control over hardware and software choices

It’s not hosted in Eindhoven (latency)
Give Heroku a Spin!
Ingredients
Ingredients


A Heroku account (you did read the email,
right?)
Ingredients


A Heroku account (you did read the email,
right?)

A sample rails app
Ingredients


A Heroku account (you did read the email,
right?)

A sample rails app

An open terminal
First, a local blog!
First, a local blog!

Get a rails app working locally
First, a local blog!

Get a rails app working locally

 gem install faker
First, a local blog!

Get a rails app working locally

 gem install faker

 git clone
       git://github.com/ariejan/kks-heroku.git
First, a local blog!

Get a rails app working locally

 gem install faker

 git clone
       git://github.com/ariejan/kks-heroku.git

 rake db:migrate && rake db:seed
First, a local blog!

Get a rails app working locally

 gem install faker

 git clone
       git://github.com/ariejan/kks-heroku.git

 rake db:migrate && rake db:seed

 script/server
Second, deploy to Heroku
Second, deploy to Heroku

Deploying is easy. No capistrano required!
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku

 heroku create <appname>
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku

 heroku create <appname>

 git push heroku master
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku

 heroku create <appname>

 git push heroku master

 heroku open
Push your development data
Push your development data

Easily push data into your production app
Push your development data

Easily push data into your production app

 heroku db:push
Push your development data

Easily push data into your production app

 heroku db:push

 heroku open
Push your development data

Easily push data into your production app

 heroku db:push

 heroku open

You can also do pull production data
Push your development data

Easily push data into your production app

 heroku db:push

 heroku open

You can also do pull production data

 heroku db:pull
Getting Info
Getting Info



heroku info
Backups? No, bundles!
Backups? No, bundles!


Include app and database dump
Backups? No, bundles!


Include app and database dump

 heroku addons:add bundles:single
Backups? No, bundles!


Include app and database dump

 heroku addons:add bundles:single

 heroku bundles:capture
Backups? No, bundles!


Include app and database dump

 heroku addons:add bundles:single

 heroku bundles:capture

 heroku bundles:download <bundle>
Caveats
Caveats


Gem dependencies
Caveats


Gem dependencies

PostgreSQL (is not MySQL)
Caveats


Gem dependencies

PostgreSQL (is not MySQL)

File uploads
Jeweler & Gemcutter
Jeweler
Jeweler


Easily create and manage your gem
Jeweler


Easily create and manage your gem

Make it easy to release your gem to Gemcutter
Jeweler


Easily create and manage your gem

Make it easy to release your gem to Gemcutter

Manage code on github
Let’s make a kks-gem!
Let’s make a kks-gem!


jeweler --rspec --gemcutter --create-repo
downcaser
Let’s make a kks-gem!


jeweler --rspec --gemcutter --create-repo
downcaser

Edit Rakefile to suit your needs
Let’s make a kks-gem!


jeweler --rspec --gemcutter --create-repo
downcaser

Edit Rakefile to suit your needs

Write specs, write code, commit
Release version 0.0.1
Release version 0.0.1


rake version:write
Release version 0.0.1


rake version:write

rake version:bump:patch
Release version 0.0.1


rake version:write

rake version:bump:patch

rake gemcutter:release
Release version 0.0.1


rake version:write

rake version:bump:patch

rake gemcutter:release

gem install downcaser
Why Jeweler
Why Jeweler


Makes your life easy
Why Jeweler


Makes your life easy

Focus on writing the gem, not managing it
Why Jeweler


Makes your life easy

Focus on writing the gem, not managing it

Easily release a gem to Gemcutter
Why Gemcutter?
Why Gemcutter?


It’s (or will be) the default gem source
Why Gemcutter?


It’s (or will be) the default gem source

Supported by the Ruby community (including
RubyForge)
Q&A

More Related Content

What's hot

Scratching your own itch
Scratching your own itchScratching your own itch
Scratching your own itch
Joey Echeverria
 

What's hot (20)

Ansible day 4
Ansible day 4Ansible day 4
Ansible day 4
 
Reactive Web-Applications @ LambdaDays
Reactive Web-Applications @ LambdaDaysReactive Web-Applications @ LambdaDays
Reactive Web-Applications @ LambdaDays
 
Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...
Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...
Ransack, an Application Built on Ansible's API for Rackspace -- AnsibleFest N...
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Dust.js
Dust.jsDust.js
Dust.js
 
Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)
 
Building Reactive Systems with Akka (in Java 8 or Scala)
Building Reactive Systems with Akka (in Java 8 or Scala)Building Reactive Systems with Akka (in Java 8 or Scala)
Building Reactive Systems with Akka (in Java 8 or Scala)
 
Composable and streamable Play apps
Composable and streamable Play appsComposable and streamable Play apps
Composable and streamable Play apps
 
Akka.net versus microsoft orleans
Akka.net versus microsoft orleansAkka.net versus microsoft orleans
Akka.net versus microsoft orleans
 
Pulsar 101 at devoxx
Pulsar 101 at devoxxPulsar 101 at devoxx
Pulsar 101 at devoxx
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
 
The Play Framework at LinkedIn
The Play Framework at LinkedInThe Play Framework at LinkedIn
The Play Framework at LinkedIn
 
Symfony Live San Franciso 2017 - BDD API Development with Symfony and Behat
Symfony Live San Franciso 2017 - BDD API Development with Symfony and BehatSymfony Live San Franciso 2017 - BDD API Development with Symfony and Behat
Symfony Live San Franciso 2017 - BDD API Development with Symfony and Behat
 
Aura LA GDG - July 17-2017
Aura LA GDG - July 17-2017Aura LA GDG - July 17-2017
Aura LA GDG - July 17-2017
 
Introducing in-house PaaS in SmartNews
Introducing in-house PaaS in SmartNewsIntroducing in-house PaaS in SmartNews
Introducing in-house PaaS in SmartNews
 
Scratching your own itch
Scratching your own itchScratching your own itch
Scratching your own itch
 
From Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjugFrom Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjug
 
Scratching your own itch
Scratching your own itchScratching your own itch
Scratching your own itch
 
Automation in the Small: Code to Cloud
Automation in the Small: Code to CloudAutomation in the Small: Code to Cloud
Automation in the Small: Code to Cloud
 
Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
 

Similar to Heroku + Jeweler & Gemcutter

How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build Heroku
Craig Kerstiens
 
Ruby'izing iOS development
Ruby'izing iOS developmentRuby'izing iOS development
Ruby'izing iOS development
toamitkumar
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and Chef
Gerald Villorente
 

Similar to Heroku + Jeweler & Gemcutter (20)

DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)
 
Word press, the automated way
Word press, the automated wayWord press, the automated way
Word press, the automated way
 
How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build Heroku
 
DevOps meetup 16oct docker and jenkins
DevOps meetup 16oct docker and jenkinsDevOps meetup 16oct docker and jenkins
DevOps meetup 16oct docker and jenkins
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncai
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Deploying Web Apps with PaaS and Docker Tools
Deploying Web Apps with PaaS and Docker ToolsDeploying Web Apps with PaaS and Docker Tools
Deploying Web Apps with PaaS and Docker Tools
 
Intro to Rails
Intro to RailsIntro to Rails
Intro to Rails
 
DevOps + MongoDB Realm Serverless Functions = 🤩
DevOps + MongoDB Realm Serverless Functions = 🤩DevOps + MongoDB Realm Serverless Functions = 🤩
DevOps + MongoDB Realm Serverless Functions = 🤩
 
Ruby'izing iOS development
Ruby'izing iOS developmentRuby'izing iOS development
Ruby'izing iOS development
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and Chef
 
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때 [OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
[OpenInfra Days Korea 2018] Day 2 - E4 - 핸즈온 워크샵: 서버리스가 컨테이너를 만났을 때
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
Building a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger HuntBuilding a REST API Microservice for the DevNet API Scavenger Hunt
Building a REST API Microservice for the DevNet API Scavenger Hunt
 
CakePHP - The Path to 2.0
CakePHP - The Path to 2.0CakePHP - The Path to 2.0
CakePHP - The Path to 2.0
 
Modern Web Application Development Workflow - web2day 2014
Modern Web Application Development Workflow - web2day 2014Modern Web Application Development Workflow - web2day 2014
Modern Web Application Development Workflow - web2day 2014
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
Patterns & Antipatterns in Docker Image Lifecycle
Patterns & Antipatterns in Docker Image LifecyclePatterns & Antipatterns in Docker Image Lifecycle
Patterns & Antipatterns in Docker Image Lifecycle
 
DevOps + MongoDB Serverless = 
DevOps + MongoDB Serverless = DevOps + MongoDB Serverless = 
DevOps + MongoDB Serverless = 
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Heroku + Jeweler & Gemcutter