is level up your development experience
with Lando I am Aaron fella D I do
freelance Drupal development and
consulting under the name of Aaron
solutions I mainly do embed myself in
with agencies or companies that already
have web development teams but need to
be supplemented with someone that has
Drupal expertise and I go in and out of
all sorts of different agencies and
companies work on all sorts of different
websites so just have a lot of
experience of doing a whole lot of
different types of things from
troubleshooting to full-out development
to sometimes I even have to play with
Photoshop all right then I'm here to
talk about Lando but not that Lando I'm
also not that Landale this Lando
but before I get into the specifics of
Lando I'm going to talk about brief
history of the options you may have had
a short time ago and got see really
really close so local development one of
the ways that people have done it and
I've actually gone into an environment
that this is how they did it and it took
IT forever to set me up so I could
terminal in to do anything and they stay
wouldn't let me have a copy of their
code I could only manipulate stuff on
the development server and this is how
their team was doing it they were using
FTP and SSH directly into it alter code
and and I've heard of this before and
I've seen it myself and probably one of
the worst ways to do it it's awful for
collaboration everybody stepping on each
other's toes over writing each other's
code even if you are using like get your
you still can have multiple people in
the server at a time trying to change
things at the same time it's a mess I'm
also maintaining an in-house server is
expensive you gotta have an IT guy to
maintain the thing machine itself is
thousands of dollars but the benefit is
you can have an exact copy of your
production server in your office so some
people do it
your other option is in native solutions
so you locally install your Apache PHP
your whole stack just read on your
machine your your laptop is essentially
your server this makes it so you can't
really change things easily because
everything's like installed if you
install PHP seven that's the one that's
installed
yeah the uninstall it install different
one if you need to work on a different
project or change versions for any
reason and it creates a situation where
if you have a team of people like you
can't be certain that everyone's
operating on the same stack when they're
working on your app that leaves all
kinds of problems mostly the it works on
my machine and there's the integrated
packages which kind of ease the process
a little bit of getting all these things
installed in your computer still
essentially the same concept you're
still installing PHP on your computer
you're still installing the various
pieces but this man zamp Wham I'm sure
yeah I could have def desktop I'm sure a
lot of you have used these things most
of you probably but you know you can't
change versions easily because you have
to uninstall things makes it a little
easier because this kind of handles that
process for you configure seams for you
so it's a step in the right direction
but again you can have teams with
different configurations unless you're
standing at the machine making sure
they're clicking the right boxes every
time
then you have your virtual machines so
these okay a little more portable you
can have someone set up a virtual
machine that very closely mimics your
production environment you can pass
these around to your team problem is
there they're big files and you're gonna
run into issues everybody getting them
installed properly but there's tools for
helping people manage the configuration
like vagrant and puppet and ansible
help you kind of standardize on a
configuration set and share it with the
rest of your team
[Music]
there's drupal vm which manages a lot of
the setting things up for you so that
eases things a bit but again like I said
it's difficult to configure initially
and big files and these things can be
resource intensive so then there's the
latest greatest thing that ever went was
getting into whether they should or not
it's containers this is docker the most
popular method of doing containers it
basically allows you to mix and match
your configuration they're already
pre-configured set up services
essentially you have a PHP container and
you have an Apache container and you can
have different versions of these and you
can theoretically mix and match them and
everything kind of plays nice together
and you don't have to do a whole lot of
configuration well you do initially once
you have two containers you can
do what you're doing and then there's a
they give you a docker compose which is
a file you can answer all of your
configuration in and then share that
file so that we use it any way you like
you define your PHP versions or Pacha
versions everything in a single file
share around everybody who has docker
can run the commands he'll spin up the
write containers and they'll have the
same stack as you so big improvement but
it's still the press that still gets a
little cumbersome so you still have to
wire up ports and things and there's
still quite a bit of configuration to
initially but another benefit is it's
also cross-platform your team can you
don't have to have everybody on the same
system you have windows and mac and
linux and as far as your app is
concerned as far as your Drupal sites
concerned here you're running on the
same same server as everybody else
[Music]
which brings me to Lando which is a free
open-source cross-platform local
development and DevOps tool
it runs command-line it's built on
docker technology and it is essentially
a wrapper for your development stack it
kind of takes all the parts that work
umbers them of setting things up and
tries to make it easier for you so what
can Lando do it can easily mimic
production locally standardized
development environments and tooling
across all your various systems
it's got integration for hosting the
writers like Pantheon it allows you to
do like and say the command is a Lando
pull and it'll pull down your whole site
you can specify okay I want the read
latest database just type one command it
loads it in here from your production or
we can send up for dead as well but pull
down from Pantheon directly into your
local single command
your configuration it's all one file all
of the config can go in one file for
everything you used up all of your your
port mapping all of your I'm gonna
custom commands and your holdings staff
is defined there to get their version
control do projects share it with the
team and your buddy's got Lando these
state Lando spins up the stack and yeah
that allows you to define your own tools
like I mentioned we couldn't say I want
to have a deployment script instead of
having a bandolier underscore deployment
scripting mega party Orlando package so
if you're sharing with your team - tell
your team is well the scripts already in
the projects are just state Lando deploy
and your team member can just say
languor deploy push whatever they're
working on to dev automatically everyone
set it up
so Lando is the base concept of Lando
configuration is recipes they're
pre-configured start states that
basically give you a common sense
defaults for any kind of development
you're wanting to do recipes that it
comes with and full of Drupal recipes
wordpress or just you want to lamp or
limb stack you just tell Lando that
that's where you want to start and it'll
give you all the kind of sense the pulse
that most people will probably be happy
with give you a good starting place
and they're the the base languages that
it supports PHP Python no Ruby net and
go these are basic built-in
pre-installed you spin up you do to
finding your lambda file you just say I
want PHP they'll install teach me some
point to automatically for you or
whichever language you like it's already
ready to go
and then you look at
I think one of my slides get overwritten
okay well I'll try to remember what that
one is but I'll continue on so here's an
example of the Lando config file single
piano file in this example we've defined
that the project is named Drupal tests
but the recipe it's going to use is
Drupal 8 which means it's gonna already
find the whole stack I'm saying Drupal
is true because the Drupal recipe comes
with a gerbil console as an option and I
want to turn down config I say ok my web
root within my project folder is called
da crew to mimic what's on production
and so now it will automatically set up
a patchy sub-points browser to the
finals in that group and this I want to
override I want to be HB 7.0 because 7.2
is too new for this particular project
now the next 50 bug turned on because I
might do some debugging and the cool
thing about the ex debug lift this is it
just works you don't have to do anything
say XD book true if you've got like a
peach peach storm or an IDE like that
you just listen for connections and it's
already wired up
services in this particular project that
I want male hog to catch all the the
male I'm so I just define it and it's
available I think this was my missing
slide some of the services that were
that are available you can mail hog and
PHP my admin or my school my high school
my anyway there's a bunch of different
like the programs you might have
installed on your server that you want
available and they're all installed
pretty much like this you say services
male hog you name it mail hug you say
it's tight mag it installs it for you
and this one database is actually one of
the default services that gets installed
with the Drupal recipe and I'm here just
defining that I want it to be overridden
to be nice to all five point seven
instead of whichever version it would
have installed late fall and then I can
set up proxies to handle routing the
domains that's kind of cumbersome in
other system but with glam though you
just right here to find a proxy
I'm actually mining that should be named
mail hug but you'd say proxy mail hog
give it that address when you go ahead
and browser and it takes you to that
service automatically it's worse
and all these things that I say it just
works you can override drill that all of
it it's there's nothing keeps it super
simple if you okay I want to start off
with a default go in your config it's
good to go but you want to change
versions you want to alter config files
you can pop those in define it here
Easy's can be
one of the big features is advanced
tooling so essentially you can as I
mentioned earlier make your own commands
for Lando in this example I've got a
Drupal 8 that also has a node installed
this actually came from a project that I
worked on where we're using a tool
called fractal which maintained all of
our all the elements for the theme
everything was there called the design
library I'm a front-end guy so but
anyways we set it up so that you could
say Lando install and it would do a
composer install install all the Drupal
stuff you need then it would run on the
node service it would run yarn fractal
install which would run that fractal
program then compile which would compile
all the assets for our theme and then
ultimately sync it so it's essentially
you're running a scripts but you'd apply
it right here in the same Lando file as
everything else you can also call the
script here if you just want to have it
last
Wow
this one actually just another example
here type of Lando D be reset so the
previous one was probably four okay that
you're just getting started you do plan
to install gives everything up and
running for you you're good to go
yeah something like this you could set
up to where DB reset if you've got a zip
file in your directory this script just
to look at it's probably a database dump
so we're gonna use Lando's built-in
helper script that imports it in your
app automatically and then we run the
cache rebuilds and then such to get you
up and running
this is not what I mentioned where you
could just go straight into a strict in
this particular one came from a project
that would deploy Drupal to hack the
environment
it runs the deploy scripts you typed
Lando through the pleasurable but it
also asks you which environment gives
you the option seriousness this is lando
doing this briefing pass through the an
environment variable essentially based
on a question and you could pass those
switches anything else to your scripts
that you need just by defining here in
your Lando file
and that fellow that broken you know
they came very prepared here all right
so you know what I'm gonna do I am here
I did it once successfully live demo
this so I might do it again here I think
I'm talking too fast I'm skipping over
things with a little nervous but so yeah
if you wanted to do like a decoupled
hope that's not you can't see that let's
see if I can fix it
yes my primary browser is Firefox
okay so Benji Fisher - this this was
based on I believe he mentioned in the
chat that was based on a trouble ticket
I was working on in the land of Q if you
have to be going he he would a lot
further so I'm just gonna show it what
he did so yeah essentially this is
basically if you want to do a decoupled
environment as an example of them GATS
me for example
well okay you need essentially the node
server and PHP Apache server to run
Drupal two separate apps this one sets
up standard Drupal server sets up some
end points for you with the proxy
settings there
and then he gives you so I get for not
getting hurt before this so you also
with lame-o get build steps that as
you're spinning up so you say Lando
start that spins up your app but you can
also say the first time your app starts
up install some app get to spent
dependencies or you know run some
scripts or whatever you whatever you
need to run the first time Yuri Raph is
watched on the local environment but
then there's also tons of other places
where you can kind of hook into the
different processes you can tell Lando
to do things when you're powering off
and pop up a message are you sure things
like that
in this particular ones
yeah
so he's a great composer install sale to
say it's on the app server which is the
default name Drupal recipe for the lamp
server essentially the true black he's
followed
no js' here I'm sure was running that
gets the instance ready to find another
versions of gas me and yarn there and
then the run will display a message in
the rum yard install the first time you
run it
he's also got some nginx configuration
going on there
and then tooling this is basically
what's gonna make it over so now you
could say Lando NPN Orlando node Orlando
Gatsby can run any of those commands
that would typically run if you had
these tools and so lovely so you don't
need an piano door Gatsby installed on
your local machine they exist in docker
containers separate from your machine
and if you run through land values you
don't have to ssa to the machinery and
your local terminal you say Lando Gatsby
if you're in your project directory it
will run the Gatsby command on that
node.js container for you so it's been
up your gatsby site the drupal recipes
i'm Drupal for you automatically and so
then all you have to do is it's work on
your endpoints and such and the like
thing that's basically how you need this
is gonna run both servers both apps in
separate dish environments and give you
everything you need
[Music]
man time 24 minutes so about five
minutes left
[Music]
we do questions
you can't see that
in other ways
there we go any questions yes so I have
friends with windows yes and I'm trying
to so the question was what's my
experience using windows and what
version do I have I running Windows 10
Pro that is a one of the requirements of
Lando is that you do have to run pro
because I'm making use of a native file
sharing solution that is not available
in the home version of Windows but my
experiences has always been good that's
part why I'm here advocating for this
because it is the first solution on
Windows that works great and I go and I
embed myself with other development
teams that have whatever solutions
they're using and I convince some news
Lando and they're using a variety of
different systems and they're all right
up to what I'm doing and they're loving
it and there were some growing pains but
oh you've used Lando in the past few
months they've tried a ton of new
releases so a lot of the bugs have been
squashed a lot of the issues are patched
up so it's pretty stable works pretty
well now is it a up lot of processor or
a gram
nothing compared to like with the VMS
and stuff I'd be running previously I
mean I've been using them in doses back
in the Kalibak days so run I'm running
now it's pretty souped up but my laptop
that I've been running up until I just
recently bought this one was a $500
Windows laptop it was a little sluggish
but yeah so a lot of the a lot of the
config is just a greatly simplified so
if you unless you need some of the
complexity they're going to get with the
doctor stuff like say you just want a
Drupal site up around you say you can
tell there's two commands you say lando
in it and Lando's Lango start so lando
in it will pull up in the last few okay
which recipe do I use take Drupal 8 it
defines it essentially defines your
docker compose file for you with
everything you need everything wired up
all your your your routing stuffs done
you ready to go and then from there
you'll write whatever little bits of
config that you need
and I add to that this a little bit I
think one of them most important parts
of having Lando is having that that
proxy server that they ship with it
and being able to just have that go on
the fly because you don't have to go in
and set up you know your FC hose or any
of that it allows allows you to put in
you know we don't blink like addresses
to all your different containers on the
plot I've read them quickly and just at
that proxy definition that I mentioned
you was done a couple of lines yeah yeah
yeah from from the start yeah yeah you
can it works without you doing anything
new the proxies only necessary if you
want to start overriding the Pioneer
only from the get-go it'll it'll take a
look at the ports that are available on
your machine to find them on manic
before you handle all that routing and
just get you up and running pop out
here's his URL you can use right now
Kentucky was fine ports also
yes hmm yeah I thought it would have
been in that config file I was showing
but Dayton you can pass your ports
through anyway you have anywhere you
want how does it handle once something
feels so right now for the most part
right right so if something fails how
does it handle that currently it doesn't
really it kind of falls back on a docker
to do what docker would do so now if dr.
can recover something it will land Oh as
it currently is
doesn't do what's that like once but
there's a command you say Lando restart
and it'll turn everything off turned
back on and basically get you back up
and running
yep
- Lando
[Music]
it doesn't it essentially like simulates
that the way that would work now you
don't actually even spit out a docker
compose file for you but it does allow
you if you have something that you know
you can do in Dyer compose you can
override things on your own
but yeah you don't you don't get that to
share that was just the initial like
state yeah yeah yeah so I think that I
think those might be like the initial
State for the recipe but yeah so the
question was whether or not I feel like
I could use docker dr. composed better
now that I've used lando or that I
understand it more the answer is no
because it does obfuscate it you as far
as you know you've installed Lando and
it just works yes yeah follow-up
question did you feeling
one want to know more about soccer when
this was probably more a retort question
to think about and be able to learned
about dr. dr. bodis herself to better
help yourself troubleshoot
I'm not to take over the question for
this yeah yeah if you want to have to go
ahead Paulo we're did it so so doctor is
not a precursor of learning really cool
Tiki so they can get there it's a way to
cut my keep doctor that's why I need it
now cuz usually just did the PM's you
know I had separate Center less
computerized yeah that's a copy patient
but then once I got to the doctor find
out that I can have multiple sides to
him
jaqen simple support changes but doctor
is also very complex research without
the fear factor post file if you want
second shell scripts out of it you know
and
Karpov a Libra meetup group for drupal
and this was actually one of our
discussions going back and forth for i
was talking about dr the other guys
talking about land uh we're trying to
compare it to which is why it's asking
here that question yeah so basically
yeah the the whole idea is that you you
don't need to know doctor you don't want
to know doctor it's just a dependency so
that way it's super easy to just share
your environment with your team nobody
needs to know anything
it just gets done just works yeah maybe
you're synthesizing all of these
questions if you have a project that is
already running on some hand rolled
containers is there way to import it
into the land of interface so the
question was is there a way to import an
existing Packer configuration into the
lando interface not automatically as the
answer you'd have to kind of convert
that yourself but lando does give you
the option to run your config files so
you can set up to read hey I want this I
want my app server to run this already
defined configuration you can just tell
it to a couple lines and it'll load that
instead of its own
and I think we're a little over on time
any last minute questions alright well
thank you
[Applause]