Mar 14 2016
Mar 14
This post may be of interest to project managers and sitebuilders looking to migrate from Drupal 6 to Drupal 8 during the early months after the launch of GA D8.On the Acquia Support Team we often find ourselves using Acquia’s public-facing documentation and article library as an effective tool for explaining product-related tasks, technical how-tos, and a variety of other topics. These resources are useful when communicating via our Support Help Center. Unfortunately, the underlying infrastructure for this site was Drupal 6.37.
Mar 10 2016
Mar 10
There are some excellent improvements to modeling data in Drupal 8, including a number of new fields. This is going to make it easier to model content in Drupal. Let’s look at the image handling in Drupal 8 and what changes are in store.
Mar 09 2016
Mar 09
Larry "Crell" Garfield led the Drupal 8 Web services Initiative.The mandate: to make Web services better in Drupal. Or, as the group phrased it in their mission statement, "Drupal needs to evolve from a first-class CMS to a first-class REST server with a first-class CMS on top of it."When Drupal 8 launched late last year, the consensus was that the initiative accomplished its goal. It's much easier now for Drupal developers to expose content and features on their sites via an API. In fact, the capability is built right into Drupal 8 Core. Some contrib modules are attempting to make such capabilities even better, too.
Mar 09 2016
Mar 09
Some time ago we were contacted by a client to execute a migration: from a soon-to-be decommissioned site into Drupal.Just when we thought that it would be a simple process, the requirements came in: “Migrate the data from Site A into Drupal, but also join data from Spreadsheet X, and some data already inside the Drupal website.”To handle such complicated task, with so much different data, we chose the Migrate module to make our lives easier.
Mar 08 2016
jam
Mar 08
Each day, more Drupal 7 modules are being migrated over to Drupal 8 and new ones are being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules, projects, and tools available for Drupal 8. This week: Coder.
Mar 08 2016
jam
Mar 08
Sebastian Bergmann, the maintainer of the PHPUnit testing framework, came to our office in Cologne, Germany to talk with Campbell Vertesi (@CampbellVertesi) and me about PHP, PHP FIG and the PSRs, and of course testing. It is another in a series of interviews we carried out in preparation for DrupalCon Asia in Mumbai. To prepare our session, we carried out a number of conversations with important and interesting people from the PHP community and now we're releasing those to you!
Mar 08 2016
jam
Mar 08
Part 1 of 2 - Sebastian Bergmann, the maintainer of the PHPUnit testing framework, came to our office in Cologne, Germany to talk with Campbell Vertesi (@CampbellVertesi) and me about PHP, PHP FIG and the PSRs, and of course testing. It is another in the series of interviews we carried out with important and interesting people from the PHP community in preparation for DrupalCon Asia in Mumbai. Now we're releasing those to you!
Mar 07 2016
Mar 07
In Part 1 of this 2-part series, Chris Pliakas, the director of Content Services Engineering at Acquia, described how he managed the Acquia Content Hub project, which was released in November, 2015. In this, the second part of the interview, he discusses the Scrum process, the benefits of working with an open source framework like Drupal, and what’s next for the Content Hub project.
Mar 04 2016
Mar 04
In this 3-part Drupal How-To series, I'm going to show you how various options for configuring images on your site. In Part 1, we looked at how to tweak the default image options. In Part 2, we saw ways to allow inline images. In this post, I’ll discuss the various options for responsive/adaptive images on your site.
Mar 04 2016
Mar 04
In my first blog post, I outlined the main sources for fresh news and info about Drupal. In this post, I’ll round up the best blog sources for tutorials in the Drupal community. 
Mar 03 2016
Mar 03
Imagine it’s late Saturday night and your cell phone is ringing. You answer the call. It’s your boss and she’s very upset that the website is not working. Do you know what you are going to do? How are you going to respond, quickly?Without question, one day you are going to have a problem with your website. You need to be as prepared as possible for that day. A little bit of time spent in preparation can make all the difference between a 15-minute outage and a 6-hour (or worse) outage.This series of articles will help to prepare you for that day. We are Support Engineers here at Acquia. We spend every day assisting clients with websites in crisis. We would like to share what we have learned.
Mar 01 2016
jam
Mar 01
Each day, more Drupal 7 modules are being migrated over to Drupal 8. New ones are also being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules, projects, and tools available for Drupal 8. This week: Drupal Console.
Feb 26 2016
jam
Feb 26
Erica Schroder joined Acquia in 2012 as a graduate of the Acquia U Drupal training bootcamp and is an inspiration to me as a successful career-changer. As part of running arts and dance businesses, she's had a hand in with Drupal since Drupal 5 days, but Acquia U and her subsequent experience has made her a real Drupal pro. We got the chance to sit down together in 2015 at Acquia's Boston headquarters.
Feb 25 2016
jam
Feb 25
Each day, more Drupal 7 modules are being migrated over to Drupal 8 and new ones are being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules available for Drupal 8. This week: Honeypot.
Feb 25 2016
jam
Feb 25
Drupal Camp London 2016: 600 Drupalists, international guests, 35+ sessions, loads of Drupal 8 goodness, interesting keynotes, great community
Feb 24 2016
Feb 24
An interview with Will Eisner, Senior Director, Product at Acquia. Will’s primary focus is on Acquia Cloud Site Factory, which helps organizations create and manage many sites, from a dozen to thousands.Also sitting in on the interview, via conference line, was Sonya Kovacic, a Junior Product Manager at Acquia who also works on Site Factory. Sonya's comments are featured in Part 3 and Part 5 of this series. 
Feb 22 2016
Feb 22
When creating various pages developers often have to generate links, URLs and occasionally redirect users to where they came from, or any other arbitrary page. In Drupal 7 we used l(), drupal_get_destination() and drupal_goto(). As you may suspect, things have changed drastically with Drupal 8. Although drupal_get_destination() is still there, it is marked deprecated, so we should not be using it any longer.
Jan 15 2016
Jan 15

Lingotek’s Translation Network is a cloud-based solution that connects all your global content in one place, giving you the power to manage your brand worldwide. Our technology pairs with the best-in-class applications, such as Drupal, to continuously push dynamic multilingual content to all of your global markets.

Lingotek’s collaboration with - and development work for - the Drupal community began over four years ago with Drupal 6. Our first Drupal module was released in fall of 2011 for Drupal 6. We now have contributed modules available for both Drupal 7 and Drupal 8.

These modules empower Drupal site owners to target different markets by providing them with various options for translation (machine, community, and professional) as well as connecting their Drupal site to our cloud-based Translation Network.

Our Drupal 7 module enhanced the functionality of Drupal 7 core and also integrated with popular contributed modules such as Field Collections, Panels, and more. The ability to integrate with these modules was crucial because complex sites built for easier digital experiences often require different data modelling options. But providing high quality support for such different possibilities and potential information architectures is not always easy.

So why are we so proud of the Drupal 8 multilingual experience?

The massive improvements of Drupal 8 for multilingual features and APIs allowed us to provide better support than with previous releases of Drupal or any other CMS on the market. For example, Lingotek supports the translation of several different content data structures for Drupal 7. However, with Drupal 8, if you follow the best practices on the creation of your content structures we will fully support them out-of-the-box.

At this point, you may be wondering, how Lingotek can help you? If you are a site owner, you will be able to easily translate your content or configuration. Our bulk management forms allow you to upload and request multiple translations of your content in all your locales with a single submit. And if you choose to, the translations will be automatically downloaded and published as soon as they are available.

If you are a front-end developer, you may have worked on multilingual projects where translations were handed in late in your project cycle. Sometimes, since the text labels can be so different between different languages, your new translations can break your layouts. With Lingotek you can use automatic translations, which may not be good enough for your end users, but can help demonstrate how the site will look like in a language you don’t speak.

If you are a back-end developer, you may need to develop custom modules. These custom modules could include custom entities and/or field types or result in your own configurations. Then you’d be tasked with making them translatable, which may seem like a daunting task. In fact, with Drupal 8 it’s easier than with Drupal 7 or any other CMS by far! If you integrate with Lingotek, the good news is that you don’t need extra work as soon as your data structures are translatable with Drupal 8 core. For more information about how to make your data structures translatable, check out this helpful example module git history.

Drupal 8 is a great platform to work with not only because it is so multilingual capable out-of-the box, but also because you can easily expand while maintaining the translatability of your data. Drupal 8’s multilingual core offers a robust multilingual foundation, making the integration process much more seamless.

That’s why we’re excited to announce that Drupal 8 users can now benefit from Lingotek’s Translation Network.

For more information about Lingotek’s Translation Network please visit www.lingotek.com. For additional information about Lingotek’s Drupal contributed modules, visit either www.lingotek.com/drupal or www.drupal.org/project/lingotek.

Jan 13 2016
jam
Jan 13

Part 2 of 2 - Sharing is good for business. Ambrosia Vertesti, Global VP Human Resources at Hootsuite, and I sat down to talk about how open source models are spreading to human resources and other, non-code parts of business today. In part one, I strove to understand HR's needs, terminology, and perspective and what drew Ambrosia and her peers to open source. In part two, our conversation moves on to how open source values like sharing and contribution are helping human resources and a lot more about #HROS.

"The How isn't competitive intelligence. That should be baseline."

I learned about the #HROS movement watching Ambrosia and Lars Schmidt co-present the keynote address at LinkedIn's 2015 Talent Connect conference. Check that video out!

Interview video - 22 min.

[embedded content]

#HROS - Sharing The How

The sharing and contributing aspects of #HROS--the stuff that makes it "open source"--came about out of necessity, just like so many open source software projects and tools. When she was hired as the 20th employee, Ambrosia was the sole HR person at Hootsuite and she was responsible for four other departments ... Welcome to startups! She lacked time and resources and turned to her network for help. "I was in Vancouver. We weren't in the epicenter of innovation and startups. We were in a place that the ecosystem was just growing around us. We needed to collaborate. I was empowered by our founder to take risks and find a different way to do HR. This was my opportunity to see if this thing is real!"

