In my last post I gave the cheat sheet for installing the Drupal CMS. I did not describe the big picture. I did not explain why I installed an enterprise application like Drupal on my AWS instance. It was the "shoot first, ask questions later" approach, rather than the British Army's "Proper Planning and Preparation Prevents Piss Poor Performance" approach. Here is the justification for that work.
If you followed that Drupal install procedure, well done! You are a true sysadmin. Most people don't put in the time and effort required to build a Drupal server. Many go for a ready-made AMI - one that works out of the box - such as the Pantheon AMI package from Chapter Three. They may even avoid infrastructure altogether and use a Drupal PaaS instead.
Here's a quick reminder of how Drupal looks from the inside: Drupal is written in the PHP programming language and uses the Apache HTTP Server to deliver content to customers. The HTTP server uses an add-on PHP processor to turn the PHP scripts into dynamic action. Most Drupal configuration, product content, and reports are stored in a database. The database work is usually handled by the MySQL server.
Why use a CMS in an enterprise?
Every department wants to communicate. The demand for collaboration is immense. A CMS (Content Management System) is a tool for distributing information written by people for people to aid collaboration.
A CMS appeals to different people in different ways. A non-technical employee loves a good CMS because it hides the technical complexity, allowing him to have his say without worrying about all that HTML nonsense. A team manager loves it because workflow, access control, and other popular features are built-in. A developer loves it because the framework is extensible - she can program new modules, integrate it with enterprise services, and tweak the interface to her hearts' content.
Why choose Drupal?
There is no way I am getting involved in writing a CMS from scratch. Only crazy people write a made-to-measure business app from the ground up. An off-the-peg application helps an enterprise cut down the development time for a business application by providing ready-made features.
The most recent CMSs I installed for clients are Drupal and Umbraco (and Sharepoint, but I would rather forget that experience). Both Drupal and Umbraco are free, well made, and have made my clients happy. The platform makes the difference here: Drupal runs on many OSs but Umbraco needs Microsoft.
Licensing is free. Drupal is an open source product built by a community. There are no licensing costs. This also brings the benefit of open source innovation, in the form of many enterprise solutions. Some enterprises have a religious objection to open source products so this can be a show stopper.
Enterprise support is available. Unfortunately, as with all open source products, obtaining enterprise support can be confusing. There is no controlled support structure like there is with the closed source market; OpenText ECM Suite, Autonomy Interwoven Teamsite, and IBM Web Content Manager are commercially licensed products, supported by the companies that own the products and their partners. Drupal enterprise support is offered by many consultancies such as Four Kitchens, Acquia, and Palantir.
Drupal's build quality is excellent. Drupal is a popular off-the-shelf CMS application that has been around for years so many wrinkles have been ironed out. All the usual business requirements have been factored out into a core set of features, and there is a huge library of optional extras to meet less common needs. For instance, the Drupal administrator interface allows one person to manage the application and the editor web interface allows another person to add information.
The number of Drupal installs is huge. It powers over 330,000 web sites. It is not the most popular - first prize goes to the blogging application Wordpress with over 4,445,000 sites. Installing and maintaining Drupal involves a learning curve, so casual users tend to use ready-made SaaS sites instead.
Why install it in a public cloud rather than a private network?
Both locations have their merits. Here are a few benefits of sitting my application in the cloud.
- Internal resources are scarce. There is no need to reserve my company's scarce resources for my Drupal site. I don't need bare metal speed with a CMS because, when dealing with people, there is no requirement to shave milliseconds off transactions.
- Global availability. An enterprise distributed over many geographical locations often has firewalls blocking internal access. All locations have HTTP access to the Internet.
- Future proofing. Half the enterprise IT will be migrating to the cloud over the next couple of years, so I am getting a head start. I can use this work to start putting some processes in place around cloud use.
- Scale out. I will find it easier to add more machines to my Drupal cluster in the cloud rather than internally, and add them instantly. Drupal scales well for large sites which is why it is used by global businesses, governments, and universities.
Also see:Ryan Boudreaux's Gallery: 15 Drupal CMS-powered websites
Nick Hardiman builds and maintains the infrastructure required to run Internet services. Nick deals with the lower layers of the Internet - the machines, networks, operating systems, and applications. Nick's job stops there, and he hands over to the designers and developers who build the top layer that customers use.