Deploy your Rust project in 20 minutes

Поділитися
Вставка
  • Опубліковано 10 гру 2024

КОМЕНТАРІ • 90

  • @letsgetrusty
    @letsgetrusty  Рік тому +5

    📝Get your *FREE Rust training* : letsgetrusty.com/bootcamp

  • @gustav_spin
    @gustav_spin Рік тому +9

    There is no better video on youtube of how to make a deploy! Thank you so much for the video, simply the best explanation I've ever found.

  • @leifelliott1500
    @leifelliott1500 Рік тому +60

    Very practical tutorial. I'm reading through Zero2Prod in Rust right now, very happy about the state of using Rust to build web microservices. I would love to see a full Axum framework tutorial.

    • @haydn.murray
      @haydn.murray Рік тому +3

      I’m reading zero2prod too!

    • @attilluss
      @attilluss Рік тому

      Also reading it..or going back to it after few months

  • @ludwig8841
    @ludwig8841 Рік тому +15

    I would love a full tutorial on the Axum framework!

  • @CamembertDave
    @CamembertDave Рік тому +2

    Being able to use the scratch base image is really cool.
    Did a quick test. It took an 18.6 MB (6.7 MB compressed) alpine-based image down to 11.3 MB (3.4 MB compressed).

  • @rmnilin
    @rmnilin Рік тому +8

    Thank you for the engaging content!
    I'd like to share my opinion regarding the axum tutorial.
    I find the topic of refactoring a project from the state shown in the video to a minimal production-ready state, including migrations, binding DTOs with models, error handling, etc., more intriguing.
    There are plenty of resources about building a pet-project-like API based on axum, but content covering the topic I described would be, in my opinion, significantly more valuable and rare.

    • @rmnilin
      @rmnilin Рік тому +2

      Ah, it is mentioned at the end of the video that the topic of real-world applications will be covered within the bootcamp. Thank you!

  • @lll_Death_lll
    @lll_Death_lll Рік тому +18

    Would love to see an Axum tutorial!
    Btw, I think link to code in the description doesn't work

  • @TheOriginalJohnDoe
    @TheOriginalJohnDoe Рік тому +1

    I feel honored that you used my credentials in your video.

  • @lapppse2764
    @lapppse2764 Рік тому +4

    Thank you for your videos! They help a lot!

  • @MadTofan
    @MadTofan Рік тому

    I was pulling my hair and spent a week to do what this video display for my microservice axum and tonic project last month. I haven't tried the caching yet, but since my server is an on prem machine, it is not a major issue. 😊

  • @lukevanaardt8675
    @lukevanaardt8675 Рік тому

    I'd love a full Axum tutorial! Thanks for the great videos!

  • @jonas6386
    @jonas6386 Рік тому +1

    Great to see a video that provides the full picture of writing and deploying a rust web app! Maybe I missed something, but at 6:55 we define a volume for the database. Will this volume be a directory on the droplet? If that is the case, I guess in a production scenario, we would also like to have a mechanism to take backups of that directory in case it contains valuable user data.

  • @min2sia
    @min2sia Рік тому

    Shuttle is another nice alternative. Exploring it right now.

  • @iskrabesamrtna
    @iskrabesamrtna 7 місяців тому

    Fantastic tutorial! Excellent explanation! Thank you!

  • @scotty3024
    @scotty3024 Рік тому

    One of the most useful videos on this channel!

  • @HunterRoMike
    @HunterRoMike Рік тому

    Please make a video series on the Axum framework. Awesoe video, btw!

  • @sustainablewww6715
    @sustainablewww6715 Рік тому +1

    Fantastic video 😊 more of these please.

  • @adrianscarlett
    @adrianscarlett Рік тому

    I'd love to see a comparison of frameworks, it would be interesting to see how easy (or hard...) it is to change to a different one.

  • @kevz3351
    @kevz3351 Рік тому +2

    Thanks for the tutorial!

  • @jamaicandisciples7207
    @jamaicandisciples7207 10 місяців тому

    Well done. Please create tutorial on Axum. Thanks

  • @j.enriqueortegasilvera6570
    @j.enriqueortegasilvera6570 Рік тому

    Great video , super useful , in my personal project.

  • @CalifornianViking
    @CalifornianViking Рік тому +1

    What are your thoughts about deploying something stateful like Postgres in a container? Is it recommended? What are the pros and cons?

  • @legionfalls
    @legionfalls Рік тому

    Would love to see an Axum tutorial!

  • @cedwards1080
    @cedwards1080 Рік тому

    Your videos are very well done!

  • @dmitriidemenev5258
    @dmitriidemenev5258 Рік тому

    It would be amazing if you mentioned Shuttle.

  • @SyamaMishra
    @SyamaMishra Рік тому

    Yes please for an Axum tutorial.

  • @aperson4051
    @aperson4051 Рік тому

    This was great. Could you do something similar with kubernetes?

  • @UweStrempel
    @UweStrempel Рік тому +1

    Axum tutorial would be nice.

  • @aftalavera
    @aftalavera Рік тому

    The boot camp is just starting to sound like the release of Jai!

  • @kombi1697
    @kombi1697 Рік тому

    Did anyone experience issue connecting to their droplet IP?...my droplet IP refused to connect and I don't really know why despite taking the same steps.

  • @DJenriqez
    @DJenriqez Рік тому +4

    Personally (not saying its good) its easier and faster (for me) to build rust under linux WSL and then in Docker file only copy build result. Docker container is then smaller, and build with deployment are faster.

    • @oriyadid
      @oriyadid Рік тому +1

      I already replied to this earlier but seems UA-cam hid the comment.
      A better way to do this is a Multi-Stage Build. It's a native docker feature and it lets you build inside one image, then copy the binary to a new one, which will be the final product.
      This way the entire process is in docker, and you don't need to depend on WSL.

    • @DJenriqez
      @DJenriqez Рік тому +1

      @@oriyadid this is too big overkill for project types, budgets and people I work with,… docker is evil for me I have to handle somehow,… but I agree.

  • @bhavyakukkar
    @bhavyakukkar 3 місяці тому

    i have a question, why didn't you use rust's official docker image?

  • @irlshrek
    @irlshrek Рік тому

    thanks for this!

  • @sighupcmd
    @sighupcmd Рік тому +2

    One of the main killer features of rust for me is ability to avoid docker completely. So all I need to do is create .sevice file, and just scp my binary. Of course containers are great for scale, but I will use scp/ansistrano as long as possible.
    So, you can deploy rust in 5 minutes for the first time, and in 1 second all the others :)

  • @redhawk3385
    @redhawk3385 Рік тому +7

    I love you videos, however actions-rs/toolchain is long dead. It should not be used since it is not maintained anymore. I would love to see a video on rust ci for building on all os's, then testing audit and clippy on just linux.

    • @penguin_brian
      @penguin_brian Рік тому +1

      Is there something else we should be using instead?

    • @badtrapify
      @badtrapify 6 місяців тому

      @@penguin_brian I'm currently trying it with dtolnay/rust-toolchain@stable

  • @badtrapify
    @badtrapify 6 місяців тому

    I'm kinda new to rust and i try to do what is described here (Had to change a few actions / versions) but in general:
    The github action is not able to compile my code, because sqlx needs a database running when using the query! macro and there is no database at compile time. Even if i provide a .env file with DATABASE_URL being set, i get compile time errors, that DATABSE_URL needs to be set. (I don't think this would change anything, as there... is no database on the action runner).
    Is there any special sqlx compile time magic i'm missing out?
    Second thing i notice: There is a github action secret being set for the DO API token. But it seems to never being used actually (Why should it be? You just ssh / scp into an existing droplet. No need for digital ocean API calls?!)

    • @badtrapify
      @badtrapify 6 місяців тому

      Ok. I could answer the first question mysqlf by checking the sqlx docs. And if another newbie stubles accross, this one is for you:
      I had to set up an accessable db (or postgres container) and then:
      sqlx database create
      sqlx migrate run
      to apply the db-migrations in the migrations folder
      and then
      cargo sqlx prepare
      To prepare everything for SQLX Offline compilation mode.

  • @daviidon
    @daviidon Рік тому +1

    Awesome but this needs to be more robust for real production services. You should only shutdown old containers after the new one is up and healthy which would need a proxy and the database container should be kept separately. You wouldn't want to restart your database every time your api changes.

  • @thehard-coder9398
    @thehard-coder9398 Рік тому

    @letsgetrusty - thanks for creating such a great video. Will this content will be covered in the Bootcamp?

    • @letsgetrusty
      @letsgetrusty  Рік тому

      Yes it will!

    • @thehard-coder9398
      @thehard-coder9398 Рік тому

      @@letsgetrusty - I'm already a student of your Bootcamp. However, I don't see the content in the bootcamp. Would you mind sharing? Thank you

  • @digitalfriday
    @digitalfriday Рік тому

    excellent

  • @rHino122295
    @rHino122295 Рік тому

    This is an amazing video. Saving for later

  • @mygamesm
    @mygamesm Рік тому

    may i know what extension gives you the in editor debug errors?

  • @clayratliff7727
    @clayratliff7727 Рік тому +1

    Good video but the link to the repo is broken

  • @lostphysicist
    @lostphysicist Рік тому +3

    The github link is broken

  • @Alex-hr2df
    @Alex-hr2df Рік тому +2

    But you're running Postgres locally in the Deoplet. Not good! Data will be lost even if you have volume in place. You should separate it. And by doing so, you don't need docker-compose anymore. Jusaying.

    • @ishaanmalhotra3008
      @ishaanmalhotra3008 Рік тому +1

      Yeah I was very confused by that. How does the database actually write on the disk, or does it just store in memory

    • @CalifornianViking
      @CalifornianViking Рік тому

      I asked the same question.
      Containers are stateless.

  • @priyankgupta
    @priyankgupta Рік тому

    Hey dude,
    I have a thing for technical writing.
    Can I use this video to write a technical blog post that will basically trace this video?
    Asking for permission, will obviously credit appropriately.

  • @flyaruu
    @flyaruu Рік тому

    The caching part of the video was kinda rushed, that part deserves its own in depth video

  • @MrPielover19
    @MrPielover19 Рік тому

    why axum instead of rocket? personal preference or is there a specific reason?

    • @தமிழோன்
      @தமிழோன் Рік тому +2

      Maybe because Axum is developed by the Tokio team. Rocket is mostly developed by a single developer. A lot could go wrong if he abandoned the project.

  • @tekipeps
    @tekipeps Рік тому

    Doesn't this cause downtime?

  • @AchwaqKhalid
    @AchwaqKhalid 5 місяців тому

    -DigitalOcean- mini-pc 👨🏻‍💻

  • @logeshkumarrajkumar861
    @logeshkumarrajkumar861 Рік тому

    Hi Thanks for the video. The githib link is broken.

  • @ac130kz
    @ac130kz Рік тому +2

    passwords aren't good, there should be a key instead

  • @hos7012
    @hos7012 Рік тому

    axum plz

  • @coffeefingies
    @coffeefingies Рік тому +2

    Repo link is a 404

  • @barreltitor1419
    @barreltitor1419 Рік тому

    I'd replace docker with podman

  • @coffee-is-power
    @coffee-is-power Рік тому

    1:44 postman... that's forbidden, must use insomnia..

  • @primozpadar
    @primozpadar Рік тому

    You could use docker swarm or dokku instead of docker-compose (which us not really meant for producion). Otherwise, really great video!

  • @janisozols2055
    @janisozols2055 Рік тому +2

    Your repository is private.

  • @skeam_tv
    @skeam_tv Рік тому

    action-rs toolchain github action is an unmaintained project btw

  • @tcurdt
    @tcurdt Рік тому

    Please don't use root and password auth this way. 😞

  • @haliszekeriyaozkok4851
    @haliszekeriyaozkok4851 Рік тому

    deploying rust with docker is pointless. When you write rust apps you expect maximum performance from them. But docker is actually written with more slower languages than rust, it slows down rust very significantly. Because of that rust app's shouldn't be dockerized. If you should dockerize something, than you should write go or more slower and easier language instead.
    Depending on that, i love to see how to deploy rust apps on a vps and cloud.
    And i want to learn axum framework. I start to learn rocket in this times.

    • @tcurdt
      @tcurdt Рік тому +5

      > But docker is actually written with more slower languages than rust, it slows down rust very significantly
      You probably should do your homework on that one.

    • @int32_
      @int32_ Рік тому +1

      docker performance is near to native, with noticeable overhead only if you don't use host networking

  • @hendrykhoza4782
    @hendrykhoza4782 Рік тому

    Your bootcamp is so expensive, I am disappointed

  • @ybergik
    @ybergik Рік тому +1

    I've never understood why anyone would favour bloated deployment options to the simple 1) stop service, 2) replace binary, 3) start service.

    • @Notoriousjunior374
      @Notoriousjunior374 Рік тому

      What are you even saying?

    • @ac130kz
      @ac130kz Рік тому

      good luck paying the bills with all those downtimes

    • @DJenriqez
      @DJenriqez Рік тому

      You are right but only for some types of projects,… when you have small VM infrastructure this is cheapest and easiest option. I have customer, fifty years old company where this is the only way.