Planet Drupal

Simple Website Approach Using a Headless CMS: Part 1 I strongly believe that the path for innovation requires a mix of experimentation, sweat, and failure. Without experimenting with new solutions, new technologies, new tools, we are limiting our ability to improve, arresting our potential to be better, to be faster, and sadly ensuring that we stay rooted in systems, processes and...

HubSpot provides a powerful combination of customer relationship management (CRM) features and insights that can help organize and maintain business processes tied to customers. Drupal is a key digital platform for businesses, especially for inbound customer engagement, marketing initiatives, and 3rd party integrations. The two systems are highly complementary and deserve consideration for logically separating the responsibilities of digital engagement and customer relationship management. Additionally, both HubSpot and Drupal are very flexible and customizable. As an example, both systems support extensible data structures through custom fields in HubSpot and through the entity system in Drupal that allow for implementation-specific data to be stored and maintained.

Adopting DevOps Model For Drupal Development Shankar Mon, 09/24/2018 - 09:43

Software and the internet have metamorphosed the world and its industries ranging from shopping to entertainment to banking. It is no longer something that just supports a business. Instead, it has become an integral part of every part of a business. Organisations interact with their customers through software that is delivered in the form of digital service or application and on all kinds of devices. They also leverage software to enhance operational efficiencies by transforming every part of the value chain. This is where DevOps plays a key role.


DevOps is having an astronomical role to play in the rapid IT service delivery mechanisms. And when it comes to Drupal development, DevOps can be instrumental in streamlining project delivery involving Drupal. Before we traverse deeper into how Drupal can benefit from DevOps, let’s look at this terminology called DevOps.

Evolution of DevOps


Sometime between 2007 and 2008, when IT operations and software development communities were vocal about some of the calamitous level of dysfunction in the industry, DevOps started to coalesce.
 
Developers and IT/Operations professionals had separate goals, separate department leadership, separate key performance indicators, and, most often than not, they worked on separate floors. As a result, isolated teams were only concerned about their own fiefdoms, long hours, botched-up releases and dissatisfied customers.

People like Patrick Dubois, Gene Kim and John Willis pioneered the evolution of DevOps model

‘There must be a better way’ was the notion that propelled the two communities coming together and talking about betterments in software deliveries. People like Patrick Dubois, Gene Kim and John Willis pioneered this conversation.
 
Therefore, what began in online forums and local meet-ups is now a significant theme in the software zeitgeist which is probably what brought you here!

What is DevOps and how does it work? "DevOps represent a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach"

DevOps constitutes Dev which refers to software application development and Ops which denotes IT operations. DevOps is not a framework or a workflow but a culture that is overtaking the business world.

Gartner states that “DevOps represent a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture) and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology — especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective”.

Development and operations teams are not siloed under a DevOps model. Sometimes, these two are teams are combined to form a single team where the engineers work across the entire application lifecycle ranging from development and testing to deployment and operations. Thus, engineers wind up developing a range of skills which are not limited to a single function.

Quality assurance and security teams may become more firmly incorporated in some DevOps models with development and operations and throughout the application lifecycle. When security becomes the point of focus for everyone on a DevOps team, this is sometimes called as DevSecOps.

These teams leverage practices for automating processes that have been, historically, manual and sluggish. They make use of tech stack and tooling which assist them while operating and evolving applications rapidly and reliably. These tools also help engineers autonomously accomplish tasks like deploying code or provisioning infrastructure thereby enhancing team’s velocity.

Benefits of DevOps Source: Algoworks

Incorporating DevOps into the business workflow brings in a lot of merits.

High velocity

Using DevOps, move at high velocity so that you can build digital innovations faster, adapt to altering markets better and grow more efficacious at driving business results. For instance, microservices and continuous delivery allow teams to take ownership of services and then swiftly release updates.

Scalability

Infrastructure and development processes can be operated and governed at scale. Automation and consistency assists in governing intricate and changing systems effectively and with less risk. For instance, infrastructure as a code assists in handling the development, testing and production environments in a repeatable and more efficacious manner.

Faster delivery

