DrupalCon Los Angeles 2015: Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)

so thank you everybody for coming this is Drupal 8 don’t be late we are going to talk a bit about a project that we’ve done in Drupal 8 you know some of the some of the things that set the stage for it a lot of a lot of talk about what it was and a good deal of lessons we’ve learned number number 42 late so um yeah let’s let’s let’s get right into it so we’ll start with the obligatory who are we having you want to tell us a little bit about yourself sure hi my name is Evan leaving I’m the director of digital communications at Memorial sloan-kettering Cancer Center so as Frank elevated to look at this project and Drupal 8 and about 10 days ago we launched two websites mskcc that organ sloan-kettering that edu and going to talk to you a little about those sites some of the digital strategy behind that sort of the reasons for why we pursue jubilate and thank you all for being here hi I’m Frank Ferreira I’m CTO and one of the founders of phase two we worked with Evan and his team to to build mskcc that worked in sloan kettering dvu i was involved early on the on the sales and strategy around it and and you know help to help to support our teams as they as they made their way through the murky waters hi I’m Michael ado I’m head of strategic accounts at phase two I was involved in the msk project in oversight and technical leadership and help bring this project from concept to actual delivery so before we start we think that the time has come to start considering Drupal 8 but before we really get into it I wanted to just kind of do the show of hand things to see where people are so how many people are actually using Drupal 8 right now small small have all day one hand to the back yep small handful on so how many people are in production which wait right now for hands two of which are on the project that we were on so who’s currently running a Drupal 7 site in production or in development okay Wow yeah most people what about Drupal 6 drupal 5 there you go hey there you go to all right four-point something 4.7 not nobody okay good good that’s good all right so like I said we think now is definitely the time to consider it you know we’re going to go through a lot of the reasonings rationale behind that and you know kind of the decision points that that might help you guide guide you through that through that process so one quick more raise of hands of just folks who have the d6 site are you in the process of considering d 7 vs. d8 sort of show your hands okay great so I just wanted to sort of take a step back and talk a little bit about content and how content has changed over time when the internet first started we didn’t even have the world wide web we had things like the Kermit protocol and gopher and then Tim berners-lee gave us the world wide web and you know from most of our experience it was text and images and then you know came on the scene was was multimedia and we have YouTube and now pretty much I’m sure everybody has an ex netflix account and listens to streaming music on Spotify and then we have web applications like base camp and Trello and Salesforce and you know now all of a sudden our contents become our social media streams where we’re getting what our friends are doing what are we doing and we’re generating content we’re consuming content and then now we have devices we have Fitbit and your contents being shared and you’re competing with your friends on who can do them of the most steps there are devices that you can plug into your car that will give you information about your fuel efficiency and and you know how will your car is performing and even the thermostats in your house or content generators now and so you’re consuming this type of content so our definite definition of content over time has tremendously changed and so it’s very important that you have a platform that’s going to be able to roll with those changes and be able to adopt to that so not only has the content itself on the web changed but how we’re consuming this content has changed dramatically over time last year i think the broad consumption of web content online has shifted to primarily over mobile devices if you have a property that’s servicing younger demographics

that change probably happened two or three years ago but that’s a broad trend where people are not using PC’s anymore to consume content primarily they’re using their mobile devices their tablets so that’s changing over the top I was just thinking today I was doing a quick count of how many devices i have in my house that can stream netflix to my television and I sort of lost count around 16 devices so if you think about it you know it sort of just popped up now we have all these different devices that can stream video content over the internet into our television sets and you know over top over the top is sort of a big growth area that’s just sort of popped up into our lives but it’s really a unique way that we’re consuming this content and it’s a unique opportunity where cable companies are being disintermediated and it allows content creators to basically be their own television networks in it’s pretty exciting time for folks to do that but it’s a change of how we’re consuming our content and just sort of give an idea you know now we have wearables you know as somebody I was with the other day has an Apple watch you know Google glass is another way that people are starting to consume content and as time has gone on it’s really changed i haven’t we have the Internet of Things coming up I don’t know how many people here have an Amazon echo nobody okay one person Wow I have an Amazon echo and I love it keep it in the kitchen and you take voice commands but there’s going to be much more of this as time goes on we’re going to see all these devices have capabilities to be able to pull things in from the internet and provide information and so how we’re consuming content is really drastically changed over time and again with that change means are we have to be there are platforms have to be able to to provide content and news channels yeah so juries adjusted well I feel the jury’s addressed a lot of this in his keynote yesterday when he was talking about how the world is evolving and you know he sees it as going from pole to push I mean basically what it all boils down to is that the experience around the content that we that we have and consume needs to change and is changing you know we have to better serve our audiences you know we want to be where they are and get the content there and and it’s now it’s it’s not just content it’s now content and context as well so what they’re doing when they’re doing it content has to be relevant like you said you know get next best experience and you know from from the side of phase to what we’re seeing is that our clients aren’t building websites anymore they’re basically building what amounts to like content pipelines and and various distribution channels for for doing this they’re they’re trying to centralize platforms but also maximize the reach of volta confident that they have and and this is driving a lot of the changes and you know Drupal 8 please please into this a lot and you know the question that you have to ask is you know in your business you know these changes are happening around us and to the people who are in our audience regardless of whether or not you are changing to remain relevant for them so you know the question is could you be disrupted and we need tools sets that are built for tackling these challenges we feel that triple ages want is a tool set that is you know very uniquely positioned to to help organizations address this you know it has to be like i said earlier has to be centralized you have to be able to manage it very well and you know if if you are not getting your content to your users where they are and when they need it somebody else will and somebody else is probably already working towards doing that so it’s important to start thinking ahead and understand how your business needs to shift and what support you need from the that’s in order to do that so we were we were having a discussion when we were working on this presentation and you know the whole idea was don’t get left behind and when I went to Google the chart to search for an image this came up and it’s hilarious on a lot of levels one of which is it only got four percent on rotten tomatoes but but the description on rotten tomatoes was the best that said left behind have begat a further scourge of devastation upon Nicolas Cage’s once-proud filmography and I think that’s true but you know I again ask that question is the same thing about to happen to your business and what can you do to prevent that are you becoming Nic Cage don’t be in a ditch so again drupal 8 and the question is now the time to start using it and spoiler like we said before those there there are five people in here that are currently using Drupal 8 in production and I think that’s great these people are early to the scene and they’re doing a lot to help get Drupal 8 out to everybody else especially those who are evaluating it or going to have to you

