About Us / Drupal Planet
I'm very excited about the upcoming Drupal 8 release and its features and even though I'm not a core developer (yet), I follow its development as close as I can. There are numerous blog posts about it and the new features it has. There are hundreds (if not thousands) of issue queues where you can watch our community discuss and build the new system, you can even try the freshest dev release by using SimplyTest.me.
But, while there is a vast amount of information about Drupal 8, I couldn't find any metrics about how it will compare with Drupal 7 performancewise. I know that we're not in code freeze yet and that performance improvements are scheduled for the "polish phase" which officially starts on 1 July, but I was curious to see how Drupal 8 performs at this stage, where many API's have changed, a lot of hooks have been replaced and a new framework is implemented into it (Symfony2).
So, I thought that since there was no such information on the net yet, I would find out myself. So, here is a quick and dirty performance comparison between the latest Drupal 7 version (7.22) and the latest dev build (1 June) of Drupal 8.
Test setup & methodology
I downloaded and installed both systems on my MacBook Air (1.7 Ghz Intel Core i5, 4Gb 1600 Mhz DDR3 RAM) and measured requests per second on MAMP with PHP 5.4.4. I used ab (apache benchmark) with 20 concurrent requests (-c 20 -n 20). So, on the following table, you can see the amount of requests per second that MAMP was able to serve for 4 different cache settings and 3 default pages: Admin home page and site homepage as it comes when you install the Drupal standard profile for both anonymous and logged in users.
For each metric, I used the highest number I got after 10-15 consequent measurements.
Results
Requests/sec (more is better) |
||
Drupal 7.22 |
Drupal 8 dev |
|
APC & internal cache disabled |
||
| admin homepage (/admin) | 10.25 | 5.07 |
| homepage, logged in | 10.57 | 4.25 |
| homepage for anonymous users | 11.66 | 4.56 |
APC disabled, internal cache enabled |
||
| admin homepage (/admin) | 10.32 | 5.09 |
| homepage, logged in | 10.58 | 4.17 |
| homepage for anonymous users | 114 | 37 |
APC & internal cache enabled |
||
| admin homepage (/admin) | 49 | 14.02 |
| homepage, logged in | 43 | 11.44 |
| homepage for anonymous users | 491 | 147 |
APC enabled, internal cache disabled |
||
| admin homepage (/admin) | 50 | 14.17 |
| homepage, logged in | 43 | 11.43 |
| homepage for anonymous users | 65 | 14.04 |
Conclusion
When I saw the results, I got disappointed. I had a secret hope that I would see Drupal 8 perform better, even though this was not the logical result.
In the above table we see a 50%-78% performance regression which is rather big. Do you think this is the expected result? Do you see any flaws in the above methodology? Am I missing something? At which phase do you think it would be wise to test again? Feel free to leave your comment below.
Anyhow, I hope the Drupal community will do a really good job at the polish phase and deliver a really fast Drupal 8.
About a month ago, I had the opportunity to present at Internet World London, why I believe that Drupal is the best Open Source solution to build professional level websites, e-shops or online applications and why you should dig in it and do your own research about it.
The speech is in English. You can enable the English or Greek subtitles by clicking the captions button or read the transcript below.
Presentation Transcript
Hello everybody, my name is Yannis Karampelas. I'm the owner and founder of Netstudio.
Netstudio is a Web Design and Web development company in Athens, Greece. I am Greek and this is the first time I give a presentation in English, so if what I say, sounds Greek to you, feel free to interrupt me and ask questions.
I started Netstudio 8 years ago and Netstudio got reputable in Greece for being able to tackle advanced online e-commerce sites, regular sites and online applications.
We got to a point where our development and design team got to build really big sites for Greece's standards.
So, about three years ago I thought that I should find a platform to base our work. Because until then everything we did was based on Joomla which is a free and Open Source CMS.
So, about three years ago I started researching my options in the Open Source field again and I started researching the CMS's. I got to see some of them, but what got my attention finally was Drupal.
The Drupal CMS is Open Source and free and the more I was researching about that, the more I got excited about the opportunity that lied beyond me, because I had the experience what our clients wanted to do for them and I knew the constraints I had till then using Joomla and I got excited about the power I saw in the Drupal framework and the Drupal CMS.
So, I'm here today to describe to you the 7 reasons I think you should research Drupal and find out if it is the best choice for your site, your online shop or your online application.
So, let's start.
Reason Number 1
The number one reason that got my attention is that Drupal is really flexible.
Back when we used to use the Joomla CMS, it was very usual for clients to ask us to do things that we could not do not because we weren't good enough developers, but because the CMS did not allow us to do these things.
For example, when a client asked us to add a new field to his website, either we could not do it or we had to use external components like the K2 component or JReviews or another CCK component to build their website. But that was not always sleek and easy to do because sometimes these requirements came after the site was live, so it was not so easy to alter the structure of it.
On the other hand, Drupal has an inherent, in core Content Construction Kit that allows you to build your own Content Types with your own fields. Content Types are data sets of fields. For example, Joomla had only one content type, the Article Content Type, where you had the opportunity to input the Title of the Article, the Body of the Article, the Publishing Date and some other details. In Drupal, you can build your own content types and have as many fields as you like in them and you can add more fields even after your site goes live. So, for example, if you build your online shop on Drupal and at some point you think that you should charge shipping fees based on the weight of the products, it is very easy to add a new field to the product content type called weight and input there the weight of the products.
What accompanies most of the Drupal sites is an external module called Views. The Views module is the most famous one in the Drupal world because allows you to grab data from your database that you have build your own content types and build your web pages the way you want. So, it's not so clear here, but with the Views module, you can select the fields that you want, set your filter criteria and your sort criteria and build your web page the way you want to appear to your visitors. This is very powerful, so in the upcoming release of Drupal, which comes by the end of this year, the Views module will be inherent in the core of Drupal. Essentially, the Views module is an SQL Query Builder that allows someone who is not a coder to build the queries and get the data from the database and show them the way he wants to the visitors.
Another cool feature is that in Drupal you can have set of users which users have roles and each role can have its own permissions. So, you can set as many roles as you like for your site and allow them to do whatever you like them to be able to do. For example, you can build an ecommerce site and have some users have access to your wholesale prices because they are your wholesale customers. This is again something that you can do with a graphical user interface and most of the time you won't need developer help.
Another advanced and very nice feature of Drupal, is the Rules module which allows you to build our own custom workflows. For example you can tell Drupal to send a text message to the mobiles of your customers whenever they place an order. Again, using a practical user interface, you can build this rule and be able to customize it the way you need. To say the truth, some of these things need more reading and more advanced digging in the system and you might select to have your developer or your agency to build it for your, but after they build it for you, it is very easy for you to customize it and tweak it and make it work the way you want it to work.
Reason Number 2
The number two reason that I believe Drupal is a very good CMS, is that Drupal is search engines friendly. This is something very important for your sites and for the sites of our clients. So, when I started researching the Drupal CMS, I checked if it performs ok with the search engines. What I found out was that the Drupal community had built numerous modules that tackled this with paramount importance matter.
There are a lot of modules that help your site rank better, I could talk a lot of time about them, but I will talk only about Pathauto, which allows you to build the URL structure the way you want. So, for example, when you build a site with Drupal, you can put the articles of this site in the articles folder and have each article have its article in the URL. This is very important for search engines, but also usabilitywise for users because users look at the URL of your site and try to orientate themselves and understand in which place of your site they are. What we found out after migrating a lot of site from Joomla to Drupal and from proprietary systems to Drupal, was that right after we migrated them to the Drupal CMS, they had better rankings in Google. Here is an example about a Greek website where after we migrated to the Drupal CMS, we had almost 40% percent increase in search rankings and visits from Organic results. What we use to say is that Google does love Drupal.
Reason Number 3
Drupal is reliable and some of the biggest sites in the World use it. I got impressed when I started researching about Drupal that I found out that some of the biggest sites, like the US White House runs on Drupal. Or MTV UK. France24.com. The Louvre Museum. The Economist. The Grammy Awards site. ING US. Examiner. So, I thought that if these organizations depend on Drupal, then it might be ok for my clients and I could trust it as well. Here you see the growth that the most famous Open Source CMS's have at this time. As you see, last year, Drupal had over 20% growth in its usage. Currently, over 1 million sites run on Drupal.
Reason Number 4
Drupal is secure. Vendors of proprietary systems have an argument against Open Source systems saying that since they are Open Source, everybody could look at their code, scan the code and find vulnerabilities. This is true for other CMS's, but not for Drupal. Because Drupal has taken security very seriously and has formed a team of security professionals who actively seek and patch vulnerabilities in the system. Because they know that this system is used among the biggest sites in the world. And to tell you the truth, I have seen many WordPress and Joomla sites hacked, but we had never a Drupal site hacked, at least yet.
Reason Number 5
Drupal has an active community. Why is that important for you? Because almost one million people work to make this CMS better and they are there to help you either for free via the IRC channels or in the forums, or in a paid basis. So, it is very easy for you to find good developers, good development agencies and you are free to work with anybody you like and change agency or developer whenever you like. Also, there are over 20.000 modules that are ready for you to use for free and extend the capabilities of your site.
Here you see some pictures of some of the Drupal Cons, the Drupal Conferences that are organized around the year and you can be in these conferences. The Drupal Cons are twice a year, but there are monthly smaller conferences, the Drupal Camps and the Drupal Meetups that you can attend and see the vibrance and the kind of people that are here to help. This is from Munich.
At Netstudio we have built a lot of modules on Drupal and actually two Drupal distributions. Drupal distributions are sets of Drupal setups that you can get, install on your site and have ready and running in some minutes. We have built the Open Deals Drupal distribution, which is "Groupon out of the box", you get it, you install it and your site is ready, and most of all, it's free.
Reason Number 6
Drupal is innovative. The Drupal community is very active incorporating every new technology in Drupal. So, it was Drupal that had the first responsive themes, that I will show you later, it was Drupal that started implementing inline editing, which is a technology that will be ready in the next months and will be in the current Drupal 7 for you to use and also in the upcoming Drupal 8, which allows you to edit the content of your site, without having to go to the admin panel. From the front-end, where you visit your site, whenever you see a mistake, or a typo or anything, you can click edit and you can change everything live.
Also, the are antispam mechanisms like Mollom, which I would suggest you take a look, they are very advanced and not annoying to the users.
Faceted Search is a new technology about searching, where you can use multiple Ajax filters to pinpoint what you want to find, and I will show you an example later.
And Symfony2 is the next big thing about Drupal. Symfony2 is a PHP framework developed by another community, that now gets in Drupal 8 and in a kind merges these communities and things will go faster.
Here you can see our site built on Drupal how responds to different screen sizes. This is responsive design.
And here you can see an online shop where we have built Faceted Search on Drupal where you can click and with 2-3 clicks, you can find what you want among thousands of products. In fact, we have built an external module on top of the Faceted Search API of Drupal, called Findastic, which is very fast and very advanced.
Reason Number 7
Finally, Drupal is free and Open Source and you can download it today and try it and see what you can do with that. You can choose anybody to work on your site, you don't have to pay any licenses, or any fees, you only pay for development and design time.
So, for me Drupal is the perfect system. Have I researched every system there is? No. But from what I've seen is the best choice and I'll be glad to talk to everybody of you and see if it's a good choice for you as well. Thank you very much.