Enhance the frequency and pace of releases so that you can build innovate and improve your projects quicker. The faster you can release new features and fix bugs, the quicker you can respond to needs of customers and develop a competitive advantage. For instance, continuous integration and continuous delivery are the practices that can automate the release process right from the build stage to the deployment phase.

Reliable delivery

Quality of application updates and infrastructure alterations can be ensured so you can reliably deliver at a faster pace, thus, providing a positive experience to the end users. For instance, continuous integration and continuous delivery can be leveraged for testing each of the alterations and ensuring that it is functional and secure. Monitoring and logging practices assist you to be apprised of performance in real-time.

Security

DevOps model can be adopted without compromising on security by using automated compliance policies, fine-grained controls and configuration management mechanisms. For instance, defining and then tracking compliance at scale is possible using infrastructure as code and policy as code.

Collaborative efforts

More effective teams can be built as the DevOps model stresses on values such as ownership and accountability. Developers and operations team collaborate closely, share responsibilities, merge their workflows.

Best practices for the adoption of DevOps model Source: Cygnet Infotech

There are significant practices that help businesses to implement DevOps model in the best possible way and get the most out of it.

Performing small updates frequently

These updates are more incremental in nature in comparison to the occasional updates performed under traditional release practices. They assist teams to address bugs quicker as the teams can easily identify the last deployment that resulted in the error. Even though the cadence and size of updates may vary, the DevOps model helps in deploying updates more often than the firms who use traditional software development practices.

Using microservices architecture

Making use of microservices architecture helps firms in making their applications more pliable and allow faster innovation. Decoupling large, intricate systems into simple, autonomous projects is possible with microservices architecture. Applications are divided into many individual components or services where each of the services are scoped to a single purpose or function. They are operated independently of its peer services and the applications as a whole. Such an architecture minimises the coordination overhead of updating applications. When each of the services is paired with small, agile teams, businesses can move more swiftly.

Leveraging continuous integration and continuous delivery

Combination of microservices and enhanced release frequency might lead to numerous deployments which can pose operational hurdles. Hence, DevOps practices like continuous integration and continuous delivery help in resolving these issues and allow businesses to deliver faster.

Making use of infrastructure as code

Infrastructure automation practices like infrastructure as code and configuration management allows you to keep computing resources elastic and responsive to frequent alterations.

Monitoring and logging the workflow

Use of monitoring and logging allows the engineers to track the performance of applications and infrastructure thereby reacting swiftly to the issues.

Implementing DevOps model for Drupal development DevOps Dashboard Template | Source: Smartsheet

The DevOps movement is leading the way forward for higher quality Drupal projects, quicker delivery, happier team members, and satisfied clients for projects of any scale. A digital agency used a Drupal development process to outline key pieces to a reasonable, DevOps-based workflow irrespective of the hosting platform or the different tools you choose to use.

The DevOps movement is leading the way forward for higher quality Drupal projects, quicker delivery, happier team members, and satisfied clients for projects of any scale

The agency maintains a pre-configured Drupal 8 install profile that lives on Github which is also mirrored on Packagist. This helps in kickstarting all the new projects with a working theme, pre-configured content types, Media bundles, Paragraph bundles and other elements.

A solid local development workflow is integral to any continuous workflow environment. Developers build new features or fix bugs on their local machines and the alterations are pushed to Github for triggering several actions. The agency experimented with DrupalVM and Lando which offered easy, repeatable processes for enabling developers and contractors to easily spin up a local environment matching production environment.

For this agency, the build code for each project like composer.json and any custom modules or theme reside in Github. Every time a pull request is made, their code is automatically deployed to a continuous integration server and to a live web environment.

For incorporating modern DevOps techniques, it needed a programmable hosting platform to let developers and other systems like continuous integration server to automate and interact with the platform. It worked extensively with both Acquia and Pantheon hosting which offered a different set of tools.

It leveraged continuous integration server called Circle CI for automatically spin up and test a new version of the site every time the developer introduces a new functionality or a bug fix to the git repository.