know redesign or rebuild a six or seven side and you know in the next year or so so why is now the time to consider Drupal 8 and you know these are these are all just you know really good reasons why we think it’s it’s ready or you know it’s able to be done you know it’s already being used in production so we have people who have proven that they can take this code base which you know many might consider to be a little too unstable to use but obviously people have found a way to get stability there and to go live and it’s you know it’s a great challenge but you know it’s totally possible you know when I say the stack you know there’s stack support for all the required components i mean you know things like integration with you know varnish and memcache or Redis and you know database layers and all of these things like that’s all there it’s all usable you know we did a lot of work to help get memcache and read us up to up to snuff for Drupal 8 you know as well as other folks in the community and we’ve proven that you know all the the standards that components that you generally need to scale on the web today are also available in Drupal 8 and ready to be used less dependence on contrib you know i’ll let I think is Evan talk about this a little bit later but we’re using a tiny fraction of contribs that we’d used previously core does so much more and provide so many more facilities that you you can write a little bit of custom code and that that rid you of the need to have a collection of 5 contribs to provide you know the fifteen percent of functionality you actually need and then a bunch of custom code to hide the things that you don’t so core takes you a much much longer way and that’s really positive thing so when I say fully recap the benefits of the platform lifecycle Drupal 8 isn’t even released yet obviously but even when it is it still has a lot of runway many many many years if you look at Drupal 7 that’s been out since 2011 i believe about january two thousand eleven and you know we’re in 2015 now and you know it’s going to have support for years after triple Eight’s release so you know there’s a really long time line to recoup your investment in Drupal 8 just just to sort of get an understanding of that Drupal 7 came out before html5 and css3 were standards right you know we’ve come a long way I’m in triple sevens obviously you know come a long way as well but Triple Eight really is the future yeah and that’s why we say use a tool built for today’s web in the future I mean it supports you know the way that we build sites the way that we get content out there you know Drupal 8 is built with support for that you know it’s you know some of its ideas were from a few years ago but it’s been evolving and features still get into core and things like that so you know we’re in a good spot with a good tool that’s built and is designed to be flexible to allow for the flexibility that we didn’t foresee with Drupal 7 it’s now kind of built into Drupal 8 to allow the variation the things you know for way things the way things change when I say become part of the solution earlier you get in if you’re in early enough you can still actually get features that might matter to your business into core if they’re relevant to for Drupal as a platform itself once it’s released you know if it’s going to be a lot harder to get actually get features in there you can get bug fixes but maybe not get features and you know another thing if you get in early that you know think about how much talk there is this year about Drupal 8 and how few people when we raise our hands are actually using it you know people are hearing a lot about it and they want to work on it they just don’t have the opportunity so if you’re there doing things with Drupal 8 you can attract the talent that you want to come work on Drupal 8 push it forward get you know it serves both you and them and it’s a great thing and and also Drupal 8 does things more in line with what the broader PHP community does and so as you know we’re struggling to keep up with demand with the triple rissrose as we have x by doing things more in line with the broader PHP community there’s a opportunity there to bring in people who primarily work on symphony or laravel or some of these other platforms and bring them into the dribble community so that they can help contribute into that space so I want to share with you a little bit about why we decided to take on Drupal 8 we’ve been getting a lot of questions about that since we arrived here a lot of like are you crazy what are you doing why’d you do that but you know there’s you know one interesting thing about that is you know when we we set out to do this in april 2014 but there was we started with phase two then but there was actually an effort prior to that back in probably a year before april 2013 where our lead developer Jacob