"It started out of necessity and being empowered to take a risk. That was me reaching out to people. 'I'm the only person here. I'm trying to find a way to do things.' I explained the problem I had and asked, 'Do you have The How?' Because a lot of times, people talk about why you should do something and what you should do. If you read Forbes articles about best workplaces and all that kind of stuff, like 'Performance Management Should be Dead!' And I say okay, but how are you going to ensure that you have a high-performance culture that is fair and equitable? So The How is missing from anything you read online. And in safe-safe circles, behind closed doors, people were telling me The How."

"The How isn't competitive intelligence. That should be baseline." Ambrosia recognized that this practical information--what she calls "The How"--is like the code in open source software. It doesn't give you a competitive advantage over others, that all lies in other areas, just like we can all use Linux or Drupal to level the playing field and then compete on other areas of differentiation. "Competitive intelligence is me taking that and making sure it fits with my organization ... I've probably combined it with 4 or 5 other Hows ... It's alchemy. There are things I see as competitive intelligence: compensation, stuff like that."

Opening up - asking for help, giving help

I wanted to know how Ambrosia's peers reacted when she opened up to them about her needs, problems, and challenges. She told me, "I found they were very collaborative. My experience has been that anybody I ever sent a Bat-Signal out, asking for help, people have come and helped me. And then I've reciprocated when I was able to." Ambrosia could swap, for example, her expertise in the world of social media for someone else's experience of policy scalability at large corporations. "It was really about equal value propositions. It wasn't just about solving a need. I felt as though we could give something back and that every HR practitioner would have something they're up against," this sounds so familiar to me from the development and website-building world, "and that they could give an equal-value reciprocity ... if the got over themselves and the stereotypes and the reputation."

#HROS isn't the first time HR practitioners have ever shared or collaborated, but Ambrosia explains, "My thought was that we could bring this out into the practitioners' space instead of it being a group of people who were ... sharing because we know each other. What if you're an emerging practitioner? It was a way to even the playing field and a way to showcase that HR is very innovative and they are very collaborative and they do want to support each other. And that nobody does have the perfect answer, so let's all work on it together ... and openly."

Partnerships: external and internal

At Hootsuite, Ambrosia is extending this idea to collaborating with employees to improve internal systems and processes, too. "For me and a lot of HR practitioners, the stuff that is servicing people's daily jobs and removing roadblocks and empowering them should be done in collaboration, it should be done openly, and it should be up for debate."

"As HR practitioners, you need to be connected to your employees because they're your customers. So if our team sees us saying 'We did this thing and here's the parts that we missed,' now I've been humanized to them. Now, they're able to come and tell me when things might not be perfect because I'm not projecting and I'm not posturing and I'm not guarding against it. There are things in your job HR that are very serious, very regulated, very compliance-driven, but there are sandboxes where you can have a lot of fun and you can really connect with people. And we want to put some of those things out there to educate not only HR people, but employees, because the more they understand about our profession, the more they understand how we can work together to build a culture and a company that we both want to be at."

What are the geeks getting right?

"What are the geeks getting right? High level: The mindset of 'We're all in this together. Let's work on this together. Let's support and share.' ... Those are things that business should be taking into their practices. We're all intellectual capital businesses, those fundamental practices create amazing workflows and better businesses. The engineers got that right. At the very highest level, that is the right mentality to build your business on.

Guest dossier

  • Name: Ambrosia Vertesi
  • Work affiliation: Global VP, Human Resources, Hootsuite
  • Twitter: @hambrody
  • LinkedIn: Ambrosia Vertesi
  • Current projects: #singitfwd "Music changes lives. Pass it on."
  • About: Over the past five years running HR for Hootsuite--and growing it from 20 to 1000+ employees!--Ambrosia Vertesi has had to figure out how to keep up with Hootsuite's enormous growth. Dealing with the challenging realities that many of us face at startups, like limited resources, budgets, and (perceived) talent shortages, forced her to get creative. Along the way, she and a group of her peers noticed that software professionals had institutionalized the way they benefitted from swapping favors, and connections to get things done: Open Source HR (#HROS) was born!
Jan 11 2016
Jan 11

Today we’re releasing a new Log Streaming Chrome extension that allows developers to see the logs they are generating in real time as they click around their websites.

Imagine you run a large e-commerce website powered by dozens of servers, and your customers are reporting problems checking out. You’re losing money by the minute. What do you do?

In the bad old days, you’d have to log into all the servers, download all their log files, and manually try to correlate log times to error reports. Or, you’d pick a random server and watch those logs, hoping that someone who encounters the error happens to be served by that particular server.

This and other use cases is why Acquia introduced Log Streaming in 2014. With log streaming, you can watch the logs from all your servers, streamed in real time as users click around your site. This allows developers to quickly find and fix the source of problems.

Today, we’re kicking it up a notch with the release of the Log Streaming Chrome extension. With the extension, you can browse around your site and watch the logs that you are generating in real time in the Chrome Dev Tools. This way, you don’t have to wait for your users to encounter the problem - in our e-commerce example, you can go click through your checkout form yourself, and immediately see what’s wrong.

Check out the gif of the extension in action below, grab the extension now, or sign up for Acquia Cloud Free to try it out yourself today.

Jan 11 2016
Jan 11

Today we’re releasing a new Log Streaming Chrome extension that allows developers to see the logs they are generating in real time as they click around their websites.

Imagine you run a large e-commerce website powered by dozens of servers, and your customers are reporting problems checking out. You’re losing money by the minute. What do you do?

In the bad old days, you’d have to log into all the servers, download all their log files, and manually try to correlate log times to error reports. Or, you’d pick a random server and watch those logs, hoping that someone who encounters the error happens to be served by that particular server.

This and other use cases is why Acquia introduced Log Streaming in 2014. With log streaming, you can watch the logs from all your servers, streamed in real time as users click around your site. This allows developers to quickly find and fix the source of problems.

Today, we’re kicking it up a notch with the release of the Log Streaming Chrome extension. With the extension, you can browse around your site and watch the logs that you are generating in real time in the Chrome Dev Tools. This way, you don’t have to wait for your users to encounter the problem - in our e-commerce example, you can go click through your checkout form yourself, and immediately see what’s wrong.

Check out the gif of the extension in action below, grab the extension now, or sign up for Acquia Cloud Free to try it out yourself today.

Jan 06 2016
Jan 06

Coming right up: a great way to start getting familiar with Drupal 8.

It's the annual Drupal Global Sprint Weekend, happening all over the world on the last weekend in January, the 30th and 31st. 

Acquia, along with Genuine Interactive and OwnSourcing, will be sponsoring the Boston location, so if you live in the general area, please stop by. 

Genuine's office, in Boston's South End, is spacious and inviting. And there will be a free lunch and plenty of beer. 

The agenda will be simple: to work on porting modules to Drupal 8, and other issues in the queue. If you have built a site in Drupal, you can contribute. 

If you've been meaning to start migrating your skills to Drupal 8, this is a perfect place to start: the atmosphere is friendly, casual, and helpful. On Saturday morning, for example, there will be hands-on "Getting Started" session for those who need it.

The deets:

When: Saturday, January 30, 10 am to 5 pm; Sunday, January 31, from 10 am to 3 pm. 

Where: Genuine, 500 Harrison Avenue. 5R, Boston, MA

The Genuine office is a 6-10 minute walk from the Broadway Red Line T stop. Or you can hop on the number 9 or 11 bus from Broadway T and get off in one stop at the Harrison Ave stop. Unrestricted parking is available on Randolph Street and certain parts of Harrison Avenue. 

RSVP here

The New England event page has all the particulars. 

And don't forget to follow the global page. It tends to expand as the event grows near. 

