For those of you that read the enterprise article I posted recently, or
attended the OSCMS Conference at Yahoo, you're probably familiar with the needs
of corporate customers. Or at least the needs as I see it.
At the top of the list of almost every single customer we have is
change management. Period.
Specifically, how to lower the cost of change management, how to reduce the
cost of upgrading Drupal, and specifically how to estimate and understand the
costs of doing Drupal-based change management
.
Change is inevitable in all stages of a Drupal-based software project. Change
management will help you direct and coordinate those changes, and provide best
practices, so that chage itself can become a force that enhances-not
hinders-your project.
In fact, the only constant in software development is change. So why is it so
expensive in Drupal?
As this topic has been getting some attention as of late, we thought it was
time to provide an update, and a vision about where we're going (hint: it's
beyond site profiles
, though that's
extremely useful).
At WorkHabit, we have been working hard to address one of the most pressing
concerns in the Drupal community. Drupal is currently somewhat expensive to
upgrade and support, though not considerably more than many commercial software
alternatives. But wouldn't it be nice if we could lower the cost complexity of
Drupal change management?
Now, before you assume this is flame bait, let me tell you about some of the
unique initiatives we've and working on in order to alleviate some of the
problems. First let's outline some known quantities about Drupal:
- Drupal has a new release approximately every six months
- Drupal is made up of core, which is the code that it ships with, and contrib
modules
- contrib modules are generally delivered from individual authors
- contrib modules are varying quality, and many have significant performance
and code maintenance impact on the site
- traditionally, upgrades between major Drupal releases has been relatively
seamless for core, at least compared to contrib modules
- contrib module upgrades have often been less seamless, and many times
contrib module updates happen months after core has been released
- in addition, there can be a great deal of complexity migrating between
contrib modules especially in cases where technology has transitioned from one
module to another. A good specific example of this is when flexinode became cck,
or at least when CCK became the preferred method
This is the current Drupal reality. To keep up at upgrades its required a
great deal of time, and I don't expect that to change overnight. But what I do
think in change is a reduction in the overall cost and complexity of upgrades,
including upgrades between major versions and contrib modules.
So, how do you solve all that?
Well, let me first say that we're not out to build the
universal business adapter
(IBM does that, they advertised it), or a process
tool (like SCM) - our goals are achievable and clear.
We're definitely not out to try to create a giant monolithic software product
that "does everything" like so many become - quite the opposite. We need
something simple that "just works" even if it requires a little setup.
That's because a successful change management system coordinates people,
process, and technology in a logical, effective, flexible manner that makes
sense. And to do that, people have to be able to use it.
And a large part of creating this tool is actually in creating the best
practice - essentially providing guidelines about what works really well for
creating Drupal-based websites.
This is going to drive down the cost of Drupal, but it's also going to speed
up development, and make it easier for us all to do our jobs.
Change management gives you insite and control over the evolution of your
Drupal software. The data you collect by implementing proper tools can reduce
the risk of projects, make development more predictable, and help you learn from
your mistakes. In the long run, managing change with a tool reduces the time to
market considerably, improves code quality, and increases end-user satisfaction.
We need a tool to manage, rather than just react to and watch, software
change.
AutoPilot: Drupal Change Management
For several months we've been working with an internal project called AutoPilot
.
Autopilot is named for Cruise
Control
, a fantastically useful application that's used to do continuous
integration with Java based projects.
Autopilot has a number of goals, many of which are going to require the
participation, support, and the willingness of the community to implement.
So what's the vision?
The first step is to implement social build management. This is a term that I
coined, and I have no idea if it's unique or not, to describe the idea of being
able to do changes to website in a multitier development, staging, live
environment set up while people are contributing to your live environment.
One of the biggest problems has been the fact that as you work on stuff in
development the copy of the database and website you have gets more and more out
of date, to the point where becomes extremely difficult to reconcile with the
live site. This is because people are actively working on the live site, and in
the case of large communities there may be tens of thousands of posts between
the time that you start a project and when you release it, especially with major
engineering efforts.
This is impossibly difficult.
So the first goal of autopilot is to implement social build
management.
This is basically built on top of the idea that you can deliver
a product that can keep track of, or make irrelevant the need to have,
reconciliation between development, staging and production environments. Work on
social build management has been going well. We announce the product as soon as
we had a working for basic Drupal build management, but decided not to release
it until we actually had social build management working, because the vast
majority of sites would not actually be able to utilize the static build
management system as it's really only useful for corporate websites, and that's
not what's exciting about Drupal.
The second goal of autopilot is compliance.
Delegating someone in your
organization to run builds can provide a useful check off for QA, preventing the
possibility of unauthorized pushes to live websites. In addition because of the
fact that you can split who pushes to QA and who pushes to live, you're well on
your way to Sarbanes-Oxley compliance (yep, Sarbox + Drupal = good).
The third goal of autopilot is test driven development and continuous
integration.
This would be so what astoundingly cool for the Drupal
community. Effectively being able to bring Drupal into proper agile methodology
compliance, and make it the preferred platform for test driven development and
agile programming in PHP. This is not a small task, and will require the support
of the Drupal community to accomplish, but it will extend Drupal's lead over the
majority of systems available.
The fourth goal of autopilot is streaming Drupal delivery.
This is
about building this description-based Drupal, that enables customers to do
updates on demand based on what's been committed to source control. This idea
has been around in the community for some time, and we have used it ourselves
with great effect on many projects. however, being able to combine test driven
development and continuous integration with streaming Drupal is going to enable
us to do DrupalCasting. There, I said it. Drupal + Casting = DrupalCasting, and
it's the way man... it's so the way.
DrupalCasting is the ability to keep your site subscribed to updates, and
simply be able to click a button inside of autopilot to sink to the latest
version, test that versions against the unit tests that are written for your
site including custom code, and get a result that lets you know that everything
went okay for that you need to take a look. And remember, because everything is
happening on a development server now, as opposed to just working in production,
you have the opportunity to sit down and take a look without stressing out about
site outage. This is an incredibly powerful capability, and will drastically
drive down the cost of Drupal management.
Combined with installation profiles, DrupalCasting is going to have an impact
on the way that Drupal gets delivered.
So as you can see autopilot has some fairly ambitious goals.
Our intention right now is simply to deliver the social build management.
This is enough of a contribution to make a significant impact. And once
released, we will be able to focus our time on improving the existing product
based on user feedback. While I don't think it's possible to out innovate the
Drupal community, I do think it would be possible to move too quickly on this
platform and end up making some architecture decisions that would render render
it less effective had it been architected otherwise. So the intention is to move
through each one of these goals, basic build management, social build
management, continuous integration, and then eventually test driven development
with continuous integration, in a step-by-step fashion in a manner that "just
works" for customers.
Right now we are continuing to do integration on the social build management
component of autopilot. It's likely this integration work will take another few
weeks. Many people asked me to commit to a solid release date, and I'd like to.
But right now the entire project is funded by our ongoing consulting work, so
are always looking for time and it's not always easy to find it. But we have now
committed several months worth of work to the platform, and will be delivering
another few months worth of work -- in terms of people hours -- over the next
few months.
By the way, did we mention the entire system (so far) is built inside of
Drupal?
In fact, the way this works is that autopilot is able to work as a
Drupal multisite installation, reaching out through the Apache Web server using
an embedded certificate to other servers, so yes it actually does support
multiserver setups. We're really excited to release his product, and consider it
our first really major individual contribution to the Drupal community.
We'll be posting new articles on autopilot over the next two weeks as we
implement and move towards a release date, including announcing a more firm
release point for our open source code. We would strongly appreciate assistance
with this work, and welcome earnest collaborators.
A solution to this problem that this project hopefully provides is far more
important than anyone consulting company.
please download realted code from https://workhabit.svn.beanstalkapp.com/public/drupal/contrib/autopilot/trunk/
分享到:
相关推荐
《Front End Drupal: Designing, Theming, Scripting》是一本由Konstantin Käfer与Emma Hogbin共同编写的书籍,由Prentice Hall PTR于2009年4月15日出版。该书主要面向使用Drupal构建网站的设计者和开发者,旨在...
使用这个 Composer 包安装 Drupal: 不习惯作曲家? 第一步是安装 Composer。 这本质上是一个单行过程: curl -s https://getcomposer.org/installer | php Windows 用户可以在此处下载 phar 文件:[ composer)...
欢迎使用@ koromerzhin / template-drupal :waving_hand: 网站模板模板 :house: 需要 软件: 制作 码头工人 库罗默任(Koromerzhin)/ traefikproxy储存库 配置: 码头工人 主持人: drupal.traefik.me Récup...
cbf-drupal:用于CBF的Drupal模块
drupal:验证和检查版本 drupal验证和检查版本扩展名为: 现在支持最新版本!!! - 验证是否使用drupal构建了网站并检测其版本 - 显示哪些次要版本更新可用于下载并提供直接链接 - 显示哪些主要版本更新可用于下载并...
头盔图:Drupal 。 这些是利用Helm安装Drupal的说明。 该图表将使您可以设置和配置Drupal以及其他集成: 使用ProxySQL配置MySQL 使用PGBouncer配置的PostgreSQL 雷迪斯漆请查阅我们的体系结构图以获取有关Azure的...
docker-drupal Docker 上的 Drupal示例用法注意:以下过程已确认在 OS X 上使用boot2docker和boot2docker docker-compose 。 git clone ...
litmos 和 litmos_feature 模块会将您的课程从 CallidusCloud 的 Litmos 学习平台导入到您的 Drupal 站点作为节点。 启用模块后,您将在管理配置页面中看到 Litmos 设置。 输入您的 Litmos API 凭据以启用自动课程...
Drupal employs a specialized templating system and supports themes, which allow you to change the look and feel of the system's front and back-end interfaces. Drupal 6 Themes is an ideal introduction...
"blog-drupal:将我的博客后端从旧的Forestry版本更新为Drupal" 这个标题表明了本次讨论的核心内容是关于一个博客项目,其后端管理系统正经历从旧版的Forestry CMS到Drupal的迁移过程。Forestry是一款用于Jekyll和...
Drupal 8 Explained is for people who want a fun and clear introduction to Drupal and requires absolutely no experience with Drupal, content management, site construction, programming, scripting, or ...
"presentacion-taller-drupal:Drupal研讨会的演讲"这个标题表明我们关注的是一个关于Drupal的专题研讨会,其中可能涵盖了Drupal的高级使用、最佳实践以及最新发展趋势。 在描述中提到“要查看演示文稿,请单击”,...
Drupal 8 Configuration Management will teach you everything you need to know about the Configuration Management system and get you started with using its features quickly. For more advanced users, the...
**Ansible角色-Ansible-role-drupal:自动化Drupal部署与管理** Drupal,作为一个流行的开源内容管理系统(CMS),在Web开发领域被广泛使用。而Ansible则是一款强大的IT自动化工具,可帮助管理员进行配置管理、应用...
【标题】"ab2015-drupal:学术信息学 2015 Drupal 课程学习"揭示了这个压缩包内容的主题,它聚焦于2015年在学术信息学领域内的一次Drupal课程的学习资源。Drupal是一个强大的开源内容管理系统(CMS),常用于构建和...
【标题】"jolinotif-drupal:将 JoliNotif 库集成到 Drupal 中" 在Drupal这个流行的PHP内容管理系统(CMS)中,开发者经常寻求更高效、更直观的方式来与用户进行互动。JoliNotif 是一个轻量级的 PHP 库,允许开发者...
模块以下是您在每个项目中都应该拥有的一些模块: - Drupal 6、Drupal 7 - Drupal 6、Drupal 7 - Drupal 6、Drupal 7 - Drupal 6、Drupal 7 - Drupal 7 - Drupal 6、Drupal 7、Drupal 8 - Drupal 6、Drupal 7 - ...
在“public-site-and-workspace-drupal”项目中,我们可以看到 Drupal 被用于创建 Motion Bank 的公共网站和工作区。Motion Bank 是一个艺术与技术相结合的平台,可能涉及到舞蹈、多媒体艺术以及创新的在线交互。 ...
基于drupal-composer/drupal-project Drupal 8 drupal-composer/drupal-project 。 该项目由许多不同的存储库组成,下图概述了它们之间的关系。 用于定义和构建项目。 有关详细信息,请参见composer.json 。 该存储...
要开始使用此docker4drupal本地环境实例,请更新Makefile: 用{PRODUCT_NAME}将所有字符串更新为您想要的名称。更新docker-compose.yml 1.要开始使用此docker4drupal本地环境实例,请更新Makefile: 使用docker-...