Rocco it’s who you know he came into our office and we were talking a little bit about the future of our website and that time we were drupal 6 and you know he came up with this phrase you know da don’t be late and it’s kind of in like arm you know you know sort of what we’ve been rallying around for the past couple of years and so that really drove us to get focused and start thinking about about jubilate and so it’s actually a lot more than that in like I said that got kind of got things started so just real quickly about ms k we are a cancer hospital we’re located in New York City we have one single focus and that’s conquering cancer it’s all we do and so if you think about so you know at msk we have this culture of innovation and we’re really inspired by the researchers and clinicians at msk that that do their work and you know they regularly push boundaries to generate new knowledge and they continually develop new methods and you know that’s really interesting to us because we you know my group sits in the communications department and we’re just you know all of our colleagues are always talking about what this research or did what that clinician did and I always have these breakthroughs and advances and it’s like well that’s you know maybe we can do that too maybe we can push the limits and you know what they do is about making a difference it’s about changing people’s lives and for them it’s it’s changing the way the world treats cancer and we’re inspired by that relentless effort and we’re driven to do the same in our space so if you think about what is being done at ms k you know you want to be able to push the boundaries yourself and you know some lessons learned from from our colleagues at msk you you know about innovation you may not know where it’s going and you may not know if it’ll work but you have to try and you have to push that really far and you have to push it as far as you can and that’s that’s what innovation is all about so you know at msk it’s more about a collaborative focus and you know you could refer to it as a community focus there’s you know multicenter studies for clinical trials you know that you know that span different institutions and so when I’m being treated with in New York City you may be being treated with in Los Angeles and so we we take that data and we we put it together and we try to find new ideas new ways to push progress on on delivery of care and treatment and so you know one thing that juries talked about on Tuesday was sort of at like how we come together not on our own to develop to develop new ways to do things and so like things started to connect here like we started you know we took a look at you know our our focus our strategies and we said well how does this relate to the Drupal into the community and you know ask this question like why is why is community so important and you know we’re trying we’re all trying to solve similar problems we can leverage our work we can leverage other people’s work and we can allow bigger problems to be solved and in the community whether it’s patient care research education Drupal it helps to drive innovation and it’s just there were just so many strong and compelling parallels here for what we’re doing at ms k to the Drupal community I mean what I’m think juries talked about caretakers and free writers and you know it’s the caretakers who really help to drive innovation so we thought you know this is great we want to be in this space this is what we want to do when we want to push this forward so I mean that’s great that’s that’s really focuses on innovation and generation of new knowledge but that wasn’t quite enough for us we said you know we need to think a little bit more about the strategic priorities and I’m SK and all the things that we do and all the things that we think about and so it’s you know it’s patient experience its access talent recruitment and its financial sustainability and so as we examine that and push toward jubilate we realized that all of these actually line up with what’s happening in Drupal 8 so if you think about patient experience and access you know Mike talked about this earlier being able to sort personalized experiences by pushing content to users that we know they want them so we don’t have authentic a shin on our Drupal 8 sites right now but we may one day and so that was really about choosing a platform that would power us to do that talk to live ammo and repeat myself here but you know just being you know on Indy eight on the cutting edge of technology and everything I said about innovation and generation of new knowledge was really exciting to us talent recruitment this was this is a big one for me I you know when a recess Drupal 8 I thought well you know Drupal it can really has an opportunity to brought in a talent pool and the reason for me was you know with the use of symphony and object-oriented programming and I felt that there’s developers who probably scoff at Drupal and say well you know I do symphony an object-oriented programming I’m not even thinking about Drupal it’s not on my radar so they’re not here today and you know they’ll learn about it soon and you know just they’re going to they’re going to come in here and they’re going to start working with us and pushing this forward and you know I thought that was really exciting and financial sustainability and when we knew that we were doing a redesigned well actually every every project that we’ve done every update that we’ve done at msk to