Automated functionality tests are another important part of DevOps strategy which this agency used to a great extent. Each time a commit is pushed, a complete version of the site spins up on CircleCI which runs through a series of automated Behat tests for verifying key functionality. CircleCI automatically notifies the hosting environment if the tests pass thereby spinning up a new branch and a new copy of the site. When the Github pull request is submitted on that branch, the final CricleCI build is triggered. When the tests are successful, the code is automatically combined with the production site.

Future of DevOps

According to a Capgemini report, 60% of the companies have opted for DevOps model or are planning to do so eventually. That means DevOps is being widely accepted as a key component of a business strategy. As DevOps continues to grow, some of the future possibilities that are expected to transpire along with the increase in DevOps adoption is being outlined here.

Perpetual growth of DevSecOps

Much in the same way, DevOps has the objective of inculcating continuous delivery in the business workflow, DevSecOps expands this to include security. Looking forward, this trend of incorporation of security into the DevOps pipeline will make businesses more inclusive with security tools and practices becoming part of the early development cycle.

DevOps and IoT

Increasingly, hardware manufacturers working on IoT devices would see software as a significant component of their project. This comprises the integration of DevOps into their business workflow making it absolutely compulsory to have people perpetually work on both hardware and software designs.

Monitoring to become the new testing

At the current and future scale, it is a formidable task and impractical to test all conceivable scenarios at the end of the product cycle. Rather than doing this, it is much more worthy to monitor for live issues and rectify them in short cycles. Testing puts a limitation on what you may find as it required you to think of certain problems to look out for.

But, monitoring will bring up issues as they happen. Adoption of monitoring will permit companies to understand the way their software runs in real situations thereby offering quick information about their systems.

Kubernetes to become standard for cluster computing

More companies will join the project and offer services on top of their operating systems. Moreover, extensions will be made for running applications in the cloud. Many of the major cloud providers are starting to provide Kubernetes as a service. Even a serverless Kubernetes will be on offer where nodes are managed by the cloud provider thereby creating another level of abstraction and simplicity for the developers. This general advancement within Kubernetes will lead to an enhanced adoption of advanced monitoring, logging and metric studying within companies.

Removal of (server) operating systems as we know them

This trend links back to Kubernetes becoming a main operating system for the cloud and clusters/containers that means operating systems would be replaced by the ones that can run containers in a Kubernetes cluster. Furthermore, operating systems for hosts will face implications from containers as in these new environments they will no longer have a host.

Conclusion

Continued growth of DevOps into new industries is opening doors for incorporating new departments such as security, enhancement in product monitoring and the standardisation of Kubernetes for cluster computing. DevOps and its accompanying benefits will become the norm as the integration of more departments into the beginning of the product pipeline would transpire and a rise in monitoring would improve solutions and designs.

DevOps strategy would have a positive impact on Drupal development as well and improve the project timeline and delivery. Opensense Labs strongly believe in the digital innovation and can help you provide amazing digital experiences through Drupal development.

Tell us how you want us to be part of your digital transformation journey at hello@opensenselabs.com.

blog banner blog image DevOps Drupal DevOps Blog Type Articles Is it a good read ? On

This is the second post about the latest developments regarding the editorial experience in Drupal 8 based on a couple of presentations at Drupal Europe 2018.

Gutenberg editor

One project that could make a huge difference in the way the editors perceive Drupal could be Gutenberg.

Gutenberg was being presented at Drupal Europe by the Norwegian agency Frontkom. This contrib module integrates Gutenberg, the React javascript editor that originated from Wordpress, into Drupal.

Gutenberg can be enabled on a per content type level and replaces the node edit form with a blank canvas where the editor can create content using Gutenberg blocks as shown in the demo.

By default, various types of blocks are available to the editor, such as headings, text paragraphs, images and Drupal blocks (like the ones for example provided by the Views module). Other Gutenberg blocks can be custom made and the authors are about to launch the Gutenberg Cloud, a library from where blocks via a UI in Drupal can be installed on your website.

What remained unclear form the presentation was how Gutenberg blocks are being stored in the database and whether the individual blocks can be retrieved in a structured way for example to expose it as a REST resource.

The plan is to launch Gutenberg at the end of this year.

The full presentation is available on Youtube:

Improve Paragraphs with lesser known features

