Skip to content

Rodrigo Urubatan – About Code

Helping ruby developers to use the best tools for each job so they can solve hard problems, with less bugs and have more free time.

Menu
  • Home
  • My last presentations
  • About
  • Privacy Policy
Menu

What do you need to know to put your app in production in Ruby, Python, .NET, Java, …

Posted on 2018-09-14 by Rodrigo Urubatan

Ok, this is just my opinion, and if you are a junior developer you do not need to know how to put anything in production, but it is your responsibility to learn before you get promoted to anything else than Junior.

And I’m not talking just about Ruby developers here, any developer that is not a Junior anymore, need to know how to put their apps in production, because you’ll not always work in a big company that has people working just with infrastructure.

And Even if you are working on one of these big companies, you need to know how to put your app in production, and what resources it needs to tell the infrastructure people what your app needs.

But I work with Mobile

Nothing is perfect, and your world is worse than most, because your app will probably need a backend, and if you wrote the backend, you need to know how to deploy it.

If you are using a service (like Firebase) as a backend, you need to know how to configure it for development and for production, how to mock it for testing, …

You’ll need to know how to put your app in each appstore, what are each app store requirements, what makes an app not to be approved, how to deploy new versions to the appstore, and deppending on what language you write your mobile app, you might need to know more than one appstore, more than one way to compile your app for each platform, …

So you probably need to learn more than any web developer.

You work with Ruby?

Ok, you work with Ruby, I like Ruby (you probably guessed it from the other posts in this blog 🙂 )

But to put your app in production, you’ll need to study at least a little of these:

  • Rack
  • Unicorn
  • uwsgi
  • Passenger
  • Apache
  • Nginx

This list is not exhaustive nor exclusive, but it is a good start, and we do not have a perfect solution, so you’ll probably need to learn more than one to know what is the best solution for each situation, of course, knowing well at least one way to put your app in production is better than none 😀

You Work with Python?

Python is also really cool, and it also has more than one web app framework, you can learn one more more, but you still need to put the app in production, and I know less about it than I know about ruby deployment, so the list here is probably a lot less broad than the previous list:

  • uwsgi
  • Passenger (yes, it works with Python too)
  • Apache
  • Nginx

You work with Java?

I have also worked a long time with Java, and it also has a load of deployment options, you also need to know how to compile and package your app, things that the previous two didn’t had to do, you need to know if you will be deploying a WAR, and EAR, …

And you need to know how to configure at least one Java app server, and how to interface it with Apache or Nginx (forgive me if the list is outdated, but I think this is still a good start point).

  • Tomcat
  • JBoss
  • Jetty
  • TomEE
  • Glassfish
  • Apache
  • Nginx

You work with .NET?

.NET development was not my strong point, but I also did a little, and you might start working with the VS embedded server, but you need to know how to deploy your app at lest to a real IIS. You have huge bonus if you know how to deploy it to another server using mono.

I know the list is smaller, but there are lots of details, and you have paid huge money for the apparent simplicity 😛

Other languages?

Of course there are many other languages, and you can start with Apache and Nginx that are almost ubiquitous in any non windows deployment.

Most languages have modules for one of these two servers, and they have loads of details in the configuration that can help of ruin your apps performance.

And never forget that not all problems are infrastructure problems, you might need to optimize your application to use less memory, to free memory that it has allocated, you might need to convince your interpreter or server to release that memory back to the OS when possible.

Putting apps in production is not an easy task, but you need to know at least the basics of it, and if you are not a Junior developer anymore, you need to know at least the basics of it, telling someone that you work with something for 10 years and do now know how to put your app in production looks really bad, at least in my eyes.

You have other options too, like using Docker, but using docker do not cover the entire process, it just encapsulates it for your client, you still need to configure your app to run perfectly inside the docker container, so your client can deploy that container to their cluster and be happy.

If you want to learn a little about Docker, I have some posts in the blog about using it with Ruby applications.

Of course, you can always call me crazy and tell me I’m too demanding, and not everyone needs to know about OPS, in that case we’ll agree to disagree 😛

Related

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent posts

  • Why Embrace Nesting in Ruby Modules?
  • An easy way to have a local “Github Copilot” for free
  • SPA without touching Javascript – The magic of Ruby on rails and Hotwire
  • I see Dead Jobs everywhere (sidekiq DeadSet)
  • Quick tips that help: rails notes

Arquives

  • May 2024
  • April 2024
  • February 2023
  • January 2023
  • December 2022
  • June 2021
  • March 2020
  • January 2020
  • July 2019
  • June 2019
  • May 2019
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • February 2018
  • January 2018
  • November 2017
  • August 2015
  • August 2014
  • July 2014
  • August 2007

Categories

  • AI
  • articles
  • cfp
  • firebase
  • gems
  • git
  • opinion
  • presentations
  • projects
  • rails6
  • ruby
  • Sem categoria
  • server-api
  • tutorials
  • Uncategorized
© 2025 Rodrigo Urubatan – About Code | Powered by Minimalist Blog WordPress Theme