Randy Fay, the maintainer of DDEV discusses the key features and functionalities of DDEV, a Docker-based development environment that streamlines setting up and managing local development for applications (no Docker knowledge is required). Whether you're creating applications in Python, PHP, or other languages, DDEV will save you tremendous time and effort. It also works great for managing multiple projects, or working with a large distributed team, ensuring everyone’s configurations remain in sync.
Randy also demos DDEV, showcasing how quickly and easy it is to set up a local Drupal development environment quickly. Additionally, he touches upon the history and future of DDEV, and the critical role of the DDEV user community in both supporting the project and shaping it’s development.
[00:00:04] Today, I'm talking with Randy Fay, the maintainer of DDEV, who's also going to be doing a demo of some of the features and functionality in a little bit. DDEV is a very popular Docker based PHP development environment and it enables you to get up and running in minutes, even if you don't have any Docker skills.
[:[00:00:36] I'm Michael Meyers, I'm the Managing Director of Tag1. Tag1 and our teams are very active in contributing to open source projects and communities. In fact, almost all of our client work comes to us because of our contributions and reputations with projects like Drupal. So it's really important to us to support the ecosystems and the tools that we use and rely on.
[:[00:01:18] If you need help with your large scale application, please email us at info@tag1.com. I'm really excited to have Randy on the show today. Uh, Randy, welcome to Tag1 Team Talks, and thank you so much for joining us.
[:talking about Tag1, and enjoy talking about your Tag1 t shirt, which the people listening can see.
[:[00:02:06] I don't know if you're like telling these people to do so, um, but you know, over the last 17 years, we've sponsored a lot of open source projects. I can't recall outreach like this before. Um, and so, you know, I hope, you know, I'm sure you know this, but I just wanted to say it. People are super passionate about DDEV.
[:[00:02:30] Randy Fay: We do all appreciate your, your sponsorship of DDEV and, and, uh, and it's a, you know, it's a great community. We're working on it all together. So I'm glad that people are telling you about that. And we, you know, we, we at DDEV really appreciate it.
[:[00:02:46] Michael Meyers: We were gonna keep doing it anyway, but if that was a tactic to get us to keep doing it, it worked. , um, I think it, it would be really helpful to, to step back a little bit and, and provide a little bit [00:03:00] of history, some context for people. Can you give some insight into, you know, when and why did DDEV come about and, you know, and your involvement?
[:[00:03:12] Randy Fay: Yeah, it was kind of interesting thing. I went to work. I took a regular job with a company named Drud in like 2016 or something like that. And their goal was to make a Kubernetes based hosting environment. And so, like, I just, you know, tried to understand all the things and I love hosting and I love, you know, All the things about it, but I really didn't, that wasn't my thing.
[:mean, that kind of [00:04:00] generosity is amazing. You know, like I say, I wasn't really all that thrilled about the other things they were doing, but. They let me do DDEV. And it was, it was a lovely thing. And of course, then they lost their funding. Some of your listeners will remember that. They lost their funding, like many startups do, and they went away. And because it's a great thing to do, I just kept on going with DDEV. And, and maintaining it, uh, it's, I'm, I'm old and money isn't the thing.
[:[00:04:55] As a matter of fact, I saw the, the anniversary. So for two years, they've been sponsoring DDEV [00:05:00] at a very high and very appreciated level by paying me a salary, which is amazing. And, and more than that, it, um, It gives, uh, significant credibility to the project. When, I was just flying along saying, well, I'll do it, you know, and, and, uh, we didn't have the financial resources.
[:[00:05:49] DDEV has been incrementally going for, is it seven years now? Maybe it's coming up on eight. Um, but [00:06:00] yeah, that's the, that's the history. We just move along and find our way.
[:[00:06:18] Um, can you give us a sense of who uses DDEV and like, what is the most common use case? Like what are, what are people doing on a day to day basis with detail as a tool?
[:[00:06:47] You know, things just get really messy and things don't work out. Developers used to do that. They used to work like on integration servers and you'd have two people out there changing code at the same time and it wouldn't be [00:07:00] under source control and things like that. And We have at least moved on past that.
[:[00:07:31] They know more about JavaScript or PHP or whatever it is, and they don't want to know how to configure Nginx and PHP and run it locally on their machine and fix it for different projects. So the whole idea is to be able to have your, your project, your website project, checked out on your machine and use it there and not have to think about that.
[:[00:08:40] But that's what DDEV is, is it's for local development of websites on any platform.
[:[00:09:02] Like, I don't do much development anymore, unfortunately, and, you know, it's a lifesaver to be able to, like, spin something up and get going very quick. Like, I don't have the skills to sling Nginx anymore. And, you know, or the, or the time to dig into it. Um, so it's, it's a time saver. And that, you know, consistency, so you're not introducing problems that you need to solve later.
[:environments. So, there's a big gap, you know, for the longest time. In local development, you know, um, and people would always say,
[:[00:09:47] Michael Meyers: The developer catchphrase.
[:[00:09:54] Randy Fay: One of the things that DDEV does, DDEV is built on top of Docker. So, [00:10:00] what is going on is there's little Linux machines in there, and those Linux machines look the same on any platform and any developer's machine. So, your friend down the hall has the, if you, if you've checked in your configuration, which is the normal thing, then your friend down the hall Or down the world or across the world has the exact same little Linux machines running, whether it's on a Mac or windows or arm 64 or AMD, 64 Intel or whatever those machines are the same.
[:[00:10:59] Michael Meyers: Now, if [00:11:00] you happen to be savvy in Docker, is there, you know, can you, can you do more or is it really just about abstracting, you know, the complexity and enable you to get to develop them in, in deployment?
[:[00:11:46] So those are little complexities that people can do all of those things, but the average person doesn't run up against that, at least at first. So with the, with the add-on ecosystem and [00:12:00] everything, we don't have that, that need to really know about Docker.
[:[00:12:14] Randy Fay: I think the The biggest thing is the great community means that it's really well maintained So the the community is very very active And lets us know when things go wrong and we're able to get to those things and figure it out As you know all the piece parts are changing all the time. So we've got new upstream components all the time.
[:[00:13:05] And, and of course the, the community sponsoring two of us maintainers to be working on it all the time is a, is a fantastic thing. But, uh, aside from it being predictable and maintained. A lot of people really, really like the performance, especially on, uh, on Mac OS, which has always had a, uh, black mark on, uh, Docker with Docker desktop and stuff like that, uh, DDEV implemented, uh, technology.
[:[00:14:26] It can be faster than a, than a real hosting environment. It can be as fast as a, as a Linux local development environment.
[:[00:14:49] Um, I'm curious, the, the open source, you know, like the community, you said they're, they're, they're reaching out, they're, they're
blems they run into. Um, are [:[00:15:04] Randy Fay: Oh, yeah. Yeah, we have contributions and we're totally dependent on them.
[:[00:15:37] We have a couple of a couple of hard hitters on Magento 2 that make sure that that's kept up to date. The, yeah, so people come into the, into our, uh, DDEV discord or into the GitHub issue queue or Stack Overflow. And, um, they say, well, this is, this is what's happening. This is what needs to [00:16:00] happen. This is what's broken.
[:[00:16:26] But anyway, we, we love that. And I think that's, to me, that's the fundamental thing that makes DDEV fly is the community engagement and making it so that it's, you know, so that it's real, so that it works for them.
[:[00:17:02] And I think that, you know, um, from my experience in open source, the community is the heart of the project, right? Is, is, you know, what, what talks about the health. Of the project and so it's really great to see Um, what about add-ons like is that like another way that that people can contribute or you know?
[:[00:17:59] But [00:18:00] there's a community technique for those to be placed in a GitHub repository in an add-on format. And it's really, really easy to create the add-on. And that add-on contains the Docker tidbits or whatever that you need. And then you can just add it with ddev get. So you can just do a ddev get DDEV slash DDEV dash Redis and boom, it's installed and it's going and so that's that's great.
[:[00:18:55] So, there's quite an ecosystem of those, and [00:19:00] we probably, it's probably outgrown some of the technology that we have right now you find out about things on the command line with ddev get dash dash list And one of the things that we talked about yesterday, we had our annual full blown review. Our advisory group.
[:[00:19:49] And with a little better, um, access what those add-ons are, because there's a lot of them. And some of them are experiments, you know, that [00:20:00] might have not, might not have succeeded. Some of them have been promoted to fully official. A number of them are really well used, and we need to do better with that.
[:really complicated. But there, They're, uh, they're straightforward. They're, uh, they're, it's amazing how nice it is to build one.
[:[00:20:37] Michael Meyers: For, for teams that are working together, where everybody has their local DDEV, you know, an infrastructure change is made, you know, and rolled out. Is there a way to propagate that back to everybody's local development line so that everything stays in sync and we don't end up back with what it worked on my machine?
[:[00:21:20] So let's say that you're upgrading from PHP 8. 2 to 8. 3. Somebody would make that change in the ddevconfig. yaml file. They would check it in, they'd make a PR on the, on the project, and then that PR would get pulled and everybody would have that same configuration.
[:[00:21:51] Randy Fay: You bet. Yeah, I'd be happy to do that. Um, what I'm going to do is I'm going to go over to, I'm going to share my screen first. And I'm [00:22:00] going to go over to the DDEV docs. Let's see if I can share properly. Always share. I can only share the whole desktop because otherwise I get confused anyway. So here I am. I am going to go to ddev. readthedocs. io
[:[00:22:37] Michael Meyers: Yeah, it looks great.
[:Magento, Moodle, uh, Python, Flask, uh, Shopware, Silverstripe, Statamic, if that's the right way [00:23:00] you say it, And TYPO3 in WordPress.
[:[00:23:28] Um, And so I am going to just do these, um, these steps right here. So what I'm going to do is create a new directory, and then I'm going to use the ddevconfig command to tell it what the ddev configuration is. Then I'm gonna start the project and then I'm gonna use a composer create a DDEV composer create, which is the same as what you may have used.
[:[00:24:25] And that's, we'll just do that right quick. So I am going to switch over.
[:[00:24:35] Randy Fay: Yeah, and they, you know, it works fine.
[:[00:24:51] Randy Fay: Well, remember that people, web developers don't work in a perfect world, and lots of them inherit, and sites [00:25:00] that have been neglected for a long time and need to be resurrected or need to be upgraded and you have to figure out how to run those somehow. So DDEV supports clear back to PHP 5. 6 and with some specialized techniques you can go even farther back than that.
[:why don't we remove Drupal 6 and 7? Because they're obsolete, or at least Drupal 6, right? And I said, no, because everybody has to be able to recreate these things. So let's see what I can do here. Um, I just want to make sure I don't already have one of these.
[:[00:26:10] Um, and there I am, and I have now done a DDEV configuration. If I do a ls - la, we'll see that we have a DDEV directory now. So the DDEV directory contains the configuration. Now I'm going to do a DDEV start. Which builds the, builds the containers and projects that I need and brings them up. So it's going to bring up nginx by default, and it's got phpFPM coming up behind that.
[:[00:26:55] Michael Meyers: Oh wow, it configures it right in your browser. This is like, I mean, literally you just cut and paste and you're up and running. [00:27:00] This is crazy.
[:[00:27:27] And we're stopping and starting to make sure that the, that the, all the things point to the right things inside everything. So, and now I'm going to do a DDEV Composer require in a half a second here. DDEV Composer, Require Drush Drush.
[:[00:28:22] In the, um, in the quick start, it would say that I should do a drush, uh, ddev drush uli now. I don't usually do that, but we'll do it here. Um, and that shows us the link. You see that it's got the proper link and everything. And I'll just click that link and open it up. And here is our project. And we're logged in as admin.
[:[00:29:12] And, uh, there it is running, and it's all configured properly. We can go to the reports, and hopefully we'll get a status report. That says everything is okay. It's got warnings, but these warnings are about. Oh, you're running this in a development type mode. So that's the, that's the scoop. Anything else you'd like to see there?
[:[00:29:59] To be able [00:30:00] to spin up DDEV in a few minutes, install the module, you know, get it up and running, you know, it, it makes it so easy to just try things, right? Oh, I heard this module is cool. I want to experiment with this or, you know, it, it really empowers, you know, I'm not like the core use case per DDEV, you know, but, um, it, it enables me to do things that I just wouldn't do otherwise, um, because of that ease of use and that functionality.
[:[00:30:36] Randy Fay: You bet, yeah, that's a great use. And, and you've, you, you've never got anything to lose.
[:database so you can actually do DDEV snapshot before you go do something weird and then go right back to it with a DDEV snapshot [00:31:00] restore and there you are. And that that's a great thing for migrations.
[:[00:31:22] We have a tip of the day when you run DDEV start the 1st time in 24 hours and I should make sure that snapshots in there.
[:[00:31:41] And so it really, you know, wherever you are on the spectrum and, or, you know, your path from one end to the other. Um, it's, it's a really fantastic tool. Um, you know, given all that it does, you know, what is your, what does your roadmap look like? Like, what are the things that you're [00:32:00] focusing on over the next year?
[:[00:32:32] So, as far as community, we want to continue training maintainer, training contributors and maintainers, and make sure that everybody can contribute. And that they're successful contributing and that we provide all the materials for them. We try to document everything, but we have last year we did, I don't know, 10 or 12 or 15 weekly sessions, which were live and recorded training about contribution and maintenance [00:33:00] things.
[:the sustainability. We've been working on, um, making sure that the project is financially sustainable.
[:[00:33:50] So sustainability and just making sure that all those things are properly set is the second thing. And then the third thing on the technical, [00:34:00] we have a proposal to consider breaking up some of our images into multiple images. So right now we have a, this is kind of off in the weeds, but we have a, we have a web, uh, image which contains both NGINX and PHP and a lot of other things.
[:[00:34:43] Just keeping up, just helping people out, just solving bugs, just making sure that people can do what they do. And so I expect that this year will feel mostly incremental, but we want to, we want to remember those key things that we need to grow [00:35:00] in.
[:[00:35:12] Without those two, there is no technology, so that's really great. Randy, this was awesome. I really enjoyed, uh, chatting about this. Um, you know, it's no wonder why DDEV has gained, you know, uh, an awesome reputation and is so popular. I hope folks listening and watching, uh, you know, that aren't using it are going to check it out.
[:[00:35:48] Uh, you can check out our past Tag1 TeamTalks at tag1.com/ TTT, that's three T's for Tag1 TeamTalks.
[:[00:36:16] Uh, really appreciate it. See you soon. Great to see you. Thanks.