our CMS has always been coupled with a redesign so you know we felt that back in two thousand april 2014 if we’re going to do a redesign well we don’t want to do it in drupal 7 and then launched in april of 2015 and start thinking about drupal 8 you know from you know we need to be financial stewards and we need to watch you know what we spend and you know did it make sense to us we felt like there was more value in funding core contributor who’s jonathan Hedstrom at phase two to help push this project along for us rather than mont you know spending all the money on a redesign just strategy in indesign spending all the money to migrate through drupal 7 and then having to do it all over again just it didn’t really work for us so the adventure begun and we launched successfully launched two sites about 10 days ago we saw an opportunity and we seized it so a little bit about this site I mean this is just as not a brochure site decision this isn’t your blog it’s not your company website this is a major Drupal 8 enterprise site we went from 114 controls 29 using Drupal 8 we serve seven personas we have related content faceted search analista list is endless prediction tools multi-server cluster data aggregation ldap data synchronization to apps it’s a pretty big site so you know Triple H flexibility really help to simplify problems for us you know we can centralize logic into services you know having you know override controllers without without hacking core we created llamo forms there’s no web forms there’s still no web forms available for Drupal 8 so we created web forms using llamo no panels so we used HTML template expansion and there were many d8 module upgrades that only took us a few days of work and a couple examples right it’s memcache and note order so what else did we gain from Drupal 8 and I think if you ask everybody you know Jake and Toby who are here today and you know Jonathan or Brad rate or Mike you know they were going to have different answers but you know for me what I saw which was I thought was so amazing was the developer velocity and and once they got past that learning curve we were able to fly and so this project I said it began in april of 2014 we did not get the designs i wouldnt start the design process until September and so this was really really rapid process and you know i think you know Toby and I were chatting this morning and he said he said it took about three weeks total of the project and it was probably you know one to two weeks and in the beginning and then over the next month or two was probably another one to two weeks just to you know get down the way things are being done in Drupal 8 and architectural II it’s different but many concepts are still there from previous versions so it wasn’t too big of a lift and finally date on the side you know you know msk was able to participate in and making jubile better and that’s going going back to Jonathan hedstrom and and the work that he did to push forward core so yeah they were there were lots of surprises course features weren’t has done as people believe them to be and you know one example is a the views couldn’t filter by date range pick a date but not a range and I think actually the biggest surprise here and you know I won’t read through all the uses that there wasn’t a release by now or by the time we started so I think that you know to us you know having been so much talk about Triple Eight over the past few years when we set out to do this you know it wasn’t it wasn’t there and ready for us so that was probably the biggest surprise and so some trade-offs we made with Drupal 8 now there weren’t many controls you know lack of best practices and practical knowledge and we did a session yesterday and Brad Wade was talking about something that he needed to do and you know he he went to Google to go find the answer and he couldn’t find any answers so I mean it’s you know come you know I really hurt us a little bit you know but you know you know historically Drupal is you know very well known for their documentation and you know we trust it all be there but it’s you know it’s kind of the trade-off that you make when you go through this project you realize that you’re going to have to lead the way a little bit find out things on your own alright cool so let’s uh let’s get into a little bit you know example you talked a bit about the lessons learned things that kind of surprised this and didn’t we wanted to break down kind of the lessons learned a little bit more so that we could go through them I’m not even sure I’m and we have arrived about 20 yeah 20 or so lessons learned that I’m sure that we’re missing some of them and and the team could probably fill in on many more so heckle us if we miss a

couple here so yeah I mean so we broke it down into sections of this first one we’ve talked a little bit about managing kind of corn can trip like the codebase stuff and how that all a little shook out so we found to be invaluable is dedicating a person cork you know it probably sounds you know obvious or simple or whatever but you know we had Jonathan hedstrom basically focused on core and he was he was basically he was clearing ground anytime an issue came up a bug or whatever they could they could throw it to him and he could he could research it he could find patches he could reroll patches he could create them and then he could also Shepherd them to make sure they actually got into Drupal 8 so as of yesterday directly from this project there were 57 patches that were contributed and committed to Drupal core beyond that there were hundreds of issues that he had worked on just either marking them reroll or working through needs review he said that the oldest issues that he came across that were in needs review or four years old so that means that somebody made the effort to create a patch for Drupal 8 put it in the queue marked it needs review and it SAT there for four years before anybody even looked at it so he went through and cycled he basically created a list of you know the needs review when he started at the oldest one it was four years old and by the time he was done about maybe a month or so later he had that down to about four months so things are now sitting you know at most four for four to six months in the queue um and yeah you know sometimes you have sometimes you have to code and work around bugs in core two and you know he was he was able to help with the strategies around that and just generally be a wealth of knowledge for the team that was actually trying to get all of his hard work done so that was really key scheduled for regular upgrades to core obviously there’s you know there’s betas that get rolled and things like that and it’s important to not get too far behind so you have to plan to regularly migrate between releases and the thing that made it a huge challenge is that there are no there’s no migration path currently from betas from one beta to another we obviated a lot of that with we got rid of that because Jake actually wrote a decent module that would allow us to just take the the content from a pre from the Drupal 6 side and just re-import it so a really good migration process kind of helped us around the fact that there was not a good internal beta 2 beta migration process yeah and and the thing is don’t let your don’t don’t wait too long because every every day there’s more commits to core so every day you’re active stable code base is accumulating debt from currently moving ahead head so you know stays up-to-date as possible and then realize that at some point you’re going to have to say we’re not upgrading because we have to release in the next you know a couple of weeks or a month or whatever and I think right now I like the funk correct don’t beta 7 day 27 which you know betta 8 & 9 are basically the same thing so and there’s beta ten now so two versions back and you know that’ll get now getting off doubts right and there’s a decision be made about waiting for the beta 2 beta migration path or release or jump on the next beta yep so one of the lessons that we learned in the early planning on this we did an analysis of the contribs base in d 8 and some of the early planning was do we wait for contribute to catch up and hope that it catches up to when we need it or do we not and we learned very early on don’t wait on contributors can’t I mean to give a good example features which is a phase to manage module wasn’t ready so even our own modules weren’t ready so you have to be able to account for either jumping in and help pushing it along like we did with some of the stack components like memcache and Redis and they’ll dap or coming up with novel solutions to get around the fact that these pieces of functionality are not available in the contribs space for you but the good news is because so much is in core your necessity to depend on getriebe is much lessened and as evan said earlier the d6 site was 114 modules and you know the d8 site has nine modules and honestly out of those nine modules maybe three or four of them are actually necessary for the functionality of the site I mean that’s just a huge differentiation between the way things were done in previous versions of dribble versus d8 yeah so when you when you think about I don’t know how many were here for the Drupal set the six to seven upgrade but you know seven launched in January I think there wasn’t a lot there and you know we were

