I'm high so I'm not going to steal the
the key of the show here okay you are in
a session for advanced pizza making this
is the special edition for brick ovens
if you're kind of surprised by that it
might be in the wrong place then we're
good said why simply test me this is a
community case study my name is Anne
Bergstein I go by nerd Steen this is a
real live action shot of me right here
I am the VP of engineering at hook 42 I
love Chicago I love this camp I have a
great time coming every year what a nice
reflection of the community honestly
it's great yeah I'm very very honored
before we get started I to really dive
in I you know every time I think of
Chicago I kind of reflect back and
imagine this guy here and kind of his
you know very unique distinct voice when
he's presenting you know things on
baseball games before he passed away
obviously Harry Caray
and I'm a Pirates fan right so it's a
little you know I kind of now have some
bittersweet feelings because the Cubs
are now kicking the crap out of the
Pirates every time they play each other
but hey here we are
I still think very highly of Harry Caray
who's very unique very distinctive but
one of the things that kind of occurred
to me especially because we do work
within a community is he was able to
have a pretty pretty decent impact you
know even just being an announcer of a
baseball game right very familiar people
know him and he has a very positive I
think influence on the game and the
larger sports you know space right so
we're going to talk about a different
kind of impact today that I think is
important to note brief outline of the
talk we're going to talk a bit about
some motivations behind the project
the current technical architecture
roadmap and vision and questions this is
condensed down as much as I can for a
project motivation so how and why did
this system come to exist what is it
trying to do in the world and it'll be a
little bit of a history lesson and why
the project came to be and everything
like that first and foremost I'm sure
that some of you have seen this image
before I have to even think someone put
this in their talk earlier in a
presentation that I watched but I would
guess several you've seen this but you
know one of the things that you know
it's kind of irrelevant about this
picture now is mod X and Joomla used to
be a little bit more influential in this
face maybe not quite the case anymore
but I think its statement on Drupal
still rings true right there's aspects
of Drupal that I think are definitely
complex but my hope and I think the hope
of many in this room is it that that's
not an evergreen statement right I think
we should always be striving to make it
is the least amount of complexity as
possible but it is a very powerful
system and Drupal is hard right that's
why it's highly extensible it's powerful
it can do a lot of different things
within a digital ecosystem so of course
it's naturally difficult to learn
difficult to use and in any given day it
occurred to me as I was looking at this
very recently that you know if you're a
drupal engineer you could touch any of
the following things I'm gonna rattle
off in any given moment in time
PHP drush Composer CSS JavaScript HTML
twig testing frameworks and guess what
that's not an exhaustive list so even if
you know this technology of course
Drupal then adds its own conventions on
top of that right makes it even more
specific or bespoke so there's things
about Drupal that you know really again
we're taking even a whole complex
technical ecosystem and then putting its
own thing on top of it right so it's a
bit daunting would you all agree so how
do people get started figuring out
Drupal how do they even get moving
that was the entire motivation behind
simply test is to give people away a
soft launch into Drupal right simply
test me is both an open-source project
and a free completely free service it is
offered and I have maintained this now
for just about a year it was created
back in 28:12 by Patrick Dee and I took
over about a year ago after he was
looking to transition the project and
the project I believe is vital service
but it's one that really focuses on
lowering the barrier of entry for new or
existing community members that want to
learn more about Drupal right or
contribute to Drupal so I'm here to
share what I've learned and talk about
where we're going but in its most basic
form users fill out a simple web form
online they talk about what they want to
test in Drupal they've put in a few
things they pick a module they put a
patch doesn't matter and then they click
a button and within a few you know maybe
a minute or so they get a whole new
Drupal site spun out for them has all
the stuff that they specified and it's
ready to go those instances remain up
for about 12 hours and the process is
almost 100% automated to them
[Music]
so the key thing to understand is that
it's not only an open-source project all
the code runs the site is online as
open-source people can contribute to it
but it's also a free service so we allow
community contributions but the service
aspect of it has its own infrastructure
is highly customized and it's a bit
interesting and this service has been
running now for every major version of
Drupal since Drupal 5 so that should
give you some time frame about how
things have had to evolve so what are
some motivations about the project first
its entire purpose its sole purpose is
to help people use Drupal and lower the
barrier of entry for any community
member that wants to be involved and
participating but this project itself is
a labor of love contributors like me and
other people ami Jun helps out they do
so 100% altruistically it's all based on
goodwill we recognize that the community
is stronger when everyone is supported
right and so we try to provide this tool
as a way for people to learn and we want
to introduce them to concepts like what
is core and what are modules and what
are themes and how do you run a
distribution right and usability is
really the focus we want to try to make
it as easy as possible for people to do
that job and so we want to reduce the
complexity and then let people learn on
their own course right so that to me I
think really helps people to do that and
contribution itself is also a major
motivation this entire project is run
almost 100% on open source tools and
projects and and Drupal itself it's like
Inception right so everything really
helps to keep the community flourishing
and as much as we can we help out on
other projects other technologies like
nginx and H a proxy and other things
that you'll see in a moment that we we
contribute to that whole broad ecosystem
by using this tool and all of this has
really done in an automated manner ever
thing is automated right we want to try
to push DevOps and continuous
integration practices as much as we
possibly can in this process and our
community really was able to leverage
that when drush was released back in
dates I don't the call but roughly
around that time and that really helped
the DevOps space and this tool to really
take off at that point in time so today
we are able to leverage a lot of the
benefits and learnings of this automated
DevOps approach and as a project Lee my
role and responsibility is basically to
make sure that this product remains
vibrant it continues to be supported for
this version future versions to come and
it's void of corporate interest so one
of the big things is this is not run by
a company this is not this is 100%
community driven we do have sponsors
I'll talk about that shortly but the
goal is to remain is unbiased as
possible keep the service 100% free for
people to use and maintain that as an
operating principle for this and I think
those are going to serve as key factors
as we talk about the rest of where this
project is going right now we do have
three infrastructure sponsors two of
them are legacy and one is new druid
malloon have been sponsors for ever as
long as I can have ever heard of it and
lino recently gave us a really nice
credit amount that we can run all of our
development infrastructure using line
ode to help you know people to
contribute back to the project in a safe
and sane way all right so let's talk a
little bit about the technical
architecture at a very high level and
again I'm going a little quick because I
have to respect the timing here we have
like the web front-end right we have a
web server and what that does is it
always queries drupal.org to get project
information so you say hey I want to
test views and then it goes and returns
the version right and you say okay or I
want to test this patch and it goes and
loads the patch from drupal.org and then
you hit submit when you hit submit that
go
and sends it to the simply test back-end
servers which go and set everything up
we'll talk about that more soon returns
a loaded instance for you and then that
goes back through and redirects to the
new instance and you can use it okay
that's the process involved and so
there's really two types of servers that
we have within simply tests there's the
web front-end and then there's the
backend instances that's a good way to
look at it and how does all of this work
well one we leverage all the drupal.org
project metadata so we look at the web
service API is from drupal.org
we pull all the project stuff the
versions of the projects that are on
there
a lot of metadata about Drupal core
things like that we leveraged rush and
composer for tons of automation behind
the scenes and the sandbox servers the
things that run the instances is one big
giant monolith lamp server that spins up
virtual hosts and databases and
everything okay
so it's good to keep in mind also behind
the scenes we have a H a proxy which is
terminating all of the requests that's
how we run and set up our security
certificates and all the subdomains that
get provisioned for the instances we use
let's encrypt to regenerate those
security certificates alex c is running
all of the infrastructure everything
that is running behind the scenes
through the instances or using Linux is
you know kind of a conventional
container technology back three docker
right
and those maintain both the web server
and the sandbox instances so we can
easily back enough we can easily restore
it we can load it on other servers if we
need to and then we you make a strong
use of SSH between the servers and guess
what bash scripts I know I feel like
every single you know automated tool
just always falls back to bash scripts
it just does right I mean it's like the
you know the tried and true
but let's discuss something where we are
today and where we've come we have
constantly been building modifications
around you know new versions of Drupal
you know we had a composer in for a
right and there's a lot of you know
diversity and kind of the technology
that has been built into the system
since 2012 right so it's been a while
and it reflects that the current
infrastructure has a ton of technical
debt and it looked a little something
like that right tons of different things
that you can do and it's been kind of
wired together and you can go through a
long maze of different approaches and
tools and and that's it's very very
difficult I think for us to maintain
that at this point in time because it's
been a series of incremental changes
right but the result of it is now we
have a pretty complex and fairly fragile
architecture running this site and
everything is very hand coded and it's
kind of it's just fragile is the right
word even the smallest of changes they
could be prepared for weeks right and
tested on local systems or development
servers and all these things have some
edge cases it end up breaking anytime
that you end up pushing a change out
right so it makes things pretty
miserable for people that are actually
using the system and for someone who's
trying to maintain it and so we've
accrued a lot of technical debt and it's
very very fine-grain and bespoke
and it's so it's kind of hard for us to
evolve it in a rapid manner it's the
right way to frame it but I think we're
heading in a good direction so what's
the overall kind of gut check of the
project as it stands today first and
foremost it's fairly stable okay the
system is running the biggest challenges
we really have right now are trying to
kind of keep up with Drupal core and the
changes that are rolling into these
minor versions of Drupal trying to
maintain just distributions is very hard
because injured weight especially
there's a lot of kind of distinct
differences between distributions so
that's really difficult and but we're
fairly stable and the monolith is kind
of running and we're not making major
changes to it so that's really where we
are but the real key of what I want to
talk about here is where this is going
because I think this is the cool part
maybe I'm wrong so I'm going to share a
little bit of my vision and kind of the
roadmap of where this stuff is heading
and there's a perfect African proverb
that sort of summarizes this philosophy
that I'm trying to adopt if you want to
go fast you go alone if you want to go
far you go together and the key thing
would simply test is we need to make
sure that it is opened up a lot more for
people to eat to use more effectively
and contribute to so the first thing is
we're going to be making a major upgrade
for the web UI to use Drupal 8 and there
are so many inherent benefits for doing
this first and foremost it's going to
give people a lot more access to these
new systems and these improvements that
come with Drupal 8 but also we're going
to be able to as a system we're going to
be able to benefit from a lot more of
the ecosystem around with symphony and
all the other technologies that we could
pull in with composer to really leverage
a great kind of broad PHP and other
ecosystem benefits I guess is the right
way to say that right there's other
projects we can use we have access to it
and I would believe or I would hope that
in doing so we would be able to make it
more attractive for people to contribute
back to there's a lot of things that
need to be done to be able to do a
Drupal 8 release there's a lot of
features of you know storing the
information making sure that SSH is
working between the different servers
and api's and logging all the
information trying to block certain
traffic if it looks malicious there's a
lot of stuff going on to try to
you know make this goal happen but I
feel like getting into Drupal 8 will
help us to start with a clean
architecture for something new something
fresh and give us the opportunity to do
something in a cool and modern way so we
are going to replace the current Drupal
and hopefully Drupal 9 supported
platform the next piece is really around
the experience one of the things that
the current UI I feel like it looks like
it was kind of built in the 90s it's got
sort of it old vibe to it and you know
and it's fine it's functional right but
it might not reflect that the project is
maintained and is cared for and nurtured
it just looks old right and that's
that's fine um but we're going to make a
new experience and guess what we're a
new experience comes in is also an
opportunity to add more useful features
for people and make it more intuitive to
use so we have proposed a whole new UI
with a lot of features tied to it this
is open for discussion this is not done
or settled or anything like that yet and
so my goal would be to try to iterate on
this to make it as clean and
straightforward as possible to give
people the best experience if they can
and those little yellow tags that are on
here all have annotations that talk
about different behaviors of what
happens and how the different
interactive parts of the interface work
so it's a pretty complex kind of set of
things but but there's a lot going on
and the next thing is really trying to
roll out a refresh in terms of the
design and the look and feel and we want
to try to make that also as cool and as
slick as it possibly can be and also
like pleasing to the eye you know and
and accessible for any user to use
that's another major goal so we've
proposed kind of a new look and feel we
have a new logo the stickers are out
there on the sticker table if you want
to
and at some point in time once the
Drupal 8 system is there this will be
the theme that's in place to replace it
and it should be cool right so this is
also open for feedback so if we want to
make some adjustments to it now would be
a great time where we get too far down
the road but honestly I think it looks a
little more modern I think it looks a
little a little nicer than what we have
now and certainly reflect something more
vibrant I think to move forward all
right here's some big news thanks to the
fine folks at Lola bought it has long
been my goal if not my number one
priority to figure out how to remove the
monolith the big giant lamp stack
sitting under the hood that causes me
Fitz keeps me up at night
cut causes lots of pain and suffering
and is wired together with rubber bands
and balsa wood we need to do better and
there's been a lot of discussion and one
of the most desirable things is to have
a truly container based infrastructure
because whenever you spin things up that
stays alone and any changes that we make
to it will only affect things that are
provisioned after it and it's naturally
destructible right so all the
infrastructure that we want to make the
instances run for 12 hours to tear them
down to provision them easily is like so
much cleaner with something that is
container driven or docker or anything
like that tugboat is a project
maintained by the little all about team
it's a product that you can purchase for
your own needs and it spins up previews
so if you're working within a
infrastructure of your building a site
and you want the ability to add say like
a preview for one of your pull requests
right you can use a platform like this
and it spins up it uses containers and
has configuration and gives you a nice
preview of the changes you've made it's
great for QA processes as of six months
ago they open it up now
to have an API and that API allows for
people to provision their own instances
and it's not just tied the changes or
pull requests that basically meant that
simply tests could use it and the fine
folks a little about have been kind
enough and generous to offer their
infrastructure for free for simply test
to use to do that huge deal it's very
big thank you so I could not be more
excited I'm so excited by it I already
ported a module to Drupal 7 for tugboat
I will do Drupal 8 as well and we are
working diligently to get this in place
as soon as possible to make use of the
infrastructure I think it will help
everybody in the process so thank you so
much I know there's some little dividers
bots in the room so thank you send that
up to your folks cool the next thing is
I'm I try to be opportunistic right
there's a lot going on in terms of the
ecosystem and the Drupal project itself
makes use of google Summer of Code ok
they sponsor every year and we've been
lucky to be accepted for the last
several years I think at least 6 or 7
years now and I submitted simply test as
a possible project for a google Summer
of Code so we are in a position now
where I've identified three different
maintainer Zoar three different people
that have some part of where I see the
system going and then I've defined the
project to be moving the Drupal 8
version forward so we're going to be
building a react front-end to do the
interface get all the benefits of using
that we're gonna do the Drupal 8 web UI
and all the backend that we need for the
logging and the instances and all of
that information we're gonna implement
the new design through the theme and
guess what we're going to get that
tugboat integration moving so that'll
all be going through Drupal 8 hopefully
as a google Summer of Code project it'll
be a great opportunity for these
students to learn there's a lot of
pieces that they'll be able to touch and
from and I fully expected with me and
some of the other mentors that I've
identified you've already worked on
simply test it's going to be a great
time for them and a good experience and
very helpful for the project now I want
to remind everybody though and the
really key thing here is look at what
we've been able to accomplish with that
much money literally there is no money
exchanged all the infrastructure is paid
for by the sponsors there's no money
given to any of the people maintaining
or contributing it's a hundred percent
free free for everybody right but that
has limitations right even maintaining
the infrastructure is expensive even
trying to leverage or look at these
containers are expensive and so it is
hard to imagine a service that is
sustainable without some sort of revenue
that if it's needed without me paying
out of pocket to do it
things need to kind of grow and evolve
three months ago we established the
simply test open collective and this
open collective allows for any any
person in the world to make donations
big or small to simply test this could
be individuals it could be companies and
we are in the process I'm working with
some folks in the room right now to
create packages for camps or conferences
and other other ways to try to raise
funds and talk about the benefit of
using simply tests for these different
kind of entities and events and things
that happen within the community so
we're actively working on that marketing
material to try to put together why it's
appealing why people might want to
contribute to it and I have some
exciting news here too one of one of the
programs that we have established for
simply test is trying to set up demo
frameworks and our very first demo
framework sponsor is here ryan from cars
guys AKA Sentaro who is going through a
brand new rebranding just agreed earlier
this week
be our first demo framework partner what
that means for them is they will have a
button on simply test for any user of
their of their platform to come in and
spin up a demo of their framework
directly on simply test right in
exchange for a donation back to simply
test to keep the project running right
we'll be looking to extend that for
other frameworks other demonstrations
depending on the need or the interest
but I can't tell you how excited I am to
have Ryan and Matt and Bo hands
framework running on simply test it's a
great fit I think for both sides so one
would say hey you have some money right
you've raised some funds what do you
want to do with it well what we want to
do with it is we're going to give that
money back to someone or a set of people
and we're going to create new
contributors for the community through
an inclusion program we're going to
raise those funds we've already been
talking with some folks some training
partners to establish a pro-rated
discounted training we're going to
purchase books and computers and have
like on a two to three month internship
with simply tests to give people
hands-on experience and then help them
with job placement after the program
finishes up so all of the funds that we
raise not all of it maybe but a large
number will go towards helping this
program get off the ground to create new
contributors to Drupal to give back to
this platform in doing so and hopefully
make the whole ecosystem continue to
flow
I am right at my time box I want to
thank all of you and I will certainly
take questions and I appreciate your
time and I kind of sparked an idea and
gave out the Drupal 8 user guide new
user guide system how we can tie in
simply just me kind of pair goes
[Music]
be I'd be happy to explore that so the
question or comment was through some of
the more like mentoring / the Drupal 8
user Oh the user guide okay
right sorry there's linked to concepts
around Austin oh cool okay I can reach
out to her so just for the microphone
looking at the Drupal user guide as a
doc as a potential opportunity for to
integrate that with some simply testing
tool yep cool yes indeed I think the
number one reason in Ryan might be able
to speak to this a little bit better cuz
definitely his distribution is one of
the larger ones in the ecosystem right
now a lot of the tooling it really comes
down to tooling the ecosystem around
composer and having some CI systems that
are more advanced or different even than
the test bots on drupal.org that you
could wire in more infrastructure or
different checks and things like that
you have more control over
infrastructure that sits kind of outside
of it so these are oftentimes github
projects that are running through their
own conventions like things like
creating their own project like a
composer create project and it's Drupal
Commerce or Drupal a composer create
project off.we a lightning write these
are examples where they're not following
the same model as what it goes with
Drupal so it's just it there's a lot of
benefits to doing that and really the
benefits are that you have a lot more
access to different toiling it's a kind
of more robust ecosystem I would say and
and really it just makes it harder
because a lot of things with simply
tests are tied to drupal.org if things
are working with drupal.org chances are
it's going to work with simply tests
right but when you start getting into a
lot of the custom tooling that you're
able to leverage that's when things get
really tricky for me because it just
makes it harder because each one of them
tends to be different acqua a lightning
has a lot of its own
dependencies and packages and things
that it uses and same with some of the
Commerce Clause right but they're able
to leverage that because that's one of
the strengths of using composure and
having all of your own packages and an
infrastructure that you can test it with
sides answer your question in seven yes
there's a lot stricter conventions and
seven that people follow and most of
them follow it very deliberately like
around make files and how you name those
make files that's one example of that
convention in eight I've actually not
seen a lot of distributions being
maintained on drupal.org for eight there
are times when there are artifacts and
they're pushed like releases or some
parity between like a github project and
a Drupal dog work project but it's very
very unique for every single one so it
just makes it a bit more challenging and
I'm also not I don't consider myself an
expert in distributions for eight so I
think the question you posed is is a
very valid one but one that I would
struggle to answer I think we need to
wrap things up but I want to thank all
of you and I hope you have a wonderful
day
I'll be here for your questions if you
need it thanks
[Applause]