See you there! (And if you can't make it, help the cause by spreading the word.)

The 2015 crew

Jan 05 2016
jam
Jan 05

Part 1 of 2 - Getting beyond the talent war. I was thrilled to have the chance to sit down and have a conversation with Ambrosia Vertesti, Global VP Human Resources at Hootsuite. It's part of my exploration of how open source thinking and practices are spreading beyond the world of code to influence and improve the businesses and cultures around them; in this case, to HR practice and what has become #HROS.

"I am fiercely competitive, but I am collaborative before I am competitive." - Ambrosia Vertesi

Over the past five years running HR for Hootsuite--and growing it from 20 to 1000+ employees!--Ambrosia has had to figure out how to keep up with Hootsuite's enormous growth. Dealing with the challenging realities that many of us face at startups, like limited resources, budgets, and (perceived) talent shortages, forced her to get creative. Along the way, she and a group of her peers noticed that software professionals had institutionalized the way they benefitted from swapping favors, and connections to get things done: Open Source HR (#HROS) was born!

Apart from being fascinated to learn more about Ambrosia's world, I was exploring, peeling back the layers and trying to understand her terminology and perspective--and what drew her to open source. When I get there, I see how and why she and her peers are so keen to apply open source thought and practices to their work. It is for all the same reasons we do it in code and technology: taking advantage of commodity functionality and specializing in what differentiates you saves time, effort, and money. Giving your best back to a community of the like-minded--and admitting what you don't know--will reward you with receiving the best back from your community in return.

Interview video - 21 min.

[embedded content]

The Talent War

I heard the term "The Talent War" watching Ambrosia and Lars Schmidt co-present the keynote address at LinkedIn's 2015 Talent Connect conference.

I asked Ambrosia about it. "For a long time, the conversation around recruitment was about this 'war' for talent," she explained, "People started thinking about it as a very combative, carnivorous environment. You had to step on each other to survive. I think this idea was very destructive to HR. People are not resources, they are human beings. A rising tide floats all boats and we should be building ecosystems and we should be collaborating on what's happening in the workforce. I am fiercely competitive, but I am collaborative before I am competitive." Ambrosia points out the importance of creating more talent rather than simply trying to buy everyone on the market. "This idea of the 'War for Talent' ... talent won a long time ago. They decide what they want their education to be; they decide what companies they want to work for and what problems they want to solve. I should be supporting and enabling them in that. And supporting and enabling other practitioners about how we get better about being employers that people want to work for."

No more rock stars, ninjas, and gurus

I brought up Drupal's decade-long challenging hiring situation. Ambrosia suggests that if HR professionals thought "about how you see yourselves ... 'There's a lot of work, we want to build all these amazing things and there's not enough of us!' If we thought the same way, we'd look to partnerships with universities, resourcing the next generation of talent, you'd look at mentorship programs (and reverse mentorship programs!). Why are we not telling the story about the core competencies that are needed? Why are we not showing the data about what's being educated and what's being hired?"

"I think people are doing that now, I think there is a narrative there. But for a long time it was more like, 'There's not enough of you!' You're so precious!' And these words 'rock stars', and 'ninjas' and 'gurus' and all these horrible things. I think it is in mentorship, education and awareness," where you find the real, sustainable solutions to this problem. "I think you have to get to people really early--elementary school, even--to get people interested. As a business, creating an environment that's not a brogrammer culture, that's not based around ping pong tables, and focusing on things like diversity. I want to focus on building those environments so that it becomes more approachable for people who are interested in getting involved."

Based on my experience, I point out that the more different people--from different backgrounds, genders, geographies, and so on--you have helping to solve a problem, the better the solution will be. One thing that truly surprises me in the tech world is how little focus has been placed on diversity, especially since every other conceivable aspect of efficiency, improvement, and practice has been explored and refined to produce the best possible results. Ambrosia agrees, "We all know that. Especially if you are trying to solve a universal problem. Good luck building a technology if you're all just people in Silicon Valley, solving your own problems and drinking your own Kool Aid. You need to have everybody represented."

Fix it with data, mentorship, education, and awareness

"I think technology gets that, but it will be solved through education, accessibility, and exposure. I think a lot of people like the idea of innovation and the democratization that is happening, but if you make it not inclusive, but you make it about the cool kids, or the early adopters, or only Silicon Valley ... the decentralization of the Silicon Valley is a good thing because then people feel like it is something they could do. I hope that this is where the continued investment goes in order for people to feel like this is something as normal as becoming a nurse or a doctor."

Technology is actually approachable and learnable. Not everyone wants to be a ninja or a rock star and you don't need to be one to be in tech. "What I see, having worked in technology for ten years, the people who are creating [technologies] have to have a humility and egolessness--especially if they are working in an open source environment--because people are punching their ideas apart and they want to be collaborative. And those things are required. You see them a lot in technology teams, but as businesses evolve, you don't see the same level of vulnerability and the same level of humility. I hope in my practice, if we can go, 'Hey, we're all trying to solve these problems. No one's perfect. Stop talking about rock stars and how amazing you all are.' And lead with a little bit of, 'Here's the problem we're trying to solve ... This is what we know. This is what we don't know. Can you help us?' ... And build more partnerships, that it'll become a workplace that has a lot more talent at top of funnel."

Guest dossier

Dec 22 2015
Dec 22

Your website has been in production for months. Everything seems great until one day, you get a call. On the line is your client, clearly irritated, telling you he has been receiving lots of complaints about slowness on his website.

In order to identify the root cause of this issue, a developer can analyze the website’s source-code in search of some problematic function. But instead of analyzing the system manually, the developer can use a profiling tool such as XHProf.

XHProf is a profiling tool for PHP that is very fast and easy to use. Developed by Facebook, it’s a great choice for complex Web applications.

In this post, we will cover how to integrate XHProf and Drupal by using the XHProf module.

Installing XHProf

The Drupal community has written a post that covers XHProf installation in various environments. For that please check: https://www.drupal.org/node/946182.

Configuring the XHProf module

After enabling the module, you’ll need to configure it. In your Drupal instance, go to “admin/config/development/xhprof,” check “Enable profiling of page views and drush requests,” and save the configuration.

This will enable XHProf profiling for your site. To access the report for a given page, check the bottom of the page for an “XHProf output” link. This link will show the XHProf report, and how it relates to the current page request.

Analysing XHProf’s report

This report shows useful information about the recent request. It generates the page containing the time the server took to process the page (Total Incl. Wall Time) and the memory peak of the request (Total Incl. PeakMemUse).

The most interesting part of this report is the table of functions, which can be sorted by various criteria such as:
Incl. Wall Time: Function total processing time
Excl. Wall Time: Function total processing time excluding the time used by calls to other functions within this function scope.
Excl. MemUse: Memory used to execute the function excluding the memory consumed by other functions within this function scope.

Compare two reports

You’ll probably want to compare the performance between two runs. With the XHProf module this is easy.

Access “admin/reports/xhprof/” and choose the two reports you want to compare. The report ids will be used as url parameters in admin/reports/xhprof/diff//

Benefits of Using XHProf

By using the information gathered by XHProf, the development team can save a considerable amount of time, avoiding manual debugging of the performance issues.

The tool also serves well for scalability tests, as it can be used in testing environments that do not have much resource consumption. This feature may be most useful for projects that strictly need to guarantee a certain level of performance during usage peak times.

XHProf’s installation, and ease of configuration with Drupal, brings great value to the development team that uses it.

XHProf can save you hours of blind investigation.

Dec 14 2015
jam
Dec 14

I sat down with Rebekah Simensen & Beau Simensen as SymfonyLive Berlin 2015 was wrapping up. Beau is the maintainer of the Sculpin PHP static site generator and was until recently a voting member of PHP-FIG. Rebekah is the artist known as ninjagrl, whom I had heard of because of her #ossart, open-source-inspired work. Beau has promised to come back on the podcast soon to explain all about the PSR 7 HTTP message standard interfaces, but I didn't want to pass up this chance to meet such interesting people!

Topics covered in our conversation include Drupal 8 and its release cycle, fish, Sculpin and its origin story, Symfony and SensioLabs, ninjagrl's #ossart, PHP-FIG, and more.

Comparing company- versus community-driven projects

In our conversation, Beau and I touch on the differences and benefits between a company-driven open source project like SensioLabs supporting Symfony, Twig, and their communities and the larger, wilder world of the community-driven open source project Drupal. Beau points out that in the case of Symfony, "You end up with people who are committed to providing it. They put money into supporting the ecosystem that they're building. I think it's a nice thing and I don't see it that often. It's unique and it's interesting to see what they've done with the community. And they've still been able to build a big ecosystem around it even though it's funded by a company." He continues, "It's nice to have someone who has the final say: 'This is going to happen. This is not going to happen.'"

We then talked about the long Drupal 8 release cycle as an example of something that probably would not have gone down the same way if Dries or a specific company had tighter control over Drupal. To be fair, the Drupal core developer community has recognized this weakness and committed to regular releases and semantic versioning (new features every six months!) for Drupal 8.

Ninjagrl and #ossart

Among other projects, Rebekah's online artist persona "ninjagrl" has made a series of paintings--#ossart--"that have been inspired by the names of open-source projects, services, PHP community lingo, and related technical jargon." We talk about how she was exposed to this world through long runs with Beau and his venting about the stresses and politics of being part of PHP-FIG around 2013.

The poignant "Pull Request" ...

Pull Request by ninjagrl

Interview video - 22 min. 30 sec.

[embedded content]

Guest dossier - Beau Simenson

Beau's bio from monii.com sums it up pretty well:

I keep the engineering team running at maximum power. I architect, design and oversee platform development. This picture we’re painting? It’s got my signature all the way through it, not just in the bottom left hand corner.

Beau Simensen (@beausimensen, beau.io) has been a professional polyglot programmer since 1998. He is the Co-Founder and Software Architect for monii.com and is co-host of That Podcast (@thatpodcast, thatpodcast.io).

An active open-sourcer, he created Sculpin (sculpin.io) and helped create Stack PHP (stackphp.com). He is also the Sculpin representative to the PHP Framework Interoperability Group (PHP-FIG). Beau is a proponent of framework agnostic code. Unglue all the things!

At dflydev Beau was responsible for high-touch client services for two major clients over five years. Tasks and projects included devops, continuous integration, online resource management, enterprise application development, and writing C code for embedded systems.

For Monii, Beau is responsible for ensuring Monii’s technical execution follows (and keeps up) with the commercial requirements of the business. These responsibilities include architecture, design, and workflows to support continual development, testing, and deployment.

Dec 10 2015
Dec 10

When Acquian-authored content starts piling up elsewhere around the Web, it's time for a Scan.

In this edition: 5 handy Drupal modules, a localization client module for Drupal, and some advanced thinking from Drupal's founder on the white hot topic of "decoupling."

5 ways to extend Drupal

One of our favorite feeds, OpenSource.com, has been assembling its 2015 Open Source Yearbook.  Michael Meyers, Acquia's VP of Developer Relations, contributed an overview of five Drupal modules that will increase your Drupal power.

Meyers' recommendations are worth reading, because they are up to the minute -- i.e. post Drupal 8 release.  So (spoiler alert) his list features extensions that have gotten a lift from the Drupal 8 upgrade: Views, BigPipe, Rules, Features, and Lightning. 

A nicer way to translate Drupal modules

Gabor Hojtsy, employee #1 at Acquia, who's been leading Drupal 8's multilingual charge, has just written about the partial port to Drupal 8 of the localization client module (already available for Drupal 7 and 6) that allows you to contribute to the community right from your Drupal site.

Check out his site, to see the whole story, including a much larger version of the image below. 

Further thoughts on decoupling

Finally, Dries Buytaert, founder of Drupal and Acquia CTO, has been thinking about one of the hottest trends in the Web community: decoupled (or "headless") content management systems.  A lot of people are saying that a decoupled architecture that leverages client-side frameworks is a logical next step for Drupal.

Back in September, Dries promoted the idea of progressive decoupling. 

Earlier this week he published further thoughts on decoupling, circling around whether the Drupal community stands to benefit from decoupling Drupal. Helpful graphics, like the one below, are summoned to illustrate his ideas. 

Read Dries' thoughts, and the lively comments they have inspired, here

Till next time...

Dec 07 2015
Dec 07

Your website has been in production for months. Everything seems great until one day, you get a call. On the line is your client, clearly irritated, telling you he has been receiving lots of complaints about slowness on his website.

In order to identify the root cause of this issue, a developer can analyze the website’s source-code in search of some problematic function. But instead of analyzing the system manually, the developer can use a profiling tool such as XHProf.

XHProf is a profiling tool for PHP that is very fast and easy to use. Developed by Facebook, it’s a great choice for complex Web applications.

In this post, we will cover how to integrate XHProf and Drupal by using the XHProf module.

Installing XHProf

The Drupal community has written a post that covers XHProf installation in various environments. For that please check: https://www.drupal.org/node/946182.

Configuring the XHProf module

After enabling the module, you’ll need to configure it. In your Drupal instance, go to “admin/config/development/xhprof,” check “Enable profiling of page views and drush requests,” and save the configuration.

This will enable XHProf profiling for your site. To access the report for a given page, check the bottom of the page for an “XHProf output” link. This link will show the XHProf report, and how it relates to the current page request.

Analysing XHProf’s report

This report shows useful information about the recent request. It generates the page containing the time the server took to process the page (Total Incl. Wall Time) and the memory peak of the request (Total Incl. PeakMemUse).

The most interesting part of this report is the table of functions, which can be sorted by various criteria such as:
Incl. Wall Time: Function total processing time
Excl. Wall Time: Function total processing time excluding the time used by calls to other functions within this function scope.
Excl. MemUse: Memory used to execute the function excluding the memory consumed by other functions within this function scope.

Compare two reports

You’ll probably want to compare the performance between two runs. With the XHProf module this is easy.

Access “admin/reports/xhprof/” and choose the two reports you want to compare. The report ids will be used as url parameters in admin/reports/xhprof/diff/<report_id_1>/</report_id_1>

Benefits of Using XHProf

By using the information gathered by XHProf, the development team can save a considerable amount of time, avoiding manual debugging of the performance issues.

The tool also serves well for scalability tests, as it can be used in testing environments that do not have much resource consumption. This feature may be most useful for projects that strictly need to guarantee a certain level of performance during usage peak times.

XHProf’s installation, and ease of configuration with Drupal, brings great value to the development team that uses it.

XHProf can save you hours of blind investigation.

Dec 07 2015
jam
Dec 07

Something a little different this week: In cooperation with the Swedish "Drupalsnack" ("Talking Drupal") podcast, Leander Lindhal, Robert Douglass, & Jeffrey A. "jam" McGuire get together at the 2015 Internetdagarna in Stockholm.

Quick notes

In our conversation we go over all of our Drupal "origin stories" and reminisce about how we got where we are today, what we did, and what we do now. We talk about Drupal 8, who it's for, what it does, how every size of site and user benefit from the so-called "enterprise" features in it. We also compare it with some other options, the concept of the right tool for the job, and the value of having other perspectives (shout out Larry Garfield, Getting off the Island, and Building Bridges). Robert points out that most technology choices come down to having an honest and comprehensive requirements gathering process.

Leander asks about one of Robert's favorite topics: how (Drupal and open source) developers can be better supported financially, what options for commercializing open source software there are, and how this can relate to code/product quality and quality of life for developers. Software as a service (SaaS) products built with Drupal like Roomify come up, too.

In response to a question about standardizing Drupal development and architecture models, Acquia's Drupal distribution, Lightning came up, as well as the fact that including numerous components from other open source projects (Symfony, Twig, etc.) in Drupal 8 makes a positive difference on this front.

Links & References

Video!

[embedded content]

Dec 04 2015
Dec 04

Rok Zlender is the manager of Site Factory Engineering at Acquia. Previously he was a developer, then Director of Technology, at Examiner.com, a news site that at the time (2010-2013) was the 40th largest site in the US, publishing around 3000 stories a day. Today, Rok is still managing sites at scale, working with Acquia customers who have hundreds or thousands of websites. Rok has been working with Drupal for nine years.

What’s the trick to managing thousands of sites?

Consistency and automation. You can always handle a site or two manually: you get all your scripts ready, you kick them off on one site, then a second, maybe a third. But when you get into conversations about dozens or hundreds of sites, you really need to have robust tools that allow you to make sure that your hardware can handle it, and that the operation will not fail on even one site. Maybe 99.9 percent will be fine, but if even one site fails, that’s not acceptable.

Yes, Site Factory enables site builders, developers, and digital managers to create, deploy, and manage hundreds of websites quickly and efficiently. It offers multisite tools for developers, and a platform and user experience that lets site builders create sites quickly without depending on developers. It also makes it easy to manage a Web stack and it works really well with Acquia Cloud.

So it’s a platform that helps customers with management and automation. The tools we’ve built are very robust and can scale up to thousands of sites.

Most customers have to do security releases or module updates on their sites, but when you get into numbers that are high, it’s really important that you do it consistently across all of them. Because as soon as you have snowflakes — exceptions — those exceptions will come around to haunt you. You’ll need to fix them eventually, and at that point it will take you much longer, and require more resources. So it’s really important that you have a consistent environment across all of your sites.

That’s what Site Factory does. You commit your code in one place, kick off the deployment, and Site Factory will go in and execute the same steps on all of the sites. It will make sure that all of your code is on the newest version, and all of the sites get the latest security update. So you don’t have to worry about that. If a step fails it will retry up to a number of times, if it still fails we will make sure we put a site back into a good state.

What kinds of customers have so many sites?

Warner Music, an Acquia customer, runs hundreds. One of the biggest pharmaceutical companies in the world, an Acquia customer, also runs hundreds of sites. We have one financial customer that is in the process of migrating thousands of sites onto Site Factory, but we have others that are running 60-70 sites. A number of major universities use Site Factory to manage multiple sites. Heartland Dental, a dental chain, has moved 600 sites to the Site Factory platform in the last six months. They are really cranking out the sites.

What tools do you use to work on this scale?

We build our own execution engine, basically, that runs all of our processes. So if we’re running a site update, for example, we have our process that says, “I want to push this code, I want to put the site into maintenance mode, I want to update code on it, I want to update the database, I want to clear cache, and I want to put the site out of maintenance mode.”

And it does that on all of the thousands of sites that you have, and it does it consistently and reliably. So we build our execution engine to do that, and we execute thousands, if not millions, of tasks when we do an update. It goes through all the sites, one by one, and does the updates on them.

We do the same thing running cron, a daemon that executes commands at specified intervals. You can run cron on one, or two, or five sites manually. But when you want it to run on thousands of sites every one or two hours — that’s what our execution engine can do. So let’s say we have five servers, and you want to run cron every hour. We can say: we’ll run it at 20 percent utilization: at this minute five sites will run, and at the next minute another five sites will run, and so on. We will spread it across the hour. The customer doesn’t have to worry about that level of detail. The customer just has to say they want to run it every hour. We spread it out efficiently.

We also have an advantage because we’re running Site Factory on the Acquia Cloud platform. Everything on Site Factory runs on the Acquia Cloud. We just provide the tools to manage these high numbers of sites. So we use a cloud api to execute some commands, we use Drush to execute other commands, etc. We build our tools around the Acquia Cloud.

What it really comes down to is centralized management. You really can’t deviate from that. You’ll just get yourself into trouble, because then you’ll have a lot of different snowflakes that you have to maintain individually. So where our customers see real benefit is from one centralized platform that allows them to update all of their sites. They can be sure that all the sites are running the same version, and all of the modules are secure and updated.

How big is the Acquia Cloud Site Factory team?

We have twelve engineers, plus product management, quality assurance, documentation, and supporting systems. Most of the engineers on the team have been here a long time, and they are always thinking about how to run Drupal not on one site, but on many, many sites.

The thinking is different when you have one task that’s going to run on thousands of sites. And not one of them can fail.

Dec 02 2015
Dec 02

This started out as a very modest project, and then it grew. Like Drupal 8 itself (to a much lesser extent, of course).

The Drupal 8 Anatomy Project began back in late 2013 as a small, independent team’s attempt at starting a learning initiative for our support staff here at Acquia. Initially, the idea wasn’t to create a sprawling, comprehensive guide to Drupal 8. Rather, the genesis of the idea hatched when two "Supportians" (this is how we in Support refer to ourselves) realized that we’d need to proactively learn about the wonderful, though complex, changes being introduced with D8.

We (Aurelien Navarre was my co-conspirator) knew from experience that we would have a limited amount of time. We needed to start immediately to ensure that the largest possible number of people could learn this information. We started writing this guide because we knew we had to support -- and buy into supporting -- Drupal 8. This would be a strong way to be prepared ahead of our customers on a product that was still viewed at that time as being in its infancy.

The goal was to avoid, or at least minimize, the knowledge gulf that had infected the two of us with fear, uncertainty, and doubt.

First, we focused on porting modules from D7 to D8. We called it “migrating modules,” but as we learned, the Drupalverse has multiple uses for many terms, and “porting” is the proper term to use. Our expertise, however, was not in building custom and contributed modules: we are much more well-versed in site building and troubleshooting bugs.

So we decided to gather the D8-related information already available on the Web and build lessons with it. Since that time, many Supportians and Acquians have contributed to this living textbook. Even more have mined bits and pieces of information and instruction to create their own projects.

And now we are proud to publish (under an open source-style license from Creative Commons) our first completed chapter: Building Modules with Drupal 8.

This chapter (which contains 11 lessons) is intended to be one potential starting point for current and future Drupalists who are making the transition to Drupal 8. It is actually from the middle of the potential textbook and is listed as Chapter 5 in our working outline. Our hope is that interest in this chapter will jumpstart the completion and publication of its sibling chapters.

Who is our audience?

Right now, it is two-fold:

  • Drupal developers who have worked in Drupal 6 and 7 and are looking to make the transition to Drupal 8. This chapter will help them transition to many of the object-oriented programming practices D8 embraces.
  • Developers with experience in object-oriented programming who have yet to make the leap to Drupal 8. This chapter will help explain the anatomy of a Drupal module.

As with our larger project, we’re hoping that “Building Modules with Drupal 8” will create a core upon which other Drupalists can build. That’s why it’s licensed using creative commons for share and share alike.

Please take a look, and share with friends, associates, and fellow Drupalists. We hope you find it valuable. If you find something that we can improve upon, leave a comment.

We’re looking forward to publishing more chapters in the near future.

Nov 30 2015
Nov 30

Mike Booth, Senior Cloud Software Engineer at Acquia, on tackling concrete problems, file systems, real world Drupal -- and the value of incremental improvement. Part 1 in a series.

Mike Booth started out in electrical engineering, earning a PhD at Cornell, where he trained in laser physics and semiconductor manufacturing. But for most of his career he’s worked in Web programming.

Booth says he’s tinkered with “every layer of the LAMP stack: AWS provisioning and configuration, Ubuntu package management, Apache, Nginx, Varnish, PHP, Ruby/Passenger, Git and SVN servers, MySQL replication, GlusterFS-based distributed file systems.” Mike was also a senior member of the team that designed, developed, and launched Acquia Cloud, the AWS-based platform-as-a-service for hosting Drupal-based websites.

Today, Booth’s background in experimental physics continues to influence his approach.

“Experimental physics is a wonderful subject,” he wrote. “You learn to approach theorists with the proper balance of respect and suspicion. You learn about double-stick tape, and when to apply it to a fifty-thousand-dollar laser system. You learn that no procedure or apparatus is too simple to fail. You learn that to make working things, you must practice the art of repairing broken things.”

Below, check out Booth’s thoughts on file systems and other topics. The interview was conducted and redacted by DC Denison, who interjects the occasional question or comment under the code name “Q.”

File Systems and Real World Drupal

Drupal is a very pragmatic platform, traditionally. It’s not stuck on academic considerations. Everything that’s there is there because someone put it there, because they needed it in production, or they needed it to do their job. There’s an active dialogue about publishing websites, as opposed to esoteric aspects of software design.

As a file system guy, I’m a consumer of the product. I’m not re-engineering filesystems at a deep level, but I have to try and look at them from our viewpoint and our customer’s viewpoint and find solutions to the real problems.

It’s like, “Well, in an imaginary world, I could snap my fingers and everybody could switch to Amazon S3 (Simple Storage Service).” But no. The project has momentum and the site is live now. We have earlier versions of the thing and they’ve all been designed around earlier assumptions. You have to resist that certain philosophical perk that you get way too much of in engineering: the start-up thing that says, “I want to revolutionize file systems.”

The Challenge of Working at Acquia

The most exciting thing about Acquia to me is that we operate at such scale with such important customers. We deal with real problems that are right in front of us. They are not theoretical. Important things are happening. We are working with real live stuff in production.

Engineers often say, “I’m fond of greenfield things.” The tendency is to say, “I want to work on something that has no customers, where there’s a completely green field and I can do whatever I want.”

Q. It’s like wanting to build a new house rather than renovating an existing one.

Yes, but there’s value in working with people where they are. It means that you end up in a world of compromises and you have to negotiate your way through complicated design problems. They’re less comfortable in the world than they are in your head. At the same time, I really value being able to engage real problems, to touch real things.

I can imagine a lot of elegant ways to design a file system. It’s an academic problem for computer scientists, and it can be super fun.

But in the end, there’s also something beautiful about, “Well, I have this concrete problem and I have to solve the concrete problem for concrete customers who are right in front of me.” You have to use your design tools to target real world websites that are happening right now.

Q. Can you give me an example?

Well, the problem of abstracting a file system. I want to be able to plug one or another of various different file system candidates into our Web hosting platform and be able to use them interchangeably. How well can I hide the background details from the higher levels of the architecture? It’s not an abstract problem. It’s not a problem that I can address in an ivory tower where no one is using it.

The Value of Incremental Improvement

One of the things that’s nice about software is that if you’re not trying to dominate the headlines, but actually work on it, there’s just a ton of stuff to do. You can really help people out. If we get some new feature working, it will really help developers out with their workflows. If we can improve the stability of something by one percent, that doesn’t sound like an exciting thing, but it’s real engineering.

I studied actual engineering in school, the kind where you build semiconductors. I built semiconductor lasers. And if the laser doesn’t work, you don’t get to graduate.

You end up obsessing about things like cleaning. It’s like, “How do I wash this?” and “Did I touch it with the wrong chemical at the wrong time?” It’s all very controlled, and it’s a part of a huge system.

Somewhere, billions of people are carrying phone parts that benefitted from my earlier work. The same sort of thing applies with the work I do at Acquia. It’s like, “Oh, I’ll make this change in the file system and thousands of websites run by companies that employ millions of people are going to enjoy better efficiency. They are going to load better.” The statistics on how Web performance can improve your business are very compelling.

Most of the world works that way. Real improvements happen in tiny pieces, but the pieces pile up. Anything you can improve, even if it seems like a little thing in the corner, has a beautiful downstream effect that is sort of inspiring.

Coming next, in Part 2: the backstory on Drupal's file system, the advantages of Gluster, object storage systems, and "the big gorilla in the room" (Amazon S3).

Nov 30 2015
Nov 30

Under normal circumstances, accessing government data, creating hacks with it -- even making products with it -- would be seen as irresponsible, and possibly criminal.

Once a year, however, a multitude of Australian Government departments across federal, state and local levels get together to do all three, and the push the government further towards open data.

The event, GovHack, was first conceived in 2009 as a Gov 2.0 Taskforce project, with the directive to take data from government APIs and use skills in Web/app development, hardware engineering, design, and UX to create a more useful and usable experience for Australians to consume. Since then it has evolved into an event that is entirely community- and volunteer-run, with an international presence and thousands of participants annually.

Acquia become involved in 2014, when the events were held in Canberra. Acquians helped run both the local events and the hacks themselves. As a company, we stepped it up another notch for the 2015 event taking on the roles of both silver sponsorship and mentoring the event nationwide.

As a solutions architect, I work with customers to establish technical solutions, providing guidance about capabilities, and how to leverage tools effectively. As a GovHack mentor, I took that same approach to the teams competing, assisting them in thinking up novel ways to use government data, help engineer displays, and architect the final implementations.

I worked with teams using Drupal, other frameworks, and entirely custom application code. It was exciting to see the innovation arising from inspired teams that had open slather (Australian for "complete freedom") to play with open government data.

For teams using Drupal, we were able to provide the use of the full Acquia Cloud platform for their projects, enabling them to focus on module development and theme design rather than the provisioning of an entire infrastructure stack.

The results

The culmination of this intense 48 hours of hacking was reached a month after the teams started working, with the bestowing of awards at the GovHack red carpet event.

Acquia and Microsoft worked collaboratively through all Public Service team entries to pick the winner in our sponsored category. Finally coming out on top for us was Pick a Park by team "Feature Creeper and the Creeps." Not only was the submitted entry a good example of what a minimum viable product should look like, but it also showed an understanding of the data sets used in the build, rather than just a blind application of data to functionality.

Great to hear also was the news that two Acquia-mentored projects -- True Stories by team "Potato Heads," and Care Factors by team "Social Hackers" -- were runners up in their respective categories.

From here

As a GovHack sponsor and mentor, it was great fun to get involved in some of the hacks that were built, not only for the duration of the event, but also afterwards. Acquia is still providing a highly available best-of-breed Drupal platform for the Care Factors team, and I’m still working with the True Stories team on their extension and platform infrastructure. Even though it’s not Drupal, the use case is compelling enough for me to think it has real potential.

As both a mentor, a technologist, and a GovHacker myself, I’m looking forward to next year's GovHack 2016, where we can enable more hacks, push for a greater degree of open data -- and improve the user experience and useability of government websites as we do it!

Nov 30 2015
Nov 30

Under normal circumstances, accessing government data, creating hacks with it -- even making products with it -- would be seen as irresponsible, and possibly criminal.

Once a year, however, a multitude of Australian Government departments across federal, state and local levels get together to do all three, and the push the government further towards open data.

The event, GovHack, was first conceived in 2009 as a Gov 2.0 Taskforce project, with the directive to take data from government APIs and use skills in Web/app development, hardware engineering, design, and UX to create a more useful and usable experience for Australians to consume. Since then it has evolved into an event that is entirely community- and volunteer-run, with an international presence and thousands of participants annually.

Acquia become involved in 2014, when the events were held in Canberra. Acquians helped run both the local events and the hacks themselves. As a company, we stepped it up another notch for the 2015 event taking on the roles of both silver sponsorship and mentoring the event nationwide.

As a solutions architect, I work with customers to establish technical solutions, providing guidance about capabilities, and how to leverage tools effectively. As a GovHack mentor, I took that same approach to the teams competing, assisting them in thinking up novel ways to use government data, help engineer displays, and architect the final implementations.

I worked with teams using Drupal, other frameworks, and entirely custom application code. It was exciting to see the innovation arising from inspired teams that had open slather (Australian for "complete freedom") to play with open government data.

For teams using Drupal, we were able to provide the use of the full Acquia Cloud platform for their projects, enabling them to focus on module development and theme design rather than the provisioning of an entire infrastructure stack.

The results

The culmination of this intense 48 hours of hacking was reached a month after the teams started working, with the bestowing of awards at the GovHack red carpet event.

Acquia and Microsoft worked collaboratively through all Public Service team entries to pick the winner in our sponsored category. Finally coming out on top for us was Pick a Park by team "Feature Creeper and the Creeps." Not only was the submitted entry a good example of what a minimum viable product should look like, but it also showed an understanding of the data sets used in the build, rather than just a blind application of data to functionality.

Great to hear also was the news that two Acquia-mentored projects -- True Stories by team "Potato Heads," and Care Factors by team "Social Hackers" -- were runners up in their respective categories.

From here

As a GovHack sponsor and mentor, it was great fun to get involved in some of the hacks that were built, not only for the duration of the event, but also afterwards. Acquia is still providing a highly available best-of-breed Drupal platform for the Care Factors team, and I’m still working with the True Stories team on their extension and platform infrastructure. Even though it’s not Drupal, the use case is compelling enough for me to think it has real potential.

As both a mentor, a technologist, and a GovHacker myself, I’m looking forward to next year's GovHack 2016, where we can enable more hacks, push for a greater degree of open data -- and improve the user experience and useability of government websites as we do it!

Nov 23 2015
Nov 23

One of the great things about Drupal is its flexible system of nodes and taxonomies. This allows for bespoke categorization of many types of content.

At Parse.ly, we wanted to take advantage of that. Parse.ly, which has an alliance with Acquia to bring joint tech solutions to the worlds biggest media companies, works with hundreds of digital publishers to provide audience insights through an intuitive analytics platform.

By using Parse.ly’s dashboards and APIs, publishers at any stage of the digital process can build online strategies that allow them to grow and engage a loyal audience.

Beyond precise measurement of views, visitors, shares, and time, Parse.ly includes breakouts of on-page attention, mobile devices, and visitor retention. Publishers can use this data to identify high-quality long-form content, engaging images and videos, new traffic sources for distribution, and audience interest segments that lead to loyalty.

Yet Drupal’s flexibility, while allowing for highly complex websites, has made it a challenge to take full advantage of Parse.ly’s capabilities, primarily because only experienced Web developers with HTML, CSS, and JavaScript chops could integrate the tools. Thus, integrating Parse.ly with a Drupal site heretofore meant each individual site had to make use of a dedicated Drupal developer to roll a custom solution.

The proposed solution: To alleviate this burden, we decided that a dedicated Drupal module which handled this integration for all sites wanting to use Parse.ly made a lot more sense. This would help publishers integrate with the Parse.ly platform to create fully custom sites benefitting from the full power of Parse.ly’s data-mining tools, without requiring them to have someone with in-depth programming skills to map the nodes and taxonomies onto Parse.ly’s back-end.

How it would work: The Parse.ly Drupal plugin would automatically insert the required Parse.ly page tag and JavaScript on all of the published pages and posts -- making it easier than ever to figure out what content is driving visitors to a site, and why.

Benefits of integrating Parse.ly + Drupal

The new Parse.ly for Drupal module is a great example of how well a proprietary platform can integrate with Drupal. For this, Parse.ly was fortunate to work with Forest Mars, founder at The Mars Group, to complete the first version of the Parse.ly Publishing Analytics project.

Mars said of the project: “Parse.ly is a good match for Drupal because Drupal is a dynamic publishing platform with the ability to create and manage complex content relationships; this gives Parse.ly a high level of control over what content is reported and numerous integration points for control over how these analytics get reported.”

Some interesting aspects of the integration

The integration takes advantage of Drupal’s powerful framework and community of contributors.

Drupal is an ecosystem comprised of thousands of modules, built by thousands of developers. These modules offer site owners the unique ability to add new features and additional behaviors to existing code without having to modify the code itself.

To put it simply, developers can use combinations of modules, aka “recipies,” as building blocks to create additional functionality in Drupal. The initial module for Parse.ly enables sites to track certain content and reader actions, and, thanks to Drupal’s underlying architecture (or “Aspect Oriented Programming” in technical speak) other developers have the ability to take these integrations even deeper.

Anticipating interest from other developers in integrating the Parse.ly module with their own projects, the initial release includes a stub for future token integration in the Parse.ly build. Token, which is the 3rd most widely used of all contributed Drupal modules, provides small placeholders that  can be used in the Web interface to represent a data connection that would otherwise require writing a lengthy bit of code.

The Parse.ly module roadmap also includes possible integration with Metatag module which can provide the logic of when and where to output tags using tokens. The Metatag module also enables configuration inheritance.

Ultimately, the Parse.ly module will allow any data on a publishing website anywhere to be integrated in a way that is more customizable than traditional tools like Google Analytics.

Development made possible on Github

Rather than limit development to Drupal.org, the Parse.ly module is on Github, which is is automatically (some would say magically) synched to Drupal.org using the Hubdrop platform. In this way, any developer can fork the code from the Parse.ly repository on Github, and contribute changes with a pull request. Hubdrop then automagically pushes those changes to the Parse.ly module on Drupal.org. This means that developers who are not familiar with the idiosyncracies of Drupal.org can easily contribute to Parse.ly using a more standard git process on the widely used Github platform.  

The integration is highly configurable.

The Parse.ly Drupal plugin is highly configurable and takes advantage of Drupal’s rich architecture. For tech newbies who who need to quickly and easily install the plugin and start tracking data on their website, it is essentially plug-and-play. However, for advanced power users, the plugin serves as a forward-looking toolset for any publishing website -- with lots of options for customization. As a matter of fact, in this first release, the configuration page has at least a dozen options -- all organized in drop-down menus so they are not so intimidating.

Using the Parse.ly Drupal module

Parse.ly’s easy integration with Drupal modules is a testament to Parse.ly’s simplicity, and Drupal’s plug-and-play ecology. The module serves as a roadmap for deep integration with any data on any website. Data on your website that you need to view from a business perspective, you can view from the Parse.ly dashboard.

The Parse.ly plugin integrates analytics and metadata on your site in just a few clicks. Here’s how to integrate Drupal and Parse.ly:

  1. Download and install the Drupal module from https://www.drupal.org/project/parsely.

  2. Enable the Parse.ly module in the “Modules” page of Drupal under the “Statistics” subheading, and hit save.

  3. Go to the Parse.ly settings page at: Configuration > Search And Metadata > Parse.ly.

  4. Enter the Parse.ly Site ID (You can find your Site ID on your your settings page) and configure the plugin according to how your Drupal site uses nodes and/or taxonomies (the plugin requires you to choose one or the other to work).

  5. Click “Save” and your integration is ready to go!

A small piece of JavaScript code monitors user actions taken on your site and relays them to the Parse.ly analytics server. These insights allow you to see your data in the way that makes the most sense to you, with both real-time analytics to help you inform ever-fluid social strategies as well as historical data that can give you a unique perspective on your content and how your audience interacts with it.

Once Parse.ly is up and running, organizational elements within Drupal may be used as section tags for use in tracking via Parse.ly, thus avoiding the need for assigning individual tags to trackable elements.

Again, one of Drupal’s biggest benefits is its extremely flexible node and taxonomy system, and we’ve accounted for that flexibility within the plugin itself. Whether you use content types, or taxonomies and tags for managing your site's published sections, we’ll help you get your data into Parse.ly as quickly and painlessly as possible.

Because of the power and flexibility of both Drupal and Parse.ly, wiring the two together took some time. But now, by simply installing the plugin, you can experience the power and versatility of Drupal with insights from Parse.ly -- and see just how your audience interacts with your content, both over time and in the last ten minutes!

Nov 23 2015
Nov 23

One of the great things about Drupal is its flexible system of nodes and taxonomies. This allows for bespoke categorization of many types of content.

At Parse.ly, we wanted to take advantage of that. Parse.ly, which has an alliance with Acquia to bring joint tech solutions to the worlds biggest media companies, works with hundreds of digital publishers to provide audience insights through an intuitive analytics platform.

By using Parse.ly’s dashboards and APIs, publishers at any stage of the digital process can build online strategies that allow them to grow and engage a loyal audience.

Beyond precise measurement of views, visitors, shares, and time, Parse.ly includes breakouts of on-page attention, mobile devices, and visitor retention. Publishers can use this data to identify high-quality long-form content, engaging images and videos, new traffic sources for distribution, and audience interest segments that lead to loyalty.

Yet Drupal’s flexibility, while allowing for highly complex websites, has made it a challenge to take full advantage of Parse.ly’s capabilities, primarily because only experienced Web developers with HTML, CSS, and JavaScript chops could integrate the tools. Thus, integrating Parse.ly with a Drupal site heretofore meant each individual site had to make use of a dedicated Drupal developer to roll a custom solution.

The proposed solution: To alleviate this burden, we decided that a dedicated Drupal module which handled this integration for all sites wanting to use Parse.ly made a lot more sense. This would help publishers integrate with the Parse.ly platform to create fully custom sites benefitting from the full power of Parse.ly’s data-mining tools, without requiring them to have someone with in-depth programming skills to map the nodes and taxonomies onto Parse.ly’s back-end.

How it would work: The Parse.ly Drupal plugin would automatically insert the required Parse.ly page tag and JavaScript on all of the published pages and posts -- making it easier than ever to figure out what content is driving visitors to a site, and why.

Benefits of integrating Parse.ly + Drupal

The new Parse.ly for Drupal module is a great example of how well a proprietary platform can integrate with Drupal. For this, Parse.ly was fortunate to work with Forest Mars, founder at The Mars Group, to complete the first version of the Parse.ly Publishing Analytics project.

Mars said of the project: “Parse.ly is a good match for Drupal because Drupal is a dynamic publishing platform with the ability to create and manage complex content relationships; this gives Parse.ly a high level of control over what content is reported and numerous integration points for control over how these analytics get reported.”

Some interesting aspects of the integration

The integration takes advantage of Drupal’s powerful framework and community of contributors.

Drupal is an ecosystem comprised of thousands of modules, built by thousands of developers. These modules offer site owners the unique ability to add new features and additional behaviors to existing code without having to modify the code itself.

To put it simply, developers can use combinations of modules, aka “recipies,” as building blocks to create additional functionality in Drupal. The initial module for Parse.ly enables sites to track certain content and reader actions, and, thanks to Drupal’s underlying architecture (or “Aspect Oriented Programming” in technical speak) other developers have the ability to take these integrations even deeper.

Anticipating interest from other developers in integrating the Parse.ly module with their own projects, the initial release includes a stub for future token integration in the Parse.ly build. Token, which is the 3rd most widely used of all contributed Drupal modules, provides small placeholders that  can be used in the Web interface to represent a data connection that would otherwise require writing a lengthy bit of code.

The Parse.ly module roadmap also includes possible integration with Metatag module which can provide the logic of when and where to output tags using tokens. The Metatag module also enables configuration inheritance.

Ultimately, the Parse.ly module will allow any data on a publishing website anywhere to be integrated in a way that is more customizable than traditional tools like Google Analytics.

Development made possible on Github

Rather than limit development to Drupal.org, the Parse.ly module is on Github, which is is automatically (some would say magically) synched to Drupal.org using the Hubdrop platform. In this way, any developer can fork the code from the Parse.ly repository on Github, and contribute changes with a pull request. Hubdrop then automagically pushes those changes to the Parse.ly module on Drupal.org. This means that developers who are not familiar with the idiosyncracies of Drupal.org can easily contribute to Parse.ly using a more standard git process on the widely used Github platform.  

The integration is highly configurable.

The Parse.ly Drupal plugin is highly configurable and takes advantage of Drupal’s rich architecture. For tech newbies who who need to quickly and easily install the plugin and start tracking data on their website, it is essentially plug-and-play. However, for advanced power users, the plugin serves as a forward-looking toolset for any publishing website -- with lots of options for customization. As a matter of fact, in this first release, the configuration page has at least a dozen options -- all organized in drop-down menus so they are not so intimidating.

Using the Parse.ly Drupal module

Parse.ly’s easy integration with Drupal modules is a testament to Parse.ly’s simplicity, and Drupal’s plug-and-play ecology. The module serves as a roadmap for deep integration with any data on any website. Data on your website that you need to view from a business perspective, you can view from the Parse.ly dashboard.

The Parse.ly plugin integrates analytics and metadata on your site in just a few clicks. Here’s how to integrate Drupal and Parse.ly:

  1. Download and install the Drupal module from https://www.drupal.org/project/parsely.

  2. Enable the Parse.ly module in the “Modules” page of Drupal under the “Statistics” subheading, and hit save.

  3. Go to the Parse.ly settings page at: Configuration > Search And Metadata > Parse.ly.

  4. Enter the Parse.ly Site ID (You can find your Site ID on your your settings page) and configure the plugin according to how your Drupal site uses nodes and/or taxonomies (the plugin requires you to choose one or the other to work).

  5. Click “Save” and your integration is ready to go!

A small piece of JavaScript code monitors user actions taken on your site and relays them to the Parse.ly analytics server. These insights allow you to see your data in the way that makes the most sense to you, with both real-time analytics to help you inform ever-fluid social strategies as well as historical data that can give you a unique perspective on your content and how your audience interacts with it.

Once Parse.ly is up and running, organizational elements within Drupal may be used as section tags for use in tracking via Parse.ly, thus avoiding the need for assigning individual tags to trackable elements.

Again, one of Drupal’s biggest benefits is its extremely flexible node and taxonomy system, and we’ve accounted for that flexibility within the plugin itself. Whether you use content types, or taxonomies and tags for managing your site's published sections, we’ll help you get your data into Parse.ly as quickly and painlessly as possible.

Because of the power and flexibility of both Drupal and Parse.ly, wiring the two together took some time. But now, by simply installing the plugin, you can experience the power and versatility of Drupal with insights from Parse.ly -- and see just how your audience interacts with your content, both over time and in the last ten minutes!

Nov 19 2015
Nov 19

We just released Drupal 8.0.0! Today really marks the beginning of a new era for Drupal. Over the course of almost five years, we've brought the work of more than 3,000 contributors together to make something that is more flexible, more innovative, more easier to use, and more scalable.

Drupal 8 has been a big transformation for our community. This particular reboot has taken one-third of Drupal's lifespan to complete. In the process we've learned that reinvention doesn't come easily or quickly. There are huge market forces happening around us, and we can't exactly look away. Mobile is moving our society to near-universal, global internet access. Most companies have begun to transform themselves digitally, leaving established business models and old business processes in the dust. Digital experience builders are turning to platforms that give them greater flexibility, better usability, better integrations, and faster innovation. The pace of change in the digital world has become dizzying. If we were to ignore these market forces, Drupal would be caught flat-footed and quickly become irrelevant.

But we didn't. I'm proud to see that we've responded to these market forces with Drupal 8, and delivered a robust, solid product that can be used to build next-generation websites, web applications and digital experiences. We've implemented a more modern development framework, reimagined the usability and authoring experience, and made technical improvements that will help us build for the multilingual, mobile and highly personalized experiences of the future. From how we model content and get content in and out the system, to how we build and assemble experiences on various devices, to how we scale that to millions and millions of pageviews -- it all got much better with Drupal 8.

I'm personally incredibly proud of this release. Drupal 8 is the result of years of hard work and innovation by thousands of people, with lots of attention to detail at every level. Congratulations to everyone who stepped up to contribute; this was only possible thanks to your persistence and tireless hard work. It took a lot of learning, our best thinking and our best people to create Drupal 8, and I'm very, very proud of what we have accomplished together.

For 15 years, I have believed that Open Source offers significant advantages to proprietary solutions through superior innovation. Today, I believe that more than ever. Drupal 8 is another key milestone in helping us win and doing what is best for an open web. Of course, our job is not done but now is the time to have fun and celebrate this monumental milestone. Tonight, we'll be hosting almost 200 parties around the world. (It's also my 37th birthday today and the release of Drupal 8 along with all those parties is pretty much the best present ever!)