More and more site builders implement Paragraphs to let the users build structured content in a very flexible way. Therefore it was great to see Milos Bovan of MD Systems demonstrate at Drupal Europe-about a couple of lesser known features.

Using the following features you can make Paragraphs even better than it already is.

  • Use the style plugin to give each paragraph a specific style that can be used for CSS styling. The style can be chosen from the node edit form.
  • Add paragraphs to a library so you can reuse them elsewhere in the site. A listing is available to show all the paragraphs that are available in the library. You can promote a paragraph to the library and change it once to have it automatically updated everywhere in the site. If you dont want that then unlink it from the library so that the changes do not affect the paragraphs elsewhere.
  • Use the drag and drop mode to make it easier to order the paragraphs on de entity edit form. In combination with the collapse mode you can drastically improve the paragraphs UI which, often can be quite messy.
  • Organize a long messy list of paragraph types creating type groups. In the UI these groups will become available as separate tabs and by using icons for the types you can make the UI a bit more intuitive.
  • Convert paragraph types. This will allow you for example to convert an existing unstructured text field into a structured card paragraph type.
Multistep forms

Multi Step forms are an important feature of a website or application as it gives users a much better experience when submitting their data. It increases the users motivation to finish filling in the form leading in the end to a much higher conversion rate.

The contrib module form steps seems to to a good job in managing the complexity of the multistep form.

Several contributed modules among them Webform, allow building a multistep form but they are often limited in scope, hard to customize or are simply only available for Drupal 7. Alternatively a multistep form can be achieved by writing your own custom code which could at some point lead to an unmaintainable situation.

The form step module on the other allows creating multistep forms by leveraging the new Drupal 8 core feature of form modes. Much like view mode, form modes are different ways of presenting a drupal form (for example a user profile form or a node edit form).

The Form steps modules, as demonstrated at Drupal Europe by the Drupal agency Actency , lets you create workflows where that are collections of different form modes so that you can present the user with a multistep form. Each step in the workflow is linked to a particular form mode of a specific content type. As a result the user creates several nodes (possibly from different content types) when he follows the steps of the multiforms.

The workflow also manages the progress bar of the multistep form, giving the user the option to navigate through the different steps of the form.

The form step seems to provide a robust solution to a feature that many of us would like implement or should starting to implement in our Drupal websites.

This week we talked with Mike Gifford. Read about what his company is striving to achieve, where he thinks has been a lot of movement in the last 2 years regarding Drupal and what contribution to open source is he proud of. READ MORE
How does Drop Guard know what to do? About Update behaviors & Events

A tool only performs as good as it’s configured and handled.
This post gives detailed insights into the important touch points of the Drop Guard actions you need to configure in order to benefit from a smooth and individual update pipeline. 

Drupal Planet Drupal Automation Drop Guard QA Drop Guard recipes

This is the sixth installment in a series presenting work on shared configuration that comes out of the Drutopia initiative and related efforts, beginning with Part 1, Configuration Providers.

Our main focus has been updating configuration from distributions--specifically, the question:

How can I update my site so that I have all the latest configuration changes from a distribution--while still retaining any customizations I made?

Updates are well and good. But before packages of configuration can be updated, they need to be produced and managed in the first place. In Drupal 8 as in previous major versions, that task is the domain of the Features module.

The Drupal 8 version of Features is a complete rewrite with major improvements over previous versions. If you're familiar with previous versions but haven't used Features in Drupal 8 this backgrounder will bring you up to speed.

Despite being a development-focused tool, Features is in the top 40 or so most installed contributed Drupal 8 modules. Features is used in building and maintaining several of the more-used Drupal 8 distributions including Open Social, Varbase, Open Church, and Quick Start. It's a key build tool for the Gitlab-hosted Drutopia project.

In this installment we'll cover Features in Drupal 8, including how to use it to produce a distribution.

Culture. It's the only truly sustainable competitive advantage for a Drupal business.  But what does that look like in action? I've seen firsthand how that culture extends far beyond Mediacurrent's business and customer service approach, shaping the way we network. 

We have all been to a party, lunch, or even coffee and cookies with a vendor trying to make a connection with you or your company. You can separate all of these into two basic categories: those that you walk into and have fun and those you walk into defensively because you know the goal is to pitch a sale to you.

