RR 390: Creating a Heroku-Like Deployment Solution with Docker with Pedro Cavalheiro

Episode 397 · November 27th, 2018 · 54 mins 6 secs

About this Episode


  • Dave Kimura
  • Eric Berry
  • Charles Max Wood
  • Nate Hopkins

Special Guest: Pedro Cavalheiro

In this episode of Ruby Rogues, the panelists talk with Pedro Cavalheiro who is from Brazil, but currently resides in Hamburg, Germany where he works at Xing. He is a software engineer, an actor, and has been working with the web since 2010. He has worked mostly with Ruby and PHP languages, and since 2015 has worked full-time with Ruby on Rails. The panelists and Pedro talk about his background and his article. Check it out!

Show Topics:

0:00 – Advertisement: Sentry.io

1:04 – Chuck: Hi! Panel is Eric, Dave, Nate, myself – and our special guest is Pedro Cavalheiro! Please introduce yourself! Is that Spanish or Portuguese?

Chuck: P.S. – The DevRev is my new show and check it!

1:57 – Guest: My name means gentleman! Here at your service.

2:05 – Guest: I am a developer and worked with web technologies for 10 years. I do some DevOps stuff and working with Ruby. I just moved to Hamburg, Germany with the same company.

3:02 – Chuck: How do you make that decision?

3:07 – Guest: There is no magical answer. It depends on your needs and what time you have? At the time when I wrote that article I worked with a small startup company. For us, we used Heroku at the time.

4:09 – Guest: Current company is bigger and 500 developers. We have different ops teams and they have their own infrastructure and tools. They have more money, time, and people. For what they need it needs to be more scalable. It depends on the company and the requirements and your resources.

5:00 – Panel: I need to preface first: I love hosted solutions, but at the same time there is a hidden cost set that people don’t think about.

6:16 – Guest: If you compare your own infrastructure vs. cloud platform they will think that it is cheaper than having a hosted solution.

7:28 – Chuck: Yeah, that’s a discussion that I find that I have with myself and with my own company. It makes a ton of sense to have some system setup and it’s something that I am managing.

8:05 – Panelists talks about AWS and AMI.

9:06 – Guest.

9:21 – Panel: Can you talk about the article you wrote? Why did you write it? Give us some context into the article and where are we now?

9:48 – Guest talks in-detail about his article and where he was in life when he wrote this article!

14:10 – Panel: How much time did you invest into that?

14:16 – Guest: Less than a week; maybe 3-4 days for the whole process. Writing the article took about 2 days.

14:50 – Chuck talks about Docker, Azure, Dokku among other things.

Question: Where do you look at all of these different things, and how do evaluate?

16:02 – Guest: I am a huge Heroku fan, and I would suggest people to use it. It’s brilliant. The company I work today it could be expensive to use b/c it’s a heavy load application and it won’t work. As for me (personal projects) I will play around these different tools.

19:02 – Panel: It’s easy to get up and running of Heroku. I think it’s similar to Kubernetes.

20:00 – Guest: I agree with that.

The guest shares a story that relates to this topic.

21:45 – Panel: If you are using self-hosted...put some security on your application. Even if it’s just a demo you are protecting your environment.

22:17 – Chuck: Where do you guys come down on making these types of decisions?

22:30 – Panel: I see it as an investment; especially if your development team is small. 

Eventually, it will scale but in the early days of a project it is a legit choice to use Heroku or Beanstalk.

CodeFund is still on Heroku. Right now it’s solving those problems for us.

23:45 – Chuck: Look at everything that we are all running. What do you guys recommend?

24:19 – Panel: I use S3, elastic search, among other things.

25:56 – Guest: I have a similar story. I had some friends who were spending more than $2,000 a month on Heroku. We tried to find how to reduce the amount of money. We removed the application from the Heroku and put it inside a local machine (probably $800 computer) that runs 24/7 and the only expenses were Internet ($50.00 / month) and 1 SSD ($100) and 1 micro-server through Amazon. Now it works and we were spending over 200x the amount that we needed to. In this example it wasn’t a critical system. In this case self-host was far better and cheaper, so it really depends on your case.

28:08 – Panel: Yeah, sometimes the old school and simple solutions are it.

28:26 – Chuck: I have a virtual machine/servers on Digital Ocean, and I cap deploy. I will login in every-now-and-then, but that’s it.

28:50 – Panel adds in his comments to this topic.

29:17 – Guest: Sometimes these old school solutions tend to be slower, but it depends on what you need for that situation.

29:50 – Chuck: David Brady called that his “Time to Twitter.”

30:04 – Fresh Books!

31:10 – Chuck: Can you talk about your discussion about this, please?

31:23 – Guest: I wrote this article, and it was translated into a few different languages. In the talk that I gave, I talked about my article. It’s funny b/c I wasn’t expecting all of this attention.

33:33 – Guest: I was nervous when I gave the talk so I don’t think it was that good. (Laughs.)

33:50 – Guest: We are human beings and we are always making mistakes, which is okay.

36:55 – Chuck: Yeah I run into that, too. Especially when running the podcast.

37:14 – Guest: That’s apart of the game right? We like to play with new technologies and if it weren’t for experimenting with new stuff our whole industry wouldn’t be as fun. We have the freedom to test, and we get to break tings and not get fired. That’s apart of our jobs.

37:51 – Panel: That’s a good point. A service like beanstalk or Heroku it’s easy to push your app out into the world. But when you dig in deeper, I think that knowledge really starts to seep in and you get to be a better developer.

38:27 – Chuck comments on this topic.

39:12 – Panel: To Pedro’s point...

39:42 – Guest: Yes, we work as a frontend or backend developer or a system administrator, but we need to understand the infrastructure. I want to know and when I know more then my work as a backend developer will improve and communicate with the system. That people know how to use Ruby on Rails and they get used to it but forget about database behind that, and...where you can write your own inquires. They think it’s not their job, but it IS their job.

41:17 – Chuck: To take that step one step further.

Chuck talks about performance issues, codes, and more.

41:48 – Chuck: I want to try out Dokku!

42:00 – Guest comments.

43:53 – Chuck: Let’s do Picks!

44:00 – Advertisement: Get A Coder Job!

End – Cache Fly!