LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

The Web Experience Toolkit Drupal 8 Distribution: Why Use a Drupal Distribution and Why Precisely... Drupal WxT?
Say you need to build a company website that's bilingual from the ground up, accessible, responsive, user-friendly for the team administrating it, easily maintainable and innovative. Oh, yes: and you need it built fast. What do you do then? You "unpack" the web experience toolkit Drupal 8 distribution, trigger its out of the box features and... adjust them to your organization's specific requirements.   But what exactly is the Wetkit Drupal distribution? Who's it for? What powerful features/modules/reusable components/content management tools does it provide you with out of the box? And how can you customize it so that everything, from content types to... the publishing workflow, should fit your needs perfectly?   Let's get you some answers, now:   1. What Is the Web Experience Toolkit Drupal 8 Distribution? It's a version of Drupal, designed specifically for the Canadian Government, that streamlines the building and maintenance of bilingual, responsive and highly accessible websites. Since it's open-source, it is free to use by all public organizations. Take it as a powerful... bundle of carefully curated Drupal modules, a built-in responsive theme, and out-of-the-box tools for content authoring and publishing, that helps you set up a website that:   has built-in bilingual support leverages Accessible Rich Internet Applications (WAI-ARIA) and complies with the Web Content Accessibility Guidelines (WCAG 2.0) by default taps into a robust content management system ships with the same theme used on the Government of Canada's official website   ... in no time. It comes as a 2-part tool, made of:   Wetkit (or WxT or WET): a set of files that define the front-end components of your future website (JS, CSS) and markup; a bundle of tools and best practices for reaching certain standards of bilingualism, accessibility, and responsiveness on your website Drupal core: a robust and flexible content (and users) management system   Note: it's also a highly flexible "toolkit", that you can adjust to your specific requirements of accessibility, usability, and interoperability. You might need specific content types, a specific custom-tailored publishing workflow, a particular page layout, etc. Luckily for you, Drupal-WxT is conveniently adjustable:   it grants you easy set up (and maintenance) of your bilingual and accessible Drupal website it also grants the freedom you need for customizing it to your organization's particular needs   2. What Is a Drupal Distribution? Why Would You Want to Use One? Now you know what the Web Experience Toolkit Drupal 8 distribution is: "But what exactly is... a Drupal distribution?" you might ask yourself. Let me try a short, yet comprehensive definition: It's a package of components, modules and tools that you can trigger to build your Drupal website. Or: It's a version of Drupal that provides you with the extra configuration and carefully curated modules to set up a website that meets your specific requirements.  In this context here you need your website to be:   accessible bilingual responsive interoperable   3. 10 Powerful Features that You Get Right Out of the Box with Drupal-WxT Till here, I've kept telling you about all the built-in functionality and robust content management tools that you get, out of the box, once you install the Web Experience Toolkit Drupal 8 distribution: "But which are they?" you'll legitimately ask yourself. Here are the 10 most powerful features that WxT-Drupal provides you with right from its... unboxing:   3.1. A Responsive Theme It allows you to implement the same look and feel as the one on the Government of Canada's website.   3.2. Search API   3.3. Workbench for Drafting Your Content   3.4. A Menu System   3.5. A  WYSIWYG Editor A CKEditor, to be more specific. One that you can customize to fit your editorial team's specific needs and preferences, which they can use to add a markup to the content about to be published.   3.6. Bilingual Support One of the most powerful components of the web experience toolkit Drupal 8 distribution. Basically, you get bilingual support at every level of configuration:   multilingual UI and content (French version already installed): from menu items to taxonomy terms, to form elements, translating each element of your content is fairly easy with Drupal Wetkit bilingual back-end (for those admins in your team who use either English or French)   3.7. Version Management Your editorial team can "juggle with" several different versions of the same content to be reviewed before being published.   3.8. A Complex System for Managing Content Types By default, it's 2 content types that you get: pages and documentation.   3.9. Panels & Panoply for Creating Landing Pages Your content team can easily edit both the content and the layout of this page and turn it into your Drupal site's homepage or... a list-of-events page.   3.10. A Built-In Moderation Workflow The entire process of creating a web page for your Drupal site might call for a specific ecosystem of:   authors, translators, editors different content statuses different content transitions    Luckily, the web experience toolkit Drupal 8 distribution provides you with a robust and flexible workflow that you can customize to your needs.  Feel free to add specific types of users, particular content transitions to suit your own content lifecycle, overall: to adjust the built-in workflow to your unique requirements.   4. Is the Drupal Web Experience Toolkit the Right Fit for Your Organization? It is, if:   it's a bilingual and fully accessible website that you need to build you need it built fast: the curated selection of modules and the built-in content management tools will help you save valuable time (and money) it's low maintenance set up that you're looking for   Now, it goes without saying that customizing this Drupal distribution to fit your organization's specific workflow, team hierarchy and in-house operations does call for some configuration work from your side. The END! These are the what and the why of the Drupal WxT or Wetkit, if you wish. Have you already had the chance to trigger the potential of a Drupal distribution? What do you think of the "load" of pre-built features that this particular package ships with? Are they tempting enough for you? Is there any other type of functionality that you wish it would have provided you with out of the box? Image by PublicDomainPictures from Pixabay  ... Read more
Adriana Cacoveanu / Dec 10'2019
Acquia DAM: What Is It? And How Precisely Does It Streamline Your Content Production Process?
PDFs, infographics, icons, logos, fonts, videos... How complex is your "ecosystem" of creative digital assets? And how easy is it for your team(s) to manage it efficiently? If it goes from challenging to... cumbersome, then you might consider switching to Acquia DAM. "But would it pay off to make the move to a cloud-based digital asset management software?" To answer your own question, ask yourself further:   "What if all designers, content creators and marketers in my company were always on the same page? On a shared platform?"   "What if no one in my team(s) saved brand assets locally, but on the cloud instead? On a centralized cloud-based location?"   "What if managing my heavy load of digital assets could get as efficient as... having one single repository for all my assets? One that all my teams can access anytime and (from) anywhere?"   Now, what if Acquia DAM was the answer to all these... daring "fantasies" of yours? Here's:   what this tool is how it can streamline your content pipeline what are its most powerful features how you can get the most of it (since any software can only be as good as its users, right?)   1. What Is Acquia DAM? It's a digital asset management system that acts as a central storage location for all your assets, allowing everyone in your company to:   access them, irrespective of their locations keep track of them organize them update them share them   ... with great ease. Here's a short demo of Acquia DAM "in action", streamlining the most common asset management tasks that your creative teams usually perform. In short: imagine your current infrastructure of various platforms, personal computers, various channels, multiple stakeholders involved in the content process, devices, and repositories reduced to one single place on the cloud. A cloud-based repository where all your different teams — marketing, design, content — can store and update all your creative assets. The 2 most obvious benefits that you'll "reap":   you'll deliver a consistent brand experience you'll speed up the content production process   2. What Are Its Most Powerful Features? For, OK, it boosts your content pipeline: But what about those robust features and functions that it ships with? The key ones to look look for and to trigger, to be sure that your teams use this DAM solution to its full potential?   2.1. Centralized Digital Asset Library Instead of an intricate network of repositories — Dropbox, Google Drive, email, local or network hard drives — you'll have one single storage place on the cloud. One repository for all your creative assets, that everyone in your organization can:   access and use to create unified digital experiences: no need to waste precious time looking for a specific branded image created... years ago update, making sure that there are no out of date licensed assets left lingering in there   All your assets in one place, syncronized, current, approved and... easily accessible.   2.2. Workflow Management The more the... merrier? Not in the context of a high volume of assets and lots of people, from multiple teams, engaged in the content production process. Luckily, using Acquia DAM's workflow management your design and marketing teams can keep a close track of everyone's step in the process. From asset creation, to update, to review and final approval, an ideally formalized workflow will speed up your entire asset management process.   2.3. Portal for Publishing Approved Assets That's right: Drupal Acquia DAM enables you to set up your own portal site for sharing brand guidelines and approved assets. With approved rules and presets for image processing at hand, your non-designers gain a higher level of independence. Which can only translate into a streamlined content pipeline.   2.4. Dynamic Templates A feature aimed at the same goal: Empowering your non-designers to update graphical design elements on their own. Swapping images, editing text field, all while preserving the approved branded design elements — logo, font, colors — gets so much easier for them when using these dynamic templates. Now, some other equally powerful features to incorporate into your asset management process are:   Scheduled Publishing Enhanced search Custom Metadata Fields Audit Report Logs Custom Form Fields Metadata Group Permissions Version controls   3. Why Use It? What Content Production Challenges Does It Solve? In other words: Would switching to Aquia DAM pay off? Now, here's a scenario that might be (too) familiar to you: You're dealing with... loads of assets in your organization. They get shared in Google Drive or Dropbox, updates get approved on various chat channels, specifications added to Google Docs... It's a chaos of technologies and tools that you're storing, organizing, tracking and repurposing your assets in. Have I "guessed" right? Then this is why you should consider implementing a digital asset management software like Acquia DAM. To cut off all the inefficiencies that derive from such a cumbersome patchwork of disconnected tools and processes:   the time your teams would waste looking for a specific asset that seems to be lost in this "black hole" the money you'd lose whenever someone in your team decides to... recreate an asset that's... "gone missing" the risks you expose your brand to by using images with expired licenses the bad reputation that you gain by... accidentally sending older versions of your assets to your clients    Source: Acquia.com Now, let's sum up the main benefits that you'd reap from taking the leap to Acquia DAM:   highly accessible assets: for everyone in your team, anytime, from anywhere on the globe increased system performance significant marketing and IT resource savings increased governance and control of your entire ecosystem of digital assets synchronous brand message: your design and marketing people will better coordinate their efforts   4. How Can You Sync Your Assets with Your Drupal Site? Acquia DAM Drupal Integration It's simple: You use the Acquia DAM Connector for Drupal. This way, you can use the assets stored and updated on your Acquia DAM instance across all your Drupal websites. Just visit Acquia'as dedicated page for info on the right version to download, depending on the version of Drupal running on your website(s).   5. How Can You Import Your Assets to Drupal? The Media: Acquia DAM Module Say you're storing your creative assets to Acquia DAM: How do you move them to your Drupal website? For, it's there that you'll be... putting them to use, after all. You install and enable the Media: Acquia DAM Drupal module. What it does is:   provide you with tools for scanning your DAM system for specific assets and pair them with their corresponding Media entities; with their corresponding entities on your Drupal website... ensure that your selected assets, along with their metadata, get instantly synch whenever you're making changes in the DAM   6. How Can You Build Apps Using the Drupal Acquia DAM? Acquia DAM API Say you need your developers to safely read and write from your DAM so that your users can easily push and pull their files and metadata. You need unrestricted access to some of Acquia DAM's most robust features: upload, file sharing, search. In this case, Acquia DAM API provides you with the underlying interface for building the apps that'll tap into your DAM tool's power.   7. How Do You Integrate It with Your Other Services? Acquia DAM Integrations For there must be all kinds of services and platforms that your teams are currently using, for storing your assets and authentication. You just browse through the list of popular services that Acquia DAM provides integrations for and pick the right ones.   The END! How does your digital asset management system look like? Have you considered switching to a DAM solution? Do you find Drupal Acquia DAM's features and benefits powerful and relevant enough for your specific content pipeline? Image by PublicDomainPictures from Pixabay   ... Read more
Adriana Cacoveanu / Dec 06'2019
Why We Fired Capex CPA and Why You Should Think Twice Before Putting Your Accounts into Their Hands
"Our goal is to have you relax and know that your tax and regulatory compliance are on cruise control." Just mind you don't... relax too much, as one of Capex CPA's clients, for you risk waking up to a brutal reality: huge payroll year-end mistakes. It's your choice:   you learn from our immense mistake of hiring this Chartered Professional Accounting firm Brampton you knowingly expose your company's accounts to a level of incompetence that's... off the charts   Until here, I might sound to you just like another revengeful former client of a Chartered Professional Accounting firm in Mississauga, am I right? Especially since it's one of the 5-star teams of Chartered Professional Accountants that I'm referring to. A highly reputed, high ranked Chartered Professional Accounting firm in Toronto according to its clients' reviews.  Well, we've already taken the "reputation" bait, ourselves, so... we get you: The impeccable reputation forms a thick concrete wall around this team of Brampton Accountants, hiding their incompetence from the public eye. But now, let's talk facts. Real facts, shall we? Here are the reasons why we decided to fire our accountants, Capex Brampton, after no less than... 11 months, during which we "relaxed, knowing that your tax and regulatory compliance were on cruise control":   1. Capex CPA Bampton Got Our Payroll Wrong... 3 Times in a Month Just make sure you don't rely... blindly on their "experienced and professional staff", for, unfortunately, they live by this motto: Practice makes it perfect. Well, in the case of our payroll it didn't make it perfect. It was all wrong, every single time. We're talking here about a team of Chartered Professional Accountants in Toronto who's repeatedly provided us with the wrong payroll 3 times during the same month. 3 might be a magic number for some, at least in fairytales, but it did not guarantee us any... happy ending. They "stubbornly" tested our patience and just... shocked us with their incompetence, which is, we have to admit: out of this world!   2. They Overlooked the Fact that Our Funds Were Both in CAD and USD  And we're talking about a Chartered Professional Accounting firm who has been having access to OPTASY's accounts for... 11 months. This was, indeed, a masterpiece of incompetence mixed with... an overdose of irresponsibility. But hey, who needs responsible and accountable... accountants, right? We just need to... "relax knowing that our tax and regulatory compliance are on a... cruise". Now, there are at least 3 different answers to our legitimate question:  How could this team of Chartered Professional Accountants Mississauga, one with an irreproachable reputation, not see, while managing our accounts for 11 months, that there were 2 different currencies in there? Both CAD and USD...   they're shockingly incompetent (sorry, but it seems to be the keyword of this blog post) they're dangerously negligent: they just didn't care what currencies the funds in our accounts were... USD, CAD... potato, patato they knowingly neglected even their very basic responsibilities as a team of Toronto accountants   Pick any answer or pick them all. There's no wrong one here. 3. They Exposed Us to the Risk of Not Being Able to Pay Our Year-End Taxes The blunders of this Chartered Professional Accounting firm Mississauga kept piling up till we ended up with a year-end payroll filled with mistakes. We had no other chance but to quickly replace this CPA in Brampton with a professional ("truly" professional) to address all the serious issues in our accounts, so we could go ahead and pay our taxes. "Irresponsible" is a too soft term to define their work as our Chartered Professional Accountants Brampton over these 11 months. 4. They Demonstrated Their.... "Professionalism" By Claiming for More Money to Fix Their Own Mistakes "Mistake is human", right? We, too, as a Drupal firm, make mistakes when working on our clients projects.  But how would you call a long sequence of mistakes? Complacency or pure incompetence? And fixing one's mistakes is... human dignity, isn't it? Not the case of Capex CPA, who's genuinely replied, when we asked them to address the issues they had caused: "5k is not enough money to do the work..." The "work" here being that of fixing the mistakes they, themselves, kept doing throughout the year as the accountants handling our business tax in Toronto. How would you call that? Dishonesty, untrustworthiness, lack of a minimal sense of responsibility for one's actions. And we're referring here to a team of accountants handling Corporate tax Toronto. Accountants!  So-called "professionals" that deal with:   Real Estate tax in Brampton Business Tax Brampton Corporate tax   ... on behalf of their clients.  To whom we gave free access to our companies' accounts. In return, after they made not one, but several mistakes while doing our bookkeeping and payroll and we dared to ask them to... clean up their mess, all we got from this "professional" accounting firm handling Corporate tax Brampton was an: "Oops!"  And a: "Sorry, but there'll be an extra charge if you want us to... fix our mistakes, as well." Now, we'd appreciate your "brutally" honest answer to this question: How would you have handeled this situation if you were in our place? Would you have fired Capex CPA or not?  Image by Robert DeLaRosa from Pixabay ... Read more
Adrian Ababei / Dec 04'2019
Automatic Updates in Drupal: From Mission Impossible to... Drupal’s New Auto Update Feature. How Does It Work?
The waiting is over. We'll have automatic updates in Drupal sooner than we even dared to hope.   Source: Drupal.org * Since that announcement was made, both an alpha and beta1 version of the Automatic Updates module have been released. The auto-updater, which has been, in turn, or simultaneously:   an ever requested feature in the Drupal community a highly anticipated functionality for the Drupal end users an evergreen matter of debate ("I really need this feature in my life" vs "We prefer to keep the Drupal website up-to-date ourselves".) a... "mission impossible" type of challenge  a Drupal initiative that seemed doomed to never grow into an actual feature   ... is now a work-in-progress Drupal module. Can you believe this? Now, we can just hear those questions running through your head:   "How/when did this never-ending talk about auto updates for Drupal turned into a module?" "What are its features/components?" "Who is it aimed at?" "How would it benefit me more precisely?"   Let's get you some clear answers:   1. Automatic Updates in Drupal: A Highly Requested and... Ever Postponed Feature An auto update system has been one of the top requests in the Drupal community since... forever. "Does Drupal have an auto update?" "Why Doesn't Drupal offer an Auto Update feature like WordPress?"  Simultaneously, many other members of the community adopted:   the "I didn't need it anyway" approach the "I don't need Drupal to automatically update itself. What if something breaks?" approach or the "Auto updates would not fit our development workflow" approach   Overall: the need was there, it was growing and the various "no need" reactions to the possibility of implementing such a feature were just:   legitimate paranoia lest those automatic updates should be superficially tested before release the frustration that the answer to this request was invariably the same: "Not possible in a Drupal context."   Speaking of this standard answer that we've been getting, constantly, over the last years, it looks like automatic updates in Drupal have gone from:   myth: Drupal websites are far too complex to come up with an all-size-fits-all set of updating standards for them all mission impossible: it's not possible to architect such a solution for Drupal work-in-progress module aimed at simplifying the whole task of keeping one's Drupal site safely up to date   In short: the automatic updates functionality has gone from "mission impossible" to... "anything is possible with Drupal". 2. Auto Updates: From a Drupal Core Strategic Initiative to a Drupal Module The community demanded and... demanded (Dries himself drew attention to this need), till their request of an automatic updater turned into one of the 8 Drupal core strategic initiatives. One funded by the European Commission itself... Source: Drupal.org And this switch from request to... well-structured roadmap was only too predictable:   proprietary and commercial software companies were already implementing an auto update system open source projects (see WordPress) were already offering this critical feature: the site owner just clicks a button and the system handles the whole updating process    What was the main goal that drove the Auto Update initiative forward? To architect a system that would apply Drupal updates automatically. This way, maintenance costs, particularly for small and medium-sized Drupal projects, would lower and the Drupal adoption rate would rise. Not to mention that we would be having far more 100% secure Drupal websites out there.   3. The Automatic Updates Module: Its 3 Main Components For this long-awaited solution for automatic updates in Drupal relies on a 3-component structure:   the PSAS (public safety alerts) the readiness checks the actual in-place updates   Now, let's get into the nuts and bolts of each component:   3.1. Public Safety Messaging What this feature does is pull alerts on critical and highly critical updates from Drupal.org right into your admin UI. This way, you can easily check your site's readiness for the update about to be released by the Drupal security team.   3.2. Readiness Checks (or Preflight Checks) It's a plugin-based feature that triggers warnings and errors on detected issues blocking your website from getting updated automatically. Let me give you some examples:   "Your website's running on a read-only hard drive!" " Cron isn’t running frequently enough!" "The "X" files included in the update process have been modified!" "You need to run database updates!"   3.3. In-Place Updates Once your website's level of... readiness has been checked and approved of, it's time to run the Drupal update itself. Here's how it works:   the update package of files gets downloaded from Drupal.org the Automatic Updates module (now in its beta 1 version) checks it and creates backups of the files on your website included in the update process the module performs the update if something goes bad, it restores your backup files   Note: you're free to set up your own custom workflow for the auto-update process; you can stag the updates for review and approval first, get them through your own CI/CD system or... you can set them to go live, automatically.   4. And How Does It Work? The Automatic Updates Module "In Action" Let's imagine this scenario: You already have this automatic functionality implemented into your website. How would it work in case of an "upcoming critical security update" situation? it pops up the message alert in your admin interface next, you run several checks on your website to... check whether there are any issues that you'll need to address before updating it then you trigger the in-place update   That's it.   5. Who's It For? Is It Aimed at...You, Too? It is if:   you're a small or medium-sized business owner  you don't have a custom development workflow and pipeline set in place (with Git, Drush, and other tools included) people in your team with no development background are responsible for maintaining your Drupal site up to date you don't have a solid routine of checking and running Drupal updates as soon as they get released   Source: Drupal.org In other words: automatic updates in Drupal aren't aimed at enterprise-level websites. The module targets small Drupal projects, where:   running security updates on a regular basis staying vigilant, lest you should miss them once released, is THE main cause of stress for site owners   The END! This is the new auto updates feature in Drupal, along with the answers to some of your valid questions regarding this module.  How do you find the project's progress so far? What other features would you like this module to include? And what are your concerns about integrating such functionality into your own build workflow? Image by krzysztof-m from Pixabay   ... Read more
Adriana Cacoveanu / Nov 29'2019
What Are the Best Continuous Deployment Tools for Kubernetes and Why? Top 5
So, getting your apps up and running with Kubernetes has been a quite unexpected pleasant surprise. But now comes the... predictably challenging part: updating and deploying them. How do you set up a solid automated deployment pipeline? What continuous deployment tools for Kubernetes meet all your specific feature-needs? Feature needs like:   canary deployment release management secrets and variable storage in the tool itself (i.e. not in Kubernetes) easy rollbacks continuous-integration rolling and orchestrating application deployment  UI blue-green deployment monitoring infrastructure and applications    And the offer of tools geared at making deployment more efficient sure is... overwhelming enough.  But fear not, for we've weighted some of the most popular Kubernetes cluster deployment tools' pros and cons, we've compared them to one another and shortlisted your bulky list of options to... 5. The 5 best dedicated tools to orchestrate your releases with Kubernetes:   0. Manual Deployments vs Continuous Deployment Tools for Kubernetes Why not just build a fully customed deployment script like... so many organizations out there still do? It would fit your specific in-house processes and particular feature needs like a glove, wouldn't it? "In a soon to be released survey by Codefresh, 32 percent of developers reported they don’t have CI/CD or the right kind of automation tools to help them deploy more often, making it challenging to take advantage of cloud-native technologies." (source: Devops.com) Well, let me give you 8 key reasons why maintaining such a script would turn into a dread in the long term. And why going with an “off-the-shelf”, “enterprise-level” solution would benefit you n times more:   maintaining a deployment script is a slow and time-consuming process   a custom build turns into a major challenge once you need to scale it up   running manual Kubernetes deployments, that engage a large development team, is always more prone to errors   managing rollbacks, keeping track of old and new deployments — particularly when dealing with a large team and a complex app — is n times more challenging (and riskier) when using manual deployments compared to running the right CD tools    automated deployment tools for Kubernetes enable you to run specific deployment strategies like blue-green or canary   YAML files have gained a reputation of being particularly error-prone; Kubernetes application deployment tools will streamline everything, from creating YAML files to generating and templating them   storing secrets, managing them among multiple developers, across different repos, calls for extreme cautiousness and so... can get time-consuming and prone to “accidents”   upgrading the entire ecosystem of resources that your Kubernetes app depends on gets quite challenging; by comparison, automating the entire updating workflow, using the right tooling, will help you save valuable time   In short: if scalability, maintainability and close to zero risks of failure are your two top priorities, choosing the right tooling for your continuous deployment workflow with Kubernetes becomes critical.   1. Fluxcd.io   One of the best Kubernetes deployment tools that you could "turbocharge" your workflow with. Here's why: Source: Fluxcd.io   you can use it in production it relies on an operator in the cluster to run deployments inside Kubernetes: in other words: you won't need a different continuous deployment tool it detects new images, keeps an eye on image repositories and updates the running configurations based on a configurable policy and the configuration set in git it checks that all config updates and new container images get properly pushed out to your Kubernetes cluster it adjusts itself to any development process   In short: Flux will automate the deployment of services to Kubernetes. Now, here's Flux "in action", in one of its typical use cases: One of the developers in your team makes some changes... the operational cluster needs updated now... Flux detects the changes and deploys them to your cluster and keeps monitoring it. Long story short: that developer in your team won't need to interact with an orchestrator; Flux provides him/her with a CLI to run all these operations manually.   But there are also 2 cons for using Flux as your automated deployment tool:   it lacks webhook support it lacks multi-repo support   Tip: use this automated deployment tool at the end of the Continuous delivery pipeline.   2. Spinnaker.io What's Spinnaker? Source: bmc.com A cloud deployment tool developed originally by Netflix, then open-sourced, that comes with support for Kubernetes. How does it work with Kubernetes? It's designed to complement Kubernetes, to make up for its limitations: it provides robust deployment pipelines that allow you to "joggle with" various deployment strategies. Why would you choose Spinnaker over other continuous deployment tools for Kubernetes?  Because:   it provides deployment pipelines, easy rollbacks and scaling (right from the console) it's open-source it integrates seamlessly with email, Slack, Hipchat, thus making pipeline notifications a breeze you get to use it for all types of Kubernetes resources (it's not "limited" to deployments) it supports Helm charts it handles blue/green and canary deployments and ships with support for any CI tool and cloud provider it'll monitor your Kubernetes app's (and cluster's) health   In short: you'll want to use Spinnaker if it's a robust, fully automated CD pipeline for Kubernetes that you want to set up; one "packed" with all the best practices, that'll help you streamline the deployment of apps.   2 Typical Use Cases for Spinnaker:   you use packer for building an AMI in one of the stages and you deploy it to production; Spinnaker allows you to closely monitor the state of your deployed application to perform tests, detect a container image push and deploy that image to Kubernetes   3. Codefresh.io     Source: Codefresh.io Not just one of the continuous delivery tools to consider, but THE first Kubernetes-native CI/CD technology. Codefresh is a GUI-based environment that streamlines your Kubernetes app building and deployment process. Here are just some of the most powerful reasons why you'd add it to your box of continuous deployment tools for Kubernetes:   it supports Helm charts it allows you to use your favorite tools: favorite CI, image repository, repo... it ships with a whole set of plugins that enable you to hook it to your favorite CI/CD tools (e.g. Jenkins)   And a few cons of using Codefresh:   it won't store your secrets/variables its plugins are set up from their own GUI: if trouble strikes, addressing the problem might make your pipeline unnecessarily complex it doesn't handle cluster credentials living outside your cluster, leaving it exposed to imminent risks   4. Argo CD   Source: Argoproj.github.io Another one of the best Kubernetes deployment tools to consider when you're planning your continuous delivery workflow. How does Argo CD work? Argo uses git repositories as a reference for the target state of your app and the target deployment environments. It will synchronize your desired app state with each of the target environments that you'll define. It's a declarative continuous system that it will provide you with, one supporting a whole variety of config management tools: Helm, ksonnet/jsonnet... Argo CD's top features, that make it worthy of your shortlist, are:   it provides continuous monitoring of your deployed apps rollback/roll-anywhere-in-the-git-repository features it ships with webhook support (BitBucket, GitLab, GitHub) it provides sync, presync and postsync hooks for complex app rollouts it provides SSO integration (GitLab, OIDC, Microsoft, LinkedIn, SAML 2.0, LDAP) you can use it alone or as a component of an existing setup of pipeline tools    5. GitLab An automated delivery tool designed to meet even the highest feature needs:   Auto DevOps provides you with pre-built CI/CD configuration, so you can automatically identify, build, test, deploy and further monitor your Kubernetes apps it works with any Kubernetes cluster (you won't depend on GitLab's infrastructure) it allows you to use Containers as a Service or a self-hosted Kubernetes cluster on any public cloud it provides you with CI support out of the box it allows you to choose between its auto-deploy component for Kubernetes and Helm charts Overall: GitLab will simplify and streamline your entire Kubernerted app development cycle. Use it if you need an end-to-end automated deployment pipeline that doesn't depend on too many configurations. It makes that off-the-shelf solution that fits your scenario perfectly.   The END! These are the 5 continuous deployment tools for Kubernetes to start evaluating first as you're getting your toolbox ready.  Do you have a continuous deployment pipeline in place? What other great tools are you using to orchestrate your app releases with Kubernetes? Image by Astryd_MAD from Pixabay   ... Read more
Silviu Serdaru / Nov 26'2019
How Do You Prepare for Drupal 9? 5 Tools to Detect Any Uses of Deprecated Code on Your Drupal Website
How should you prepare for Drupal 9? You deep clean up your codebase of all deprecations and errors and wait patiently for the big upgrade to... happen. “But how do I know whether my Drupal website's using any code deprecations?” you'll legitimately ask yourself. How do you identify and make an inventory of all the code errors on your site, so you can remove them and start... waiting, patiently, for that big upgrade to Drupal 9? Well, you “stuff” your toolbox with all the essential tools that'll help you track down deprecations (still) lurking in your codebase. Here are the 5 most effective ones:   1. Drupal Check  You can't claim that you're getting ready for Drupal 9... the proper way if you're not already using Drupal Check to scan your codebase for deprecations. “But what is Drupal check?” It's a command-line tool — a custom runner for PHPStan — that enables you to run PHPStan against your Drupal website to look for any deprecations and code errors. In short: instead of running PHPStan, you run Drupal Check, which comes as a package storing PHPStan, PHPStan Drupal, PHPStan's Deprecation Rules, plus configurations for them all, as well. Source: glamanate.com Just incorporate it into your build processes and continuous integration systems and run audits on:   your custom and contributed modules, checking their compatibility with Drupal 9 your D7 to D8 migration code   Use it on your existing Drupal 8 website. Or use it on the one that you're developing, when you're nearly done, to check whether any deprecations have made their way to your codebase... Word of caution: expect Drupal Check to provide you with an accurate report of the deprecated code used on your site, but don't expect it to fix them for you, as well.   2. Upgrade Status Module   Here's another “tool” that you shouldn't miss from your toolbox. That if you do want your website's upgrade to Drupal 9 to be... buttery smooth. Source: Drupal.org What the Upgrade Status module does is:   inspect your code — your custom and contributed projects — for deprecations make an inventory of all the identified issues    Moreover, its Drupal 8 version harnesses the power of PHPStan and comes as a complete solution that you can use for running full-site checks. Let it work its “magic” on your Drupal site and find out where it stands in terms of compatibility with Drupal 9.   3. PHPStan & PHPStan-Drupal         PHPStan's the very foundation of the toolkit to rely on when you prepare for Drupal 9.  Source: Matt Glaman's Twitter page Not only that you save valuable time using it, time that you'd otherwise invest in pinpointing every error spotted during your code reviews:   classes called incorrectly nonexistent classes PHP projects that you forgot to run once you compiled them   …  but you get to write your own custom rules. You get to indicate specific “red alarm” situations that you'd want PHPStan to... investigate for you. Now, it may be the key tool to keep at hand when you evaluate your site's compatibility with Drupal 9, but nevertheless... it does have its own limitations: It won't load any files on its own if you run it against a Drupal module out of the box. It depends on Composer to load all that information... Luckily, Matt Glaman's developed an extension to address precisely this... limitation of PHPStan: phpstan-drupal.  An extension that'll help you make the most of PHPStan when using it to scan Drupal code: from your various dependencies to... Drupal core.    4. Use Project Deprecation Status to Prepare for Drupal 9  And what this tool does is answer one key question: “What's the current status of the Drupal modules in terms of compatibility with Drupal 9?” Which Drupal projects are already compatible and which of them need more fixing before the big upgrade? Project deprecation status is the right tool to... gain an accurate picture of where each Drupal project stands in relation to upcoming Drupal 9.   5. Rector        So far I've pointed out the 4 key tools for deep-scanning your Drupal website to detect any uses of deprecated code as you prepare for Drupal 9. But what if you want to get rid of that pile of deprecations that you will have collected by the end of the scanning process? How do you fix/remove them? And, more importantly: how do you automate this code cleaning process? In this respect, Rector for Drupal 8 — a proof of concept for now — comes with great potential: Check it out and... be prepared to add it to your toolbox for any automated deprecation fixes that you'll want to perform on your site.   The END! These are the 5 essential tools to have in your toolbelt for running deprecation checks on your Drupal website, getting all ready for Drupal 9. Would you have added some other must-have tools to the list, as well? Let us know in the comments here below: Image by Michael Schwarzenberger from Pixabay ... Read more
Silviu Serdaru / Nov 22'2019
Google Apigee vs MuleSoft: How Do You Choose the Right One for You? How Are They Different?
How do you know which API management solution best suits your needs? What fundamental differences would a Google Apigee vs MuleSoft comparison reveal? What different features and different use cases would it expose, pointing out to you the right platform for your application? Well, we've compared the 2 API managers for you, so get ready to find your answer to:   What is Apigee? What are its main features? What is an API management platform? What is MuleSoft? What's the difference between Mule ESB and Apigee? What is Apigee used for? And what about Mule ESB? 1. What Is Apigee? It's a cross-cloud API management platform offered by Google. Source: Google Cloud But that's just a "teaser" answer to your question, so if you crave for more details: Apigee is an API gateway tool that provides a secure environment for multiple cloud services and applications to exchange data in. In short: Google Apigee is that platform that helps you manage all your APIs in one place. A platform that brings together all your digital experiences.    2. What Is an API Management Platform, More Precisely?  Maybe you feel a bit confused. Left in the dark about what API management platforms are. Therefore, allow me to delve into (even) more details, so there's no confusion left when I start to actually compare these 2 API managers: Google Apigee vs MuleSoft. So, an API management platform is: The process where you manage all your APIs in a secure and scalable environment. A process that enables you to use an API for overseeing the interface's lifecycle. This way, you make sure that all the apps and developers using that API have their needs met. Now, there are 3 key functions that an API management platform should support:   security monitoring version control   ... and some basic features that would allow you to accelerate innovation in your organization and adapt easily to customer expectations of flexible and scalable technology:   API key and authorization management analytics live updated documentation developer community management developer portal to simplify the acquisition and distribution of certain APIs needed for building apps   3. Google Apigee: Key Features Now, that looks tempting enough, doesn't it? To be able to manage all your APIs from one central place... But what features, designed to streamline the whole API management process, does Apigee provide you with? How precisely does it help you be effective when managing your APIs?   it provides constant version updates it provides troubleshooting options it taps into machine learning and analytics to generate actionable insights it scales to your needs it supports multi-cloud and hybrid cloud  it automates the process of generating API documentation and software development kits it speeds up the implementation of API proxies with integrated metrics and dashboards it provides a modern UI for your legacy data stores it provides monitoring tools for security, API troubleshooting, and optimization 4. What Is MuleSoft? Since we're about to make a MuleSoft API management vs Apigee comparison, your question is more than legitimate: Source: MuleSoft.com   MuleSoft is a software company that provides an integration platform — Mule ESB — for centralizing all the apps, data, and devices across the on-premise and cloud environments in an organization.   5. Google Apigee vs MuleSoft: What's the Difference? And we're back to the initial question: What's the difference between MuleSoft and Apigee, after all? For they're both API management platforms, they both seem to be serving the same API centralization and management needs and they're equally popular. Here's a first differentiator: In Google Apigee APIs are consumption-centric, whereas in Mule ESB they're exposure-focused (or reuse-focused). Now, let's dig out some more ways in which they differ:   5.1. Mule ESB   higher ongoing operational costs compared to Apigee ships with a wide array of connectors, for all major platforms —Twitter, Facebook, SAP, Salesforce — and business process management software; this makes it easier to be integrated to other systems and services it provides some of the most robust features in API management: oAuth, throttling, access levels... it makes implementing a CI/CD environment conveniently easy it supports a whole variety of interaction patterns since it ships with lots of adapters and robust message-oriented middleware   5.2. Apigee   it grants you close control of user access; you can even grant users granular control based on their particular needs and adjust the services' requests based on users' specific requirements it allows branding it provides support for JMS and SMTP functionality  it integrates seamlessly with other platforms   6. When Do You Use One API Manager over the Other? Specific Use Cases In other words: which one to use? Say you need to expose some services in your app: should you go with Google Apigee or Mule ESB? To make an informed decision, here are some of the typical uses cases of each API manager:   6.1. Mule ESB   more appropriate for REST API development best suited for system-to-system integration  covers a bigger scope, compared to Google Apigee   6.2. Apigee   best suited for connected apps scenarios the best option if you're planning to update your legacy apps and to enable data exchange across your ecosystem of apps and services when you just need full API lifecycle management: a platform that exposes your services in a secure way and ships with powerful API governance and management features like caching, analytics, etc. The END! Have I answered your "Google Apigee vs MuleSoft" question(s)?  If so:   Which API management solution do you think that best suits your needs? Image by Juraj Lenhard from Pixabay     ... Read more
Adriana Cacoveanu / Nov 15'2019
What’s New in Drupal 9? Olivero, A New Default Front-End Theme in Drupal
"What's new in Drupal 9?" or "What are the new features in Drupal 9?" These 2 questions are on everyone's lips these days, both Drupal teams and organizations using Drupal. How about a... shiny new main theme? For, let's face it: we've been longing for a new default theme in Drupal for some time now...  The current one, Bartik, hasn't got an update since... 2011 and it has started to show: Drupal 8's outgrown its core theme. The new one, Olivero, which is still just design with a proof of concept, is expected to address all of Bartik's limitations:   to be more simple to be more modern to be more flexible to support Drupal's increasingly powerful functionality   But let's dig in for some more info about this initiative:   why do you need a new default theme in Drupal? the key design principles established for this theme the main components of the new design system   1. How Does Your Ideal Default Theme for Drupal Look Like?  Does it resemble Bartik? I'm pretty sure it doesn't, judging by the fact that:   it hasn't seen a major change since January 2011 it still uses gradients, drop shadows and other out-of-date graphical elements it no longer accommodates all the modern website functionality implemented in Drupal (e.g. Layout Builder) over the last years   Overall: Bartik has started to look a bit... out-of-fashion, while Drupal's back-end has been growing more and more robust. Therefore, I bet that the words that you'd use to describe your "ideal" default theme in Drupal revolve around these key adjectives:   clutter-free/minimalistic flexible: to provide plenty of options to choose from light modern and fresh accessible intuitive elegant clean   2. Olivero and The 3 Main Goals Behind this Drupal Core Initiative No goal no... glory. That's why the team behind this Drupal core initiative, Lullabot, set 3 major objectives for the Olivero theme:   it should support all the latest functionality implemented in Drupal: embedded media, second-level navigation, layout builder, etc. it should be WCAG AA compliant from the ground up (accessibility should not be an afterthought) it should look and feel more modern: all those design elements that made Bartik feel too heavy to be reduced to a minimum, while particular design system parts — color palette, typography, and animation — to be reconsidered   3. What's New in Drupal 9: Design Principles Set for Its Theme Source: Dries Buytaert's blog Curious which of the features on your wishlist for an ideal default theme have made it to the list of design principles for Olivero? Well, here they are:   simple: clutter-free; by "clutter" they mean all colors, effects and visual elements that are irrelevant and make the theme look and feel too heavy modern: support for modern browsers' features and interaction modes flexible: presents Drupal (front-end) developers with multiple options to choose from focused: includes all those design elements, like negative space and high contrast, that grab user attention accessible: it's designed with WCAG AA conformity in mind; from functionality to layout, to colors, all elements should be thought out to be accessible for everyone   4. The Olivero Design System: Key Components "What's new in Drupal 9?" Look forward to a new, promising design system. I'll highlight just 5 of its components, so you can get an idea of what the team behind this initiative mean by "modern" and "flexible" in relation to the Drupal 9 default theme: Source: Drupal.org 4.1. Color Palette They chose:   bright blue as the base color neutral grays to counterbalance the design elements and layout darker colors to enhance accessibility lighter colors in the layout to highlight the design elements   4.2. Typography They used the size 18px for the base font in the body copy, to be leveled for metadata, headers, quotations, etc. and adapted to smaller viewports, as well. Consistency, throughout line-height and spacing, has been a key goal when setting the scale for typography.   4.3. Header & Navigation The flexibility principle is best reflected in the header of the future default theme for Drupal 9:   it's designed to incorporate, seamlessly, all logo types and text titles it comes in multiple versions to choose from, one for every site identity type it turns into a hamburger menu once the user scrolls down   4.4. Sidebar The news factor is that in Drupal 9 you'll have one sidebar region instead of two competing for space on the screen. A single spacebar, next to the primary content, where your content team can display related posts and all kinds of utility blocks.   4.5. Site Branding Variations The Olivero theme will ship with background-color and width settings that you can configure in order to fit any text length and logo type.   5. Final Word "What's new in Drupal 9?" I think this question is not quite accurate, in relation to this upcoming front-end theme. "What's bound to be new in Drupal 9?" is more appropriate. For the Olivero theme is not yet... a theme in itself, but work-in-progress. A proof of concept, a core initiative that's still calling out for contributors. One that's expected to become the new default theme in Drupal, that should:   accommodate all the new powerful features implemented in Drupal these last years be accessible from the ground up be (more) intuitive    Why would you care for this initiative if you were a Drupal developer? Because it would improve your entire experience of working with Drupal. Why would you care about this work-in-progress theme if you were considering Drupal for your next web project? Because all visually-appealing websites have one thing in common: a modern, accessible and flexible theme. Image by Mudassar Iqbal from Pixabay ... Read more
Silviu Serdaru / Nov 13'2019
What’s the Fundamental Difference Between Gatsby and Next.js? How Do You Choose?
You're building a React website/application. You have your bulky list of functionalities all set, you know how you want it to look, but can't decide on the React framework to build it on: What's the main difference between Gatsby and Next.js, after all? And what's the difference between server-side rendering and static site rendering? Since both frameworks seem to be serving your main goals:   not to get tangled up in config or routing to generate a fast, fully accessible and SEO-friendly website to provide you with boilerplate application   So, what's the fundamental differentiator between Gatsby and Next? The one(s) that'll help you identify the framework that best covers your specific use case. Or, are there several of them (differentiators)? Just keep on reading:   1. But First: What Do Gatsby and Next.js Have in Common? How are they similar?    they're both React frameworks they're both great options for SEO purposes they're both great options if you need a high performance React app/website they both provide entirely formed HTML pages they both provide boilerplate application they both simplify and speed up the React app/website development cycle  they both generate SPA out-of-the-box they both provide great developer experience   In short: both Next.js and Gatsby score well in categories like speed and SEO; they're both awesome solutions to streamline app/website development in React. But the way they go about it... that's where these frameworks are fundamentally different.   2. How Does GatsbyJS Work? It builds HTML code on build time. That would be the short(est) answer to your question. But if we were to elaborate upon it: GatsbyJS is a static site generator that... generates (static) HTML code during the “build” process. How? It fetches data from external sources — APIs, Contentful, WordPress, markdown files —  and uses GraphQL to render it. Example: say you have a blog. In this case, you could use Gatsby to fetch your blog posts from... Contentful. Or any other repository where you might be storing your content (e.g. WordPress or Drupal).   3. What's Next.js? A tool for rendering pages on the server-side. And a more detailed answer would be: It's a React framework that supports server-side rendering. Meaning that it generates the needed HTML code dynamically, from the server, each time a request is being sent through. In short: your browser's provided with pre-rendered HTML code instead of empty “div”. Now, how does its distinctive way of going about building a React app/website suit you? It enables you to develop multi-page applications using static rendering and serving dynamic data from a back-end.   4. What Are They Used For? Specific Use Cases for Gatbsy and for Next.js What's the difference between Gatsby and Next.js in terms of use case? In other words: when should you choose one over the other?   4.1. Specific Use Cases for GatsbyJS 1. Blogs and small-scaled websites And I'm talking here about a particular scenario: When you have no comments section on your blog or, at least, not a very “busy” one. So, a use case where you don't need to render content every 5-10 minutes. Since blogs are static and their content doesn't change that frequently, Gatbsy's ecosystem makes the perfect fit for them.  And you have 2 options for your blog post creation and publishing process:   you write a blog post and the npm build will generate a corresponding HTML page you write a blog post in Contentful (or a CMS of your choice), publish it and recompile your blog in Netfly   2. Landing pages Again, since they use static content, landing pages make an ideal use case for GatsbyJS.  Where do you add that Gatsby “spoils” you with such a wide collection of plugins to choose from and to boost your landing page with: PWA, inline critical CSS, AMP...   4.2. Specific Use Cases for Next.js 1. Content-packed websites Dealing with lots of content? Or are you expecting your site's content load to grow, over time?  Then Next.js should be your first choice.  The reason is simple: Just imagine your Gatsby framework overstrained to rebuild all that content over and over again. Not precisely the most time-effective solution to go with, don't you think? 2. When you need more freedom for accessing your data Do you want to empower your content team to publish content on their own? Then you might want to consider Next.js.   3. To-Do Apps They make the perfect use case for server-side rendering: Next.js retrieves the content for your list, from the server, and displays the to-do's upfront.   5. The Fundamental Difference Between Gatsby and Next.js Is... … that Gatsby's a statically generator, while Next.js generates HTML dynamically.  Image by Colin Behrens from Pixabay The first creates JS/HTML/CSS at build time, while the second generates it at run time. Or, if you wish to put it this way: Gatsby doesn't depend on a server, while Next can't function without one.   6.4 Other Main Areas Where They Differ For the “Gatsby vs Next” debate doesn't end at the “static vs dynamic” comparison.  There are other factors, as well, that set these 2 React frameworks apart. And we'll outline the 4 most obvious ones:   6.1. Data Handling In case of Gatsby, the framework's the one “deciding” how you should handle data in your app. It needs to know where your data, your images and other types of content will be handled.  What's in it your for? Why would you accept this... “compromise”: to be told how to handle data in your own app? Because: Gatsby, through its rich collection of plugins, enables you to hook up your site to various data sources. This way, you gain external control over your data... By comparison, Next's totally unopinionated. Is gives you the freedom to decide your own data architecture. In short: it doesn't “tie” you to a specific technology. You're free to handle data your own way.   6.2. Deployment You can deploy Gatsby anywhere you need to, with no special configurations, since it's no more than compiled CSS, JS, and HTML. And things are equally straightforward with Next.js, as well. Since it's a Node application, you can host it anywhere you want to...   6.3. Routing With Gatsby, you have a pages directory where you're free to create all the HTML pages needed for your app/website.  Moreover, they provide you an API, as well, for creating routes dynamically. With Next.js you get a “pages” folder, as well, where you can set up your new pages and get your app running, with no routing to config.   6.4. Plugins “What's the main difference between Gatsby and Next.js?” Plugins sure are a powerful differentiator. Gatsby comes “loaded” with an entire ecosystem of plugins.  So, do you need to have your JS minified, you CSS compiled, your...? There must be a Gatsby plugin for it. Image by Michael Schwarzenberger from Pixabay   Next.js, on the other hand, doesn't “tempt” you with plugins, since its smaller scope doesn't justify the usage of plugins... The END! These are the key differences between Next.js and Gatsby, along with their common points and specific use cases. Have you had your “Aha!” moment(s) reading through our post? Have you managed to identify the right framework for your own use case? Photo by Charles ?￰゚ヌᆳ on Unsplash ... Read more
Silviu Serdaru / Nov 12'2019