we were writing a lot of custom things over again and it wasn’t until views actually got upgraded which was about six months later that the rest of contributed by so it was 9 to 12 months before Drupal set after Drupal sevens initial release that it was actually usable by most people and that timeline is almost doesn’t exist right now because you can start using most things right away and just to kind of clarify features actually does have an alpha release now there was a session on yesterday and you still you still need it for certain use cases yeah absolutely so the next section is we’re going to talk about just addressing some of the risks inherent in working with alpha / beta software since this project started before though I think was a d8 beta it started sorta before alpha alpha 3 okay so very wrong so one of the things that it was interesting is early on is and this is something that Jake did to really start to get sort of momentum on this project and something talked about yesterday in the other session and it’s available online we’ll have links at the end is using prototyping to mitigate risk and really what he did was he focused on getting some content out of the d6 I getting it into the d8 site getting that content to render don’t worry about the theming don’t worry about all that stuff just martic is fine and just get that prototype working and then work on that prototype to prove that it’s possible and from there he used that to garner consensus to continue to move in this direction and get us towards a d8 launch yeah so add you know all of us are accountable for what we do and you know our jobs and so you know to show that it this could be done in a prototype it was a big deal in ms k because it you know it just gave us the strength to keep moving forward and you know it got tremendous buy-in within our department just just to be able to show it this is working and we can do it and and so some some of the engineering the interesting engineering aspects of this is this project was in the migration process and yama was extensively used a lot in that but but i think one of the points that Jake made earlier is especially even earlier is just doing sequel bulk inserting from from one to the other maybe doing some mapping as the tables layout changed that’s completely valid early on to prototype what you’re doing so really prototype to make sure that you can mitigate the risks that are inherent in working on this type of software so obviously the next one seems super obvious account for the learning curve you know we found it was totally true that while it took some people took everybody a while to get up to you know how things are done in Drupal 8 they certainly made up the time later with how fast they were actually able to get things accomplished so you know when you’re planning a project on Drupal 8 expect the first few Sprint’s to go a lot slower than you anticipate and then you know if the team does the right job and and picks up the right you know the best practices and figures things out expect their their velocity to increase as the project goes on you know the the way that Drupal 8 is built you know Oh services Symphony things like that it allows you to do a lot more with a lot less code you know you can you can extend core classes override you know just override methods I’m even just creating modules there’s so much less boilerplate that you have to write which means there’s kind of less things to go wrong less bugs to track down when there’s less boilerplate code that you make and it just overall increases the velocity there it also lessens the surface area of what you have to test right so if you’re taking an object and extending it you can test that extension and not have to test the whole module you know one of the other things here is sometimes you have to unlearn the way things work in six and seven and not make the assumption that they work the same way an 81 interesting conversation within this project as we were talking about setting up memcache and talking about how the traditional d6 and d7 setting each node knows about each other’s nodes memcache to be able to clear the cache well in d8 it doesn’t necessarily work that way you can do cash and validation in the back end in the database and that was something that was sort of Jonathan hedstrom brought up to Toby and I and something we just didn’t know about and so sometimes you have to even something as simple as setting up memcache she’s different in d8 so the approaches are different you have to learn the different approaches for the new technology and you know a big one here which isn’t obvious and wasn’t is don’t assume that you’ll know what will go well just because you know people talk a lot about things and you know how how mature they are or you know how long they’ve been around it doesn’t mean that they’re going to work for your needs you know the what Evan mentioned earlier like you know date modules in core views module is in core and that was all great but they weren’t working together and you know you would just normally expect that they were probably working together if they were both in there so these are things that you just have to account for