Hosting a networking event can be a costly endeavor for your company and there is no guarantee that you will receive a high percentage of return on your investment. Between your time investment, activities, and potentially cost of a space, expenses can begin to pile up quickly.

Hitting that optimal zone where customers or potential clients will feel relaxed and are open to conversation is key to reaching your maximum potential for ROI for your event. There are several ways you can do this, but it all starts with one word.

Passion.

Passion for what you love is the difference between just hosting an event and connecting with the community in your field of business. The goal is to show your passion for what you do, and the community you are in -- in our case, the open source and Drupal communities.  

Take the Dave and Paul approach for example. Over DrupalCon 2018, they threw an amazing after party hosted by Mediacurrent. Everything down to the invites was inclusive to all (not just those with purchasing power) with the message of “Hey, we are throwing a party, come to hang out! Hope to see you there.” Every single person was treated like a friend.

While at the party, the sales team focused on just interacting, listening to people’s experience and thanking the community for showing up. This approach made people feel so comfortable that if they had a sales question, they would just ask.

When a person feels welcomed, unpressured and a part of the group, then it's easy for them to make the leap from conference attendee to a potential client. Remember: you and everyone who attends your function is a part of the same community. If you view them as just potential sales, then this will be translated into your body language and verbiage.

In closing, being a part of the Mediacurrent team has reaffirmed for me the value of networking with authenticity. Hosting your event with the passion you have for the community you are a part of will shine through to everyone who attends and solidify you in their mind as the right partner for their project.

Xdebug over the command line with DDEV Mon, 09/24/2018 - 16:00 mglaman

I moved over to DDEV for my local development stack back in February. One of my favorite things is the ease of using Xdebug. You can configure Xdebug to always be enabled, or turn it on and off as needed (my preferred method.) When you have Xdebug enabled, it also enables it for any PHP scripts executed over the command line. That means you can debug your Drush or Drupal Console scripts like a breeze!

This article is based on using Xdebug within PhpStorm, as it is my primary IDE.

Drupal 8.6 has shipped with the Media Library! It’s just one part of the latest round of improvements from the Media Initiative, but what a great improvement! Being brand new it’s still in the “experimental” module state but we’ve set it up on this website to test it out and are feeling pretty comfortable with its stability.

by Rikki Bochow / 25 September 2018

That said, I highly encourage you test it thoroughly on your own site before enabling any experimental module on a production site. Don’t just take my word for it :)

What it adds

The Media Library has two main parts to it...

Grid Listing

There’s the Grid Listing at /admin/content/media, which takes precedence over the usual table of media items (which is still available under the “Table” tab). The grid renders a new Media Library view mode showing the thumbnail and compact title, as well as the bulk edit checkbox.

Field Widget

Then there’s the field widget! The field widget can be set on the “Manage Form Display” page of any entity with a Media Reference Field. Once enabled, an editor can either browse existing media (by accessing the Grid Listing in a modal) or create a new media item (utilising the new Media Library form mode - which is easy to customise).

The widget is very similar to what the ‘Inline Entity Form’ module gave you, especially when paired with the Entity Browsers IEF submodule. But the final result is a much nicer display and in general feels like a nicer UX. Plus it’s in core so you don’t need to add extra modules!

The widget also supports bulk upload which is fantastic. It respects the Media Reference Fields cardinality, so limit it to one - and only file can be uploaded or selected from the browser. Allow more than one and upload or select up to that exact number.  The field even tells you how many you can add and how many you have left. And yes, the field supports drag and drop :)

What is doesn’t add WYSIWYG embedding

WYSIWYG embed support is now being worked on for a future release of Drupal 8 core, you can follow this Meta issue to keep track of the progress. It sounds like some version of Entity Embed (possibly limited to Media) will make it’s way in and some form of CKEditor plugin or button will be available to achieve something similar to what the Media Entity Browser, Entity Browser, Entity Embed and Embed module set provides currently.

Until then though, we’ve been working on integrating the Media Libraries Grid Listing into a submodule of Media Entity Browser to provide editors with the UX improvements that came with Media Library but keeping the same WYSIWYG embed process (and the contrib modules behind it) they’re currently used to (assuming they’re already using Media Entity Browser, of course). More on this submodule below.

