Tiago Scolari

bits for fun

s3kup: the s3 backup tool

2015-04-18 Code

I’ve created a tool creating backups on a s3 bucket, I called it s3kup. It’s written in GO and very straightforward to use. It’s somehow a rewrite of an old ruby gem I had for the same purpose.

It’s a command that can take any input from a shell pipeline and store it in a versioned way in a s3 bucket. s3kup has 3 basic commands: push, pull and list.

push

It will store your backup, e.g.:

Continue reading

Speed up your bundler = personal rubygems proxy with cloudfront

2013-10-25 Code

If you think your bundle install takes too long, or have a distributed team around the globe, this may help you.

It’s possible to have a cloudfront server pointing to rubygems, and using it as your gems source server. (If you are not aware of what cloudfront is give a look at it)

On this configuration, cloudfront will fetch requests from rubygems.org, and keep them cached on the CDN, so you should expect the first bundle install to take very close time of using rubygems.org, but the second one and forward should have some performance increase. You can also manually set the cache time there.

Continue reading

Keeping track of your deploys with capistrano and git

2012-02-19 Code

I’ve created a simple capistrano task to keep track of my deploys. When I deploy to a server, it will create a git tag and push it to origin. This way I can keep track of each deploy revision.

after 'deploy:update_code', 'git:create_deploy_tag'

namespace :git
  task :create_deploy_tag do
    puts "[git] creating new deploy tag"
    tag_name = "deploy--#{Time.now.strftime("%Y-%m-%d-%H-%M-%S")}"
    `git tag -a '#{tag_name}' -m 'Deploy: #{Time.now}' origin/production && git push origin --tags`
   end
end

p.s: I use the production branch as my deploy branch. You can change it for master, or anything else.

Continue reading