so it’s just really important to kind of have plan b’s and c’s and don’t just blindly go ahead saying i know that these things are going to work just know what you’re going to do if they don’t and and you know over time you’ll you’ll kind of figure out what kind of what will work and what won’t and you’ll have much better confidence in knowing that you can tackle the challenges that appear I mean and one one thing that we learned in this project is even something like the stack of what version of PHP web version of a memcache that works completely well in d6 and d7 we had problems in d 8 and so you have to be cognizant of the fact that you know just the stack alone something that you might take for granted on other builds you have to be able to assume that that could not necessarily work in d8 you might have to change change make changes to your stack and that was a lesson we had to win yeah I mean you know memcache in PHP 54 were having said false and you know couldn’t figure out what was going on and you know an upgrade to 55 and they just magically disappear but there were a lot of steps between that and making the decision to go to 55 there was a lot of Biggers yes it wasn’t that a finger snap so we spent a lot of time trying to make it work in five four but you know being flexible and being able to to even change something in your stack like your PHP version can really help alleviate some of those issues next section we kind of call pulling it all together because it’s a lot about teams and collab and you know every build you know while there’s lots of code powering it there’s also lots of people involved so one of the interesting things about this project if it wasn’t sort of complicated enough trying to launch a site alpha software select data software was that the way that the front end was done is there was actually i would say three distinct teams on this project there was the msk team that includes jake and evan and some other folks there was the phase two development team but then also working on the front end side and doing from some content strategy work was digitas and the way that the front end was designed was that it was built as a standalone prototype and from that standalone prototype that was used to get basically buy-in or consensus or basically being able to validate those designs are good for the client and from there that was throughout a build process migrated and brought into the Drupal 8 site and so some of the things that really helped there was twig it’s it’s extremely powerful and it really helped out a lot in helping build out the front end especially when there weren’t a lot of layout options to be able to layout pages in triple-a there’s no there was no panels at the time still probably isn’t panels right now plans yeah one of the things that we really we did do is take advantage of some of the newer front-end JavaScript tool sets such as grunt we use grunt tremendously throughout this project we bow our to manage front-end dependencies and sass and a bunch of other JavaScript tools and if you watch the other session that was earlier there’s a lot larger discussion about the tooling in the front end and so one of the interesting problems that we had out of that project was that there are these front end components and I will sort of get too deep into it but the solution to be able to do some of these layouts the solution to be able to actually take these very rich HTML components and put them even in the body of the content which is a difficult problem to do when you have production people putting this content together was that Jake build this sort of service object that allows it to take in simplified HTML that production people can put in there with a specific targeted class and then expand that out on rendering to a much more complicated HTML layout and in the database the simplified HTML stayed in there the production people can manage the very simplified HTML but when it’s expanded you can get super rich things like these call out here where that’s actually in the body of the content and there’s a number of different components in there that give the editorial team tremendous flexibility and have a new guitar yeah so we have you know we have a lot of news on the site and just you know I it’s 25 to 30,000 nodes and so there’s just a lot of content and you know for the ability for a web producer or a writer or editor to go into the site and just put in some really simple HTML and it renders this and you know that that approach really helped us to you know the speed things off in the production process and it also shows that you can have like very non-technical people going in here and into the editor and just dropping in this very simple HTML and rendering yeah I mean if you could speak a little bit about sort of the initial estimates of what it would take for the tile template pages and yeah so we have you know one of our one of the templates about like

eight to ten templates on the new sites and one of the templates is a title template and so we were you know what we were up against time was really tight for this project and so it was about mid March and we had to prove designs for this tile template and planning to launch in April and so you know Brad and you know other folks are phase two leaving the front end integration look at this and said well it’s going to take us about 20 days to integrate the you know five six variations of those tile templates and so through you know frutas API were able to knock that down to about three days and so it’s just you know it really helped accelerate the project and push it forward and get us to launch and the nice thing about that system is is extensible uses twig templates under the covers and so it’s extremely maintainable as well so with that I talked a little bit about sort of how there are different teams on the on this project and so it’s really important to actually have the team’s very cohesive and have the collaboration very tight again one of the unique prospects of this project was that there was this front end team that was out there building these prototypes and then there was a front-end integration team that was taking those having an automated build process that builds the front-end prototype pulls some of the assets over into the Drupal build and so what that means is there’s a lot of coordination that has to happen between those teams and what we’ve learned when you have something like that is that sometimes you can leverage twig and you can take the the sort of perfect HTML given in the prototype and you can do that kind of ninety percent of the time but ten percent of the time it’s easier to just take the Drupal default of view or whatnot and give that to to the other team and say can you please use this as the basis and that was a good lesson learned that sometimes there’s a give-and-take between team coordination that sometimes it’s it’s fine Drupal very malleable and sometimes it’s easier to not fight Drupal and to just say News Drupal’s defaults as the starting point and that helped us out a lot to get over a bunch of things that work would be difficult otherwise to accomplish another another lesson is when you’re when you’re transitioning across a code base that is in active development and we mean the entire code base is a really big chance for regressions as you move forward in every time we would upgrade there would be you know there would be lots of things that would break and you know one of the very smart things that the team did is they’ve built a large suite of tests to 10 you know to basically identify what was breaking when you when you go there’s you know something like 50 plus test suites that would run and you know you’d upgrade core underneath the code base and you run the test and basically they would all break and then you at least had indicators of where to go look you see why each test breaks and you digging you determine isn’t an API changes as a data change you know where where did everything fall apart but you know we can’t we can’t overstate how important it is to have comprehensive tests to to really exercise the code base to know where things great because being able to find them like if you’re just relying you know on meatspace and you know you do a new build and people just start clicking on on you know on your site and following links and submitting forms you’re never going to find all of it and it’s going to be it’s going to take days and days and days so you know automating that through you know phpunit and B hat and other things like that really go a long way for you and you know you know phpunit in Drupal 8 allows you know allows for much much easier testing you know you could mock things if you need to so you don’t have to test the entire code base and you know like like Michael said earlier so a lot easier when you’re just overriding something on an object you know you get the test that comes with it and then you know your override just has to test the thing that you’ve changed you don’t have to write a test for the entire component all over again so you know you get a lot more you get like a force multiplier there yeah and just you know one of the sort of long-term great benefits of the way the triple-eight is structured is because there’s a dependency injection container testing something like an email service has the ability to pull up out that live service object and replace it with a mock object so that you’re not actually generating melz when you’re trying to do tests so there’s a lot of opportunity with injure blade to really expand test coverage and to do a lot more of testing that would be a little bit more difficult to do in six and seven if not almost impossible so we used a lot of there was a lot of build in this project and there was a lot of migration in this project and so one thing we learned very early on is to automate as much as you possibly can and do it as soon as possible you want you want to maintain the automation as opposed to have command do things because especially when things break you’re going to be doing it over and over again so automation is key there and in this project we use a combination of dress but we actually used crunked quite a bit in a bunch of the different processes and it’s actually a really