This is essentially a temporary solution until the Media Initiative team and those who help out on their issue queue (all the way from UX through to dev) have the time and mental space to get it into core. It should hopefully have all same the bulk upload features the field widget has, it might even be able to support bulk embedding too!

View mode or image style selectors for editors

Site builders can set the view mode of the rendered media entity from the manage display page, which in turn allows you to set an image style for that view mode, but editors can’t change this per image (without needing multiple different Media reference fields).

There is work on supporting this idea for images uploaded via CKEditor directly, which has nothing to do with Media, but I think it would be a nice feature for Media embedding via WYSIWYG as well. Potentially also for Media Reference Fields. But by no means a deal breaker.

Advanced cropping

From what I can gather there are no plans to add any more advanced cropping capabilities into core. This is probably a good thing since cropping requirements can differ greatly and we don’t want core to get too big. So contrib will still be your goto for this. Image Widget Crop is my favourite for this, but there’s also the simpler Focal Point.

Testing out the Media Entity Browser submodule

You can test out the submodule from the patch on this issue and let us know what you think! Once the patch is added, enable the submodule then edit your existing Entity Browsers and swap the View widget over to the “Media Entity Browser (Media Library)” view.

It shouldn’t matter if you’ve customised your entity browser. If you’ve added something like Dropzone for drag-and-drop support it *should* still work (if not, check the Dropzone or Entity Browser issue queues). If you’ve customised the view it uses however, you might need to redo those customisations on the new view.

I also like updating the Form Mode of the Entity Browsers IEF widget to use the new Media Library form display, which I always pair back to just the essential fields (who really needs to manually set the author and created time of uploaded media?).

You still can’t embed more than one media item at a time. But at least now you also can’t select more than one item when browsing so that’s definitely an improvement.

Plus editors will experience a fairly consistent UX between browsing and uploading media on fields as they do via the WYSIWYG.

Once setup and tested (ensuring you’ve updated any Media Reference Fields to use the new Media Library widget too) you can safely disable the base Media Entity Browser module and delete any unused configuration - it should just be the old “Media Entity Browser” view.

Please post any feedback on the issue itself so we can make sure it’s at its best before rolling another release of the module.

Happy days!

I hope you have as much fun setting up the Media Library as I did. If you want to contribute to the Media Initiative I’m sure they’ll be more than happy for the help! They’ve done a fantastic job so far but there’s still plenty left to do.

Tagged Media in Core, CKEditor

What our clients are saying

I realized that I had picked the right company to work with soon after beginning a project with Peerless Design, Inc.
...a pleasure to work with, combining patience (for my busy schedule and at times overwhelmed brain) with her strong motivation and energy to keep me going
... incredibly impressed with what you brought to the table
...your punctuality, your casual and open personalities, and both your hard copy and online portfolios speak very highly of you and your business as well
...able to take my abstract ideas and add their expertise to bring them to life in a way that was better than I could have imagined!
I would highly recommend her for any position requiring IT design and development
" PDI provides us prompt, effective and efficient service in maintaining our Drupal based website."
...creative, independent, responsive...
A great experience and a much improved website.
I love directing our customers to our new site knowing that they are going to be able to find exactly what they are looking for...
...able to translate technical information in an accessible way...
Thanks so much for everything!
I have seen the first layouts and they are awesome...
...provided us with excellent, expert service in a professional and personable manner.
I had a very tight deadline and budget, and they met it, seemingly with ease.
...I have no doubt we will have the best site in the 2010 election of any PA candidate
...continued to monitor it closely and is still always available to help me if I have any questions
...very responsive to our questions and needs
I'm so happy we chose to work with PEERLESS Design.
...can do anything any other designer can do and generally quicker, cheaper and better.
I would highly recommend her for any position requiring IT design and development
...took my less than mediocre site and completely revamped it into a beautiful, professional, and easy-to-navigate site
...dedicated, competent and driven to get the job done and done well.
...we just want you to know that we are appreciative!
... they also made suggestions which showed me that they fully understood what I wanted to accomplish.