 Okay. Let's start. Good afternoon, ladies and gentlemen. My name is Aleksey Hadekovsky. I'm an associate director at Idiac's company. Today we are reviewing the presentation for the case study of the URL.com project. Ah, I'm sorry. I'll rest on. So today we are reviewing the case study for the URL.com web project which we are working on right now since the end of 2012. We're going to continue to work on this project. I'm happy to present to you the IT manager of URL.com who kindly agreed to assist me during this presentation today. A small introduction for Idiac's company who are largest Drupal shop in Europe. We have accomplished more than 300 big projects, Drupal big projects. We have 150 Drupal experts worldwide. We're working for big companies like Johnson & Johnson in the care area. Givenchy, Guerlain, Seline in luxury area, Veor in environment, and other big projects. As for agenda of this presentation, we're going to talk a little bit about URL company. We will be discussing and Hugo will be presenting us the reasons why this project has started. We'll be talking about what will be the goal, what was the goals and objectives for this project. Hugo will present us as well the teams who are working on this project. Later on we will, well I'll present the timeline and the key decisions which we are taking during this project. At the end of course results and lessons learned and questions answers. Hugo can you please. Can you hear me so? Good. Right, thank you. First of all I want to thank you all to being here. My name is Hugo Knobaut. I'm IT manager at URL.com and I will first start to say something about our company. What are we selling online and why we started the Drupal project two years ago. URL.com is a 100% e-commerce company. That means we only sell online. The internet is really important for us. No offline time is good of course. What we do is we sell train passes not just train tickets where you can travel from A to B but train passes. So when you want to discover Europe for instance you can buy a global pass and you can travel through Europe by train. We're in the top 50 of Dutch e-commerce companies and we are situated in Utrecht and we have 30 employees. So that's not a lot. I explain later why we can do it with 30 people and we have an expected turnover this year about 60 million euros. I wish I can keep it all but that's not how it works. In fact we buy our passes by the URL group which are the 30 European Railway companies together. So they're united in the URL group and they have products and we buy their products so we sell them online. So in fact we are an official agent. The URL pass was already introduced in 1959 but at that time there was of course no e-commerce so at that time people bought their passes at local train stations. So since 2006 we started the company just first with one person and after... Did I do that? No you did it. And so just with one person and two years ago we were with 18 people and now we are 30 so we are growing very very fast. We have three websites we're selling the passes it's the urail.com, interrail.eu and germanerealpasses.com and why three different websites? That's because the interrail product is only for European residents and the urail product for non-European residents. German rail pass is just the one country pass you can travel through Germany of course. How does our website look like? This is after the project release so it's the current websites. You can go to www.eurole.com and see the website look like this. I'm not sure if you can see it but in the top menu there are some topics. Of course we have the passes you can see we have four urail, four flavors. What I mentioned earlier you have the global pass so you can travel through Europe. Besides that we have the four country pass so you can travel through four countries. The regional pass to countries and the one country pass of course is just one country. We also have information about trains, all the trains in Europe. We have information about all the destinations you can travel to all the countries. These are really good information that can be kept in a content type as you can see. Our interrail website looks pretty much the same. The colors are a bit different but the tone of voice is completely different because we try to our main customers for interrail are students or graduated people. For urail it's more a once in a lifetime trip. People from the United States or Australia coming over to Europe and want to do a Europe trip. I was talking about we only have 30 people and so what we are doing in fact is we concentrate on everything that has to do with trains and etc. Everything we're not good in and we're experts around the world like Drupal. We find a good partner or supplier that can help us achieving our goals. Our internal focus is of course content content and media creation. We have a lot of content writers. We write on the website but also on our blog. Customer service is one of our major points because we have customer service people all over the world. If a guy from Brazil has a question it's really good that a Brazilian customer service agent can reply on it. It's this native language and he knows the culture so it's really close by. Of course we do some business development and a strong point what we have is the search engine marketing SEO etc. So what do we not do? For instance the complete payment. It's done by Ogona and Aden. Our fulfillment center so once you buy a pass it will directly go to our fulfillment center where actually the pass is printed and sent to the customer. You would say why is it not electronic yet? We have to deal with 30 railway companies so it takes a long long time to have a one decision. It's like the European law etc. Pass delivery we don't do and even the translations we don't do. We have a special company that grabs our content from our website. It's translated by humans not automatically and it's put back on the website. So we don't have to worry about the language of the translations. We only care about the English version of the website. Two years ago we had a supplier we were not pretty happy with. We had a lot of ideas we want to go fast and the current supplier was not really able to have that same speed and I think through the years we were bigger and bigger and faster and faster and they couldn't keep us. Also the quality was not that great. So at a certain moment my management team said okay we start a website project and we start all over again from hosting to a complete website layout design. So it was a very big project and the main some of the objectives is the goals were find a new partner not a supplier but a partner that really thinks with us because we're not the experts and we have to rely on what they're giving advice they're giving us and it should be in Europe because our translation supplier is in the United States and they're good too but you always have the time difference between Europe and the United States. So it's really hard to set up a conference call so one of the things is okay we have to work together very close so it should be in Europe. Only with Drupal experts so not doing Magento not doing Drupal not doing a smart side or another CMS system no specialists in Drupal. So there was one make sure the website is always online. It's now yeah it's always online now but at that time two years ago we had a one or two hour downtime a week so it's for a hundred percent e-commerce company. Increase the user experience of performance on the locations where our customers are and we are selling through the world so our markets are United States, Canada, Brazil, Sydney, Australia especially Sydney and but also Asia and with only one server at that time located in the Netherlands we had a huge delay in in showing the website so and there Alexi will tell you more about it in detail there the CDN comes into play. Content management should be super easy at that time we the all my the content writers should have a skill in HTML because otherwise it was not possible to to create an article and since they're trained specialists they do not know anything about HTML so you can imagine what the page looked like after go live that page so it was not very nice. At that moment we had only web page so we had no content type whatsoever so if we want to change a part of for instance it was one country out of the past then we have to change it on 30 different places so it's ridiculous because with a content type you can do it automatically and change it once but at that time we had just the content type web page and now we're a lot of web pages so and but one of the things is because there were a lot of information already there so we had to migrate all the data the content from the old system to the new system from an unstructured way to a structured way so you can imagine how much work that was and then before high season so it was a bit of time pressure and of course if you can have a better system and you can make more money and that's where it's all about for us because we're a commercial company. So one of the things was that we had a Drupal supply that was also our hosting supplier and we wanted to split that so we would like have Drupal specialists and hosting specialists and the same we have had at that time was an e-commerce specialist and also a hosting so we had double hosting so for the website and for the web shop so that's not really very handy so we were looking for a new Drupal and for a new hosting partner. At that time we had Drupal 6 so we want to move to Drupal 7 and besides that it would be nice to have a new design or that's easy no it wasn't and of course not just migrating the old website to the new one it should all be ready for for the future. Some railway companies are experimenting with e-ticketing so it will take at least five years from now but it's good to have it already there and other points are API and web services so when we want to connect for instance hotels to our paths it's really handy to have a some kind of connection between the two systems so an API would be very handy then and other items that would be very nice to have. So in the end we took a long time for selecting a partner and at that time I went to the Drupal Con in Munich and that's very nice because there are a lot of suppliers and I already had a short list and so it gives a really good opportunity to speak to them all to not only speak to the sales people but also to the technical people and how they see things and are they thinking with with you or is it just okay I can create it I can make that yes no problem at all is are they are they working with you or please you only so it's it was very nice so in the end we selected Adiax for a Drupal partner and Akia for our hosting solution and then it was before we started the project there are a lot of advantages of having all the expertise outsourced but there is one disadvantage and that's when you start a project like this because it's a huge project and all the suppliers have to be in sync so if you change there it can affect the other supplier so that was a real struggle during the project all right with key steps and the timeline how we did it actually so the project was divided into several sub projects actually the request for proposal was received at the end of 2012 we agreed to run the onboarding to acquire platform in the beginning of the year later we put this Drupal website into support maintenance by Adiax and also we started the migration path to Drupal 7 in the beginning of 2014 we have released the Drupal website we started the support on it and then we launched the e-commerce project the huge brand new e-commerce project and next year we're going to release e-commerce project and we'll start to iterate with the new features new developments and new elements I'll go through all the sub projects and project to show you how actually we were doing it and what actions have we performed to accomplish the goal so we'll start with onboarding actually onboarding was here to address plenty goals and objectives we had to analyze the existing problems we had to perform the audits we had to correct the security and performance issues we had to onboard the the applications on a new platform we had to to ensure that there are no functional technical regressions and if we're talking about the steps actually on the top of the slide you can see the the time frame where when we were performing this or that task so you you can feel actually how much time from time to time it can take to to perform this or that so the first step for onboarding was of course the off boarding you can see the the checklist icon on the left and well actually it's always good to use checklists you can put things there and you can validate the deliverables against this list so it's it was really handy for us to to do it for for onboarding so actually while doing off boarding we were requesting the the the previous supplier to deliver us all the exports all the configuration files we were checking with url.com to see the latest outstanding accidents on production to to to focus on on the on the existing problems later we have performed two to audits first of all one was done on the aqua site where our colleagues from aqua was we're testing the the health and security and performance of the code they were analyzing the custom service service configurations on our side we were doing functional discovery and performance third party integration just to be able to to take this application into support and maintenance as soon as the the audits reports were delivered we were able to define actually the the list of the the issues which we are facing most of them were in the performance and security area so we agreed with the with our colleagues from url that to deliver and to to onboard it on on the new platform we need to correct the critical and blocker issues so we won't have any outstanding security or performance problems as soon as it was done we started to work with aqua to to prepare the platform so what we did we measured with the help of the traffic with the help of the server resources usage we have measured how powerful platform should be we provisioned it later we put all the necessary configuration in it we adjusted and we corrected those configuration to meet the best practices which is used by aqua and at the end we put applications there we are talking about three different applications which are running on the same code base so it's three websites on the same code base um as soon as the project was on board we started to to perform the functional and performance testing so functional testing were shared between url.com team and adiacs team so so we were ensuring that there are no functional or technical regressions on it of course one of the important issues was to to to measure how our performance improvement works so we used such tools as blaze matter or and blitz cloud performance testing tools so you can see actually after on boarding the the results were much better than than before and of course the release where we are planning the way that the risk were minimized so we started with the project which had less traffic less revenues were coming from this the project so we started from general passes then we passed the stabilization period of one week and then we on boarded and activated other websites as soon as it was done we started the the triple six support objectives of course support assistance preventive and adaptive maintenance and of course SLA as far as the project is completely e-commerce and hundred percent online while running support project we also performed two small sub-project one of them was cdn integration activation which actually allowed us to to improve the availability of the website and performance of the website in such painful areas as china russia countries of south and america second sub-project was integration of automatic testing so we integrated the the tests for to support our continuous integration and on other side to to avoid any any unavailability of the content of the major functionalities we performed the user flow tests which were executed on daily and weekly basis by automatic tools and which were delivering the reports to us saying that this all that functionality is available all the time in parallel we have started Drupal 7 project so the goals for this project as was already mentioned by Hugo was to make the redesign in terms of front end to rethink the the architecture to improve the content and media sharing and of course by making this migration to ensure that search engine will still like the site as one of the first step we decided to to to keep iterating on the on the business requirements and on functional specification so start starting from the business requirements initially and with the functional discovery which was coming from Drupal 6 website we we made plenty of iterations on the on the design on the functionalities and it's one of the things that we discovered for us it's never late to test new things and to improve things various architectural decisions were taken so structured content no block system improved sharing system improved back office product display and product selection as well in terms of development of course we were using agile methodology which fits this project quite well it took us around 15 sprints to release almost most of them were three-week sprints but at the end when we were finalizing the and stabilizing the the the application we reduced it to one week sprints so actually our backlog was iterating and it was updating all the time with new ideas with new things and finally we decided that three weeks three months before the release we will make the freeze of features and freeze of content so no more features will be integrated into the scope and no more content will be added on the current website very very interesting and very complicated element for us was the migration path actually we had to to to be sure that after the migration to to Drupal 7 and while changing the application changing the structure of url changing the structure of the content we won't lose the availability of those projects in the search results so to to ensure that together with the url team we decided to to perform some upfront actions so all the pages which had to change in Drupal 7 website were merged and unpublished on original website like three or four months before before the migration the content was iteratively translated transformed into the new version on original website so search engine would get acquainted with this information much before the release moment and we won't have this spike of unsatisfied search engine of course migration of the of the content with all the URLs and very interesting method we were using for the for the testing of the migration we actually were doing mirror testing so all the traffic which was well which exists which exists for the current website was replicated to the to the new website so we got actually a real traffic on the new platform which was in hidden mode with this we we detected directly all the 404 errors all the missing elements so we while adding like 301 redirect and so on by creating extra content we were fulfilling actually this gap of which we usually face while doing migration and of course before releasing of the new project always think about the platform so we made the workshops with our colleagues from aquia to to remeasure and redimension the platform to to support the Drupal 7 application which is usually more more resources consuming applications of course tested against already existing test cases with blitz and blaze matter release same strategy works fine like we changed it as soon as the project was released so that happened in the beginning of this year we activated Drupal 7 support for for our our client we had the same objectives but this time as far as the code was owned by adiacs we didn't have any major issues in go live so since the beginning of this year as soon as that was done we come down a little bit in terms of new features and stuff but very soon url returned to us asking if we can start thinking with them about e-commerce project in Drupal so it's how the new project arrived completely new project which is e-commerce in the application so the goal for those projects for this project was to to rethink the e-commerce component of the url.com ecosystem to improve the architecture to remove all the outdated and manual processes and of course be prepare prepare the the the project to to be able to to receive new features in faster way yeah step zero was how we'll do it and we made several workshops with url and other partners to see what will be the best solution for for for for url.com where the the two major options were the integration with magenta and integration of Drupal commerce into the applications why magenta was not selected in this setup actually one of the goals for url.com was to to decrease the number of we can call it useless synchronization between different applications there were the issue with an additional application to support there was a question of additional associated costs when some business logic should be replicated from magenta to Drupal to get this work together and of course the integrated solution Drupal commerce which can be seen can be easily installed and then tailored for the sake of url.com was was selected next step for this project was capturing of business requirements for this sake we involved our colleagues from London office of commerce guys who helped us to collect up to 300 user stories more than 1000 acceptance criterias were described and which later will evolve into detailed testing plan and some white papers were written to to describe the potential technical decisions which can be taken we were working on the architecture we had two various solutions we had two different solutions one which is on the left was having Drupal commerce actually integrated in each of the applications so as far as we were having three different websites we're thinking that Drupal commerce inside of each application can can can work much better than the situation when Drupal commerce will act as a multi-channel e-commerce solution for all of those websites for the sake of development and planning we we split all the functionalities into the building blocks which were which will which are owned by by a separate project manager who is who is ensuring the communication with thought parties with payments provider with the fulfillment centers with partners of course at the end of the of the iteration of this project we will be working with aquia to to redimension the the platform to to onboard correctly the e-commerce solution in it mostly two areas would be the improvement in terms of database servers to perform more transactions and extra front servers to to support customer service and check out processes as for release is still the same it works i'm moving to the results and lenient area and it's very important we found out with the hugo that it's very important after a certain number of iterations prints we sit together and we we discuss actually what what results we have after those iterations what actually lessons we we we learned after each of them and we try to improve all the time but after the end of the drupal 7 project we we identified the the next results which for us are the most important ones so from the technical and business perspective we receive very scalable and stable hosting platform as far as we were not having any down times during or since since beginning of the of the year this the sales are very stable the editors of the url.com precise that the user experience and content management was improved and of course e-commerce flows were optimized by removing outdated processes and very manual operations would you help me with with other so i wrote on a couple of lessons learned we learned a lot during this this year and two years and what really helped was taking the time to to find the the ride supplier i think it took me almost six months to find the right one because when you select one you will stick stuck with them for three five or maybe ten years so it's worth taking the time for selecting a partner that is breathing almost the same as you do so it is they were working together working in the same way thinking with you etc so that was a good learning experience and you find the word flexible is all about functional specification and i asked my management team about flexibility how flexible should the system be and i asked the same question to our content writers you can imagine the answers weren't exactly the same so it cost me a lot of time to say okay what really do you want and why do you need it because the content writers that yeah they were used to add java script and html to it so i said oh that that would be very handy but yeah our management team said no your your goal is to write as many train articles as possible so it was real really a struggle in the beginning from what do you really want to have on this new system steering committees we every month we sat together with the url dot com project managers and the adiacs project managers and we had a steering committee and it was not about the technical details but it was how is our collaboration working is it fine or do we see any problems do we communicate enough because they're they're situated in paris and we are in utria so there's a lot on skype on on conference calling etc and sometimes it's better to sit in one room and actually say what you're trying to say and especially when you're doing specifications so once a month it's it's real worth taking that time and there are a lot of good times too so and there's nothing wrong with giving a compliment when it's going okay so yeah that was really and and we we tried to do it coming thursday we had another steering committee so alexi will be at our office and we talk about how can we improve communication as alexi mentioned there are now five project managers at our site so you can imagine how much communication there is adiacs is using at the moment the red red mine system it's a tracking and documentation system and it was really helpful for us because we can we could see what was what the developers were doing at that moment if they had any questions they could directly put them on the on the tracking system and we could directly answer them so it was it was a real time saving there and now we have during the whole project we we we continued updating documentation so now we have it all okay on on red mine content migration that was I think we're all IT kind of guides so yeah content is a totally different aspect of of the project for us it's just words words words just cut copy and paste them there but for a content writer it's totally different it's it's their baby it's it's their creation and same it's for for the images so we just copy the three images over there oh no no no it's can be done it should be pixel perfect so it took a while and as mentioned by like say we we did the three week sprints and for us and the other side was also very handy because we could write this functional specification we could do the acceptance testing we could all start with the content migration while well little parts already finished so we created our own three week sprint that's about it any questions do have any questions yeah please if you prefer yeah actually from technical perspective um there are several tricks that you can do with it first of all you can use the access logs which is very safe so you take the exact slog of your web server like for example apache or njnx you scan it and you simulate the same the same traffic the other trick which exists and it's not very fair for end users because um because end users experience some extra downloading but actually the trick is that you can include on each page of your website you can include the hidden iframe which takes the URL of the current page and directly calls the new platform the hidden platform so user doesn't see the page loaded but back end experienced the the hit or miss or whatever so actually the combination of those two tests was were used to from one side to to validate the the migration uh to see the 40404 301 errors and on other side to test the performance as well to see if we are able the current application is able to cope with the same traffic the same level of traffic so at the moment of switch the platform won't experience any any spikes in the in the in the runtime I hope I have answered your question um I will answer I'll start with the second question so we are using Jenkins web server the test server continuous integration server and we run the test written on ruby and cucumber so this is the question of of the tooling as for the question how we haven't identified the the zones that should be automated so there are two two two groups of functionalities first group is the group of critical zones and critical paths so which should be and few critical features we should be validated each time the code is delivered so this is a part for continuous integration so usually you can easily identify those zones for e-commerce platform so this is shopping cart buy it now buttons availability of the products displays or what is e-commerce funeral process on other sides when you want to verify the availability of several critical contents of the site you usually you can ask the the owners of the the content and owners of the of the web application to to help you to identify the first of all the critical information that should be tested why why we were testing availability of content because initially the while while working with another provider the quality was not so good so pages were disappearing from time to time and if it's not a secret one person in url.com had to go on daily basis and check availability of one to 20 pages i would say that was automated for example and of course there are some tooling which allows you to see the fastest actually user flow to the funeral so you usually test the areas which help you to convert yeah we we did a project before this project for doing a new redesign and we did not take that into account so we said okay we're not doing that besides we our passes are not cheap so this is a real a lot of money and so for a little mobile phone you're you're not using our website is our experience and we we measured that and it's it's less than one percent so so but um we're taking it into account now but yeah it's a bit of waste of money of course because you have to start all over again but we're not sure what to do with mobile i can imagine that we use mobile during your your trip in europe so then but then you don't need our website then you need other tooling that helps you traveling through europe so we are not quite there which direction we have to go so that was that's fine for us for us it was because it was from the past we saw the current hosting and Drupal expert were doing two times not a good job which is 50 50 so we said okay let's go for a real Drupal expert team and and another for the hosting so that's more about how we saw it that time but from the technical perspective i would say that that if you're an expert in something you should stay in this area and do the maximum you can in this area it's one of the that's one of the things that we learn actually in ideax we had so many opportunities to expand into different technologies but we focus on Drupal and it's what our colleagues from aqua is doing in in the hosting area i would say because they have some extra departments who are working the idea behind splitting those things is to to separate the zones of responsibility where when ideax in this setup and Drupal provider in general thinks about application itself it might go a little bit further and to to to check the the configurations and stuff but the hosting is completely different thing and you have to to to to hire the experts of completely different profile who knows how to to identify the zones you have to to tune the applications and it's very two different areas and domains of expertise so by separating and doing things correctly in each of the zones we ensure the quality which which we see i would say for this project any other questions yeah yeah actually at the current stage in Drupal 7 project as i called it we had to integrate with this standalone e-commerce solution which is called inter shop where Drupal was acting as a vitrin website which was integrated as well the shopping and dynamic elements for the product management and of course my account zone where all the e-commerce logic couponing shipping fulfillment and other stuff was managed in the standalone e-commerce platform today when url.com would like to to minimize the number of applications and in the in the ecosystem where Drupal actually can act both as a content management system and as e-commerce platform i think it's kind of logical move and of course there were plenty of other reasons why by url.com was decided to to move and to go e-commerce with Drupal so yeah right now we are running this project and it's the the first sprints of the development of this project and which will be released in the beginning of next year where actually e-commerce will be migrated from the second standalone application into the Drupal yeah right we need to see actually the weather if we can share them but those white papers are about the best practices how you can make for example white labeling how architecture can be selected for these or that sake and i don't know we we need to see if if we can you can take my my business card and send me an email to to check this out i cannot answer it right now but we can discuss it with with url.com at the current stage it's internal documentation uh which was delivered by commerce guys and adiacs for url.com any questions yeah uh i i thought we were calculating it uh it was yeah i don't know but but in average it's those projects of this type is around 15 000 hours of all the profiles so it's uh actually um for the last year we had a team of three to four i i never told i i i didn't make a slide for the for the team i will tell you so we had a team of development team of three to four persons it was dependent on the on the on the lord actually because some of the springs were taking more features into it some of them were taking less so the the team was there uh we had a qa team of two to three person depending on the lord uh so this is manual qa teams we had uh one person who was ensuring the automated testing uh system administrator we had two project managers uh on our side and this year it will be three project managers team of five persons of developers and um yeah e-commerce project is very short-term project we if i don't know if you notice but uh we plan we are planning to deliver it in five months yeah so i would say it's around 15 000 hours total and in general when i have presented the project that we are doing it's the project of average 10 to 20 to 25 000 uh hours it's the project of one and more year yes any other questions okay thank you very much um i would like to just to show you one thing adiax is running uh Drupal 8 hack um contest uh the goal of this contest is to try to hack Drupal 8 installation so you can find it by this address uh you can go there there's Drupal on it it's a separate virtual machine which has or has not some security updates installed or deployed uh each day we are delivering extra um well we are simplifying your job we are delivering extra features for you so last time we have activated i think the registration without uh without confirmation and uh logging without uh without uh without error control actually you can try to brute force the thing if you want uh so the one who uh who will hack Drupal 8 will gain the parodron and you can go and see it it's a huge flying machine so i think you should be motivated so please rate um the the session and if you have a questions uh i'll put my my business cards here please take ask any questions contact me by email or by phone if you need any assistance thank you