Files
davideisinger.com/static/archive/www-viget-com-h4onv6.txt
2024-10-02 09:38:05 -04:00

319 lines
10 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[1] Skip to Main Content
[2] Viget
• [3] Work
• [4] Services
• [5] Articles
• [6] Careers
• [7] Contact
• Open Menu
Navigation
[9] Viget Close
• Practice
• [11] Work
• [12] Services
• [13] Articles
Were a full-service digital agency thats been helping clients make lasting
change since 1999.
[14] Contact Us
People
• [15]Company
• [16]Careers
• [17]Code of Ethics
• [18]Diversity & Inclusion
More
• [19]Pointless Corp.
• [20]Explorations
• [21]Code at Viget
Featured
[22]
Read the Article: Building the Future, One Intern at a Time
Newsletter
Building the Future, One Intern at a Time
[23]
Read the Article: Some Thoughts after a Major Ruby on Rails Upgrade
Article
Some Thoughts after a Major Ruby on Rails Upgrade
Docker: Right for Us. Right for You?
[eyJidWNrZXQiOiJ2Z3QtdmlnZXRjb20tYW]
• [24]Home
• [25]Articles
• [26]Docker: Right for Us. Right for You?
[27] Subscribe (opens in a new window)
Share
• [29] Share this page
• [30] Share this page
• [31] Post this page
Eli Fatsi, Former Development Director
Article Categories: [32] #Code, [33] #Back-end Engineering, [34] #Tooling
Posted on March 29, 2021
• [35]
Share
• [36]
Share
• [37]
Post
Some reflections from our adventures in Docker
S o m e r e f l e c t i o n s f r o m o u r a d v e n t u r e s i n D o c k e r
Over the last two years, we've been using Docker more and more here at Viget.
We're a consulting agency so our developers are cycling on and off a wide
variety of projects, often times building and maintaining multiple distinct
platforms simultaneously. Docker has provided a handful of specific wins with
this setup, and brought with it a handful of it's own drawbacks:
Where Docker is Good [38]#
Running multiple versions of dependencies (eg: postgres)
This used to be a large pain every now and then, now it's not. What more can I
say except thank you, Docker.
New developers onboarding to a project
Now when people onboard to a project with a sprawling tech stack, they don't
have to become a local devops expert in order to configure their machine to run
the app locally. We can usually abstract the build and setup to a handful of
docker-compose calls and they're up and running.
Running non-standard dependencies uniformly on everyone's machine (eg: redis,
elasticsearch, background worker queues)
Similar to the problem of onboarding new people, onboarding new tech to a
running team can involve a lot of work if everyone has to update their stack to
accomodate the new tooling. Docker encapsulates a lot of the initial setup
complexity.
Where Docker is Frustrating [39]#
While Docker can make it quicker and easier to get complicated architectures
running on a number of developer (and non-developer) machines, it does so at a
cost. Docker adds an additional layer of infrastructure between you (the human)
and an application's runtime, which acts as a hurdle for a lot of standard
development tools and strategies.
For example, one of the first issues I ran into was seeing that my breakpoints
were suddenly unusable. When developing in a pure local environment, something
like binding.pry (Ruby) or breakpoint() (Python) will halt the code
mid-execution, and expose an interactive REPL for inspection. If you have a
Rails application running via a docker-compose.yml file, those breakpoints
hang, but there's shell to interact or continue with.
There is, of course, a solution to this issue (check out the follow on post to
this: [40]Docker + Rails), but it involves learning a bit about Docker and
using more than just the basic docker-compose build/up/down commands. Which
really seems to be the story for most problems we've hit: the solution is out
there, and the more you know about Docker / Docker Compose, the easier it is to
find it.
Summary [41]#
For the type of work we do at Viget, working on multiple projects across wildly
varying tech stacks, leaning on dependencies that range from cutting edge to
practically abandoned, Docker has brought our team way more upsides than it has
drawbacks.
I will mention that we haven't experimented with Docker in any of our
deployment / devops processes. I know this is another selling point for people
(bringing production / development environments closer together in behavior),
but we haven't found a use case for that that seems more appealing than our
current setup (primarily built on Terraform & Ansible).
Whether or not leaning on Docker is right for you is entirely dependent on the
kinds of projects you're running and what team you have working on them.
Something I can say with some certainty though is that Docker has the power to
hide a lot of local devops pain points, so if you and your team are drowning in
those, maybe give Docker a whirl.
Related Articles
• [42]
Some Thoughts after a Major Ruby on Rails Upgrade
Article
Some Thoughts after a Major Ruby on Rails Upgrade
Noah Over
• [43]
Setting up a Python Project Using asdf, PDM, and Ruff
Article
Setting up a Python Project Using asdf, PDM, and Ruff
Danny Brown
• [44]
Craft 5: What It Means For Super Table Page Builders
Article
Craft 5: What It Means For Super Table Page Builders
Max Myers
The Viget Newsletter
Nobody likes popups, so we waited until now to recommend our newsletter,
featuring thoughts, opinions, and tools for building a better digital world.
[45]Read the current issue.
[46]Subscribe Here (opens in new window)
Site Footer
Have an unsolvable problem or audacious idea?
Lets get to work
[47] Contact Us [48] hello@viget.com [49] 703.891.0670
• Practice
• [50]Work
• [51]Services
• [52]Articles
• People
• [53]Company
• [54]Careers
• [55]Code of Ethics
• [56]Diversity & Inclusion
• More
• [57]Pointless Corp.
• [58]Explorations
• [59]Code at Viget
Sign Up For Our Newsletter
A curated periodical featuring thoughts, opinions, and tools for building a
better digital world.
[60] Check it out
Social Links
[61] Viget
• [62]
• [63]
• [64]
• [65]
• [66]
• [67]
Viget rhymes with 'dig it'. Click here to hear how we say it.
Office Locations
• [69]Washington, DC Metro
• [70]Durham, NC
• [71]Boulder, CO
• [72]Chattanooga, TN
© 1999 2024 Viget Labs, LLC. [73]Terms [74]Privacy [75]MRF
References:
[1] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#content
[2] https://www.viget.com/
[3] https://www.viget.com/work/
[4] https://www.viget.com/services/
[5] https://www.viget.com/articles/
[6] https://www.viget.com/careers/
[7] https://www.viget.com/contact/
[9] https://www.viget.com/
[11] https://www.viget.com/work/
[12] https://www.viget.com/services/
[13] https://www.viget.com/articles/
[14] https://www.viget.com/contact/
[15] https://www.viget.com/about/
[16] https://www.viget.com/careers/
[17] https://www.viget.com/code-of-ethics/
[18] https://www.viget.com/diversity-equity-and-inclusion/
[19] https://pointlesscorp.com/
[20] https://explorations.viget.com/
[21] https://code.viget.com/
[22] https://www.viget.com/newsletter/building-the-future-one-intern-at-a-time/
[23] https://www.viget.com/articles/some-thoughts-after-a-major-ruby-on-rails-upgrade/
[24] https://www.viget.com/
[25] https://www.viget.com/articles
[26] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#hero
[27] http://eepurl.com/gtHqsj
[29] https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
[30] http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
[31] https://x.com/intent/tweet?text=Some%20reflections%20from%20our%20adventures%20in%20Docker%20https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
[32] https://www.viget.com/articles/?category=code#results
[33] https://www.viget.com/articles/?category=back-end-engineering#results
[34] https://www.viget.com/articles/?category=tooling#results
[35] https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
[36] http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
[37] https://x.com/intent/tweet?text=Some%20reflections%20from%20our%20adventures%20in%20Docker%20https%3A%2F%2Fwww.viget.com%2Farticles%2Fdocker-right-for-us-right-for-you-1%2F
[38] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#where-docker-is-good
[39] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#where-docker-is-frustrating
[40] https://gist.github.com/efatsi/23b42c707ba39a6ae0926c1d1fc71749
[41] https://www.viget.com/articles/docker-right-for-us-right-for-you-1/#summary
[42] https://www.viget.com/articles/some-thoughts-after-a-major-ruby-on-rails-upgrade/
[43] https://www.viget.com/articles/setting-up-a-python-project-using-asdf-pdm-and-ruff/
[44] https://www.viget.com/articles/craft-5-what-it-means-for-super-table-page-builders/
[45] https://www.viget.com/newsletter
[46] http://eepurl.com/gtHqsj
[47] https://www.viget.com/contact/
[48] mailto:hello@viget.com?subject=Hello%2C%20Viget%21
[49] tel:7038910670
[50] https://www.viget.com/work/
[51] https://www.viget.com/services/
[52] https://www.viget.com/articles/
[53] https://www.viget.com/about/
[54] https://www.viget.com/careers/
[55] https://www.viget.com/code-of-ethics/
[56] https://www.viget.com/diversity-equity-and-inclusion/
[57] https://pointlesscorp.com/
[58] https://explorations.viget.com/
[59] https://code.viget.com/
[60] https://www.viget.com/newsletter/
[61] https://www.viget.com/
[62] http://x.com/viget
[63] https://github.com/vigetlabs
[64] https://dribbble.com/viget
[65] https://www.instagram.com/viget/
[66] https://www.linkedin.com/company/viget-labs
[67] https://vimeo.com/viget/collections
[69] https://www.viget.com/dc-metro-hq/
[70] https://www.viget.com/durham/
[71] https://www.viget.com/boulder/
[72] https://www.viget.com/chattanooga/
[73] https://www.viget.com/terms-conditions/
[74] https://www.viget.com/privacy-policy/
[75] https://individual.carefirst.com/individuals-families/mandates-policies/machine-readable-file.page