[embedded content][embedded content]

Nov 18 2015
Nov 18

Gabor Hojtsy verbatim: on one of the important new features of Drupal’s latest platform, advice to administrators of older sites, mixing human and machine translation, and the overall value proposition of multilingual in Drupal 8.

Gabor Hojtsy is the Drupal 8 Multilingual Initiative lead. Previously Gabor was the Drupal 6 lead maintainer, working as a gatekeeper for fixes and improvements to help keep Drupal 6 stable and working great. He also worked on Acquia's launch, the Acquia Network, Drupal Gardens, Spark and then Drupal 8 core. He has a Master of Computer Science degree from the Technical University of Budapest. Below, Gabor on a variety of multilingual topics.

How Drupal 8 supports multilingual site administration

The three important things to note are:

  1. Everything knows its language in Drupal 8. If you deal with the site name or view or field setting or a block or menu item or something else – everything knows its language. That’s very important because that allows us to do translations for them. Once we know their language, we know what we are translating from.
  2. We built in translation solutions for other things, i.e., everything in the software, everything in your content repository, and everything in configuration. We covered all the bases for translation user interfaces.
  3. We sprinkled little improvements across the board such as transliteration for machine names, admin language settings, etc. All these small things make your life easier when you deal with supporting language.

Advice to administrators of older sites

