Artwork

Контент предоставлен Nick Janetakis and Nick Janetakis - Full stack developer. Весь контент подкастов, включая эпизоды, графику и описания подкастов, загружается и предоставляется непосредственно компанией Nick Janetakis and Nick Janetakis - Full stack developer или ее партнером по платформе подкастов. Если вы считаете, что кто-то использует вашу работу, защищенную авторским правом, без вашего разрешения, вы можете выполнить процедуру, описанную здесь https://ru.player.fm/legal.
Player FM - приложение для подкастов
Работайте офлайн с приложением Player FM !

Games Directory Lets You Sync Your Games and Achievements in 1 Place

1:06:57
 
Поделиться
 

Manage episode 301078133 series 2589818
Контент предоставлен Nick Janetakis and Nick Janetakis - Full stack developer. Весь контент подкастов, включая эпизоды, графику и описания подкастов, загружается и предоставляется непосредственно компанией Nick Janetakis and Nick Janetakis - Full stack developer или ее партнером по платформе подкастов. Если вы считаете, что кто-то использует вашу работу, защищенную авторским правом, без вашего разрешения, вы можете выполнить процедуру, описанную здесь https://ru.player.fm/legal.

In this episode of Running in Production, Vlad Radulescu goes over creating a game directory site with Ruby on Rails. It’s hosted on AWS and has been up and running since 2014.

Vlad talks about having thousands of active users, interfacing with a few game platform APIs, running millions of Sidekiq jobs, storing 10+ billion database records, keeping things as a monolithic app, deploying the web app to 1 server and lots more.

Topics Include

  • 6:30 – Motivation for switching from PHP to Ruby on Rails
  • 7:07 – Figuring out which gaming API to implement first and how their APIs are
  • 10:27 – Reverse engineering undocumented API calls from the Windows Steam client
  • 12:18 – Using a separate database for each gaming platform provider
  • 15:05 – A few useful features of Rails that’s being used and Stimulus Reflex
  • 20:19 – Switching from Webpacker to using Vite
  • 23:14 – Using Slim instead of ERB and a few other gems being used
  • 25:29 – It’s a single monolithic Rails app that’s using namespaces
  • 28:36 – A lot of the time spent developing this app is working with the game APIs
  • 31:00 – Using Sidekiq, a billion (!) gamer activities stored and millions of Sidekiq jobs
  • 34:18 – It’s hosted on a single AWS T2.large instance (4 vCPUs / 16 GB memory)
  • 36:13 – The database is on an R6g.large with 10+ billion records
  • 39:14 – Ansible was used to set up the EC2 instance and it’s running Ubuntu 18.04 LTS
  • 41:13 – A couple of AWS resources being used
  • 43:01 – The process to ship a feature from development to production
  • 44:16 – Switching to using TailwindCSS in a nicely controlled way
  • 47:57 – At the moment the site is free with no desire to make it pay to win
  • 49:55 – Hosting is $1,500 pounds a month and it’s been running for free for 7+ years
  • 51:43 – There’s 7 terabytes of S3 storage and daily database backups
  • 55:59 – 50ish mini servers spread across Heroku’s free tier to bypass API rate limits
  • 59:45 – Being dialed into the ops side of things but there’s room for improvement
  • 1:00:54 – Keeping up with a full date job and a long running passion project
  • 1:02:25 – Best tips? Don’t forget to plan things out
  • 1:05:56 – You can find Vlad on Twitter and Games Directory will be open source soon

Links

📄 References
⚙️ Tech Stack
🛠 Libraries Used

Support the Show

This episode does not have a sponsor and this podcast is a labor of love. If you want to support the show, the best way to do it is to purchase one of my courses or suggest one to a friend.

  • Dive into Docker is a video course that takes you from not knowing what Docker is to being able to confidently use Docker and Docker Compose for your own apps. Long gone are the days of "but it works on my machine!". A bunch of follow along labs are included.
  • Build a SAAS App with Flask is a video course where we build a real world SAAS app that accepts payments, has a custom admin, includes high test coverage and goes over how to implement and apply 50+ common web app features. There's over 20+ hours of video.
  continue reading

