One of OSTraining members asked how to create a search box with a sliding out effect. Their goal was to arrive at the search box similar to the one you can find at the top of Drupal's own website.
In this tutorial, you will learn how to create a search box that expands once you clicked on the icon. Also, while it stays expanded, it blur out your main menu.
First came the physical servers which were followed by the virtual machines and now the developer ecosystem is rapidly adopting container and serverless computing. One of the biggest challenges that physical servers pose is their management which virtualisation resolves by emulating the real system thereby streamlining the governance of different functions. Now, container and serverless computing are extrapolating the benefits to a whole new level for the developers. And this is where Kubernetes comes into play.
Timeline of Kubernetes formation
Google’s Cloud Next 2018 summit held in San Francisco emphasised upon the company’s active involvement in over thousands of open source projects including Kubernetes. By the time Kubernetes was introduced in Google Cloud, it had more than 20,000 contributors which made it one of the fastest moving projects in the open source history. Kubernetes can be a huge asset in the deployment of projects based on another open source framework - Drupal. But before we plunge into that, let’s traverse along the short timeline of Kubernetes’ formation.
Kubernetes was originally developed by a team at Google which has been open-sourced since its launch and is managed by a large community of contributors. RisingStack has compiled an interesting timeline which traces the history of Kubernetes with the birth of the Borg system.
Around 2003-2004, Google introduced the Borg system, a large-scale internal cluster management system, which was followed by the introduction of Omega cluster management system in 2013.
In the mid-2014, Google introduced the open source version of Borg in the form of Kubernetes. In the mid-2015, Kubernetes v1.0 was officially released.2016 was the year when Kubernetes went mainstream
2016 was the year when Kubernetes went mainstream with more advanced releases, case studies, conferences, and the support for Windows Server and OpenAPI.
In 2017, big enterprises started adopting and supporting Kubernetes with Microsoft, Oracle, Google, IBM, and Amazon coming up with more container orchestration methods using Kubernetes.A Closer Look at Kubernetes
Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation - Kubernetes documentation
An open source system, Kubernetes is used for handling containerized application across numerous hosts offering basic mechanisms for deployment, maintenance, and scaling of applications. It is hosted by the Cloud Native Computing Foundation (CNCF). CNCF was formed through the partnership of Google and Linux Foundation. It aims to develop sustainable ecosystems CNCF helps in fostering a community of top-notch projects that orchestrate containers as part of a microservices architecture.
Kubernetes enables you to deploy containerised application swiftly and predictably and can scale containerised applications on the fly. It seamlessly rolls out new features to your containerised applications and optimises your hardware.
The significant features of Kubernetes include:
Deployment of containers and management of rollout control: With Kubernetes, you can describe your containers and define how many you want in a single deployment. It can govern the running of those containers (even across multiple hosts) and also manage changes like updating images, changing variables etc. to your containers.
- Resource Bin packing: This lets you declare minimum and maximum computer resources (CPU and memory) for all the containers.
- Service delivery: It has the provision of built-in service delivery for the automatic exposure of containers to the internet or other containers in the Kubernetes cluster.
- Autoscaling: It automatically performs load balancing of traffic across matching containers.
- Heterogenous clusters: It helps in developing a cluster with a mixture of virtual machines, on-premises servers, or bare metal in the company data centre.
- Storage support: It has the provision for persistent storage support with support for Amazon Web Services EBS, Google Cloud Platform persistent disks, and many more. Vendors like Red Hat, Dell, NetApp and EMC offer persistent storage for Kubernetes.
- High availability: It has very high availability such as multi-master and cluster federation enabling the linking of clusters together for load balancing.
Note that Kubernetes is not a replacement for Docker but it is for some of the top-of-the-line technologies that have emerged around Docker.
One of those technologies is Docker Swarm which is an orchestrator bundled with Docker. It is possible to leverage Swarm instead of Kubernetes but Docker Inc. has chosen to make Kubernetes a part of the Docker Community and Docker Enterprise editions moving forward.
Kubernetes is not a drop-in replacement for Swarm. Kubernetes is significantly more intricate than Swarm and needs more work to deploy. But again, the work involved with the container orchestration using Kubernetes would provide a big payoff in the long run - a more governable, resilient application infrastructure. Docker Swarm is a good choice for the development work and smaller container clusters.Deploying Drupal using Kubernetes
Bay Area Drupal Camp 2017 had a presentation that exhibited the deployment of Drupal leveraging Kubernetes. A digital agency built a Lagoon platform that builds cloud web hosting solutions for decoupled Drupal with Node.js features. It showed that for scaling Drupal to a plethora of annual page views, decoupled CMS architecture enables the deployment of Docker, Kubernetes and OpenStack solutions together in data centres.
Lagoon platform was created for optimising hosting for Decoupled Drupal sites on the public cloud using OpenStack. With Lagoon, Drupal admins can build containers for PHP with NGINX, run the MYSQL or MariaDB installation in another container with Node.js configured on a third set.
Containers for Redis, Varnish Cache and Solr complete the install with the management of load balancing, page caching and auto-scaling web server nodes to match traffic rates. Lagoon relies upon Red Hat Enterprise Linux and the OpenShift platform in addition to the Original Community Kubernetes Distribution (OKD). System admins would have to use Jenkins, Ansible, Vagrant, TravisCI, Puppet, Docker, and CircleCI for configuration.
Programmers and developers would have to be adept with GraphQL, React, Apollo, Next.js and Prometheus. Lagoon leverages Alpine Linux for container installs from Docker images. Content Delivery Network (CDN) integration completes a different production route for anonymous traffic by geolocation thereby optimising datacentre hardware.
Workflow process with Lagoon involves reading the docker-compose.yml and creating disk images which set up the OS for web servers in containers. Then, disk images are pushed to an OS registry like GitHub or BitBicket. Using Ansible, the disk image is pushed to a git repository and commits are made to Node.js for testing. Lagoon deploys disk images from the git repository for Drupal web hosting requirement s in Kubernetes clusters.
Minishift can be leveraged to run OpenShift server administration on the desktop. Lagoon comprises of server-side rendering for Node.js and React on NGINX, running Drupal on NGINX in isolated containers individually. Then, Varnish Cache is used to handle HTML file transfers to users and CDNs.Market trends Source: 451 Research
A study conducted by technology research and advisory company 451 Research investigated containers adoptions by enterprises across the wide array of industries. It revealed that enterprises of all sizes are rapidly using containers and man are even deploying and governing their containerised workloads with orchestration software. 52% of the organisations gestured that they are running container management and orchestration software in production today and 71% of the respondents were using Kubernetes.
Another survey by Portworx Annual Container Adoption in 2017 included insights from 491 IT pros across a variety of industries and company sizes. It delineated that Kubernetes was the preferred option when it comes to container orchestration(shown in the graph below).
Moreover, a report on Transparency Market Research stated that “key drivers of the Kubernetes solutions market are the rapid growth of container orchestration, increase in investment by vendors, more focus on hybrid cloud and multi-cloud, an increase in adoption of Kubernetes by major players offering cloud computing”.
This report also stated that while North America accounts for the largest share of Kubernetes solutions market, Europe trails behind the second largest. Also, Amazon Web Services, Google Inc., Microsoft Corporation, Red Hat, Inc., Apprenda Inc., UnitedHealth Group, IBM Bluemix, Cisco Systems, Inc., Target, Oracle Corporation, Huawei Technologies Co., Ltd, CenturyLink, Inc. Kismatic, Inc., Heptio, Core OS, Datera, and NavOps are the major vendors.Conclusion
Drupal as a great content store has grown exponentially due to the presence of its large and active community which is committed towards the perpetual improvement of Drupal to powering digital innovation. Kubernetes, also being an open source software, can of huge help in the Drupal deployment and has made rapid strides with colossal adoption rate among the big enterprises in recent times.
At Opensense Labs, we have been offering a suite of services to provide amazing digital experience to our partners.
Ping us at email@example.com to develop and deploy Drupal-based web applications leveraging the power of Kubernetes.blog banner blog image kubernetes Drupal Kubernetes Drupal deployment Drupal and Kubernetes Blog Type Articles Is it a good read ? On
In 1999, I decided to start dri.es (formally buytaert.net) as a place to blog, write, and deepen my thinking. While I ran other websites before dri.es, my blog is one of my longest running projects.
Working on my site helps me relax, so it's not unusual for me to spend a few hours now and then making tweaks. This could include updating my photo galleries, working on more POSSE features, fixing broken links, or upgrading to the latest version of Drupal.
The past month, a collection of smaller updates have resulted in a new visual design for my site. If you are reading this post through an RSS aggregator or through my mailing list, consider checking out the new design on dri.es.Before (left) and after (right).
The new dri.es may not win design awards, but will hopefully make it easier to consume the content. My design goals were the following:
- Improve the readability of the content
- Improve the discoverability of the content
- Optimize the performance of my site
- Give me more creative freedom
To improve the readability of the content, I implemented various usability best practices for spacing text and images.
I also adjusted the width of the main content area. For optimal readability, you should have between 45 and 75 characters on each line. No more, no less. The old design had about 95 characters on each line, while the new design is closer to 70.
Both the line width and the spacing changes should improve the readability.Improve the discoverability of content
I also wanted to improve the discoverability of my content. I cover a lot of different topics on my blog — from Drupal to Open Source, startups, business, investing, travel, photography and the Open Web. To help visitors understand what my site is about, I created a new navigation. When the Archive-link is clicked, visitors will be presented the key topics I write about. It's a small change, but it should help new visitors figure out what my site is about.Optimize the performance of my site
Less noticeable, is that the underlying HTML and CSS code is now entirely different. I'm still using Drupal, of course, but I decided to rewrite my Drupal theme from scratch.
The previous design had almost 52K of theme-specific CSS, while the new design has 16K of theme-specific CSS. That is more than three times smaller.
The new design also results in fewer HTTP requests as I replaced all stand-alone icons with inline SVGs. Serving this page now takes 16 HTTP requests compared to 33 HTTP requests with the previous design.
All this results in faster performance. This is especially important for people visiting my site from a mobile device, and even more important for people visiting my site from mobile devices in areas in the world with slow internet. A lighter theme with fewer HTTP requests makes my site more accessible. It is something I plan to work more on in the future.
Website bloat is a growing problem and impacts the user experience. I wanted to lead by example, and made my site simpler and faster to load.
The new design also uses Flexbox and CSS Grid Layout — both are more modern CSS standards. It is fully supported in all main browsers: Chrome, Firefox, Safari and Edge. It is, however, not fully supported on Internet Explorer, which accounts for less than 3% of all my visitors. Internet Explorer users should still be able to read all content though.Give me more creative freedom
Last but not least, the new design provides me with a better foundation to build upon in subsequent updates. I wanted more flexibility for how to lay out images in my blog posts, highlight important snippets, and add a table of content on long posts. You can see all three in action in this post, assuming you're looking at this blog post on a larger screen.
Each month, we revisit out top Drupal blog posts of the month, giving you the chance to check out some of our favourites. Let’s look at the top blog posts from September 2018.READ MORE
DDEV is a local development stack built on top of Docker. It gives you all of your environment needs without messy configured on your host machine, without needing to know Docker or configure your own containers. Which is great, and makes life easier. Instead of just using DDEV to develop your site or application locally, why not also run your tests within it?
Here’s a list of the 10 important tips and tricks to help make your sure you have a magical BADCamp experience.
BADCamp is sure to be a great event. Tickets are FREE.
If you want to have a great time the whole time you’re at BADCamp, we STRONGLY recommend wearing shoes that are comfortable, but give you lots of support. You don’t want to miss out on all the fun stuff we have planned because you have to take a break to rest your poor tootsies. Don’t wear brand new shoes either and you might want to also get insoles.2. Dress in Layers
October in Berkeley is beautiful, but let’s face it, room temperatures are unpredictable. For this reason, bring a hoodie (or donate to get a special edition 2018 BADCamp hoodie) that you can throw on and/or take off as the climate requires.3. Plan Your Schedule
Who do you want to meet with while you are at BADCamp? A famous podcaster or module maintainer? Find out who is coming on the attendee list and reach out to connect. Magical moments are frequent at BADCamp!4. Bring a Laptop
If you want to get the most out of your BADCamp experience, be sure to bring a laptop. You will want to follow along and try some of the cool things the presenters show you. Bring a notepad too. Sometimes getting to an outlet to charge your laptop can be tricky. So that you don’t forget something important while your laptop charges, bring a notebook or notepad and a pen and take some notes.5. Bring a Water Bottle/Travel Mug
There will be water fountains and FREE coffee/tea. Bringing a refillable water bottle means that you can stay focused on what you’re doing longer and get the most out of the sessions you're attending. Not to mention, using a water bottle instead of buying bottles of water is far better for the environment.6. Bring Chargers for ALL your Devices and a Mobile Charger
There’s nothing worse than being out and about with a dead phone/tablet/laptop. Bring chargers for all of the devices you intend to use at BADCamp. If you use a battery-operated mouse (or wireless remote for presenting), bringing an extra set of batteries couldn’t hurt either. Even if you don’t end up needing them, you could find yourself with a new friend when you share those extra batteries with someone in need.7. Bring Business Cards
Make it easy to connect! You will meet lots of great people and some of them you will want to keep in touch with. Get in the habit of giving out a card when you meet someone.8. Condense your Stuff
You will walk around campus, so a lighter load is ideal. Plus you will want room for SWAG! Condense your backpack down. Pro Tip: Get a small tote or even a Ziploc bag to stick all of your conference swag in. That way all of the stickers and little bits and pieces are in one bag that you can stick in your luggage at the end of the conference.9. Bring a Pair of Headphones
As much as we all want to be able to unplug from our jobs and just focus on the sessions, it’s not always possible. Sometimes you have to put your nose to the grindstone and get some work done. If you’re the type that needs to listen to some music while you work, bring along a pair of earbuds so that you can focus and not disturb others around you.10. Bring a Friend
While not required, having a friend tag along with you can make for a memorable BADCamp experience. If you’re like me and you’re road tripping to BADCamp, think of all of the awesome photos, sing-a-longs, and weird roadside attractions that you’ll see and get to enjoy together. If you’re flying, it’s always nice to have a travel buddy to keep you company while you’re waiting at the airport during the inevitable layover.
Pro Tip: Don’t use your buddy as a reason to shut out others. Go in with an open mind and you’re sure to find another new friend (or friends!) to share the experience with.🎠 🎠 🎠 🎠 🎠 🎠 We need your help!
BADCamp is 100% volunteer driven and we need your hands! We need stout hearts to volunteer and help set up, tear down, give directions and so much more! If you are local and can help us, please sign up on our Volunteer Form.Looking for Work?
BADCamp is a great opportunity to network, learn what technologies are in demand,
and what companies are doing great stuff in Drupal Space.
If you’re looking for work, you can also make sure you’ve checked the “I am interested in Drupal Jobs” box either when you registered, or by going to your user account and clicking on the “Edit” link (the box is a towards the bottom of the form, so keep scrolling). If you do this, our sponsors will know you’re interested in looking for a job, and you will get a digest of jobs post BADCamp.
Be sure to check out the Job Board to see if there are jobs you’d be interested in applying for amd stop by the sponsor expo to meet your future team!Looking for People?
Looking to hire Drupal talent? A lot of Drupal talent will be at BADCamp. If you’re sponsoring BADCamp, you have a head start here. Sponsors at the Supporting Level (the $350 level) get to post one job and get all the goodness of being promoted as part of the sponsorship. Just go to the Job Board page and click on “CREATE A JOB POSTING”. Tell potential hires about the opportunities you have available, and what it's like to work with Drupal.
A BIG thanks Platform.sh, Pantheon & DDEV and all our sponsors who have committed early. Without them this magical event wouldn’t be possible. We are also looking for MORE sponsors to help keep BADCamp free and awesome. Interested in sponsoring BADCamp? Contact firstname.lastname@example.org or email@example.com.
Would you have been willing to pay for your ticket? If so, then you can give back to the camp by purchasing an individual sponsorship at the level most comfortable for you. As our thanks, we will be handing out some awesome BADCamp swag as our thanks.
See You At BADCamp!!
In some cases, it can be extremely interesting to be able to override a configuration dynamically. One of the first use cases immediately noticeable is in the case of a site factory with a set of shared and deployed features, and therefore identical configurations shared.