Somebody asked me: “I’ve got a complicated Drupal 6 site with Spanish and English. Should I try to upgrade it or start over and import the content?”

Good news! In 8 these are the same, because it comes with the migrate module to support version updates. We are building the Drupal 6 to Drupal 8 migration, which is in fact a site rebuild. So what you are doing is migrating existing content from your Drupal 6 site to your Drupal 8 site, and some of the configuration, as much as the migrate module can migrate. That happens in the new instance for the Drupal 8 site so you don’t need to copy Drupal 8 and replace your Drupal 6 and hope that it’s not going to break. We have a solution for that as a separate site, you can migrate to that and use that to test migration and reproduce issues and figure out if you’re done or not.

Mixing human and machine translation

The main focus is to have data about your languages and to have some user interfaces for translation. Machine translation is possible to integrate into this system but is not integrated by default. You can use a field to mark content that was machine translated and build a simple workflow support page in Views to review that content for accuracy (and/or disclose to site visitors which translation was human-reviewed).

There are two existing solutions in the works for Drupal 8 to integrate a more serious translation workflow. One is Lingotek and the other is the suite of translation management tools, TMGMT. Both of them are in the works for Drupal 8 and both integrate with machine translation and provide you with workflow to manage your translations across configuration, content, and interface. With those, you can manage the workflow however you wish. You can do both human and machine translation.

