 Welcome everybody. Thank you for coming. This is great drip con Barcelona Great times. All right. This session is on dev shop. It's an open-source product that we built free and open source Gives you hassle free hosting and testing So hassle free right that's kind of a bold statement But easy is good. We think so What makes it easy what makes it hassle free right? We've tried to make it easy to install Got a single standalone install script Right get that script you run it. You've got a dev shop We've made it really easy to upgrade. So we have a single command that you run That does all the steps you need to upgrade this server to the latest version It's really easy to extend because it's built in Drupal and Drush itself And so if you build Drupal sites, you're familiar with how the dev shops put together Most importantly, we've made it really easy use If you get push you use you can use dev shop Press the button. We like to say there's a lot of buttons. We like to press We've made lots of buttons and made them try to make them pretty and easy to use in Order to be productive. All right. This is all about Streamlining the development process and being more efficient at building websites So yeah, you know, we all want to be productive It's a lot of work sometimes In order to be productive you really you want a place to work, right? You want a clean nice place to work So dev shop is analogous to a workshop, right? And if you're if you build things you have a workshop of some kind It's got tools. It's got space everything you need to do your job to build things So dev shop is like a developer's workshop, right has servers tools All your environments everything you need to do your job of building websites To be a good to be productive. You want a clean organized workshop, right? You know as clean as possible. I don't know what your workshops look like or your development shop looks like But maybe it's something like this. I don't know the servers People work with sometimes end up looking like this Really, we wanted to look like this right nice and clean something to be proud of so Dev shop is user focus in this case the users are the developers pms Everybody right who's dev shop for we really feel like it's for everyone like it's a website you go to you log in You can see everything that's going on your in your workshop Everyone it helps helps everyone sys admins developers project managers QA people CTO the CEO Clients content managers designers they all are involved in this process Dev shop is like a common place for them all to go and see what's going on As this admin right I want to automate myself out of a job You know, so that's kind of the old joke about sys admins, but it's really true Its developers just want to build websites, you know project managers. We just want to make sure they do their job QA managers want to make sure they do their job correctly CTOs obviously want to ensure all the projects go well Clients want to make sure their only project goes well Content managers simply want to create content designers want to design So these are all the things they like to do things they don't like to do Sys admins, they really don't like to get calls at two in the morning. All right The service gone down Developers really don't care for solving server crashes or figuring out why the site's not working Project managers really don't like having to satisfy customers QA managers really don't like to yell at their team, but you know, maybe they do they Can do that a lot CTOs, you know, they really don't want to watch everything fail Once when if your workshops dirty failure can be pretty common CTOs really don't like that Clients really don't want their websites ever to go down Content managers really don't want to lose their content and Designers just don't want to be sad when they see what their work actually on the website, right? So deaf shop helps all of them, right? What does it give you? Time right so it's an automation system, right? So we're going to save time by being more efficient by being more productive How do we do it? With a sweet interface You know, so this is what the project's homepage that looks like it's a dashboard, right? It shows you every single project you're working on gives you the Drupal version Shows you the installation profile shows you the get URL so you can easily copy it get to work It shows you links for every little environment you've gotten running there in this case all three are agreeing with the check. That's good You can use any get repo with that shop anywhere you can clone from Acquia You can clone from Pantheon as long as it has access with SSH you can use it This is what a debt of a project looks like or project dashboard All right, there's a link for settings link for logs a link directly to the GitHub repo a little drop down tells you What branches and tags you got tells you when install profiler is when the last time I commit was detected You can have as many or as few environments as you want each one of these blocks represents a website Copy of your website This widget is the production Would site right so has a name you can name it whatever you want you want to call it live You want to call it production call it whatever you want? The branch there Says it's on the live branch it can change to a tag if you deploy it with a tag Drupal version You can lock it so you won't destroy your data and you can mark it as the live site Which is a little lightning bolt there, so you know this is my life site. I'm not going to touch it Shows you all the URLs you have attached to your web this particular environment. This one's got three Has a button to log in you press that button you wait a second You get a link and you're logged in as as an as the admin and you're good to go So if you have access to the Dev Shop front end you always can get into the website You don't have to remember the password Three days ago is the last time I commit happened on this site The files link goes to a files browser right in the web browser The backups shows you all the backups you have and then we have the deploy Buttons right we can deploy code. We can play data. We get the deploy that's a stack Which is the servers that it's running on So when you would deploy code you can choose a branch or a tag to deploy to you can change any Environment from one branch to the other change it to another tag Do it however you want you can deploy data by copying data from Other environments this includes database and files There's even a little trick you can copy from any Druch alias if you hook up remote environments And then there's the stack which is the set of servers that are running Your environment you can fit as many environments on one server as you want, but you can also attach other servers Right and have different have production be on a different server create whole array of clusters whatever you want so Branch environments are updated continuously every time you push code Pulls to that environment make sure it's always up to date a tagged environment this tag never changes, right? So it just sits there. You have to manually change it to another tag. It's very similar to aqua cloud if you use that Task logs right so every environment has a little tasks display It changes dynamically depending on what's running and you click that little button there and it drops down the latest tasks You can click the logs to go to the full list and see when things happened and what? You click the little sliders button. That's for settings gives you another drop-down. You can go to the environment settings There's a button to download modules into the project You can click that clone environment button to copy the environment to make a duplicate Fork an environment means copy it and create a new branch and push the branch. So you're ready to go with a new branch Disable environment allows you to turn it off and back on again before you delete it if you delete it If you disable it, then you can delete it There's a setting in there that lets you just turn it off to destroy it, but it's always safe to have that second step, right? So with a button you can push the verify that it makes all the show the files are set up right all the permissions have set up right Everything's working correctly. Make sure Apache is working correctly flush all caches rebuild registry run crown run DB updates You can do all these things manually if you want to You really don't have to though because every time you push it'll run those tasks for you back up store and Run tests in the dashboard you get this nice little get URL displays and developers can just go there and copy and paste to go develop locally Again, you get a drop-down with the branches and tags available The web hook URL is set up automatically now with github. So you don't really have to worry about that But the drush button is really handy you push that you get a pretty pop-up window Shows you all the drush aliases very easy to click and download get access Note the note here if you need to access you actually need to upload your SSH key and we've got that too So thanks to Drupal. We've got SSH key module Just like the one that's running on Drupal at org you upload your SSH key It puts it on the server for you and you're ready to go you can connect to that environment And your developers can use this too So depth shop deploy right this is this is the original driver of this project deploying is Can be a pain unless you have tools to automate it before Pantheon and Acria cloud. It was like Risky to deploy things like you change the code and remember Wait, I need to go clear caches. I need to run updates. No, we're going to standardize that Running deploy hooks every time the same Did you clear the cache is not a question, but it always has the same answer didn't have to okay? Every time you push code clears the caches This is very useful for productivity because themers for example can just push a template They don't have to go to the site and clear the cache afterwards. They don't have to do anything It will run those hooks every single time you push your code Run database updates as well revert features is an optional deploy hook and you can trigger a test run as well after every single get push Have a little feature in there that detects if you use Acway cloud and use their cloud hooks Write your own scripts for your own deploy hooks We find them notice that you have them and we'll run them for you as well on the dev shop server So compatible with Acway cloud sites So dev shop tasks these are the things that run right tasks are like Drush commands They run on them, but they run on the back end, but they're triggered from the front end So this allows you as a just a what through your web browser to go and click clear cache Go and click rebuild registry all of these things the tasks are logged then it knows when they failed It knows when they pass successfully it knows when they had errors and it shows you very clearly with these icons and the timestamp Form fields in the front end become Drush options in the back So you can create your own commands very easily if you need it This is the download modules tasks. So you simply type in the modules you want You hit save and it queues up a command to run Drush DL view C tools Same thing similar thing for deploy these checkboxes get passed to options Drush provision deploy update dash dash cache Okay, so very easy to basically build these kind of pre approved steps that you can run from the front end on the back So each task run gets its own page They're actually nodes in the front-end Drupal site So you get a sweet page like this that tells you success or error tells you what happened Tells you how long it took tells you the date that it ran on and how long ago that was and it tells it gives you The link directly to the site that it actually ran that task on Running tasks is better than running commands manually right if you're in there with the terminal You're a genius. You're amazing. You can hack on the terminal super fast and easy. It's great, right? You know how to do that But seriously running tasks is better It saves a log of what you did right it controls access to who's allowed to run those tasks So it's done safely. You can't make a typo. You know, it's it's built in History is maintained. All right. All the logs are saved. You can go back see what happened when you can't do that When you're just running commands manually on the command line, right? So tasks are great So there's a lot of different tools built in Dev Shop in addition what we already saw like I said, there's a Browse right built into the Website front-end is a browser so you can click and see what files are actually on your server This was helpful early on when deployment might not have worked. I could go in and see is that file actually there? Did it actually show up on the server click view easy? Cron is automatically set up You don't have to deal with that as a cron queue that runs on every single site That's hosted on Dev Shop don't have to set that up ever again Backups are automatic. You can have that configurable to run backups on on a queue You know Any time frame you want you can lock an environment so it won't destroy the database and it logs all the errors To the front end so you can make some visible in the front end so you can easily go in and see what happened What's going on? What's wrong? all that stuff so Speaking of logs on only do we show error logs went ahead and showed a commit log in there, too It's just really handy right enough to go into the server Figure out what the latest commit was what changes happened none of that these click logs commit log error log Watchdog easy all in one place Download modules button already touched on but I'm just so excited about it You don't need to clone your code to add modules to your project Whoa, right? You just type in the name of the module theme you want to download You can even type in a commit message right there It'll queue a command in the back end to download them add them to get commit them push them in one press of a button Same thing with committing features right any drush command can turn into a task Drush features update all get commit add all that stuff so many clicks Fill out the form press the button run the task Makes it really easy to manage features all the time Update all get commit get push One press of a button So like I said before dev shop servers right you can connect as many servers to a central dev shop servers You want so it was able to deploy sites to remote servers independently Each project each environment can live on its own server if you want it to be live somewhere else very simple to Set up okay, we made a command that does it all again It will set up all the packages it will walk you through the process of connecting over SSH It will make sure that it actually can connect it'll make sure that it actually has the right IP Walks you through every step of the way provisions the entire thing using ansible playbooks gets a patchy running. It's my school running Does the entire process and you're good to go? Really easy to configure once you have it set up so in each project You can configure the default environment settings and this means that whenever you create new environments for that project They'll go on to that server so you can say I want this project on this server I want this other customer to be on that server very simple to separate your sites out onto as many servers as you want Right in the UI we have the stack button This was you saw this earlier shows you the IP address shows you what servers the system is The site is running on very simple very easy to configure change it You can move it you can migrate sites between environments no problem all through the front end Most importantly right this is where it gets on the testing part Testing can be kind of hard to be a lot of maintenance a lot of work to get a testing system set up This system just does it so Given I'm on the home page and I should see welcome right this is kind of an assumption We all would have have about our websites. We want to see something on the home page This is an actual but hat test if you have not used the hat yet Go do it. It'll change your life. You write these tests in plain English Like that will run a machine will read that test and show you if it works Okay, so it outputs the exact text of the test when you run it. This is the output of a running test If it's green it worked if it's red it failed Right, so given I'm on the home page Then I should see view GIS hub data for this particular project that text is gone So either there's something wrong with the site or maybe the test is wrong But we know because this screenshot is from the dev shop interface So right in the web browser, you can click and see the test results Very quickly allowing you to fix whatever you have broken Allowing everyone else that is working on the website to see also see what's broken, you know so a PM can click there and say Hey developer, I noticed your test is broken because that line of text is no longer there Maybe you should go update that test because test that aren't passing because the copy is wrong very easy to fix So this helps to avoid exponential complexity You know Drupal have you ever built a access control based site like organic groups private content Social networking type stuff It gets very very very hard to test All of those different use users like who is able to see what this person created it So this person should hide it a human being really cannot process that type of work manually Right, your brain starts to hurt when you start to pretend to be four different people in one test So as an example Right, this test would work right if you had a let's say you only allowed blog Your blogs to be visible to logged in users Running this test will run through these steps For every one of these roles, right? So it be hat swaps out the role with The item in the table So for for each one of these it runs given i'm logged in with the anonymous role and i'm viewing a blog post Then I should not see my blog post and I should not see edit And then it runs it again as a logged in user the logged in user authenticated Should view be able to view it, but should not be able to edit Go through the same thing for moderator role go through the same thing for administrator role This is incredibly helpful and will make you way more productive because you can't tell when you're breaking things Because you have to go through this mental exercise pretending to be four different people So you can the hat makes it really easy to write not just tests But whole sets of tests that run as in different iterations over your project The feature of dev shop Is that you can Specify if you want all the tests are just some of them to run on every git push So with each environment you can check the boxes and say This is a special environment. My developer is working on something complex I only want this one test to run every time you push right gives faster feedback loop Developers work faster. They get the feedback faster things move a little smoother in generally you can just run them all though It's up to you One of the great things about the hat test as well is because they're written in english everyone can contribute to them All right, you don't even need to clone the code github.com gives you an edit button right in the website This is what it looks like you can type it in in english And when you scroll down, you can even fill out check this little radio button here This says create a new branch and start up whole request Super super easy. You just press that green button name your branch pms can test All right, I've trained pms to write the hat test and submit pull requests pretty cool so Back to the standard right we all know you should have a dev site and a test site and a live site We should we've all probably learned that by now, right? Well in reality there are some problems Right with that workflow. It can be a challenge. It works pretty well if you're like a solo developer Right, but as you grow as you as you have a team Having straightforward development like that Can really be confusing right because everyone's pushing code Multiple efforts can be colliding you can people overwrite each other's work people are pushing incomplete work You know and then you have to figure out well, how do I deploy this right if if this developer has some incomplete code in there You're constantly having to rebuild these environments too right if you push new code You know like how often you hear like hey is anyone on Anyone mind if I destroy dev and sync re-sync it up with the database of production What about tests? You know, it's kind of a pain you ask that question and you sit around waiting for people to answer And you don't know if you're going to ruin someone's day right by destroying those environments So it generates confusion You know what the larger your team is the more likely you're going to have that situation So there is a better way right and some some people a lot of people are already doing this right this isn't necessarily new But pull requests All right branches using git to separate all the work, you know per task or per developer. However you want to do it You you can now There's many blog posts about this like lullabot created a system that has some tools to do this There's lots of blog posts like I said about how to do this But dev shop has built in as a product you get pull request environments right Pull request driven development you open a pull request you get a new environment It gives you a link you click the link you see you see your site you see your code running On the production database right clones it Multiple tasks can be developed in parallel Very easy to configure right in the project settings you check a box to create environments for pull requests You check the box to delete them when they're merged very important I've seen qa servers that Forgot to delete those pr environments and you end up with like hundreds of websites sitting there filling up the server Filling up all this file space. It's not good. You got to have that cleanup process in place The deployment method for pull requests is configurable You can either run the run an install profile or you can just clone live So it's nice if you're depending on what you're working on if you're building a distribution It's going to be really handy to run the install profile from scratch If you're building a regular website, you usually want to clone live And this is what it ends up looking like so the interface changes slightly when you're using pull request environments Get a nice picture of your developers. There's a front ascento there Your deploy failed though. I don't know what's wrong with your code So each pull request is on its own branch as you can see Build manager 30 or 15 and hence data preview each one gets its own link with the name of the branch in the url So it's very easy to click it and see and remember what this particular environment is for And again every time you push code and runs the deploy make sure the cache is clear Make sure that your deploy hopes run and then it will actually run the test as well So every single push from every single developer will run those tests separately so that you call get your job done quickly and easily This can grow and then you end up something like this you get a lot of websites So it's important to review code regularly and merge things when they're done But this shows that you can really really take off you're gonna have as many environments as you want really It's Almost too easy to create them because you get end up with things like this So you want to try to Tone it down and merge your pull requests and get someone to review those things but With depth shop if you're running tests and you have good tests You just grab your bugs. Well anybody can review those and anybody can click that merge button And say good work. You're done so This is what it looks like when it's running. It's what it looks like when it fails That's what it looks like when it passes. Good job developer Your tests are passing congratulations, so Beyond that github integration github has these incredible apis that lets you put information into github Right, so when you submit a pull request We can actually notify that pull request put a little notification there that says depth shop bot deployed this code to this url That deployed Text is a link directly to that url. So without even going into the depth shop interface developers see there's my code There's my environment. I can click it and see if it worked Pms to all their bosses everyone that's in charge can see what's going on easily click total transparency It's a lot of fun. Okay, and here you can see github has a commit status api where we can flag a commit as passing or failing on multiple levels All right, so there's two built-in Commit statuses for depth shop. There's the deployment itself Where it's running through as if it were deploying to live by clearing caches and doing all the deploy hooks And then the second one is for tests And that's the tip the test pass or not So both of those things are very important right because the test doesn't include the deployment part So once it passes it looks like this and a very friendly green color Makes me very confident that you can merge that pull request if your tests are up to date. So write good tests Ah and by the way those details links over there Those go directly to the test results So developers not only get a link to their environment. They get a link straight to the test results They can see what happened. What went wrong Very quickly and easily Again dashboard. All right shows your whole operation at once every project every environment This update's dynamically now So when it's running a test, it'll spin the little gear will spin if it passes it'll turn green if it fails It'll turn red Right lots of little environments Lots of little environments pretty cool So how's it all put together a little bit of technical background? Warning it's on agar If you know agar you might be growing a little bit right now, but that's Too bad because it's kind of awesome. There's a lot of good things about it It does a lot of things really well It takes care of a lot of the work that you have to do to have a good hosting system Sets up a patchy for you files database settings. Everything is handled automatically the right way every time All right. Here's the task logs. It shows change permissions of the settings file to the right permissions Change changes everything the way it should be the ownership of the files Handled right you don't have to think about it Tracks every module every theme every version that you have installed on your site Very easy to give you insight into your site Each environment it does this for you know very neat very cool to see from a high level Everything that's going on on your website And it's just secure by default. Yeah falls best practices So future of dev shop Already working on it right Docker So cool get into it later. We can have a boff on thursday come. We'll talk about what we're doing It's powerful stuff. Docker is amazing We built a tool to make running Drupal sites any any site really it works wordpress and anything that runs in a container We built a command line tool which will be the new back end dev shop and maybe other tools We call tera and that we also have a boff about and haven't blogged about it yet or any of that stuff Because it's still pretty early, but very exciting stuff going on over there. We've got some great contributors like Hazy Smoldy boss who built Drupal console Eclipse gc chris van der water is contributing to it because he's an agri user and wants to help build the future He built the plugin system for Drupal 8 We might be able to use the same plugin system for Drupal 8 in this tera command line tool So anyway another presentation come to the boff would be a lot of fun Dev shop use case right we're using it a lot of places right now in production It works. So one of our biggest partners is called new civic. It's a company from new york They built a distribution for Drupal called decan. It is a open data portal. So it's very it's neat It's like a content management system for data sets So they are spinning these up all over the place for a lot of customers Like the country of sierra leone. They have an open data portal now, which is very helpful for them All right transparency and how their government works is key to improving these countries He built a data.org is a website. They created to simply share information because their data portal is built for that Both of these are hosted using dev shop On ibm software because the project is a partnership with ibm and the world bank North dakota we have a data portal up for them running on dev shop in their data center So they have a very secure data center uh I have to do all sorts of things to log in there with the vpn and Random pins and everything But it's a linux server dev shop can run on it. I have to manually deploy because it's behind a vpn So github can't tell it to deploy It's still no problem log in click a couple buttons deployed no problem and then healthdata.gov is another great site they built and launched for the health and human services for the united states federal government And that site is actually hosted on aquia. They host a lot of other sites in aquia It has a lot of sites on pantheon But dev shop makes a great standard platform for testing And for building your websites regardless of where those sites are hosted All right So some of the screenshots before of the dashboard are all of their websites in one place Running basically as a continuous integration server So it's really easy and fun to build on dev shop to test on dev shop But to host it anywhere All right, so it's one of the fun parts about being open source Oh boy, so movie time All right This is a movie right I recorded it. So I know it's not a live demo. Okay. I'm confident now all right so This is my website I created a dog blog This is our dev shop server I've got a link here for my live site I've got a beautiful dog Who needs a website? This is the bat test. I wrote to test this website. I'm going to commit some code here Because I added this test. All right. I'm going to push this code To that branch the dev test branch And once it pushes a little slow on the internet and the way it goes we push the code So There's the github repo. I look for my branch and I'm going to submit a pull request Because it was just in a branch. I didn't push the live or any of that stuff, right? So there's my branch. I can see my two dude commits ahead I'm going to give it a nice name. So everybody knows what it's for Just adding some tests. I'm not going to do any heavy-duty development today I'm just going to make sure that the site works. So when I click create pull request, it should Notify me right away That we have queued a deployment. We have queued a test run So developers know it's coming. Your site's going somewhere. Your code's going somewhere It's going to be Online ready for you to click and review So we're going to patiently wait for the site to clone. This is a real-time video. No editing So we're going to hold our breath for a few minutes and Watch this go. There's a link directly to the pr. So I'm just checking out the pr Oh, look. Yeah dev shop bot requested a deployment. There's the url. It's going to be at okay I guess when it's done, I'll be able to click that So I'm still going to just be a little patient It's copying the entire site copying the database copying the files It's going to be an exact copy of that production live site there And it looks like the clone finished it's got to do a couple extra steps to import the info into the dev shop server But oh look the deploy went well. All right green checkbox So the cache is cleared. Okay I assume the update's cleared. Okay, because it passed if the updates or caches didn't clear correctly, that would be a big red x And uh, almost there almost there patience So the links go back to the test results If I reload here, I believe this is when it works. Yeah, there it is So my pr2 has a link I can click it and there it is clone of my website custom url specific to my branch No problem easy to click send that around send that to your manager send it to your boss saying hey Look, I got the new features. Just go to this link. We use it even for clients We'd be like feature in progress need feedback from a client give them a pr link All right, I'll link to that url. Check it out. What do you think? There's the test running All right, it kind of loads in real time This test happens so fast though because it's a short one But this page will load the test as it's running in real time and you can watch it run the tests It's a lot of fun when you have a longer test. I should have written a longer test for this video Anyway, you can see oops it failed All right red x what happened click the link for details go directly to this beautiful full color test results page You can see the text. Oh, I got the text wrong All right, so I wrote a test that was bad instead of me. It should be the life and times of flora bell That's my dog's name so I'm going to commit that change very simple just fix the test Commit it I'm going to push it right before I push it I'm going to make sure the github page is not open because I want to see it happen in real time So I click the dashboard I click the github icon it goes to the goes directly to the page And when I push I should see some more activity on that page So I'm going to push and then quickly go back to github And boom there it is. All right github is a nice real-time web page as well Shows you requested a new deployment So it puts it's really cool. It puts the notification right into the timeline So you see commit commit deploy commit commit deploy and then the test crime So There it is we see the deploy running It's a lot of little animation there a little slider and the gear spins It's hard to see the gear spin if you're in the back But there we go turn green right the play worked caches cleared properly update database ran No problems now we're going to see if the test run finishes But again patience, but we're not still not going to click anything manually or trigger anything manually It all strings it together for us automatically And go back to the dev shop Dashboard just to see what's going on Aha now the tests are running should finish boom green Show all checks deploy success test success click the details link see how it passed everything is green We are good to go nice work developer This pr is ready for merge so Like I said, it's just github notice. We've never left the browser right after we push that code Click the button to merge Because the project's configured to delete pr environments when you merge that code is now queued for deletion All right, so the deletion takes a few minutes as well because it's getting rid of everything cleaning up after itself Database files of hatching config everything And if I reload here, you'll see no more site all gone So now that that pr environment is deleting, I think we're ready for a new release You notice the live environment is on version two And we have not created our tag yet. So I'm going to go create our next release Like checking out the master branch pulling the latest changes because there are new changes because we merged it on github We didn't use the even use the terminal to merge I'm going to tag in your release push the tag b3 back to github All right, go back to the dev shop And in a minute, I will it will know that there's a new tag Right now it says two. Now it says three. All right, so there's the tag It's available for deployment. I click deploy code on the live environment It tells me what I'm going to do I can decide at the last minute to change the deploy hopes that I want to So we want to clear caches and run the updates But you don't have to and now we're done and now We're going to sit and wait and watch this go by in real time and not click anything I hope it works So the deploy is running I'm pretty we're we're almost 100 sure that it's going to work right because we just tested the deployment Same code same database in that pr environment Right consistent deployment. Oh, it's green and then it goes away verify So immediately after the deployment works, it runs a verify script just to make sure all the files are in place and immediately after that Uh-huh that passed as well as we expected run tests changes dynamically Right in front of your eyes now it's running the tests on production and that passed as well So that's it Right We're going to click the link see the site is up and running and we're good to go Clean deployment full circle pull request environment Tests and an awesome website with an awesome dog Somehow writing their own blog. I don't know how it happens, but she loves that grass just hanging on the grass That's it. That's the video So thanks for watching Thanks a lot So anyway, you can try dev shop very easily It's uh got a vagrant the the repo itself has a vagrant file in it So just clone the code run vagrant up and you'll get a dev shop server We use that for development as well. You can read the docs on how To enable development mode so you can work on it if you want we really want you to come Contribute to it. It's open source product. It's drupal, right? It's the drupal of dev ops come help us out if it doesn't do what you want come help us out Tell us what's wrong with it join the chat room tweet your anger about it We want to know what's wrong with that so we can make it awesome for everybody Uh, like I said come contribute. It's on github. Uh, there's multiple projects associated with it because it's obviously a very big system It uses ansible playbooks for provisioning the servers And the rest is just php. So it's really relatively accessible and We're making it better all the time. The next versions are going to be incredible Uh, come connect. I'm on open dev shop on twitter get dev shop.com thinkdrop.net Uh, and we built a little support portal as well So every dev shop installation has this big purple help button So if you ever have any problems just push the button type in your question and we'll get back to you as soon as possible Thank you leave your message at the Dev shop support that's a real url lots all these new urls a lot of fun uh Yep coming up on tomorrow We scheduled two buffs. It was the dev shop workshop come bring your computer if you want me to help you spin it up You want me to help you? You know learn more about it come talk and whatever you want to do just come to the boff It'll be a lot of fun and then after that one in the same room. So we actually have a nice two hour block there Uh, is going to be our terra planning and strategy session Where all the contributors are going to come together and start working on it do some more things talk about the future Teach other people that want to learn about it come come learn docker. We'll be we'll try to be very helpful and collaborate and I guess that's it right questions I guess yeah, there's a there's a mic in the back. So if you can mind lining up so we can record it and everyone can hear you Thanks, uh, just a quick question. This looks amazing by the way, and I love the integration with um with github Does it also work with github? We use that Yeah, um, it would just be another module to create. So we want to support every Popular git and system get bucket. Yeah, exactly So, I mean, it's all they all have relatively similar functionality So there's a dev shop github module in in core And we would love contributors to help out to create like other other modules that will work with different git providers I just don't personally work with bit buckets. So it hasn't been a priority But again, please help Thanks. Thank you Uh, hi, we use agar and make files a lot for doing our builds So just wondering it'll look like you're using full git repos. Yes. So that's the work with make files that is All has been a feature request for a long time and is simply complicated And we want to figure out how to do it right But it's just it, you know, it is really complicated. We want to like the repo then what where does the the repo go Uh, come to the buff. I would love to talk about how to make that happen And it really is something we want to make happen, but we want to do it the right way And we also want development to be quick, right? So the rebuild if it's a make file every time you push is going to be slower Which, you know, people have we'll have a okay with time with that, but Yeah, we love any help we can get to make that happen Yeah, uh, two question. Uh, first one, how does it work with multi sites at aqua? With aqua multi. Yeah, so if you have multi sites Set up at aqua with their dev cloud or not dev cloud, but their enterprise cloud Right, right like the um site factory. Is that what they call it? No It's just like they're So in aqua in their enterprise Solutions you have your own Stage and dev sites and production sites and you can have multi sites on them So they handle it that you have several databases and you separate them by different domain names Yeah, so it doesn't it doesn't use multi site But you could just create an environment for each one of those sites if you were To want to use it, you know for testing things Yeah, okay, and how does it scale when you start having a database? That's one gigabyte and data. It's four gigabytes Yep, so you can add additional servers so you can move the database servers around Built it doesn't have we don't have like built in automated scaling yet But because it's linux you can basically set up anything you want you can set up master slave databases You know manually we're going to do more and more to incorporate automatic scaling tools And make that as easy as possible, but for right now It's basically just you know manually set up the agar has a cluster for the web servers But the database thing you would still need to basically just You follow best practices and set that up on your own Again, it's on the trying to make everything automated is on the roadmap. So down the road we'll have more of that Thanks Hi, I have several questions one of the questions. I've already answered regarding the mac files, but My question is Is dev shop is actually extending agar hostmaster or replacing hostmaster and also I look at You have a dev shop proficient. Is it? extension of the profitions or Replacing the profitions. Yes, and then I also look at that you are using agar of 6.1, right? And then uh, too, but yeah, no Yes, okay, so you already upgraded and then seems like the dev shop two will Seems like you'll use agar three because it's ready to release And basically it does my question. Is it like extending or replacing right? So it There's a installation profile called dev master which replaces the hostmaster install profile But it uses all of the hosting modules Okay, if that makes sense So I'm like Same provision provision is still used. Okay, so guess my question is we have a lot of custom agar tasks that we created So They should all work fine The environment they're not environment nodes. They're just site nodes, right? So it's an invite. We have a record in the database for each environment, but it's still just a site node It's an agar site node. So any task that agar can use the dev shop can use as well. So basically How we extend dev shop is similar to when we actually extend agar. Yes, exactly. Thanks Thank you Hello Wow, this amazing works but You show who it's work with uh jit Github actually and it's worked pretty well, but what about uh beat bucket uh beat bucket Yes, uh, actually someone had that question earlier and it has a uh Uh, uh, basically a dumb webhook receiver So if if you can you can hook it up to anything that has a has a post receive hook So it will work with bit bucket now, but it won't do any of the smarter things like Deploying just to one environment or the pull request integration But because it's a very common feature request and we hope to have more contributors to just plug it in You can copy the dev shop github module and just follow the pattern and uh recreate and we would love to Have more people contribute and try to make that happen. I'm just unfamiliar with bit bucket personally So I haven't done it That would be great. Yeah, I know a lot of people do that gentlemen earlier asked about it. So Like I said, we listen to our users. So you're setting the priority of the backlog right now, right? So Please come to the bof. We'd love to get as much help as we can There's just a lot of moving parts and a lot of work To make this project work. So That just hasn't come around yet. But yeah, like I said, please help Thank you Hi, sorry It looks very promising and I'll probably join the bof or something The question I have is about the only restriction I see in using it It uses intensively sub domains to which I don't think I have access Can we work with sub directory instead? Sub directory instead. Um, I don't probably not right because it's it's a git repo the files are just directly are cloned I mean I'm really I don't know. I mean the sub directory thing that has to be a folder, right? There's no kind of Magic dns thing we can you can do for that, right? Like it That's a good question, but I don't Yeah Yeah Right. So anyway, yeah, he said that you know agar itself supports that sub directory system. So It it should work now that i'm thinking about it, right? Uh, as It should it should work. It should be possible Um, it would just it'll take probably take a little bit of tweaking, you know It clones the each project clones each environment into a folder its own folder On the back end. So it would just it would be it's worth exploring. Yeah What i'm just curious why why don't you have access to like the dns subdomains type thing? Being part of a big organization. We don't choose everything, right? Okay It's internal. Yeah, so I that's that's good to know uh that that situation exists for some people So we should definitely look into how to make that work And just to have an idea what would be the migration effort if you have already a continuous delivery with Jenkins and the like Well, it's basically it would just be like moving any other site So you put get put your git site in there and you can manually Pipe databases in it's all it's all drush and aliases on the back end So you would just have a do a little bit of a manual import, you know from the command line Yeah, just like moving any other site from once over to another so thank you. Thank you. All right any other questions? Yeah Right, right Right, so yeah, just to repeat the question was if you can let clients sign up and kind of create requests their own sites and I mean the answer is is kind of yes because it's it's it is agar and it's and it's drupal and it's all permissions based But we haven't implemented like Per user access control on the projects and sites So if you can access the project you can see all the sites But that's been a very another very common feature request is to you know be able to control who can see which particular site Um, and we would love to implement that so All right, let's talk about it. Okay. I don't have a final slide. So that's it Thanks for coming