In early 2011 the world changed! That happened because Drupal 7 came into our lives and along with it Drupal Commerce, the brand new online e-shop tool. In the blink of an eye Drupal Commerce became viral creating a small sub-community on drupal.org and as a result a majority of Commerce oriented modules came to life very fast that expanded its capabilities furthermore. In Netstudio we immediately contributed in the Drupal Commerce ecosystem, not only with extra modules, but also with a Drupal Distribution based on it, called Open Deals. Drupal Commerce is widely accepted and trusted within the Drupal Developers community and managed till August of 2012 in London’s DrupalCon to cover almost every feature of Ubercart, which until then was an A-player for Drupal e-commerce solutions.
The problem
Even though as mentioned, Drupal Commerce covered 99% of Ubercart’s features, during its early lifetime showed a noticeable weakness that troubled a lot of the developers that wanted to use it on their web sites. The problem had to do with the multiple attributes per product which affected the final price. An example of this situation is the "pizza" product. Each pizzeria gives the opportunity to its customers to choose the ingredients that are going to be used in the making process and the final price is affected by each ingredient respectively. Until now Commerce handles this by creating each product’s combination as a different product in advance and by manually calculating each combination’s final price. If we assume that the "pizza" product has 5 different types of cheese, 5 types of sausages, 5 sauces and 5 types of vegetables then we had to create 5*5*5*5 = 625 different products! Each extra ingredient would increase by a great amount the number of the products that had to be created and also maintained. This is the main reason that even today many of the online shops are developed with Ubercart and not with Drupal Commerce.
The community's solution
There have been many efforts on a solution to the problem by the community of Drupal Commerce. Commerce Option Module introduced the product options idea and gave the opportunity to the site's administrator to create combinations of attributes. With this solution the administrator could then maintain a single product and the customer could keep combining the attributes on the final product. BUT, even though this was a respectable solution there were two unsolved problems. There should be the option of choosing different attributes per product. (for example some pizzas should have three possible cheese options available and some other should have two). Furthermore, and also the most important one is that there was not an option to affect the final price based on the attributes that have been chosen.
The Netstudio solution
In our company we have encountered many similar situations in the past year. Sometimes we were obliged to use Ubercart and some other times we had to implement custom solutions to comply with each demanded functionality. We finally agreed that there should be a more organized effort on building our own complete solution based on Drupal’s module system. Thus, Commerce Pricing Attributes was born. This module covers all of the possible situations of multiple product attributes. Each product can now have its own attributes and its own price per attribute. We achieved total flexibility as far as the product attributes is concerned and have marginally improved their management. Now, there is no need for maintaining hundreds or even thousands of products!
So far, the module has received positive feedback and we have gathered some great ideas for further feature enhancement. You can visit the project’s page at http://drupal.org/project/commerce_pricing_attributes. We urge you to try it and send us your feedback or comments on further improvement.
Here is a short video presentation of Commerce Pricing Attributes module with directions of the installation and configuration.
Sometimes we may have downloaded a dev version of a module because it has some fixes, or maybe he have applied a patch. So in order not to lose our changes in case of an update we must install this module http://drupal.org/project/update_advanced and then go to admin/reports/updates/settings choosing the appropriate module's row tab "WARN IF OUT OF DATE" set to "Never". Drush also respects the settings of the module and as you can see in the above image views does not get updated due to the exclusion from our module.
CAUTION! When we make a "manual update check" you may notice that the module isn't been checked but when we check it to be updated and press update, then the update procedure ignores the module's settings. So you have to be very careful in this case and in order to be on the safe side you should always update through drush.
In my case though I had a module which I found in sandbox and it doesn't appear on the list of our magnificent module. What should we do in case the module comes out of sandbox and drush updates it without our attention after we have applied a patch on it? Well...there is a very nice and neat solution. We exclude it with the below hook code:
<?php
/**
* Implements hook_update_projects_alter().
*/
function custom_module_update_projects_alter(&$projects) {
$blacklist = array(
'my_module',
);
foreach (
$blacklist as $module) {
unset($projects[$module]);
}
}
?>/**
* EDITED
*/
User "Si Hobbs" also pointed out a very neat approach to the problem also.
You just change the project name from the .info file of your module, let's say with something like "hacked_%modulename%" and you're done!
Altered info structure:
Updates list after alteration:
For those who don't know about Open Deals, it is a Drupal distribution that lets you build a deals site (like Groupon) with a few clicks. You just download it, install it and you are ready to get orders.
We started building the Open Deals distribution about a year ago. You can find the initial post about it here. We released the 7.x-1.1 version (after many alpha, beta and RC releases) just a few hours ago. Currently, there are no open issues and this is considered a stable release. So, I think this is a good time to recap this year.
First of all, let's make clear that we didn't build Open Deals for personal use nor for any client that had asked us for something like that. We built it for two reasons. To learn how a distribution is built and to attract new clients.
Even though we didn't have the number of requests and jobs that we anticipated, we did learn a lot of new things and most of all, we felt the pleasure that Drupal modules and distributions maintainers get when they see their work used by others.
At the time of writing, Open Deals is reported to have been downloaded more than 4.000 times and is used on more than 250 sites! One of them being the University of Arizona! (uasavvy.arizona.edu). We have built a small showcase of sites built on Open Deals at the project page. Seeing your work used by others is indeed a rewarding experience.
Last but not least, Open Deals got us to know a lot of Drupal folks from all parts of the world who contacted us either via our contact form, via Skype or via the project's issue queue asking for support. That made us realize first hand that Drupal is indeed a global project. Internationalization at its best!
So, if you asked me if I did it again, the answer is Yes! If you asked me if you should do it, I'd say "Go for It"! It's not about money. It's about the rewards mentioned above.
Recently, I had to debug a lot of watchdog entries in a client's site. In order to better understand the meaning and cause of each entry, I had to copy the IP address that generated the notice or error and paste it in a DNS Resolver to check who or what was the visitor that generated it. It's easier to understand crawl-66-249-66-212.googlebot.com than 66.249.66.212.
I thought that instead of doing this repetitive task, it would be much more helpful to see the hostname besides the IP address. But there is no such option in Drupal 7.
So, I coded a very simple module that does just that. Shows the hostname besides the IP address. I uploaded the module at Drupal.org. If your site is built on Drupal 7, you can download and use the module for free at http://drupal.org/project/resolveip.
I recently posted on a developer discussion forum our view on Drupal 7 vs Joomla 2.5. I repost here:
Let me present my view on this issue after having worked with both systems extensively. Since I worked alone as a freelancer until our team got to have 6 full-time developers.
We used to work with Joomla since the... Mambo times (7 years ago) and until one and a half year ago. We had reached a point where we developed for Joomla advanced e-shops, online apps and that included development of many components, plugins and Joomla modules.
It's been one and a half year that we switched to Drupal. This change wasn't an easy decision, because when you have conquered a CMS and you have to learn a new one, the time investment is just this: AN INVESTMENT. Along with whatever that means. But we did switch and we didn't regret.
What do we like on Drupal?
First of all, its absolutely more collaborative community. On Joomla every developer built and promoted its own component or module essentially competing with all other developers of similar components. For example, there are over 50 photo galleries. On Drupal on the other hand, everybody work together to build a very good and complete module for each task. This got us excited and made us contribute to the community with a lot of patches, new modules and a new distribution (Open Deals).
Secondly, what we liked on Drupal and fitted very well with the way we work, is that the pieces (modules) that make up a website are smaller. For example, there's no photo gallery module for Drupal. But the combining parts of it (e.g. views, views slideshows, CCK) are there to use and build your own photo gallery just the way you want it. That means that you may need more time to build a site, but you have more flexibility. Even more, every module used is easily overrided from your own modules' code, without having to "hack" them.
Finally, what we found was that the Drupal community seemed to be able to provide solutions for high traffic and more demanding sites issues (caching, performance, SEO) that were more difficult to find among the Joomla community.
To sum it up, Joomla is fantastic, but Drupal got to cover our needs in a better way.
Anyway, both systems are free to use, so every user can explore them, compare them and choose which ever is best for his particular project.
Tomorrow, Google Website Optimizer will no longer be available as a standalone product. Instead, Content Experiments is replacing this tool, which is integrated right within Google Analytics.
So, if your Drupal site has Google Analytics already installed (which it should have), then you can use Content Experiments to optimize your site by testing different variations of it.
For the time being, the new tool is limited to A/B Testing. Multivariate testing is not yet available.
What can you do with A/B Testing? You can create different variations of your pages and test which one performs better, conversion wise. The main things you could test are page titles, main graphics, layouts. The more prevalent the difference between the two (or more) variations, the better.
You can access the new tool from within Google Analytics navigating to the Content section of standard reports and selecting "Experiments". From there, you can create a new experiment by pressing the "Create experiment" button on the top of the page. The tool will guide you step by step to create your experiment.
The process is fairly simple. You only have to install a piece of code right after the opening <head> tag of your template. Depending on the theme you use, most probably, this should be in the html.tpl.php file of your theme.
The problem is that this piece of code should be inserted only on the testing page and not on all pages of your site. So, let's say, that the page you want to test has an internal node id of 20, so you can access the tested page at yoursite.com/node/20.
You should add the following code before the code snippet that Google provides, right after the opening <head> tag:
<?php
if ($node = menu_get_object()) {
$nid = $node->nid;
}
if (isset($nid)) {
if ($nid == 20) {
?>and this one after the Google code:
<?php
}
}
?>This way, the experiment code that is responsible to redirect visitors to the right variation, will be injected only on node/20. Of course, you should change the number 20 on the above code with your own node id that you want to test.
The good thing with Content Experiments is that the reports that produces are not limited to conversions and conversion rate per variation. You can also see site usage per variation, such as pages/visit, bounce rate, time on site which provide a better insight of how each variation performs.
Netstudio is a Google Analytics and Website Optimizer Certified Partner. We have conducted a lot of A/B and Multivariate experiments. What I can tell after all these years of experimentation is that if you haven't started testing your site already, you're losing money!
Happy Testing!
The Drupal community works hard on the upcoming (expected to be released in the summer of 2013) Drupal 8 release.
Drupal 8 aims to provide a much improved workflow for content creators. One of the most critical screens in this is the content creation page.
After some great discussions and design mockups shared in the issue queue, the community has come up with a mockup.
![]()
In order to make sure that this is a much-improved workflow, the community needed to do usability testing on this, so netstudio, creator of userfeel.com offered 5 remote usability tests.
UserFeel provides the technology and a huge panel of thousands of testers so it was easy to find the right people to test the new design. We needed people who are regular content editors (post content at least once a month on their sites) and use a CMS to do this. After the initial screening, the right people were found and tests were conducted.
You can watch the usability test videos on the following links:
Usability Test 1
Usability Test 2
Usability Test 3
Usability Test 4
Usability Test 5
Optimizely is a testing tool that lets you setup A/B and Multivariate tests on your page with virtually no coding! As their creators say, it's A/B testing software that you'll actually use. A one-time copy-and-paste is all you need to run tests.
We developed a Drupal 6 and Drupal 7 module that makes that even easier. You only need to install the module and insert your Optimizely user id. That simple! You are ready to start building your A/B and Multivariate tests*.
Even better, the module is provided for free! Go download it and start testing. We wish you happy optimizing!
*Optimizely service is not free. You can get a 30-days free trial though from optimizely.com.