108 эпизодов

Artwork
iconПоделиться
 
Manage episode 301078133 series 2589818
Контент предоставлен Nick Janetakis and Nick Janetakis - Full stack developer. Весь контент подкастов, включая эпизоды, графику и описания подкастов, загружается и предоставляется непосредственно компанией Nick Janetakis and Nick Janetakis - Full stack developer или ее партнером по платформе подкастов. Если вы считаете, что кто-то использует вашу работу, защищенную авторским правом, без вашего разрешения, вы можете выполнить процедуру, описанную здесь https://ru.player.fm/legal.

In this episode of Running in Production, Vlad Radulescu goes over creating a game directory site with Ruby on Rails. It’s hosted on AWS and has been up and running since 2014.

Vlad talks about having thousands of active users, interfacing with a few game platform APIs, running millions of Sidekiq jobs, storing 10+ billion database records, keeping things as a monolithic app, deploying the web app to 1 server and lots more.

Topics Include

  • 6:30 – Motivation for switching from PHP to Ruby on Rails
  • 7:07 – Figuring out which gaming API to implement first and how their APIs are
  • 10:27 – Reverse engineering undocumented API calls from the Windows Steam client
  • 12:18 – Using a separate database for each gaming platform provider
  • 15:05 – A few useful features of Rails that’s being used and Stimulus Reflex
  • 20:19 – Switching from Webpacker to using Vite
  • 23:14 – Using Slim instead of ERB and a few other gems being used
  • 25:29 – It’s a single monolithic Rails app that’s using namespaces
  • 28:36 – A lot of the time spent developing this app is working with the game APIs
  • 31:00 – Using Sidekiq, a billion (!) gamer activities stored and millions of Sidekiq jobs
  • 34:18 – It’s hosted on a single AWS T2.large instance (4 vCPUs / 16 GB memory)
  • 36:13 – The database is on an R6g.large with 10+ billion records
  • 39:14 – Ansible was used to set up the EC2 instance and it’s running Ubuntu 18.04 LTS
  • 41:13 – A couple of AWS resources being used
  • 43:01 – The process to ship a feature from development to production
  • 44:16 – Switching to using TailwindCSS in a nicely controlled way
  • 47:57 – At the moment the site is free with no desire to make it pay to win
  • 49:55 – Hosting is $1,500 pounds a month and it’s been running for free for 7+ years
  • 51:43 – There’s 7 terabytes of S3 storage and daily database backups
  • 55:59 – 50ish mini servers spread across Heroku’s free tier to bypass API rate limits
  • 59:45 – Being dialed into the ops side of things but there’s room for improvement
  • 1:00:54 – Keeping up with a full date job and a long running passion project
  • 1:02:25 – Best tips? Don’t forget to plan things out
  • 1:05:56 – You can find Vlad on Twitter and Games Directory will be open source soon

Links

📄 References
⚙️ Tech Stack
🛠 Libraries Used

Support the Show

This episode does not have a sponsor and this podcast is a labor of love. If you want to support the show, the best way to do it is to purchase one of my courses or suggest one to a friend.

  • Dive into Docker is a video course that takes you from not knowing what Docker is to being able to confidently use Docker and Docker Compose for your own apps. Long gone are the days of "but it works on my machine!". A bunch of follow along labs are included.
  • Build a SAAS App with Flask is a video course where we build a real world SAAS app that accepts payments, has a custom admin, includes high test coverage and goes over how to implement and apply 50+ common web app features. There's over 20+ hours of video.
  continue reading

108 эпизодов

Tất cả các tập

×
 
Loading …

Добро пожаловать в Player FM!

Player FM сканирует Интернет в поисках высококачественных подкастов, чтобы вы могли наслаждаться ими прямо сейчас. Это лучшее приложение для подкастов, которое работает на Android, iPhone и веб-странице. Зарегистрируйтесь, чтобы синхронизировать подписки на разных устройствах.

 

Краткое руководство