good tool and works really well with drupal to do a number of different things within the build process there was actually a session on grunt drupal tasks that you can go see i think was from yesterday and and so one of the unique things again about the fact that there was this front-end prototype and then there was this triple bills repository was that we had a build process that would go and build that prototype project and then take and move things from that built into the drupal build and so that was all automated so there was a lot of complexity in there and grunt was really up to the task it was along with with drush to be able to do things like that and then that allows you to as you’re launching as you’re launching those into different environments you can manage that through sort of a Jenkins process and be able to really automate a lot of this stuff yeah so you know we talked about you know automating things and you know managing your dependencies really goes a long way towards George enabling automation so you know like we said drush make is used to kind of build a Drupal site it actually now has yamel support for make files although that wasn’t used here you know npm is used to manage to manage the dependencies for grunts Bauer was used to manage dependencies for the front end and then you know grunt was actually used as that tool to materialise the site and to build the front end manage the whole packaging process so yeah mo has gotten us around a lot of different potential potholes of this project and so one of the big key pieces of functionality as we were starting to build out the site was there’s no web for module and the msk site has a tremendous amount of web forms i mean how many forms 200 200 so there’s about 200 web forms on the site and we didn’t have a way to actually build web forms there’s a form API but there was no real way to actually design and build those and so Jake built a module called me llaman forms which allows production people or developers or anybody to define a yamel document that defines what that web form should be composed of and that it takes that llamo configuration and then generates the underlying web form and what that allowed is that the lift to to allow the team to be able to build these web forms was much lower without having to actually build in big gooey or basically rebuild the entire web for module from d7 to da and so it that got around a very very big challenge of how do we provide this functionality to the site without having to take on a tremendous lift and one thing we did find out is that non coders can use Jana and with a little bit of training it’s pretty pretty simple and pretty dependable and maintainable for for folks to use so it’s an interesting way to provide an interface for folks to be able to configure system and to create content its also was used quite a bit in data migration and serialization and one of the interesting things that was done on the project is on the d6 site the yamel Cymphonique component was installed on the d6 site so that it could export out content and data into llamo format for the d8 site to be able to ingest and when this project started there wasn’t the migrated API wasn’t there there’s no migrated module and so yeah mo was a very good sort of lingua franca to be able to get the data and the content into a format that’s easily digestible and easily generated for the system and so that that’s definitely an option in the content migration part and ways to get data out of your d6 and d7 site is to install that Symphony component and start to use that in order to output llamo data to be able to be ingested into d8 and you know the another another really big lesson learned is that you shouldn’t treat your migration as a second-class citizen so you know it’s a lot of times it’s easy to say well we’re just going to use this migration once or you know and so let’s just throw it together quickly so that we could get some content from one site to another and you know we’re going to throw it away we won’t need it after launch and while it’s true that you might not need it after launch developing on Drupal 8 there’s things changing all the time so you’re constantly having to upgrade and modify your migration scripts as core changes as well so so spending some time and having a really good solid bulletproof migration process that you can work with over time to modify as core changes and as your site changes and being able to do constant migrations and blow things away and REE migrate them I mean that’s just that’s key and it was really useful to both help validate content coming in but also you know validate that the structures of the data were correct and things like that and the migration part of this project was really unique and it would definitely recommend checking out the

