Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Containerizing Local Development... Is It Worth it? by Tony Drake Containers are the current hotness for deployment. But, how about development? They can provide a good way to manage local dependencies even if you're just writing a gem instead of an app. While writing and running code directly on your laptop has its own obstacles, using containers for development is not a silver bullet and brings along its own set of headaches. Which cases do containers make sense and how would they be configured? Containers may not be for you, but we'll go through some example setups. It'll be up to you whether or not you want to change your local setup after this talk. #confreaks #rubyconf2019
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In his talk "Containerizing Local Development... Is It Worth it?" at RubyConf 2019, Tony Drake explores the use and implications of containerization in local development environments. He addresses the growing complexity in development setups as teams and companies expand, particularly highlighting issues that arise when multiple applications or microservices demand different dependencies. Key points discussed include: - **Current State of Development**: The typical local development environment often becomes complicated with various tools like Homebrew, Ruby version managers, and databases. As applications evolve into microservices, this complexity can lead to dependency challenges, like managing different Ruby or Postgres versions. - **Introduction to Docker**: The presentation focuses on Docker and Docker Compose as tools for local development configuration rather than deployment tutorials. Drake emphasizes that while Docker simplifies development for many, it is not universally beneficial. - **Scenarios for Containerization**: Three primary scenarios for utilizing containers were illustrated: - **Siloed Applications**: Each Ruby app operates independently with no shared resources. - **Interconnected Applications**: Multiple Ruby applications that need to interact, which may include microservices communicating with each other. - **Gem Development**: Discusses the challenges of containerizing development for Ruby gems. - **Dockerfile Configuration**: Drake explains how to create a Dockerfile that supports a Ruby application, emphasizing the importance of binding to IP addresses and specifying version tags in order to match production environments closely. - **Docker Compose for Multiple Services**: He walks through setting up a Docker Compose file that manages multiple services, such as web applications, databases, and Redis. The advantages of using volumes and environment variables for real-time updates during development are highlighted. - **Hybrid Approach**: An alternative method discussed is using Docker solely for external services, like databases, allowing Ruby code to run natively. This can ease dependency management without overcomplicating local setups. - **Challenges and Considerations**: Drake candidly addresses potential downsides of using containerization, such as resource consumption (RAM and hard disk space) and learning curves for new developers. He concludes that while containerization can introduce speed limitations, especially for smaller projects, it significantly benefits larger applications needing structured dependency management. Ultimately, the presentation emphasizes that while containerizing local development has its challenges, it can provide a streamlined solution for managing multiple applications, helping teams align their development environments closely with production.
Suggest modifications
Cancel