The overall value proposition of multilingual in Drupal 8, in a nutshell

My colleague, Jeffrey A. “jam” McGuire, summarized it best. He said that multilingual in Drupal 8 is a huge business advantage. We will save incredible amounts of time and money, and deliver better experiences than we were ever able to do before. This not only allows you to do things faster, it also allows you to do things better, which is kind of a great combination, I would say.

Where to find out more

If you are interested in more information, the multilingual core initiative itself has a site at drupal8multilingual.org. There’s a short summary video and breakdowns of all the features that we’ve added.

Nov 17 2015
Nov 17

The Australian Government launched govCMS earlier this year, a custom Drupal distribution and hosting service catering to all of the Australian government. The aim is to provide a single solution for unclassified websites using a common codebase and a shared feature set on a scalable and secure infrastructure.

As a technical architect at Acquia I have been involved in both the distribution itself (a fork from aGov) and building some of the first major sites that use govCMS at their core. Here are a few thoughts on the platform so far.

govCMS is truly open-source.

The Department of Finance has embraced the open-source universe with govCMS. It is being actively developed in a transparent environment (GitHub) and anybody is welcome to provide feedback and suggestions on how the platform may be extended or improved upon. You can also contribute directly to the project; start by reading the guidelines

Provided the change is sane, and provides generic benefit to all govCMS users there is a very good chance your contributions will be embraced.

