hi everybody okay welcome to MidCamp your
first session right yeah okay so I'm
Chris Urban this is Jeff Geerling right
here he and I work at Acquia you're in a
local development for dummies this is a
session we kind of threw together and
we're presenting it for the first time
so we'll appreciate feedback in
questions at the end of our presentation
all right so let us take a minute and
introduce ourselves
Jeff go first I'm from st. Louis and in
st. Louis I am one of the many code
Tomita organizers I started using Drupal
in 2008 so it's been 10 years now and
everything has changed so much since
then
so this is from probably five or six
years ago on I've been deeply involved
in local development environment and
stuff and Acquia that I am billable for
I do a lot of work around local
development environments and team
team-based development things like that
so that's kind of my background on this
session
I'm the counterpart to Jeff not nearly
as awesome as him but I'm from the
project management side it's so
different different awesome I'm one of
the co-organizers of Drupal Delphia
which is a little camp in Philadelphia
which were actually still opening
accepting sessions today so if you have
any interest in presenting talk to me
Edwards as a project management guy I'm
sure a nerd by default and I'm also a
little bit I let's say I used to be a
developer I dabble in it a little bit so
I have a an interest in this as well
just because one of the questions that
often comes up at camps is what do you
use what do you do and it was a time out
and so that's why we that's where we
started this session so questions why
are you here you want something to do
before lunch you think that what was my
joke you heard about composer but you're
telling death your outrigger is stuck in
the lagoon okay no bad jokes there
realizes your Drupal developer you know
you should be deploying at the sakoda
production but you don't have a look
over where you feel confident and it
says so many choices out there and you
don't know where to start and doctorate
baker and I know mine so that's really
why you're here right ok so let's talk
first before we answer that question who
are we because the question you can only
answer what should you be using for your
local Drupal environment
it depends what do you do are you a
developer are you a site builder are you
working by yourself are you working with
a team are you on Windows are you on Mac
where are you so to answer that question
you may have seen we put out on Twitter
a couple weeks ago a survey and this
survey is to find out what you use for
your environment with a couple of other
anonymous questions like where are you
located what do you do
who do you work with that URL so works
and we're going to continue taking
responses up to Drupal con but for all
intents and purposes this is really the
first time we're releasing all of this
info
and this will answer the question who
you are and that will let us give you
some direction about what we think are
some good development scenarios for you
so first thing we're going to do is go
through some of the results take a
couple minutes here so be prepared for
her awesome statistics worksite to 744 I
can't keep up with this
we're up to over 700 submissions from
over 60 countries which is fantastic
we've got representation from every
continent the last one that it's not
labeled as Africa
obviously dominated by the United States
and Europe I kind of expected that I
didn't expect to get a good
representative sample from other
countries so we're very pleased by that
aside from the US because otherwise the
skew of the truck gets out of whack you
can kind of see where we're getting
survey results from so a pretty decent
scattering around and that's only in two
weeks without the US the top ten again
not surprising english-speaking
countries Ireland in the United Kingdom
ooh and blanked out again followed by
the rest of the most populated Jirka
European countries and Canada they make
up the top ten and like I said the list
keeps going and going going if you're
interested in details later let me know
and I can tell you within the United
States again most popular states kind of
where you expect everybody to be all the
way down to where I'm from Pennsylvania
and
where is there even a little bit you're
a little ahead of me so again no
surprise there so one of the questions
we asked was well what kind of types of
projects are you working on Drupal 8
mostly dribble a little seven mostly
seven little six and this kind of breaks
it out I'm in really intrigued by the
most by these do the highest proportion
of all eight projects in Asia and
Oceania Oceania is strangling New
Zealand all those little Philippines all
that stuff out there that Asia includes
India but within the US and Europe this
is a really nice number this is telling
me that we have I think was it eighty
percent ninety or no but I can't see my
speaker notes eighty or ninety percent
is Drupal eight solidly mostly are all
Drupal eight which is great news because
we've heard before about this low
adoption Ranger blade this is Tony
that's not exactly sure there are still
room for improvement
but the majority of the fend that we're
spending is on your plate and you'll see
that one outlier in red over there is
the one guy that's working on Drupal 6
the other question we had was about the
size of the Drupal team that this is a
tricky question because I asked about
the number of developers that Drupal
meaning you you and somebody you and a
bunch of others are you and a whole
Drupal army and again the vast majority
is you work in teams of five or less
those are the two blue colors and then
they're scattering goes all the way out
to 50-plus and there's a handful not
insignificant but a handful that are in
those large large teams but
predominantly this kind of reinforces
the notion that this this question is
really hitting a nerve because these are
folks that are working with maybe one
other person and those are the two
that's your very small feedback loop for
trying and testing new things out so
with this survey hopefully you will
learn some other tools that you may not
be aware of reinforce the decisions
you've made maybe encourage you to try
something else
other dev team this is to kind of cover
well maybe I work in a small group in a
smaller agency I cannot imagine to
Drupal developers maybe a front-end or
maybe a JavaScript specialist maybe
there's a DBA because there's a guy that
does that man I don't know but this kind
of answers that question and the black
is none so this really for me it
reinforces yeah they are predominantly
solo or pairs that are working in Drupal
you want to talk about this one is my
favorite yeah it's it's an interesting
because I know in the past the few there
haven't been a whole lot of these kind
of surveys which is kind of sad because
it's hard to see a historical data but I
I remember when phpstorm with something
that like the only people that would
ever use it are people that came from
like Java to PHP and back five six years
ago that was a very small number of
people but ever since Drupal 8 came out
and Drupal 8 is based on symphony and
has a lot more components that require
more of an IDE to build things really
easily I mean all the other tools can
work with it great the PHP storm was
like setup for it and got tons of uptake
so it's the clear victor at this point
if you're looking for a good development
tool for for Drupal 8 code but it's
sublime text which has been super
popular for years is still kind of
holding its ground that seems to be
slowly withering down from the next
three mature digital studio code then
and Adam a bunch of other tools out
there it's it's interesting a lot of
developers will just applying the tool
learn it and then use it for life
basically so you know there's people
using using BBEdit
and some other tools which are there
still updated they're still valid but
they don't have a lot of the
cutting-edge things that made them
amazing back when they first came out
yeah there was one other interesting
thing here as well it we correlated this
back to the team size and location and
projects types and overwhelmingly
obviously you see Europe at 73% but the
phpstorm users overwhelming the one and
two percent groups so that is even more
like the redefining that these guys have
I don't call it monopoly but a pretty
pretty strong grip on it the larger
teams other ones that are using that
second tier sublime vim Visual Studio
and
a notepad and on those are like the
outliers are also predominantly Europe
Oceania
and Asia I guess they you know you like
writing in a trouble
QA methodology so now this is a first of
a couple questions that we left the
other open answers aloud and actually
this is not showing my the two answers
at the bottom which are luck slash wing
slash prayer and Wraiths tests they're
down at the long tail at the end but if
you can't read those or read this down
because this is worth mentioning the
number one is developer does own tests
far and away and that is also
overwhelmingly it's overwhelmingly
popular across the board the next group
down which is peer review the architect
does code review or you rely on a QA
team that's generally consistent Asia
much much higher than the rest on those
categories and then the rest is filled
in by fill in the blanks and those
really kind of run the run the gamut
automated testing and linting are at the
top continuous integration tools PHP
code sniffer client reviews so you're
letting your customer do your QA
brilliant the hat tests PHP unit tests
code Stander's Soner cube circle CI PHP
mess detector and BLT and then like I
mentioned at the end Wraith and luck
winged prayer my they quote dumb luck
just wing it let's do it live ship it if
it works
it's awesome it compiles it compiles
ship it you want to talk about this one
yeah so that I actually wrote a blog
post on this topic a couple years ago
I'm talking about vagrant in particular
but what some people don't realize
getting into the Drupal community
especially if you've been at a shop that
didn't do Drupal before is getting into
it or something or a lot of PHP link or
a lot of PHP projects the culture is
incredibly focused on Mac Linux UNIX II
Linux II based environments and this
survey kind of just reinforces that
there's there's been more more and more
uptake of Windows 10 as Windows 10 now
has the windows subsystem for Linux
which really makes Windows 10 actually
like usable with some of the tools that
are required to do moderate development
but like there's still a lot of people
using Windows 7 Windows 8 and things
like that which are harder but the point
that I had in my blog post was you know
it's it's an uphill battle when you're
not using a Mac or Linux computer
operating system just because everyone
else doesn't so you're going to have to
find out all your own problems and
research all their own solutions and
you know I meant what I can but I don't
use Windows daily so and there's very
few people who are like me who also have
a Windows laptop even to test something
out for you so just so one note the
scale across the bottom is like a total
percentage because these were move one
or more choices so you could pick let's
say all three of the top three but this
should give you some relative scale that
just between Mac and Linux how how much
more room Windows 10 has to grow or
hopefully stay put but the windows 7 5
lines 6 lines down that is really
trailing off which is for us this is a
great sigh of relief I was also
surprised that arch is so small because
the arch users are so vocal I won't say
annoying but so tell me how you feel
about fashion ok all right so now next
to is the same grouping but now broken
out by reaching and then by project type
so that you can kind of see Mac is kind
of evenly spread out it's evenly popular
whereas let's say looking at Windows 10
this is much more popular in africa and
oceania
way out of proportion if you look at the
purple purple there very even that as
opposed to this which is kind of
representative of its goal what's the
percentage mean its total like the
number of respondents who picked it but
it's the aggregate I wanted to divide to
show a representation like that
so if if I had a thousand submissions
that I got a thousand people responding
that was a hundred so basically four
times the population yeah
[Music]
it's the scale of the scale of the color
bands that's what I'm trying to convey
yeah yeah right so then my project
here's what's interesting is you see
overwhelmingly for mostly Interpol and
again all Drupal but then you come down
here and you see like Linux other and
windows nobody's doing Drupal seven
they're still doing seven not as much
eat right so it's not you didn't that's
that's the point
yeah so this will be the same thing so
this is the other question and this was
a little confusing I think now going
back I would probably rewrite this a
little bit different of the screen went
down ago so we asked what do you use for
your local dev technology and the
question really was did it again
it was a couple of questions up front
and then there's another question where
I give the sample solutions we're trying
to keep it broad the question is we
provided where the answers we provided
were I don't know custom docker custom
vagrant or the local operating system so
yeah
okay sorry so we just asked custom
docker custom vagrant and I think that
was it the rest of the suggestions were
this is the right one right yeah I think
I think we had a list of like the ones
that are capitalized yeah we're in our
list the other ones were right and
answers maybe yes that's it that's right
so for example I don't know that we
don't remember that we had Vlad or
ballet or lagoon that we had eager and
homebrew and Albert or docks all this
was not in our list this is a pure
in-depth estoppel and Noah kill box and
Drupal genome but again this this is the
this is the money slide right here just
to see what everybody was responding the
top six custom vaguer and custom docker
dev desktop MAMP
surprise drupal vm and Lando Cowboys
those are solving solutions that are
pretty is using then there's like the
middle group and then there's a lot of
there's a lot more outliers anything
that I had like just one response were
like you know I wouldn't fit on the side
basically I try to consolidate as much
as as we could and I think this one we
break out also yeah by region and then
by project also because this is
interesting for example nobody's using
out where you're for anything other than
so for anything other than e no surprise
this one is the regional one that's the
regional one yeah I'm gonna save that oh
right
so nobody outside the u.s. is using
outrigger or a D dev or what was the
other one that was very heavy yeah yeah
and the other ones are pretty much
uniformly scattered across all regions
to get to the projects I should be the
next one there we go
so solid the mostly drew blade some
Drupal 7 those are the ones that are
filling in the top three the docker
lando and Drupal VM the proportion again
for dock saw and D dev and he doctored
for pupil and anchor really and
surprising how much there is and in
those groups okay now just to know I've
got like there was an 8 least another
half dozen slides that Jeff and I
decided forget it because it's just way
too many numbers and pretty colors they
really get into the hardcore statistics
nitty gritty if you've got questions or
just curious want to love me now happy
to answer and pull other slides to show
you after the session but we want to
make sure I have enough time to talk the
real meat and potatoes which is okay
let's now take what we've learned and
turn it into for ten people asking the
question what should I do for my local
development environment so well we've
come up with
all right I can do it you can do yeah
what I what I think our main goal of
this session was like in 2018 if you're
a certain type of person developer site
builder or something what is the best
option and we want to try to give that
to you so that you can go there and
instead of spending like
like I do sometimes hours in a day
trying lie about seven or eight
different solutions completely blowing
up your computer and then trying to get
back to a fresh state so you can try
another few solutions then at the end of
it like Chris mentioned earlier you're
totally confused and you hate your ball
all of a sudden so we came up with these
four personas that I think cover a
pretty wide variety of people that I
interact with at least uncover a lot of
the people that we saw in those slides
and the you know the one the two person
teams and that kind of thing and just
running through quick some of these are
a little controversial if you're another
person who develops a local development
environment but for the site builder
persona this is like somebody who puts
together a Drupal website or might build
some different brochure type sites or
things like that or even like a person
like Chris sometimes when he's working
on evaluating a project or something he
just needs a Drupal site running on his
laptop and he wants to do some things or
play around or something like that or
it's like Drupal filled up here drupal
Zofia whatever that thing is like if you
need to do some work on it he might need
running on this on his desk or on its
laptop but he doesn't necessarily want
to spend a lot of time customizing and
tweaking it making it high performance
and all that and the recommendation we
have is aquatab desktop which is Mike
man or WAMP but it it basically gets you
a local environment and the Drupal site
on your computer with like a few button
clicks which is really helpful if you're
trying to get something up and running
quicker if it's the first time you're
ever using Drupal or if you're a little
more adventurous like if you're like
Chris and you have a little more
technical knowledge and you want to get
a little deeper into it you can try out
something like Doc cell or Orlando or
something like that
follow the getting started guide and go
through it see see if it's I mean some
of those tools have more flexibility and
and might have some features you need so
one caveat all be clear yes we are both
from aqua and now I'm saying how could
that that's not you you know obviously
inclined to be cynical and conspiracy
theorist and say oh this is a secret
advertisement to get you to download
something that's free okay you know no
it's there the rubric we're using is to
figure out something that someone
without let's say command-line
experience can go download click a
couple things and get up and running as
easy as possible that was for me the
goal knowing a little bit as dangerous
knowing more is even more dangerous the
restriction here is really and this kind
of narrows the field almost
automatically we expect that there'll be
more work coming out of Cal bucks and
probably other outfits to make it more
UI friendly but right now if you give me
a laptop and I have to show somebody how
to put together a site give them at your
pool 101 to work that's what I would do
I'd probably do lando or Docs all or
dead that sound and in the old days I
would recommend like mam or zamp or
something like that but the big
difference is those tools you install it
and then you have to create a database
and then you have to download drupal's
codebase and you have to follow all
these instructions with dev desktop if
you click a button and you have a Drupal
site that's that's kind of the point
yeah you with tools like that desktop if
you guys find that going to get feedback
from like integrating with other teams
being stuck to get out of there that and
to cause any problems or I know that
that's not it it has that I can't even
talk my head that a particular file but
just like a addy def file that kindly
comes along in Caribe oh I think I've
had some experience where that has
caused like something shoes and I don't
know if maybe that's some of the lack of
flexibility that you were talking about
damn using my thumb salad I know yeah I
would say that a lot of people outgrow
that desktop like a person like Chris
has outgrown it I would say and you know
it's there's a lot of things where it's
not the best solution but if you're
getting started in Drupal or if you're
if you need to get a site built quickly
something like that and you don't want
to worry about the details that's what
it's best for I want to teach my
daughter Drupal I'm gonna put aren't
that desktop first Larry play with that
man when she gets adventurous you know
put her on land oh and then hopefully in
like two weeks you'll be doing custom
and docker for a possible so he's
setting up kubernetes clusters exactly
so for a single developer like a one-man
team one one developer doing you know
front-end site building whatever but
somebody who's a little bit more coding
oriented I would say doing a custom
docker setup which is what I actually do
for most of my anything outside the box
a basically is best because a it's super
lightweight and you only have to learn
as much as you need to get something
running and be there's thousands of
guides for how to do something like you
just need a PHP and
Apache and my sequel thing and you put
them together and mash them up when
there's tons of examples out there
another option is as you get a little
bit more into it you realize oh all
these other tools do these things for me
that I have to do on my own
so another thing that I do sometimes is
I like take the wad beat containers or
take Lando or something like that kind
of strip things out that I don't need
and then make it really lightweight for
myself but the idea is that docker is
super easy to pick up and can be really
flexible and easy and if you're a single
developer you don't have to worry as
much about like making the docker
environments perfect for everyone on
your team and making configurations that
match your production perfectly and all
that like you can do those things but
it's it's easy to get started it's super
fast and it works on Windows Mac and
Linux really well nowadays and I would
say it's funny because I maintain Drupal
fan which uses vagrant but I would say
avoid if you're if you're just doing
small small projects or if you're a
single developer contracting that kind
of thing and you don't need to share
your codebase in development
environments avoid something like
vagrant just because it's I would I'd
say there's more overhead there of
having vagrant and VirtualBox running it
uses more resources on your computer so
you can't run as many virtual machines
at the same time and it's it's Ruby
there's you don't have to know Ruby but
there's a little bit of Ruby involved
and who wants to know Ruby
[Music]
we news 10
yeah then we have this is a good one to
get into a little bit because I don't
know it's in this room who here uses
Windows so we have it it's that's pretty
reflects it's a pretty normal
distribution I'd say at this time the
reason I recommend Drupal VM is because
as somebody who's made team careful vm
for years
drupal vm has gone through years and
years of making sure things work on
Windows and I literally have a laptop at
my house sitting on my desk where every
time I do a Drupal VM updates I test it
on Windows you're not going to get that
with most of the other solutions right
now
a lot of the docker solutions are
getting there but docker on Windows is a
little different and the way networking
works and Windows is a little different
and if you use the windows subsystem for
Linux it's a little different so right
now I'd say rack my our nation is Drupal
again next year that might change but
mostly it's based on the fact that your
Mac you'll actually get a little bit of
support there's a lot of other tools
I guess dev desktop to yeah but when
you're on a team the desktop can have
some issues yeah and avoid anything that
doesn't support Windows 10 basically
there's there's a lot of good tools out
there that will work on Windows but if
you look in their documentation they say
we support Mac and Linux it's like well
what about Windows it's like works there
but you're gonna find that if you open
an issue in there is you hear that was
close it didn't
yeah nobody else is using Windows with
that tool so you're not going to get any
support
and then for a team of developers doing
all Drupal 8 development using a Mac I
would recommend one of the docker tools
because they're all getting mature
enough now or you can kind of replicate
whatever environment you need to you can
share the configuration in your code
base so that everybody can get up and
running really quickly at this point in
time I would say if if the most
important thing is to make your local
environment exactly like production for
a lot of cases you might want to use
Drupal them for that because you can
tweak literally everything about it
whereas some of the docker solutions you
can tweak most things but not all things
some of them are coming up to speed
there and getting a little better but at
this time that's the only time I'd say
the Trivium is like much better than
some of the other solutions but again
anything that slows things down like
I've I've seen a lot of issues where
like two developers it works and the
third developer it doesn't because their
laptop is running whatever this thing is
or some proxy or some VPN or whatever
and vagrant seems to have more issues
more often than docker
with a more complex project like the one
that you do if you're doing all Drupal 8
and have a team of developers with front
tools and nodejs and things like that
for a team a team of Drupal developers
so let's say there's a small group we
assume that there's probably it's a
group effort to do a group
administration but if it's a larger
group let's say 25 or higher where you
may or you're likely to have so many
performing sysadmin duties is there any
difference in the recommendation that
way let's say for the for the few groups
that are bigger than 20 30 40 people or
you do have like an aqua we have three
or four people in our group that uses
these tools that do devops see things
and secend and things like that's one of
the reasons we use Drupal dam is because
we can kind of make your it towards our
needs a little bit when we need to and
make sure that it works well with tools
like BLT and Acquia cloud and all that
and some of the other tools too like
what is it Kalibak started out with more
focus on Pantheon that it's pointing
that's reach and Lando's now for pretty
much everything a lot of the tools came
out of like a dev shop needed something
for themselves and then they open
sourced it and if you have enough people
it might make sense for you to either
fork one of those projects and customize
it for your shop or to start with
something custom and really build it for
your needs there's a lot of tools a lot
of the longtail tools are things that a
def shop built for themselves and it's
really nice but it's a little bit tuned
to their needs so it's not as flexible
in general
yeah with this current slide the all
truly team
yeah yeah so in that case would you say
doctor I would say same thing it's it
really depends on how closely you want
to mirror production because like Drupal
VM can can customize all the little
fine-tune bits for every piece of your
infrastructure no Jess and the Drupal
and Postgres and nginx and varnish and
hundreds of other things there are a
couple like a I don't know I haven't
looked as much into Lando but a couple
of the other doctor solutions do have a
lot of tweaks that you can put in but if
it's not going to be the same versions
of the same same kind of infrastructure
setup as your production environment
that's the one case where I'd say doctor
might not yet be the best solution but
yeah even if you're doing decoupled
drupelets with different tech I would
say a doctor is still a good option yeah
I'm not familiar with vaguer you explain
a little bit deeper we're gonna get one
okay I knew that question was coming up
thank you yeah so these personas do you
find like this is obviously a
recommendation or a good set of
recommendations and people sort of
what do you think when maybe the organ
on one big project which is a
development project iMac but you have a
couple of people on you know a g7 site
or something else if you do that
recommend they adopt a different tool
set for each persona or sort of try to
find one that fits across how many
person as they may be fit I I would lean
towards what your organization's more
comfortable is because you know if you
have three developers let's say and two
of them are on Windows one on Mac or
something yeah it's nicer to have a tool
that everybody knows and then you can
help each other out because there's a
there's a lot of times when like the
first time you set up a new project you
have some bug that you can't figure out
and if you have three people using the
same thing they might be like oh I found
that bugger oh I know what to search on
Google to figure it out but if you have
three different tools each one of you
has to do your own research every time
that you sew to save to save the kind of
best fit across all those
I would say yeah and it's gonna be
different for every organization and the
hardest thing would be if you have a lot
of different teams like one team has one
developer one team has five developers
one team has no jazz and Drupal and the
other one that's only triple so Kristin
oh well I just wanted to your point
about the couple Drupal if you're using
something like reservoir or one of the
Web Services distributions reservoir for
example has a docker container available
that you can just pull off and
you wanna learn more yeah well in that
that will bring us I'll talk more about
that in a couple minutes yep those are
slide so those are the personas and
recommendations but we I mean the basic
principles is whatever local development
environment you use and you evaluate
should make it easy to start a new
project like you shouldn't have to
wrestle it every time that you build a
new project it should make it so that if
you get a new developer on your team
they can get up and running and I would
say in an hour or less it takes more
than an hour you need to think about
using something else and you should also
be able to set a global configuration
like the PHP version and the nodejs
version and the Apache version and all
those kind of things so should be able
to be shared with your team and ideally
inside your codebase at aqua we have it
so called VLP that does all this stuff
and it puts it all and together using
composure and magic and stuff like that
we'll talk about that at Drupal con dark
magic yeah and then finally ideally you
want to make your local environment be
as much as as much like your production
environment as you can
realizing that you know if you're like
hosting an aqua cloud you're not going
to set up like seven VMs and have all
these things and load balancers and
certificate management stuff and you
know next slide that's an expression
yeah why is it important yeah the most
important thing is there's a lot of
times when you develop like if you're
one of the majority of developers who
the developer does their own testing or
if you pray and what does the other one
copy rest your fingers you hope that you
don't die there's there's a lot of times
and you know it's the littlest things
like updating a module you update the
module it works fine locally you push it
to production and then your site dies
like why did that happen
oh we're using PHP 7.1 on the live site
and I'm using
so locally you know those kind of things
do happen so you know in descending
order to the PHP versions the most
important for drupal having apache or
nginx if you have that on your server
that's important
using my sequel or Postgres there's who
here uses postcards or even knows what
it is see okay so now there's a couple
of people so I mean that's not as
important that there's like using the
same kind of version range like if
you're using my sequel five five on your
production server using my sequel five
seven locally that's a bad situation
because you're going to end up writing a
query that works locally but then when
it runs in production you get a white
screen of death so some of the tools
lando Drupal VM Doc's al drew yeah some
of them are better at this than others
so yeah you know and you'll find that
pretty quick if you read the
documentation and it's like just change
these variables and it'll change things
the some of the tools are better at
getting you to that point than others if
it's really if it's a struggle it might
not be the right fit for you
all right so now we do a little quick
well quick we got a couple minutes to do
right doesn't know what maker is let's
service or haven't used it or kind of
roughly thing know what you heard is it
have you heard he's dead okay all right
anybody you're using it okay a couple so
for the rest of you some vagrant was
it's probably eight or ten years ago or
something a lot of people realize like
it's better to use a virtual machine
than to install this junk on your laptop
because if you have a patchy and PHP and
all this and you have two projects what
if one project needs PHP seven and one
project needs PHP five six now you think
maybe like do weird things to set up
virtual environments inside your laptop
of foo do magic and then you end up
screwing up your laptop then you gotta
wipe your entire laptop
that so people were like oh there's this
thing called VirtualBox and it creates a
virtual machine running Ubuntu were
running some form of Linux and then I
can install Apache and stuff in there
and keep a nice separate separation of
all my project stuff from my laptop and
oh I can also take this stuff that I
just built and put it on my friend's
computer so we both have the same exact
identical environment the problem with
the originally that was is every single
person had like install VirtualBox and
then like install a virtual machine and
then go in there and type in the files
and commands and install things on it so
vagrant managed those virtual machines
vagrant makes it so that you can like
define either a shell script or ansible
playbooks or chef cookbooks or whatever
kind of automation that you want and you
say like I want Apache I want my sequel
I want Linux and I want PHP a Triscuit
HP is important beautiful you want those
things and then you save a file on in
your code base and then any developer
can run the vagrant up and it builds
that for them so it was like it's the
same model that docker uses just it
takes a little longer usually because it
has to do the things unless you pre
build a base box for yourself that
vagrant makes it so that you can build
isolated environments for your Drupal
site on any laptop it works well with
Windows Mac
Linux another advantage for vagrant is
it has a really mature networking model
or if you want to do things like have
custom host names for your sites have
custom DNS have your site available on
the public internet or just on your
computer have it like pick IP addresses
from your local network do all these
different things like it does all that
pretty automatically that's one thing
where it has a little bit of an
advantage right now for doctor still
doctor has its own internal network
that's a little different and doesn't
work the same on Mac Windows and Linux
so like you have something that works on
Linux laptops you send it over your Mac
laptops and it doesn't work there and
you're like what's going on so that's
vagrant it builds an entire copy of a
virtual computer inside your computer so
it's a little heavyweight but it let you
have isolated environments you just
delete it if you messed it up and you
wouldn't affect your laptop docker
is the same kind of thing but instead of
having a full virtual environment with a
full network card and sound card and USB
ports and all that attached to it doctor
kind of threw away all the things that
that are not necessarily necessary for
running a separate environment inside
your environment and really messing up
the technical part of it but this is
what docker does it basically bundles up
everything without all the junk that
VirtualBox adds and to make like a
completely virtualized computer another
streaming simulation yeah and and it it
also lets you do things like build
layers on top of your docker images
instead of instead of having to rebuild
a entire machine every time you can just
say like I just want to change out the
codebase in my docker container
in the real world a lot of times they're
very similar in the way that you build
things if you do it all custom but
docker is faster usually for getting
things set up because a lot of times the
things you need already pre-built
and you don't have to install things
yourself it's much my spilled sugar just
changed racket sometimes it's that fast
and then another thing that I Kris was
asking me do I want to leave this n do I
not I wanted to talk a little bit about
composure even though it's not strictly
part of a local development environment
but I think that in the next year or two
it's been a long journey for Drupal 8
and composer to be friendly with each
other in the beginning it was really
rough and there is a session at Drupal
con last year that kind of showed a lot
of different things that people are
having trouble with and a lot of those
things are not like how do you get
nodejs stuff in your drupal project for
front-end development and how do you how
do you get custom modules and how do you
integrate patches from Drupal core and
things like that a lot of those issues
have been ironed out but one thing that
I think will be happening over the next
year or two is environment like your
local environment will be a dependency
of your project so you know when you
build a new project instead of
downloading Drupal VM or downloading dev
desktop or downloading lando and then
like downloading Drupal code and then
downloading other things you'll just
create a composer Drupal project like
say I want a new Drupal project and I
want to use Drupal VM and then it will
all just kind of magically wire itself
together composer can do all this stuff
and it makes it a lot more simple to get
up and running and Drupal VM the next
version will be a composer plugin so
it'll literally be you have a Drupal
project and you want to add Drupal VM
you say composer
head plug-in or whatever
rupal p.m. and then it will configure
everything for you and you can modify it
if you want but it'll make it easier to
integrate the local environment with
your project without having to do a
bunch of things like move files around
or download something yes yes sir yeah
this was always a question you know and
again this goes back through the Windows
projects together together and
separately where the customer
development team has windows developers
with seven or ten and there it is
there's a number of factors that go into
it
you know the skillset of the developer
how advanced of a Drupal developer they
actually are you know were they coming
from a for example dotnet or ASP
background or are they and they've been
doing Drupal development for a while as
well as the complexity of the site is
there a lot of custom work that's been
done that's been added as opposed to my
site that's been built mostly in
contributed modules we've seen kind of
both ends of the spectrum where we came
into one customer that was initially
Windows now they're doing all the
development on Macs they halfway through
the project they said forget it we're
just getting max it's way easier running
the numbers the time spent to debug the
environments in Windows it was cheaper
to buy brand new Macs for the dollar
amount and you have to look at it that
way
you laugh but when I run the numbers and
I put it in front of the decision maker
it's a very clear decision there's
issues about you know network in IT
security whatever the if especially if
it's a larger enterprise but generally
they can be accommodating equally
present is the situation where customers
have Windows developers like I said
they're Windows 10 they're savvy they
can they can manage they have it down
they have a solution they're using
docker they're using VM
Drupal VM and it works you know as long
as things don't break right
the major PHP release or change in we
BLT sometimes that you have to go back
and reconstruct everything but that's
healthy progress I'm gonna let you talk
more about that yeah have you had a
question first why don't they just put
arch on their workstations she's being
an art role I spent a lot of time
working on Windows support and Drupal VM
probably three four hundred hours at
this point and I I bought with my
personal money not their money a PC
laptop just to be able to test these
things like as I said you're not going
to get that level of support from most
projects and I don't even know why I did
I think I did that because I actually
started on Windows 10 no windows 8 a few
years ago with one of my first bigger
Drupal projects and so I felt the pain
and I has this yes attraction the pain I
guess I don't know but you know just
realize that going into it and you know
if you're on Windows and you you don't
have the resources and your team to do
DevOps things or have people that can
debug issues and things like that it
could be it could be painful enough that
you might want to consider getting a Mac
or installing Linux on one of the pcs or
doing something like that yeah yeah
that's obviously you know a cheaper
alternative and especially if you're a
small shop and it is not an easy thing
to do going the virtual route is
probably a better solution or do Arch
Linux
all right last topic down if we don't
want to still cover got a we got a
minute or two yeah we have a couple
minutes I'll just run through it really
quick some of the development
environments have their own kind of
integration set up for deploying things
to production or they have integrations
like aqua TLT integrates with Drupal VM
so that you can do some stuff on local
and then you run a command and it pushes
it up to Okwe cloud
you could probably modify it to push to
other places I know Lando has like
recipes for aqua cloud and for Pantheon
and a few others platform maybe and they
make it easier to do those kind of
things and so that's something to
consider when you're looking at these
tools like if your hosting provider
really recommends one you might want to
use that just to make life easier for
you as long as it solves all your other
needs too yeah please don't fix your
code on production anyway that's it yeah
so let's open it up to questions maybe
I'm sure you have questions sure sir
yeah reason I don't use arch and
I used to have a real job until I got
fired for being bold we can't not quit
my practice and I do windows DevOps for
remember small businesses
IBM's definition of a small business is
under a hundred million dollars a
thousand play something might
the IDS therefore I ve got your wet dev
ops team and everything else so I know
how to do DevOps and they need Windows
and I could give lots of reasons why
they don't like Windows but my clients a
small business they went around quick
they went around Auto cam they have no
choice but a Windows entire yep
so my Davone machines our windows so
that's a majority of my practice and
then the lightweight Drupal developer
and I really thought dev desktop was
great at Windows
the only problem with it is sometimes it
goes out to lunch and you got to restart
it and sometimes you got to reboot
and one time when it was a really
inconvenient time not even rebooting
after I've made a minor change to a
theme from the Drupal you simple Drupal
web page nothing what happens it was
completely dead then they started
looking around and I found a lot of
people who agree that patchy is a piece
of crap and PHP works really well it had
issues in version 5 that were worse than
and EP 7 works my sequel works before
the five seven twenty installer if you
try to install Windows my sequel it did
not install all of the DLL that it
needed sometimes it's all wrong ones but
you could work around that and once you
got it installed it worked and the
current five seven twenty it's all it
does work so PHP and my sequel work the
only problem is the number of people all
agree that Apache it doesn't work and a
number of other people said that I asked
is the old
the web server that does work on videos
so I looked into it there is a website
called Drupal 8 and Windows is something
like that yep and they document how to
get iis to work and I had some good
results of that I did not know about
Drupal vml give that a try yeah okay so
you sound like in advance
well not advanced but not a beginner
developer I use a bit advanced beginner
DevOps guy and a beginner so I skew you
to pass the and I'm sure Jeff will back
me on this I'd say you've probably read
them past dev desktop and to try Drupal
VM my other question is is the
importance of mimicking the server
environment in your local is running ISS
what is your what's the actual site
living on is that on that when do the
service ventilator server bright
matching my sequel and PHP seems to work
and
I guess doesn't have an HD access yeah
yes there's a there's a lot of minor
configuration then but once you get
momentum that is to to do PhD which is
that yeah it's pretty easy okay I've had
trivial reconfiguration that was a pious
moving from IAS to Apache as long as I
have the right version of my sequel and
PHP and that's something we didn't
really cover too much in this
presentation but there are a large
number of developers who basically do
run everything local like there's a guy
that aqua who always like he's always
making fun of Drupal the end because
he's like why not just install Apache on
your Mac and when I'm just gonna solve
this it's like yeah I did in Drupal 6
not now yeah yeah it does it does work
what you do run into issues where
sometimes there might be something like
HD access could cause issues we need to
play to production and you have a
difference in your I asked configuration
right that you know you didn't you
didn't notice but if you're if you're a
developer who can manage it it's not the
end of the world if you're on a large
team of developers and you're the only
one doing it that's it that's one case
where it can be a major problem and you
know sometimes we're like look you know
get in line we have five developers
they're all using this thing none of
them have a problem you have tons of
problems you're doing your very
customized setup just use the same thing
as everyone else okay hey I don't have
this problem anymore you know so but if
you know for me I if if I weren't as
much in the DevOps I'd probably just had
like ma'am or doom you know
do a local environment thing if I were
just doing a site or two since I work at
aqua and we do tons of sites and I'm
always switching things I have to use
either a VM or docker because otherwise
I just want some my computer all the
time as opposed to a solo show
yeah weird someone say exactly it's a
big difference and I you mentioned
windows subsystem for Linux is growing
this really impressive now it does have
some issues and fall creators up they
removed the word beta from its title but
it still has some issues it's still paid
up exactly yeah although some day it
might be there's a bunch of real smart
people we're gonna yeah yes yeah I'm
serving out that's good that's just the
time in it I know first of all think
these types of data analysis is great
especially your own here you can see
trends did you um I don't think I saw
something in it but we didn't you know
ask but hosting provider makeup they
know I didn't ask time hosting provider
and my question was do you use dev stage
and prize you know that's another
question is it because I know like
there's like high correlation for my
pants and catalogs yeah in fact the
question I asked earlier which is do you
fit both what were some is of buckets
and therefore find a toilet
investments across them you know having
come from an agency sometimes the client
it takes that you got these awkward I
got these my garden you can oh yeah I'd
be very curious to see if you were able
to tease out so no you can't return the
survey this year
no no but for future yeah that's good I
appreciate it that's good and then if
anybody else has any questions or
feedback you want to pass along please
please let me know also if you know of
anybody who hasn't taken a survey
between now and Nashville in a couple
weeks low note as well I'm going to
continue aggregating up for the next few
weeks you
yeah yeah I'll post them so when once
the recording is done I go back and
transcribe slides in that that slides
and I'll put the details in the PDF will
be posted on the mid campsite great
question I give you the question so this
might be out of the scope of what you're
not much today in general I'm someone
who's pretty muted rupal so if you have
any recommended tools for debugging so
these can be things either in the
browser or modules you can add on to a
Drupal install that you would recommend
like beckoned yes yeah right so you're
building a custom module is not working
or you don't know what variable is give
access to and what do you recommend the
name of the game is X debug and it's it
integrates with phpstorm sublime texts
and other things so that you can
basically save a file go to the page
refresh it and it'll pop up all the
debugging information
Austin's set breakpoints and stuff
Drupal VM supports a box lando does
almost all the major ones do now some of
them might not that it's if you need to
install on your own it's not too hard
it's a PHP extension you install yeah
but that's an industry standard what you
call yeah every it's whatever
okay yeah you're doing theming work for
brandy other question sir yes that's
mostly because I so the Drupal VM backer
stuff is very selfishly developed just
for me I wanted a quick Drupal
environment that I could build like I
have twenty something personal sites and
small business things from way before
aqua at time that I maintain still most
one Drupal 7 and I wanted to have like
literally like docker compose up and
three seconds later I'm doing
development because I painted the whole
like spending five minutes waiting to be
able to make one change to a theme or
update one module and check it so that I
mainly developed it for my personal use
doing that but it does have support for
building one container with all of your
customizations and then you can either
stay that container or if your team like
put it up on docker or put it somewhere
where you can share it but that's one
thing a little different with Drupal
vm's approach as to many of the other
approaches it's like one VM one
container with everything so you have
like a 500 megabyte
or megabyte container with some of the
other 20 containers or seven containers
one for PHP one for my sequel one for
something else
technically speaking to other approaches
more doctor-like and all that but in my
opinion if you're not running docker in
production there's no reason to make
things more complicated than they have
to be that's just my personal opinion
and many people attacked me for it
keep it simple I build things that work
and I do things that are easy to
maintain and sometimes those things
don't reflect the exact perfection that
some people envision with docker
yes yep if you're running a website for
six years you don't want to have to
spend you know hours every year every
time the Packer updates a major version
redoing all the networking because
everything changed again does that
change the cover that's why you're here
any other questions does this first
thing my group backer and Windows does
it work it works pretty well that the
only thing that sometimes Cantore off is
the networking it's the same thing with
the Mac doctor was backers built on
Linux stuff right I think things that
are essential to parts of Linux see
groups and things like that in jails and
all that Windows doesn't have that out
of the box so docker builds its own
little virtualization layer and then
does docker stuff inside of it same
thing on a Mac so the main difference
that you'll find between Mac Linux and
Windows is when you do networking and do
IP addresses and things like that if you
try doing some of that stuff you'll find
that it behaves differently and
but actually running a docker container
is pretty simple Madeline windows
running most of these environments works
out of the box but like I said some of
them have no support for Windows yeah so
you know they don't even have
instructions for if you're on Windows
download windows or docker for Windows
they just say like if you're on Mac do
this and try and Linux do that right
okay I guess you don't care most most of
the tools that we've had in the survey
or docker based it seems like the world
is kind of moving that way just because
it's usually faster easier quicker and
kind of like in Drupal 8 we have like a
thousand libraries and dependencies we
throw into something to make it easier
of a docker you can just take
everybody's potentially an insecure
infrastructure code and just throw it in
the container and put it out there if
you do docker in production it's a lot
different story than that current
culture environments
awesome alright
[Applause]