agency workflows only panthéon my name
is David Neum I'm a developer advocate
at Pantheon there's all sorts of ways
you can reach me but really a developer
advocate is sort of a new title for me
and for our team we were previously
something a little bit more complicated
as far as like what we did but basically
what I love about being a developer
advocate at Pantheon is I get to come to
conferences like this and speak to
developers and site builders and people
working with websites and I get to share
with them a little bit about what I know
and I get to kind of help inspire
educate and teach them what I can and
then ultimately if I'm doing my job
right it means that developers are more
successful doing things done more
efficiently and ultimately enjoying what
they do more and so it's kind of a
reciprocal just good energy thing going
on which makes me happy so if you look
at traditional hosting these are really
the three big pillars that you might be
familiar with so sure knows me
you probably already know shared hosting
but really sorry I don't know sorry just
a second let me adjust my screen
okay but so the thing about shared
hosting is it's really cheap and some
clients really cheap is all they got and
that's okay but the problem with shared
hosting is if anyone is having a bad day
everyone on the shared hosting is having
a bad day and unfortunately the opposite
is also true if anyone's having a really
great day and they go viral it also is
really bad for everyone else in the
shared hosting so that's why agencies
and clients often look to something like
a single VM where they can spin up a
server that can kind of manage the whole
thing themself and then they can control
how many different sites are actually on
that virtual machine that's pretty good
it's certainly better than shared
hosting but the problems that you still
end up with a single point of failure if
any one of the things goes wrong if the
database or the Apache configuration or
who knows you push code and it breaks
something then your entire site still
goes down with a single VM and then
scalability also can become a little bit
of a hassle there so that's why bigger
agencies bigger clients often rely on a
cluster which has several application
containers you have you know database
with a redundant database and you have
all this in you know infrastructure set
up which is pretty good I mean it
certainly is like the best option from
these three that you have here but at
the end of the day you kind of have to
have a dedicated DevOps person who is
familiar with architecture and knows how
to set up this configuration and who can
really stay full-time focused on making
sure that security is up-to-date
that everyone has access that needs
access to the right pieces and
ultimately the hardware also it becomes
quite expensive so this is a little bit
of the problem that the founders of
Pantheon originally had they both are
all of them came from agency backgrounds
before and they found that as they were
serving their clients there were all
sorts of different options available and
they all have different preferences they
you know had different needs and that
required different processes to set up
and different workflows and
unfortunately it meant that it was a lot
of overhead for the client so
a lot of expertise to consult and make
sure that everything's set up properly
but also a lot of added expense making
sure that it's the right solution for it
they're looking for and then getting the
developer team set up and ready to go on
Pantheon was also I'm sorry now I'm
talking about on whatever shared hosting
it was how it can become complicated
because you have a different workflow
and a different process for every single
site that you go with so they said okay
there's got to be a better way there's
got to be a better way for us to do this
so they came up with a single
containerized platform when they founded
Pantheon and they said regardless of
what size of site that is that you're
working with whether it's a tiny
mom-and-pop shop or like a personal blog
or whatever all the way up to a huge
enterprise tear web site with thousands
tens of thousands hundreds of thousands
of pageviews doesn't matter we're going
to use the same workflow for agencies
and we're going to use you know the same
sort of like platform where the
experience that you're working with is
going to be the same and then when you
upgrade from one plan to the next it's
just like adding additional containers
but all this is happening under the hood
so if we take a look under the hood and
our actual architecture we are built on
containers we have over a million it's
probably even a lot more about now over
six billion page views a month so again
from the tiny little site a huge huge
enterprise site the architecture is set
up in a way that you don't have to think
so much about what's happening under the
hood we just sign up for an account
focus on the site that you're building
and all of the server performance and
security things are handled
automatically so we're gonna start by
talking about the edge in this case the
edge is what most of the people viewing
your website are actually going to be
viewing this is where the cached version
of your website lives
so with Pantheon we use varnish for our
cache at this level and because of our
new global CDN these are all over the
world so if you are in Berlin and you go
to a web site to toast on Cathy on if
it's cached you'll be viewing the cached
version from our data center from our
our point of presence that's in Germany
and we have
a couple different ones there so you
don't have to hop across the ocean and
back to negotiate that so you end up
with a much faster and more reliable
website but if for some reason the
website is not cached or if you need to
start letting people log in or checking
out the card or anything like that then
we start routing to the runtime matrix
which is made up of all the containers
that make up your site so this is where
your Drupal site actually lives this is
where PHP and engine Nick nginx lives
and then for all of these machines
regardless of what tirion we also have
redundant containers set up so that if
we detect that something isn't quite
right on one of the containers that's
serving up traffic we're able to
seamlessly under the hood without any
sort of interruption whatsoever Rock
traffic to the new duplicate container
spin down the old container and then can
I see what happened
this also means that we can apply
security updates at the server level
without interrupting any sort of any
sites without you downtown or anything
like that so I under that connected to
the runtime matrix we also have marina
DB which is our open source database
solutions just like my sequel we have it
optimized for performance and depending
on the level that you're on we also have
the redundancy in place we have Redis
which is object cache object cache is
ideal for logged in traffic so if you
are if you are logged in you're going to
be hitting the edge if you're not logged
I'm sorry if you're not logged in you're
me hitting the edge and that's the
varnish cache if you're logged in you
can be routed to the runtime matrix and
if you're using reddit
it means that you're logged in traffic
it's also going to be faster because the
database queries are able to be cache as
well and then we have a patchy solar
which if you have needs for search on
your site if it needs to be fast and
full of functionality
basically if search is a key part of
your website you probably want to
consider looking at Apache Solr as an
option we have that built in with our
the business and professional tears so
you just enable it and yeah it's all
kind of the pieces get connected
together and then it's easy to just set
up and then the hallo hallo sort of our
secret sauce so we are able to keep
files in sync across each of your
environments across all of the
containers because of Kahala so even if
you have a website that's several gigs
large you could easily click a button
and clone from your live site down to
your dev site or you know some other
site in just a minute or a few seconds
in some cases and it doesn't matter that
it was several gigs of data and these
things just work so ultimately this this
is what Pantheon consists of this is the
website management platform that is
Pantheon so we end up focusing on the
sorts of things that your clients kind
of take for granted I think often you
know that you have a fast and performant
website that's reliable but you know the
other part of that is also the tools we
provide to developers already talked a
little bit about the tools today when we
look at the different agency workflows
so let's just jump on into that and so
the the this is the basic idea the the
sort of developer workflow that I was
taught even before I came to work for
Pantheon many years before Pantheon was
even a thing for if you're building a
web application having you know at least
a dev site and a live site you know you
don't want to work directly on the live
site because if you make some sort of a
change or if you apply an update and it
doesn't go how you planned they need to
sprint the live website so that's that's
relatively obvious but we also recommend
having a test environment and in this
case the test environment is identical
to the live environment so when you work
on your new feature or a higher security
update or whatever you're doing in dev
you're able to commit that deploy that
up to test and then either manually QA
you know click through the site and test
it or you can even set up automated
updates all right it's our automated
tests that check to make sure that your
website is not going to have any
problems or go down or
unexpected changes when you apply your
updates so all of your commits all of
your code your updates new functionality
is going to start and in dev go up to
test then go up to live on the other
side of that we have syncing content so
we're referring to content in this case
as your database in your files and your
files are like the your files that are
associated with content so you create a
blog post you have an image that you
upload to that or a PDF or something
like that that is a file so your code
goes up from dev test live your content
so your database in your files can come
down and in Pantheon you just click a
button and it syncs up the environment
from one side of the other all right so
let's take a quick look at the Pantheon
dashboard
so when we log in the Pantheon you have
a dashboard that looks just like this
you're able to kind of click through and
see all the sites that you have you can
also see a list of all of your
organizations that you're involved with
so if you are part of an agency you'll
you'll see that there I'm going to skim
through this pretty quickly because
again I want to focus on of having some
time at the end for for questions and
digging into more things later but let
me skip to and just click on a site here
and jump into what that looks like so
here we have a website that I created is
called Needham bikes if I click on View
development site I can actually open it
up and I can see it's the development
sent because it starts with dev - the
name of I site and then dot panthéon
site dot IO so this is what it looks
like in the dev site looks pretty good
if I jump back to my dashboard so I can
see here at the top I have the three
environments out-of-the-box dev test and
live it's easy to click on any one of
these and to click on open the
environment and kind of see what that
environment looks like all right if I
jump over here to the top I also have a
section for workflows let me see if I
can make this a little bigger so I was a
senior for workflows where I can see all
the things that people have done in this
site over time so you know if I looks
like here I created a multi diver
deleted a multi dev environment if I
clear the cache from the dashboard if I
any of these operations their workflows
that happen I'll see when it's happening
with a little spinning ball over here
and I'll be able to click and actually
see who did it and how long ago started
I also have a section here for team
where I can add people to this
particular site it's also possible from
the settings section here to actually
invite someone to pay for your site so
if you are not the person who pays for
the site and whether it's your manager
or the client you're able to come in
here and invite that person to the site
and then they're made the owner they can
select what plan is appropriate and then
or you can suggest what plan and then
they'll put in their information and
actually
this section right here is where you
would also enable solar and Redis and
then you can get some information about
the site including the PHP version the
site is currently running alright so
from here we also have the section where
you can select which development mode
that you're currently working in so in
this case we are in git mode
there's also SFTP mode so if your
developers prefer to work from SFTP if
you prefer to work with tools that kind
of leverage SFTP that's totally fine
there's nothing wrong with that I think
typically SFTP is carried a little bit
of a stigma with it because I think a
lot of people associate SFTP with cowboy
coding you know logging in directly to
the live site and making code changes
directly there but the way the panthan
gonna set up the whole process the whole
workflow is based in get so if you're an
SFTP mode I'm switching now but it's not
important when you're in SFTP mode
you're able to make changes directly to
the server whether it's blogging about
SFTP or using the Drupal interface to
you know upload or update your modules
or you can also connect via drush to
update files directly on the server and
in most cases you're changing files
directly on the server and you'll see
when you make changes that there is
actually a section it will say you know
you have up code changes in this
environment right a commit message a new
clipped commit and it makes you go
through the process of saving a commit
so you can see exactly what's happened
and who's been doing so even if even if
your team isn't all on board with git if
they're if it seems too complicated or
if they're out into that that's okay you
can use SFTP and you still get the
benefit of a commit log you can see who
did each command when it happened and
then whatever the commit message
actually is so it's easy to switch back
and forth between SFTP and get mode and
connect to either one of those that you
want
so for each environment we also have
sections here so we're currently in code
where we can review all the code that
we've made all the changes we've made to
this environment we've also have a
section over for status or we can click
and especially for your live environment
but for any environment you can actually
jump in and see kind of a status report
of what is
going on with this particular site so
it's great to check this to make sure
that you don't have any security updates
that your performance to set up your
caching is set up properly in this case
it's telling me hey I haven't made a
backup recently I might want to consider
doing that we also have a section down
here for database and files so if you
want to maybe copy this new content
that's happened in the live environment
and pull it down into my dev environment
I just have to go over here to say clone
database and files from live I can make
sure those two are checked and then have
the option of choosing either run update
PHP which is good if I'm doing updates
or clear my caches and I just have to
click the button and so now if there
were people adding new content new blog
posts new things to the store on the
live site these are now getting copied
down into my dev site I also have a
section here for import and export if I
would like to do that which can be
really handy if you're migrating or
building the site on Pantheon but then
taking it somewhere else
you can do that through this interface
here we have a section for PHP errors if
you have any of those we can add domains
you can of course create backups which
happens automatically on schedule if
you're on a paid time we'll have a
section here for security where you can
put an additional level of
authentication on top of your site if
you choose to do that so every site that
you spin up with Pantheon comes with New
Relic APM pro out of the box which is a
huge performance tool that that gives
you great insight into why your website
might be running slow it gives you
notifications if it detects that your
website is running slower than you might
expect
and it gives you a really deep look into
like what functions are being called
that cause your website to be slow or
what database queries are being called
all right I mean this is the sidebar
that you see here is pretty much the
same for each of the environments so
whether you're in dev test or live
they're all right there so let me just
call it the elephant the room or there
isn't update available for Drupal and
these updates do appear directly in your
interface here so whenever there's a
core update to Drupal it pops up saying
just like this one says here it says
there's one pops up screen update
available so if I like to apply this all
I have to do is check the boxes that are
appropriate
click apply updates and then it'll get
pulled in I'm not actually gonna do this
right now though because I want to show
you a different way later on in
presentation does anyone have any
questions about this so far okay keep
going
all right so
we go so they're really in this case
we're sort of identifying 10 different
workflows that agencies identify as
being really important to the work that
they do we're going to go through each
of these one by one and we're going to
talk a little bit about what the problem
is what some solutions could be and I'm
going to invite other people to
participate too even though this
presentation is a sponsored session by
Pantheon and we were of course have
solutions to each of these workflows I'm
going to be honest and just tell you
like we're not the only solution there
are lots of other options out there so
if I think one wants to share anything
as we go along please do share all right
first things first agencies want a
efficient set up of tools for new
projects they want to be to get started
on a project really quickly without
having to do a lot of manual work so
Pantheon solution for that is the
developer dashboard so in this case a
whether you're the website that you're
working on is again really really small
or really huge you get the same
developer dashboard that I just demoed a
moment ago you still get dev test live
that are all in place and your
developers can have the same process to
build any site whether it's small or big
or complicated or really easy so one of
our one of our perhaps clients here is
kind of made a quote here Alex a few
more quotes as we go along B uses a
Steve Blackburn of Texas axes here so I
needed a web environment where I didn't
have to manage physical or virtual
servers so I can personally relate to
this as well because I worked for an
agency before Pantheon and in my
situation I was sort of the DevOps guy
by default I did not like DevOps I did
not have any experience really in DevOps
but I knew the most out of anyone on the
dev team therefore I was the person
responsible for making sure everyone had
their workflows in place and had the
server's configured the right way and
invited everyone to the right sites when
we as a company we're looking at
Pantheon as an option
it significantly reduced the work that I
had on my plate basically the process to
spin up a new site for a client we we
got a we want to bid we are about to
start this project just go into the
interface and I say create a new site
and then the workflow that my my team
used for the previous site is the same
as what we're gonna use for this site
it's just consistent and it just works
does anyone have any feedback or
suggestions or any anything that they'd
like to contribute I validate that's the
experience cool good okay well let's
keep on going it's in the next one
agencies really want to be able to share
code between similar sites so a common
use case here is let's say that you are
a university where you have lots and
lots of really similar science whether
it's for different departments or
different student groups or different
classes who knows the typical solution
for this what we like here is something
like multi des I'm sorry not multi
nevikov multi-site like triple multi
site you can share a code base so you
have all the same modules and all this
in some cases the same database you can
break that out and then you put all of
the sites on that one Drupal
installation I've heard I I've only had
the pleasure of working with multi sites
a couple times in my career but I've
heard so many horror stories about it
about if you you need to spin off a site
make it just a little bit different it
becomes really difficult because they're
they're sharing the codebase and then if
anyone wants ID goes down it might take
all of them down or it's all for
different things can anyone relate to
that or have you anyone want to share a
story about working with a multi-site
not without invoking PTSD okay fair
enough
so for Theon we also identified we out
of the box said no multi-site like we
don't support it at all but just
recently your two years ago or so we
released this new feature called custom
upstreams
a custom upstream in this case lets you
have the best of both worlds where you
can share a common code base but you
have the flexibility of having each site
being independently run with its own
containers and with the ability to Nick
changes and customizations however you
want installed profile it can be even a
little more than that so so the way this
starts is you have a the core CMS and
whatever common code you want them to
share just like you might in a custom
upstream and you put this into a github
repo or bitbucket repo or or something
like that and then when you go to create
a site based on this upstream it's just
the same process that you would do in
the pant and face you say create site as
an agency any custom upstreams also
appear in that list so you could say you
know my my fancy edu custom upstream you
click it and it starts the same way that
any other site started so whatever
pre-configured stuff you did you could
even do additional like database changes
and you add this content or whatever
whatever you want to do after that
process and then each site has its own
dedicated site I mean each one is is
isolated from the other so if you have
changes you want to make to it you can
make those changes
maybe net-based right it doesn't I'm
assuming it doesn't automatically blow
up so so so you are you are maintaining
the ever posit ory with the code in it
when an update comes out you can apply
the update to that upstream or to that
that codebase and then when you say that
we need to apply it again then shows up
in the dashboard just like the stream
the pantheon Drupal core update that I
saw earlier it shows up in everyone's
dashboard and they can click update and
so you can distribute updates not just
for core but also any of your contribu
using or themes or any custom stuff that
you're doing you can distribute them out
that way yeah and then it does give you
also the flexibility to make any sort of
custom changes you want so they all
start from the common place and you can
push out changes to the kind of light
from the common starting point but you
still do have the flexibility to say
this one website it started with our
agencies sort of secret sauce and our
theme and stuff but it has a bunch of
extra modules has a it's going in a very
different direction not a problem
because of the way that it's kind of
shipped out you could have a site that's
that's pretty different than the
original and then it also puts you in a
position where if something bad happens
on any one of those websites
it doesn't take down all the websites so
if one website for whatever reason you
maybe maybe the client leaves you know
they fire you and they go off and do
their own thing you're able to you know
give them access to that site you know
kind of put them back on their own path
and it's not a big deal or if they add
their own development team and they make
a change you know they take down their
site it doesn't do anything to the other
sites so you have this
kind of assurance that you know it's not
gonna nothing Bad's gonna happen even if
you have hundreds or even thousands of
different websites running on this click
so cook here from Daniel from hands view
rather than helping people keep their
sites running we'll be able to
concentrate on helping them make
effective websites
so the real takeaway here from this
quote is Daniel is able to focus on
actually building the functionality of
the website instead of having to manage
and the actual things running under the
hood and making sure that all these
websites and a multi site are
functioning the way they were supposed
to okay let's look at the next workflow
developing and deploying different
branches in their own environments this
is a pretty common workflow if your
agency is working with the sort of
typical git flow process the the
thinking here is that you're working on
a project and you have a developer and a
front-end developer and who does a
content creator or something like that
each person should be able to spin up a
branch and work that independently
without worrying about stepping on each
other's toes so you could have a branch
add your custom code another developer
or a front-end developer whatever could
be having their own branch working on
the theme and it doesn't matter so much
that you know they might be using
different you know methods and different
requirements or anything like that when
the time comes for them to be done they
can push that merge it back into the
master branch and it makes it so you can
actually launch with those changes
without without that complexity for our
solution here is multi dev with multi
dev it gives you the ability to have as
many development environments as you
want basically you can go into the
panthéon dashboard you can go into the
multi dev section and you can actually
say create a new multi dev and you could
say you know some common use cases for
that is you know let's give each
developer their own sandbox or let's
create multi dev environment for each
new feature we're working on
it's also pretty common to spin up a
multi-ton environment for security
updates for example and the the takeaway
here the most important piece to this is
that when you're using multi des when
you're using branching it means that
you're able to keep dev tests and live
clear so that if something happens out
of order so for example if a feature
that one developer is working on
finishes before the other one or if a
security update comes out in the middle
of a development process you're able to
apply that update you know create a new
one apply the update apply it to dev and
not worry about oh is this code that
we're working on ready to go to live is
it is it actually ready like can we do
we have to roll it back more likes to
rollback code no one likes to undo their
work less that's no fun so keeping dev
test and live clear and available for
updates means if John Doe my coworker
you know finishes this feature before I
finish my theme he can apply that test
it and deploy it without having to wait
on me
so patch comm is a client of Pantheon's
and this is a pretty cool quote because
he mentions you know 50 million
pageviews 20 million uniques at that
uptime with 35 million URLs and 40
terabytes of images all with four
developers it's really speaks to the
sort of power and scalability that
Pantheon lets developers have it doesn't
matter if you have lots lots of
developers let me switch back to the
demo so in my dashboard this is the site
that I'm working on let me show you a
multi dev workflow so in this example
here I have well I have a security
update I just upstream update available
the way that I recommend applying it is
through multi dev environment so let me
show you how that works
so over here at the top next to dev I
have a section of this multi dev if I
click on that I'll see all of the dev
environments or I'm sorry multi dev
environments that I currently have so I
haven't we're called core updates and it
currently says hey this is one behind so
that means one commit has been deployed
to the dev environment since the last
time I've synced up so it's it's been
behind not a big deal it's zero ahead
which means there's no commits in this
environment that haven't been applied to
debía so right let me go to click on
core updates and I can see right so hey
there's one commit that can emerge from
master and I can see exactly what that
update was so it was actually a previous
version of Drupal that was updated and
so that's that's cool no problem I'm
gonna start just by merging this update
that's already been applied into this
environment so that our multi dev
environment is actually going to match
master and then what I'm going to do is
I'm going to apply this upstream update
the core update under this environment
so I can test it make sure that I know
what's going to happen my actually merge
it into
the Devon burger so I'll start just by
clicking merge at this point it is it's
really kind of just running get commands
under the hood so if you're familiar
with git that's that's all this this
process is doing it's looking at dev
which is master it's looking at the core
updates branch and it's yeah putting the
master on top so yeah so so there is
this option here that says auto resolve
conflicts um so in a case where it's a
security update like this you you
already probably know that you shouldn't
be hacking for so this would if you did
have core it would overwrite that in a
case where it's just like the merge like
I just did if you had you were working a
feature your colleague is working a
feature and you change the same file
that's complicated to do for my UI
sometimes you you there may not be a way
to do it that way it doesn't happen as
often as I expected it to when I first
started but when it does happen you kind
of have to either basically the git pull
you know pull it locally resolve the
conflict and push it back that's that's
really the easiest way but so it's not
finished so I have now this this
environment should be just like my dev
environment I can actually click this
this link here to open up my custom
upstream environment is to make sure
that says core updates so that's the
environment name and then the name of my
sight and then Campion side to i/o so
everything looks good just like I expect
it to so now I'm going to go ahead and
apply this I'm gonna check the box for
all the resolve updates even though I
don't expect it would make any
difference one way or the other I'm not
going to apply the updates so in this
case this is just a Drupal core update
but you can imagine the scenario where
you have module updates where you know
every Wednesday some new updates are
released this is the process you might
go through when you're applying those to
put them into a multi dev a very safe
space to work and you can then do
whatever tests you need to do you can
even talk a little bit later about
scripts you can set up to automate
certain tests
you could say whatever an update comes
out applied to a multi dev do a visual
regression test to compare screenshots
from this site versus the live site
if there are no discrepancies everything
is exactly the same let's go ahead and
deploy that up to the live site because
we know nothing nothing broke all right
all right so it says here now that that
message went away because we applied
that update I have one unmerged commit
which is this update 28.5 and so this is
the player at which I would go through
and I'd run my QA I would first check to
make sure on the corbs inside I'm this
case I'm manually just kind of checking
because I feel pretty safe about it but
you might have a whole process to make
sure that the updates you are applying
aren't actually breaking anything I feel
pretty good about this I'm confident
that this is going to work so with that
in mind I'm ready to merge this in I can
either go back to the multitude of
overview where it says hey now you're
one ahead click here to merge into
master or I can go to the dev site that
can merge from there I'm just going to
do it from here and save a step so it's
asking me what Monty doesn't want to
merge from core updates and click merge
code
but so well this is really let me just
demonstrate another thing so I have
another multi dev set up here that this
feature one which is three behind and
like other stuff is going on you can
imagine where there was a long-running
feature where there's lots lots of
updates well I just added a new
developer to the team and they have a
local environment set up and they spun
up a branch and they did some work and
then they pushed it push that branch
into Pantheon and so using the section
here on the side I can see all the get
branches that people have pushed up to
Pantheon and then with a click I can
create an environment based on this new
branch that was just pushed here well so
at any point
anyone could create a new a new branch
with their code and their custom stuff
push it up and then I can clone a
database from whatever environment and
get it up and running and then they'll
have a dedicated place to do
configuration or to demo to the client
or to get code review from their
colleagues and I can see from their
workflows spinning here that this is
running and there's stuff happening it
might still be merging as well the merge
finished and I can see I have the update
right there and so the next product
process of this the next step would be
we have these changes in dev done we
need to apply them build test and live
on see we just go to test threads
deployment message in this case it's
Drupal to Drupal security updates
and I have options here to auto-sync up
the content from a live site down to the
test site in this case and I'm not too
concerned about doing that so we're
going to run up to get update dot PHP
through the cache when I do this click
the button
so this is going that well this is going
I'm gonna go ahead it just takes a
minute I'm gonna switch back to the
presentation so in the interest of time
let's just keep on going and I'll come
back to that in a minute all right
the next workflow is optimizing the
infrastructure for performance also the
good news here is that we kind of
already just do this you don't have to
think too much about tuning performance
the the most significant performance
boost you can give to your site is
actually just enabling caching in the
interface once that's done you're
talking about like millisecond or sub
second performance tuning there are
things you can do to get into that and
we certainly have recommendations on our
website and entire class is dedicated to
doing that but a lot of the things are
just already set up by default you don't
think about it you just decide another
quote about going the interest of time
the next one adding and removing team
members from a project also this is
something like I mentioned before was a
kind of pain for me coming from I have
my own server I need to go in and add a
new SH key for the client or for that
the developer I'm working with and if
they're a contractor I need to make sure
that you know kind of give them the
tight reins I mean maybe remove someone
who just left or all those things and I
need to do that for every project we're
working on which ends up even with a lot
of time so for Pantheon's interface we
have the team management console by
which you can get from the agency
dashboard so let me switch back to that
here so this is where the agency
dashboard looks like you see all the
sites that this agency is responsible
for listed here and we see all the
different filters we can use from here
we also have a section for people so any
people that you add into this list will
have access to the sites that we saw in
the previous page by default but we also
have options here when adding someone to
actually change their role so you could
say on some limited developer as a
developer you're able to work in a that
multi dev environment but you're not
actually able to deploy to your tasks or
live site so this is the case where you
know you're okay with someone working on
some new features that maybe needs to go
through some sort of approval process
you want a senior developer or the
project manager to a sign off on these
changes first the team member has the
ability to do them they can also manage
the site level team which means for each
site they can independently assign
particular people so for example if you
hire a contractor they don't need access
to all the sites they just need access
to like one site you can go into that
particular site give them access set
their role and then they're good to go
well then the administrator of the
agency can do a lot more things with the
agency itself like change the name or
add more people
alright and they have another quote here
for being residents I went to my project
manager and asked if she had scheduled
up time to start building the singing
boxes for a project she said she had
already taken care of it herself that
was the project manager had already
taken care of it herself that was the
moment of whoa this is real it was my
big moment I can certainly relate to
that the next workflow actually
launching the site and then all the
subsequent you know iterations and
deployments that you make so that for
that we have Deb test live as well as of
course the multi devs that we talked
about earlier we do depending on the
tier if you have like an enterprise
level site or we also have a guaranteed
launch process where we have some
dedicated to helping you make sure that
your website is going to go smoothly and
is on the right tier and has performance
testing all the things set up in place
so that's not a problem
he's working from another quote from
white fused media here so I can actually
relate to this again from the agency
side because before when I was working
for the agency the process to take a
website live it would often take weeks
of scheduling because you'd have to make
sure you know talking to the client
making sure that the whatever solution
they chose or whatever solution that
you're recommending the servers set up
properly that is tuned for Drupal that
it is going to work with all the
functionality that the site actually is
supposed to have and then you actually
have to log in and test it and make sure
and then you have to configure and make
sure when it when the traffic hits that
it's not going to take the site there's
all these steps you have to do
which means you're spending a lot of
extra time making sure that the websites
going to launch properly when the agency
I work for switch to Pantheon we went
from it was it was a noticeably stark
difference because we could say yeah go
check out the live URL this is exactly
what's going to look like we can
performance test that live URL
it's good to go when you want to go live
just change the DNS settings and it's
it's gonna go there's no stress there's
no worry just do it once done
all right so applying court dates I
actually already talked about this there
is that built-in one-click or updates
process and again this is something it
could be automated if you so choose to
keep on moving
connecting continuous integration
processes so this is a pretty cool thing
we're actually teaching a class at
Drupal con Nashville that will go
through the process of working with a
Drupal 8 site built in composer hosted
are not hosted but with a code base on
github built with circle see I deployed
to Pantheon so that all sounds kind of
complicated but built into that process
is the dedicated build step with a tool
like continuous like a circle CI or
Travis or something like that and then
using tools like our command line
interface with terminus we're able to
connect from that environment over to
Pantheon we're able to run b-hat tests
or other tests that are important to us
on that environment and then automate a
lot of these a lot of these things that
are happening under the hood
alright and then one of these last moves
here is actually notify external systems
about deployment progress and for this
we have a tool called Quicksilver
platform hooks with Quicksilver you're
able to basically inject your PHP code
between different workflows in the
panthéon dashboard so whenever you make
a deployment whenever you make a commit
whenever you clone the database in the
panthéon interface you're able to inject
this code in there to communicate to
these third-party systems so you could
say every time that I deployed alive
post a message in slack you know letting
the client know every time that we clone
the database the live database let's
scrub the database of private
information like if it's an e-commerce
site you want to get
there's credit cards or anything like
that client information you could do
that
every time that I make commits with a
particular hashtag number format
automatically post a message in JIRA
with a link to the multi dev letting
someone know that there was work done on
that task other the options are trying
to limit lists we have a huge repository
of examples that you can dig into and
actually take a look at and kind of see
and use for your own this is an example
of another one so for this particular
this isn't looking at New Relic so it's
again performance monitoring based on
this every line in this graph is it
commits for a deployment that we've done
and so you can see basically where I
don't know exactly the scenario spent
remember I set this up but it looks like
there may be deploying a change and then
maybe undoing the change and then doing
it's kind of a complicated thing but
basically you can it communicates the
New Relic so you can see exactly when a
commit happens and then what the result
is what happens after this commit
changes so you why is my website running
slow you go into New Relic you have are
showing hey there's a commit five
minutes ago who did this
what did they do what did we change
about that and it gives you another
place to look to when you're debugging
that
okay reorient in a new project this is
also kind of a no-brainer because it
just kind of works it's once you've
built a website on Pantheon and you're
use that workflow it's the same process
regardless of the size or complexity so
it just keeps going alright so we have
another quote here and let me just recap
here these are the ten that we just
stepped through before we wrap it up let
me switch back to my example so I have
here our test it's been deployed to test
if I go into live I can see oh there's a
commit ready to deploy from the live
environment but before I do that
remember I said test is we were supposed
to really do these the the checking to
make sure that you know when you deploy
it nothing nothing's going to happen
that's unexpected so I actually set up
some automated tests in in the test
environment it's set up with Quicksilver
so that every time I deployed a test it
automatically goes out to a third party
like load testing website it hits the
test environment with a bunch of traffic
and it will tell me how it responds to
that traffic so if I open up its website
called loader IO I can see here on March
is probably when the deploy completed
and I can see what happened so it looks
like everything is probably pretty
normal like look I've I've done this
several times this is a pretty normal
result and so like I you know without
having to do anything extra this just
happened for me and you could do
additional steps to say you know every
time that you deploy run a test and then
put the results in slack so if you've
been to Drupal con if you've seen our
booth demo that's one of the things we
really like to showcase because it's
something we're really proud of it looks
really impressive but then also if we go
into New Relic
so there's co-pays single sign-on bug
that we have to work through but the way
it's supposed to work is you click on
this go to new relic button it takes you
into new relic and then you can actually
see all the environments that you've set
up so based on this load test I should
be able to see performance data
specifically for that environment and
then see how it works
assuming everything passed which I think
it did we can go into live and actually
deploy the change live
click the play and then we're good to go
all right with that that's they do it
driving questions further advanced to
automate configuration so the question
was are there any plans to automate
configuration management um the good
news is that you already can so you you
set up the code so using Quicksilver the
automation hooks hooks feature you can
basically set it up so that every time
that you commit or deploy it will
automatically run rush and do a import
of the configuration and then you just
deploy it like you normally would and it
automatically imports any configuration
that you've exported okay so so you
would have to use the command line every
time you just set it up and then it's
good to go
yes it could you recap when you would
want to use alternate workflows than
what has survived you fall sure so I
mean the the question was can I recap
any alternative workflows that might be
different from what we talked about here
so so one of them that's freshest on my
mind is the kind of like the training
that we're doing in in Drupal con where
our code base is listed on github and
the process involves I'm working just
with github basically I'm committing I'm
pushing everything to get hub and then
based on the few that I make there it
auto deploys that to Pantheon and then I
so that your developers they never
actually log into Pantheon it's solid
say they're not to do with the code
there at all so that's a very unusual
workflow from from the from the norm but
the benefit is that if you have a
process where you're working with a lot
of developers and you want a
standardized build step circle CI is
definitely the way to or a continuous
integration process gives you that and
then that gives you a great tool like
when you make a commit and you you make
a bunch of commits and then you make a
pull request so it could actually notify
your senior developer and say hey
there's this pull request you know
through github like you normally would
but then all the tests will be right
there with a check mark or an X to say
did the code standardization you know
past it the visual regression test pass
did the B hat test pass and then I'll
give you a link directly to the multi
dev so they can go and actually look at
it so gives you give them a great
interface to say like yes this is good
or no I need to you know push it back or
something all right so the short side of
that is in a way you could have
basically
a github based workflow going on for say
is made out the seniors they approve it
or not but once they accept it then
antion's
hooks can approve it and then working
into the deployment side right right yep
yep so so as they're making these
commits they actually multi dev
environments might be spun on so they
can actually review their work or make
configuration or whatever but then when
you do a pull request and that's
accepted it actually detects the
branches that were created destroys
those you know merges it into the the
dev environment as well yeah yeah and it
also can circle back the other direction
so when it's like let's say you make a
command it spins if a multi dad if you
go into that multi dev and then export
your configuration that can get pushed
back to github and show up as a commit
as well
so time you can really go any way you
want
that's just one of the more popular
alternatives that we've been seeing I
admit it's like in the passive fruit
that pantry they explode on what the it
was and so I was kind of wondering if
that was still okay sir
all right cool thank you all very much