Sharing is caring.

Something that comes up time and time again is the ability to reuse and share common components between government websites. As functionality is built out for one site there is an opportunity to have these discrete chunks pushed back into govCMS as standalone features for others to use.

For example: the Department of Communications has developed the ability for members of the public to "Have Your Say" on various topics, to help influence the decision-making process. This feature is one that can be bundled up and shared with other govCMS site owners, so they can benefit from existing development efforts.

One point worth making: to take advantage of this capability, it's important to build features in a way that is generic enough for reuse. At the very least these features should be created to ensure that they can be modified via the administrative UI, so nothing remains fixed and rigid.

You can't install modules willy-nilly.

govCMS is not "just Drupal." While there are 30k modules available for Drupal to extend the platform, you are not free to simply install any module you want. Care and consideration need to go into each and every module added to the codebase, to prevent bloat and ensure the security and longevity of the platform.

This means that every now and then you will find that the distribution lacks a module you feel you need. In each instance where this has happened, we've been able to use the processes that is in place for the extension of govCMS. This has allowed us to move past this issue and resolve it, even when dealing with more complex third party integrations.

govCMS sites can be unique snowflakes.

Even though you are using a shared, common codebase to drive your site build, you still have a decent amount of flexibility to do your own thing. While govCMS comes with some out-of-the-box themes to run with, most sites launched in the past 6 months have been built on top of heavily-customised themes. This means that no two... sites... look... alike.