the other session that’s the link is at the end of this presentation but one of the interesting things with how the migration was approached was that the migration happened continuously throughout the project and what that allowed for is that there wasn’t the sort of editorial blackout period or this double entry period and in in some ways it’s super unique in the fact that even things like ia changes would happen on the d6 site and the migration process was big into the d8 side so some of the actual active development that happened on d6 and got pulled into d8 through the migration process and that’s certainly a unique facet of this project and the approach to get this done it oh no site would be complete without environments and places in which to run so touch on a couple of those yep so you know make it really easy for developers to get set up you know it if you don’t have something that’s bulletproof things can be obviously really fragile between you know between different people’s computers or environments and things could break and you spend a lot of time trying to get that all in sync and you’re up against a big enough challenge anyway working with with Drupal 8 and making sure that you make progress there so don’t waste time on development environments get something set up early make it consistent and go with that and try to keep it as simple as possible I mean some of the challenge to add is having a vm be able to connect to VPN having this long build process and getting that set but everybody’s machine just took a lot of time and so certainly you want to simplify it to get your developers productive early sure don’t neglect your server environments I would say try to get your servers up as early as possible we sort of got them up more towards the end of the project and it wouldn’t advise that server environments are a tricky thing and even between you know sort of dev stage and production things can change and even if they’re built on images and using puppet or ansible or something they still have unique little differences and so those types of bugs with environmental issues in environmental configuration are really hard to track down so try to get your environments up as early in the project that you possibly can and start getting those builds done on this so that you can ferret out those issues and not have to deal with it right prior to launch and you know that leads into how small differences can you know can cause serious issues close enough doesn’t really work if you really want to have consistency between your environments you know they they should be running all the same components of the stack they should be running them on the same versions ideally they will be running in the same configuration so if you have your database on another server you want it at least one environment before your production environment that has database on server so you need to get that set up and tested and be able to deploy those things as soon as you can and minimize the variation between them and then you know even little things like on the same servers you know if you’re hitting it with a pre-production URL and when you cut over to your production URL there can be issues so have ways of testing those things one thing that we learned is that load tests they’re great and they’re great indicators of your environment and how it’s going to stand up but it is not a guarantee that even if your site does well under load testing that under production traffic it’s going to be the same it’s just not the same thing and so even if you know we even took production traffic logs and use those as the basis for the load test and still in a production load things change things are different and so just just realize that load testing isn’t a guarantee of anything and one other thing even when you’re launching I’m what you perceive is a low traffic time sometimes that’s that’s a you know it’s great but sometimes as we learned as we launched a large University had a pretty aggressive spider that I guess was turned on roughly around the time where we relaunched and started to aggressively start to index society you know and I think it generated the ninety six thousand page views within less than an hour so even when you think you’re launching at a time that you have low traffic prepared because you never know somebody’s could have the spider starting to index your site pretty aggressively yeah so how can you get started we have just a couple of light considerations for when you’re trying to decide should you go Drupal 8 or not I think that it’s really important that you picked the candidates carefully like you know which project you do might do a which site or something I mean you have to have a little bit of tolerance for risk you know things can go wrong and you know your stakeholders in your team they have to be kind of ready to deal with that so if you have a fragile team or really you know something’s under immense scrutiny you might want to reconsider or just see what you can do to mitigate some of that risk no short timelines I mean it’s hard to predict like we said don’t don’t make assumptions about what or go wrong but you know torture hard to predict what will happen so if you have a really tight timeline a really hard part pressure there again it might not be the best choice have the right team I

mean you know this would not have been possible at all if we didn’t have the team that we had with the expertise they had with the support that they had from the organization’s you know having you know even though Drupal 8 is vastly different knowing Drupal is very important so having that experience knowing you know knowing the differences it’s really important you have to have quick learners and problem solvers you know you have to have people who who can you know do profile link to spot performance problems you have to have people that are like empathetic and really good at working with each other you know things can get really stressful it’s important that you know you have people that come together and on the same team actually if you have a highly dysfunctional team I don’t recommend you know working on unstable software to try to come to production it seems really seems really obvious but you know it’s you know something to keep in mind and you know get really involved in the community and make connections and this is a great conference to do all of that because you will you’ll need people’s help whether it’s to review patches to help get them committed to core or if you just bang your head on something being able to jump into IRC and and reach out to someone you might know I mean you can even reach out to people you don’t know but you know just to be able to ask for help from people that know more is just really important so you know the outreach effort is really important there to kind of bring you know not only the support of your team for each other but also you know having the communities that fort you in your site both as well so this is some additional information around this project and the link for the adventures in Drupal is the other site that gets a little bit more into the tech details but here are some links to additional information about the site and about the project we don’t have a ton of time maybe a minute or two there are any questions Jenna tonight thanks hey don’t this question is more for Evan and it’s not meant to answer the actual question but it’s more about how you were setting the expectations above you what was the contingency plan or what is the contingency plans since d8 is still not released in terms of a breaking change that might get into d8 at this point if they were to pull out views all of us I mean it’s like that’s not going to happen but if there was something that was like not easily recoverable you’d be stuck where you are yeah I mean I think you know I think we’re pretty comfortable where we are in beta 7 and we feel like we’re pretty stable you know we’ll be looking to for the upgrade path to see if we can continue to move forward with Drupal but I mean I don’t think there’s there’s no contingency plan to fall back on anything at the you know we feel pretty comfortable with and and again one of the benefits of being in early is that you help you have a little bit more say to help try to guide Drupal the way you want to be so if the potential for something like views to get pulled out if your blade you know you have that opportunity to at least weigh in before that decision is finalized where yeah my real question is more about setting the expectations above you for people who aren’t they’re not necessarily in the weeds on this they don’t necessarily get the nuances of it i mean we could all sit around and kind of talk about it okay so you know it’s the process that we went through to push forward into play it was really transparent at ms k and there was there was large collaboration just on the msk side with team members outside of our department and a large learning process for what we’re doing so you know we’ve been very open about the risk of Drupal 8 since the start because we didn’t you know just you talked about this earlier as far as you know you don’t you don’t know where things are going to go and you don’t know how things are going to work out but you just got to keep pushing and so you know we continue to push that forward knowing fully that there could be some major issues but as I said we were very parent about it Thanks cool so thanks everybody we have to actually stop right now because there’s a panel coming up here but you know we can answer some questions off on the side or so or something so thanks everyone triple sec sir sad wow there’s like