Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Project development - preparing hell dish together – Oleksii Dashkevych

27 views

Published on

Ruby Meditation #22
May 19, 2018
Dnipro

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Project development - preparing hell dish together – Oleksii Dashkevych

  1. 1. PROJECT DEVELOPMENT preparing hell dish together
  2. 2. Aleksey Dashkevych RubyDev/Teamlead Battletag: Jester#2293 Steam: Jesterovskiy
  3. 3. The recipe is averaged, because of many variations.We take some Ruby code and add Rails magic, Postgresql on top.Add Docker for viscosity.Then put this on AWS EBS pan and start frying. It's all roasted until burning deadlines and generously watered with bugs, serves to the customer.They start eating. Eat and whisper:“This is an awesome product!”.At the same time, he forehead is sweating. Kindly offer to fix bugs, but we refuse and put them in JIRA. Do I need to talk about what kind of feedback comes then?Tasks with such recipes, that double estimated. ANNOTATION
  4. 4. MYTEAMMATES
  5. 5. ME REMOTE TEAM LEAD
  6. 6. NOT SO LONG AGO RubyDev left team
  7. 7. AND LITTLE BIT LATER JSDev left team
  8. 8. ITSTIMETO START COOKING
  9. 9. MAIN INGREDIENTS +
  10. 10. HOWTO PREPARE RAILS
  11. 11. gem 'rails' bundle viz
  12. 12. CUT RAILS!
  13. 13. gems.rb source 'https://rubygems.org' # gem 'rails' BUNDLE_RAILS_VERSION = '~> 5.2.0'.freeze # Rails gem 'actionpack', BUNDLE_RAILS_VERSION gem 'activesupport', BUNDLE_RAILS_VERSION gem 'railties', BUNDLE_RAILS_VERSION gem 'sequel' gem 'sequel-rails' gem 'sequel_pg', require: 'sequel'
  14. 14. RAILS MAGIC
  15. 15. FORGOTTEN INGREDIENT +
  16. 16. HOWTO PREPARE REACT
  17. 17. ANSWER IS
  18. 18. BUT WE HAVE JS JS
  19. 19. OK, BUT WHAT NEXT?
  20. 20. ANOTHERVARIATION +
  21. 21. WHAT? WHY WE NEED RAILS?
  22. 22. BECAUSE WE CAN DB WEB CMS(ADMIN) RWR
  23. 23. ONE MORETHING models gem
  24. 24. models.gemspec Gem::Specification.new do |spec| spec.name = 'models' spec.version = `git describe --abbrev=0 --tags`[1..-1] spec.summary = 'CMS Models' spec.description = 'This gem contains models part of CMS Core' spec.files = Dir.glob('app/models/**/*.rb') - ['app/models/editor.rb'] spec.homepage = ‘https://github.com/foo/bar' spec.add_runtime_dependency 'sequel' spec.add_runtime_dependency 'sequel_pg' spec.add_runtime_dependency 'sequel_postgresql_triggers' spec.add_runtime_dependency 'yard' end
  25. 25. PROS AND CONS ✓ Sinatra - lightweight, Rails - heavyweight ✓ Sinatra - high load, Rails - low load ✓ Read-only DB scalability ✓ Without microservices, RPC etc. - DB migrations can affect both apps
  26. 26. NOT IMPRESSED. WHERE IS HELL DISH?
  27. 27. LET’STRY SOMETHING NEW
  28. 28. BENDERTHE BOT
  29. 29. HOWTO COOK RELEASE 1. Create PR from master to production branch 2. TravisCI run tests and build Docker image, then stores image to DockerHub 3. Using our deploy chatbot, send image to AWS EB ‘next’ environment 4. After successful check on ‘next’ - switch! 5. Yum-yum!
  30. 30. PROS AND CONS ✓ Zero downtime deploy ✓ Check ‘next’ before switching ✓ AWS EB includes load balancing and auto scaling functions - DB migration will be on both instances - AWS EB deploy scripts - pain in the head
  31. 31. BON APPETIT, BRATISHKA!
  32. 32. GG WP! IS HIRING =)

×