There is also nothing stopping you from grabbing the codebase and tweaking to fit your needs. It's a sane starting point for many projects (even outside the government sphere).

govCMS is a work in progress.

govCMS is a great start, but as with all software projects there is always room for improvement. There are still refinements to be made to govCMS, not only at the codebase level but also in terms of processes, documentation, and resources to help get more people involved.

Nov 16 2015
Nov 16

Acquia Engineering is excited to be open-sourcing Statsgod, a reimplementation of StatsD we created internally to help scale our metrics collection effort.

Acquia developers often create tooling to build, deploy, and monitor applications we run on Amazon Web Services, and Statsgod is one such tool that we want to make publicly available. Statsgod was designed to be highly scalable and easily deployed.

Features Added

StatsD was originally created by Etsy and we have used it in production for years. However, we found that as our metrics systems grew, StatsD was starting to become a bottleneck. We needed to capture and aggregate metrics locally for high performance services, such as computing Varnish stats in real time for tens of thousands of websites doing billions of pageviews monthly. Our solution was to connect Varnish to statsgod over a local socket to avoid network latency, and the bottleneck of a single StatsD instance.

We chose to write statsgod using Go for its speed and its great standard library of networking and concurrency primitives. Since Go compiles to native binaries, deployments became easy and self-contained. We could rely on Go for great performance.

For example, we used channels to keep the client responses as fast as possible. When a client writes to the socket, we can read the stream, put the data onto a channel, and close the socket immediately. Thus, a client is not penalized for the time required for complex parsing and aggregation. Aggregation is handled later by a Go routine that pulls all of the metrics from the channel.

We added a few other features as we went. Statsgod can listen on TCP, UDP or Unix Domain Sockets. It allows for token-based authentication. We also added a lot of testing. Statsgod has 100 percent test coverage using clean abstraction and mocking. The repo includes an end-to-end soak test to send millions of metrics, and verify that they were all received and correctly parsed.

Dependency Management

When starting work on Statsgod we wanted to be able to pin Go package versions and have specialized groups depending on the environment. We decided to use the Gom package manager to handle this. The ‘Gomfile’ syntax is very similar to that of Ruby Bundler, allowing us to work in a familiar workflow. It also allows us to use specific development and production groups thanks to a pull request we submitted back to the project.

Deployment

Because Go builds native binaries, deployment is much easier than with the Node.js-powered StatsD. Statsgod includes Debian packaging to make things very straightforward; it can also be built inside a Docker scratch container, which helps reduce the complexity of building a release.

Go Profiling

While developing Statsgod, we put the application through rigorous testing to find bottlenecks. Using the runtime.pprof library and the end-to-end tests, we found several inefficiencies. One of the worst offenders was the strings package. By converting to byte buffers, we were able to reduce about 75 percent of the workload. Below is an example of the profiling graph (click on the image to see a larger version). See the profiling documentation for more information.

Profiling Go applications can really help to expose inefficiencies that are not immediately obvious.

Future of Go at Acquia

Statsgod was our first Go initiative within Acquia. Since then our developers have embraced Go for a variety of projects. We find that Go is a fit for any application requiring concurrency and lower-level networking. We have also found that Go is very testable, providing a platform for writing safe, robust code. Over the last year Go has quickly risen to a first-class language for Acquia engineering teams, joining PHP, Ruby, and Java as a preferred language for developers.

Statsgod contributors:

(BTW,  Acquia is hiring for a number of positions, including Cloud Software Engineer.)

Nov 06 2015
Nov 06

For the past few years, I've been fascinated with credit card-sized budget computers, most especially the one that started the current revolution in hardware hacking, the Raspberry Pi.

I have owned every model Raspberry Pi: I have a network of Raspberry Pi A+ computers running an environment monitoring service in my house, and I have a couple Raspberry Pi B+ computers running different services on my local network. But I've been most interested in doing fun things with Drupal on Raspberry Pis.

Once the Raspberry Pi model 2 was released earlier this year—with an upgraded 4-core processor, and twice the RAM (a full Gigabyte!), I wanted to really test the limits of Raspberry Pi-based infrastructure. I bought six of the model 2 computers, along with a network switch, power supply, and chassis, and built myself the Pi Dramble—a cluster of Raspberry Pis running Drupal 8.

Raspberry Pi Dramble

If you're interested in building your own 6-node Drupal 8 infrastructure using Raspberry Pis, I encourage you to check out the Raspberry Pi Dramble project on GitHub. There's a parts list, a guide for building a base microSD card image for all the servers, a guide for deploying Drupal to the Dramble, and even comprehensive benchmarks on Drupal, microSD cards, and networking!

But I don't expect most people to spend over $400 buying Pis and other accessories just for tinkering. That's why I also created the Drupal Pi project.

Building Your Own Drupal Server

There are hundreds of guides online for installing Drupal in a huge variety of environments, even on Raspberry Pis, but many of them take you step-by-step through command line instructions that are brittle and prone to breaking any time there are new Drupal versions, Raspberry Pi versions, Raspbian (the OS the Pi runs) versions, etc.

Instead of doing that, I'm going to introduce a way to install and run Drupal on your Raspberry Pi using Ansible and some open source Ansible roles that do everything in a more maintainable way. In fact, almost all of the code that is used to build the single Drupal Pi is shared with a ton of other projects that build Drupal servers, like Drupal VM, Pi Dramble, and the Drupal example from my book, Ansible for DevOps!

Acquiring the Raspberry Pi

First, of course, you will need a Raspberry Pi. Preferably a Raspberry Pi 2 model B, as it's the fastest Pi available. You need a Raspberry Pi, a micro-USB power adapter (with at least 1A of power), a microSD card (get at least 8 or 16GB so you have room to grow, and check out this list for recommendations!), and either a network cable (if you have wired networking), or a small USB WiFi adapter.

Once you have everything together, download a copy of Raspbian Jessie and write the downloaded image to your microSD card following the Raspberry Pi foundation's instructions for Installing Operating System Images.

Setting up the Raspberry Pi

Plug a monitor and keyboard into the Raspberry Pi, then plug in the micro USB power cable, and let the Raspberry Pi boot up into it's GUI environment.

Once it's booted, open the Terminal from the menu bar, and enter the following command to install Ansible:

sudo apt-get update && sudo apt-get install -y python-dev python-pip && sudo pip install ansible

Install Ansible with apt-get

It will take a few minutes for everything to be downloaded and installed via pip (Pip is a package manager for Python, like Composer for PHP). If you have an older Raspberry Pi, then it could take 10-20 minutes to install Ansible.

Make sure Ansible is working and you have a version greater than 1.9 by running ansible --version in the Terminal (when it comes back to the prompt, like [email protected] ~ $):

Ansible version

Now that you have Ansible installed, you can download the Drupal Pi project and use it to get a proper LEMP stack and Drupal 8 running on your Raspberry Pi!

Installing Drupal with drupal-pi

First, clone the drupal-pi project to your Pi:

git clone https://github.com/geerlingguy/drupal-pi.git && cd drupal-pi

Then copy the example configuration and inventory files to remove the example. prefix:

cp example.config.yml config.yml && cp example.inventory inventory

Finally, install all the required Ansible roles for setup to complete:

sudo ansible-galaxy install -r requirements.yml

At this point, you're ready to install Drupal 8! The last command will run the entire Drupal Pi Ansible playbook, which will install and configure Nginx, PHP, and MySQL, then download and install Drupal 8:

ansible-playbook -i inventory -c local main.yml

Let this playbook run for a while (it will take at least ten minutes to complete), and at the end, you should see a screen like the following:

Drupal Pi Ansible playbook complete

Drupal 8 should now be running on your Raspberry Pi, available over port 80. On your Raspberry Pi, you can either access http://localhost/ or a domain (if you set one up in your /etc/hosts file). On another computer on your network, you can either access http://[IP-address-of-Pi]/ or a domain (if you set one up in your /etc/hosts file).

Drupal 8 installed and running on Raspberry Pi

Next Steps

After you get Drupal installed, you might have some questions like can the Raspberry Pi handle production levels of traffic? Or what kind of things can I do with Drupal 8 on a Raspberry Pi? We'll take a look at those questions and more in some upcoming blog posts!

Make sure to check out the following resources for more information about Drupal, Ansible, and Raspberry Pis:

  1. Drupal Pi on GitHub
  2. Raspberry Pi Dramble project
  3. Ansible for DevOps

Pages

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web