So you're evaluating and comparing all the available solutions for centralizing and standardizing your APIs. And you can't help wondering: "When is it recommended that I use Apigee Edge Microgateway?"
Why would you use it in the first place, over other platforms for managing internal APIs? Over... the Apigee Edge gateway, for instance?
What "irresistible" capabilities does it provide?
And when precisely should you use it? What are its typical use cases?
Let's get you some answers:
1. What Is Apigee Edge Microgateway? How Does It Work?
If I was to compress its definition in a short line, it would go something like this:
Apigee Edge Microgateway is a hybrid cloud solution for managing your APIs.
Whereas if I was to opt for a detailed one:
It's an HTTP-based message processor for APIs, built on Nodejs, that enables you to centralize and manage all your APIs in a hybrid cloud deployment setup.
From traffic management to enterprise-grade security, to analytics, spike arrest, and quota (and the list goes on), it provides you with most of the standard Apigee Edge capabilities.
Moreover, you get to install it either on the same machine or in the same data center.
Source: docs.apigee.com
"And how exactly does it work?" you'll then ask yourself.
It processes the messages — requests, and responses — going to and from your backend services. Meaning that it'll asynchronously push API execution data to Apigee Edge once consumed by the Edge Analytics.
"What about the Edge Microgateway deployment scenarios? What are my options?"
Well, there are quite a few, since you get to deploy it:
in PaaS platforms (e.g. Cloud Foundry)
Azure App Services
as a service instead of sidecar
integrated with Kubernetes
as a Docker container
in cloud-native PaaS platforms (e.g Google App Engine)
in virtual machines as standalone processes
2. Why Precisely This API Management Solution? 5 Big Benefits
Why would you go with Apigee Edge Microgateway over another setup for centralizing and administering your APIs?
Here are some of the strongest API management capabilities that it provides you with:
enterprise-grade security: it authenticates requests based on an API key or signed access token that each client app gets via Apigee Edge
analytics: it publishes all the data analytics to Apigee Edge so that everyone gets traffic stats in real-time
configuration: no special coding is needed to set up Apigee Edge Microgtateway
rapid deployment: you get to deploy an instance in no time
reduced latency: it collects and sends API data to Apigee Edge asynchronously, therefore with minimal delay
3. When Would You Use It? What Are Its Typical Use Cases?
When is it best to go with a hybrid deployment model for managing your APIs?
Source: LinkedIn
Here are some of the most common use cases of Apigee Edge Microgateway:
for an application running on a microservices architecture
to keep API traffic within specific limits set for compliance and security reasons
to provide Apigee API management for services running in Kubernetes
for behavioral testing (of the scaling, of the infrastructure...)
for disaster recovery
to speed up API traffic for services running in close proximity
when legal and geographical boundaries are involved; for instance, when some of your global products need to run in regional data centers due to issues regarding personal data
to keep processing messages even when there's no internet connection
for cost management and market segregation
4. And What's the Difference Between Apigee Edge and Microgateway?
Apigee Edge vs Microgateway... why should you consider the later?
How are they different more exactly?
Especially since it gets even more confusing when considering that you even get Apigee Edge Microgateway plugins, which are so similar to Apigee Edge's policies...
What capabilities, that you can benefit from using Apigee Edge, does Microgateway lack, for instance?
Now, in terms of differences, here's a general "rule of thumb":
Apigee Edge Microgateway does not come to replace the Edge gateway.
It has its own specific "lighter" use cases, like various mediations, key verification, quota that you can do with your backend services in close proximity, all while tapping into its robust above-mentioned capabilities.
The END!
Are you using Apigee Edge Microgateway? If so, what's your specific use case?
And why have you decided to go with Microgateway instead of Edge Gateway?
Image by Lynn Neo from Pixabay
Adriana Cacoveanu / Jan 17'2020
Are There Any Strong Reasons Not to Use Nuxt.js? 7 Issues that Might Discourage You from Choosing It
It helps you boost your SPAs' SEO, it enables you to generate your apps both on the server-side and statically, it "spoils" you with an opinionated structure and setup... so you cannot help wondering: "Are there any reasons at all not to use Nuxt.js?"
Considering its heavy load of too tempting capabilities (and I've briefly outlined just some of them), you ask yourself:
"Why would I not (always) choose it over regular Vue.js for building my PWAs?"
"Why would I ever bother with a... "Next.js or Nuxt.js" dilemma, for instance?"
In short: what are Nuxt.js's limitations (if any), those that could make you at least doubt for a minute or two before choosing it for your future SSR projects?
Well, we've run our investigation and managed to identify its 7 key weaknesses (for there are, indeed, a few).
Weaknesses that we're about to share with you, so you can give yourself a well-founded answer to your question:
"Why should I use Nuxt.js over Vue CLI for building an SPA?"
1. But What Is Nuxt.js More Exactly? How Does It Work?
Before we go ahead and expose its weaknesses, it would be only fair to define this framework properly, right?
A concise, yet accurate definition would be:
It's a high-level framework that helps you build SPA and universal Vue.js apps more easily.
While a more detailed one would be:
It's a minimalistic Vue-based framework that simplifies the whole process of creating server-side rendered apps. It'll handle all the UI rendering of your app project, abstracting away the client code distribution and complex details of the server.
From routing to asynchronous data, to middleware, it'll handle all the complex pre-coding configuration, so you can focus solely and entirely on... developing a great Vue.js web app.
2. How Can Your Project Benefit from Using Nuxt.js? 5 Strong Benefits
Let's highlight some of the most "irresistible" capabilities of Nuxt.js, those that might have already made you stop and wonder:
"What possibly could determine me not to use Nuxt.js... in all of my future SSR projects?"
it's great for SEO: it solves all the SEO issues that single-page apps are reputed for (client-rendered content, mobile web performance, URL and routing, etc.)
it generates static websites via the "generate" command; moreover, it ships with powerful features, similar to other famous static site generators like... Jekyll, for instance
it provides an opinionated structure and setup
automatic code-splitting
it streamlines the building of server-side rendered Vue apps
it helps you get the most of your universal web app without a server
easy setup using the command-line with the starter template
3. Why Would You... Not Use Nuxt.js? 7 Drawbacks
The very question that sparked the idea of this blog post in the first place.
You'll hardly find any cons to using Nux. For this, you need to dig a bit deeper and look beyond the huge pile of online content on the common topics:
Nuxt vs Next
Nuxt vs Vue
Nuxt Universal vs SPA
N Reasons to Use Nuxt.js
and so on...
So, let's dig out some... disadvantages that you might want to consider before you just jump on the Nuxt bandwagon:
3.1. Common Plugins that Don't Exist or Which Aren't that Solid
There are Vue plugins designed to work on the client-side only (the server just wasn't added to the "big picture" when they were being developed).
So, do keep that in mind.
Also, you might discover that there are common plugins and components (e.g. Vector maps, Calendar, Google maps) that, well, don't exist.
When they do exist, they might not be as solid as you expected, since they're not properly maintained.
3.2. Getting Custom Libraries to Work with Nuxt with Can Be Challenging
Add this issue to your list of "the biggest disadvantages to using Nuxt.js", especially if the timeline for building your Vue.js app is a tight one.
Addressing it might take you more time than planned.
3.3. High Traffic Can Be Particularly Heavy on Your Server
This inevitable server strain in the case of a large, high-traffic application is another reason not to use Nuxt.js.
At least if this inconvenience weights heavier on your evaluation list than the pile of benefits does.
3.4. Debugging It Can Get Painful
"When things break, trying to dig down into what the hell broke can be a serious pain." (source: Reddit.com)
This is one of the most frequently reported issues with using Nuxt.js.
An issue that becomes exponentially frustrating as your Vue app project gets more and more complex:
When trouble strikes you only get a conventional error message. No clue, whatsoever, about where you should start your "investigations" in order to track down the "culprit".
3.5. There's a Relatively Small Comunity Behind It
And that can only translate as:
the product documentation is not that extensive
fewer resources for you to dig into at need
3.6. Fetching Data on the Server Takes Place At the Page-Level Only...
This means that you need to load data into a Vuex store or pass it all down via props.
A source of... frustration that you should be aware of before you decide whether to use or not to use Nuxt.js.
3.7. You Need to Get "Tangled Up" in More Complex Plugins or Components
If you need to build a particularly flexible Vue app — say you need to render the contents of a slot in another component — you'll have to render various JSX/functions.
The END!
These are the 7 main reasons to (at least) doubt whether Nuxt.js is an invariably good option for your SSR Vue project.
Have you identified other drawbacks, limitations or simply small, but annoying inconveniences to using Nuxt.js?
If so, feel free to share them in the comments down below, so we add them to the list!
Image by Gerd Altmann from Pixabay
Adrian Ababei / Dec 18'2019
The line between useful and... useless (or pushy or simply annoying) is thinner than you think. That's why creating a mind map that aligns your site's content structure with the user intent is... critical.
"Whether you’re a product owner or designer, you don’t want your website to be a maze with nothing but frustrating blind alleys.” (source: altexsoft.com)
And there's no guessing work or discouragingly complex process in identifying the current user flow on each web page on your website:
Just take a look at the behavior flow report in your Google Analytics. No rocket science here...
Take it from there and:
identify the roadblocks
restructure content on each page so that it matches user intent and is fluid and easy to read
But let us give you a hand with that. With mind mapping your current customer journey and planning its improved version:
In this respect, in today's post we'll:
give you the “anatomy” of a user-friendly website: what elements make a website, well, user-friendly?
define mind mapping with respect to designing the user experience on a website
teach you how to create a mind map: an easy step-by-step guide
show you how to use a mind map to make UX improvements on your website
1. The Anatomy of a User-Friendly Website: 4 Essential Features
“A vague objective leads to poor results.”
There's no point in creating a mind map that would hopefully make your website more user-friendly if... you're not quite sure what key elements make a website user-friendly.
So, here's the list of must-haves for any website aspiring to deliver a great user experience:
1.1. High Speed
It's no news to anyone: the page loading time has a huge impact on the user experience.
Unnecessary interactive elements, that don't match users' needs and don't play any role in the conversion process either, will only get you a clunky and... well... slow website.
1.2. Useful Features
And “intuitive” I must add.
Again, we go back to the “elements justified by the user's needs” principle:
Is that slider useful and relevant for the user behavior on your website? It it too bulky, loaded with endless options that just ... discourage the visitor?
You might want to re-evaluate all the features on your website: are they relevant and intuitive enough?
1.3. A Well-Structured Information Architecture
Information that's:
easy to access
easy to interpret
… is key for a wannabe user-friendly website.
1.4. Content that Matches User Intent
If users are looking for online cooking classes, let's say — and that's precisely what you promise to deliver them — and you're only trying to sell them kitchen gadgets on your website, the only result that you'll get is them bouncing off in seconds.
2. What Is Mind Mapping with Respect to Designing the User Experience?
An overly simplified definition would be:
A way to brainstorm and present the generated information in a visual way.
Now, since I've promised you a definition “with respect to” creating the user experience, here's a more... context-specific definition:
Mind mapping is a vesatile technique where you put together a visual hierarchy of your site's present or future content. It lists out the key pages on your website (homepage, service pages, blog page, etc.), the various relations between different web pages, the links and CTAs on each page...
Source: altexosft.com
In short: mind mapping reveals how data is structured on your website.
Of course, you'll then consider creating a mind map of the target version of your current website. The more user-friendly one...
3. Main Benefits of Using Mind Mapping: From Great Ideas to... Actionable Steps
Finding new ideas is exciting.
But jumping on every new great idea that someone in your team has, without first checking whether it aligns with the user intent, is just like... making shapes out of soap foam.
Not only that they're not future-proofed, but that clutter of ideas might not work together either.
By using one of the best mapping tools available online for structuring those ideas as they... pop out, you turn them into actionable steps in your strategy for improving the UX on your website.
And the clear benefits to mind mapping are:
you define your ideas' roles: what role do they play in your UX strategy (if you can't assign them a role, they're just “Wow” ideas with no solid justification)
you assess their value: how does implementing this new idea bubble up to the user experience?
you identify the various relations between them: you might want to avoid “island-ideas”, with no connections to other ideas listed out in your mind map
4. Creating a Mind Map: 5 Simple Steps
Now that you know what a mind map is and why on earth you'd bother making one, let's see how you can actually put one together:
4.1. Create a Mind-Map Template
Just so you can have a basic idea of the current information architecture on your website.
List out how data's being structured on your website now and how you plan to structure it for its more user-friendly future version...
4.2. Map Out Your Ideal User Flow
How would you like your website visitors to engage with your content? What actions would you like them to perform?
Source: mindmeister.com
Once you've outlined the key pages on your website (homepage, services, features), start planning out the user flow.
4.3. Compare it to the Current Behavior Flow Available on Your Google Analytics
Before you can properly map out the user flow, you need to know what's the standard customer journey on your website now.
For that, just delve into your Google Analytics data and look for the user behavior report. It'll show you all you need to know about:
how users are engaging with your website's content
what paths they usually take when navigating through your current information architecture
4.4. Identify the Roadblocks
The user behavior data might reveal to you some unwanted realities regarding the user experience on your website:
poorly structured content
a bulky and tiresome collection of interactive elements
irrelevant features (embedded videos, interactive elements, social sharing functionalities)
too many tools that don't respond to users' needs
4.5. Make the Appropriate UX Decisions to Influence the User Behavior
Now that you've identified the main roadblocks in delivering the best user experience, it's time to... remove them, one by one:
turn chaos into a logical content hierarchy
trim irrelevant page elements, with zero value in the conversion process
adapt web pages' content structure to the needs of specific audience segments (make sure to include relevant information for those customer personas, redesign your CTAs if needed...)
5. How to Use a Mind Map to Make Powerful UX Improvements
Creating a mind map is but the first step:
Turning it into powerful UX decisions should be your main objective.
So, the answer to the question “Are mind maps effective/useful?” is:
They are if and only if you make them useful and... usable.
You can turn your mind map into:
an effective sitemap
a customer journey map
But let us take a real-life scenario and point out specific UX decisions that you could make with your mind map at hand.
It's an example that I've run into reading Mindmaster team's great blog post: A Simple Way to Design UX, UI and CX Using Mind Maps:
Say you're targeting 3 different customer personas on your website. You then need to plan 3 different user flows.
You start by grouping the web pages on your site into 3 categories, each of them corresponding to one audience segment.
Then, you start doing some user behavior mapping: how do you want each customer persona to navigate to the corresponding web page so that he/she clicks the CTA placed there?
Now, it's time to make some critical UX decisions:
what relations to set up between various pages on your website? You might have a user on a service page and you need him/her to visit your “get a quote” page, as well
what's the best CTA design for each one of your 3 types of pages?
what key information should you include on a page, depending on the customer persona accessing it?
See? Not only that creating a mind map helps you put together an effective information architecture, but it's also a great technique for generating content ideas that match the user intent.
6. Final Word
In the end, it all comes down to goal setting.
Creating a mind map is a great way to:
understand your website goals: what type of conversion actions do you want users to perform?
achieve those website goals by delivering a user-friendly experience: content that's useful, accessible, easy to read and to interpret
The END!
Do you usually create mind maps when building new websites, to ensure they'll deliver the best user experience?
Or for existing ones, to improve their UX?
Do you consider them critical or optional in designing the user experience?
Image by Biljana Jovanovic from Pixabay
Adriana Cacoveanu / Dec 14'2019
Why or rather "when" should you consider building your own cloud-native Drupal platform?
Is a cloud platform the right answer to your Drupal app development challenges?
Is a container-based infrastructure a viable solution for you? For your business needs and for building digital experiences that meet the needs of your audience?
How do you know if your specific use case calls for a cloud-native Drupal app development environment?
And, assuming that you've run your own evaluation and that your use case does demand a switch from your current VM to a... multi-cloud Drupal hosting architecture:
How do you make Drupal... cloud-native friendly?
So that you can build, deploy, scale and manage fast and resilient Drupal apps in the cloud?
In this post, we commit to answering all your key cloud-native and Drupal-related questions:
"What does cloud-native mean exactly?"
"What is cloud-native with respect to Drupal?"
"Why do I need a cloud-native Drupal platform anyway?"
"What are the biggest advantages and their... flip sides?"
1. What Does Cloud-Native Mean Exactly?
What is a cloud-native application?
It's a holistic approach to designing, building, and running applications that make the most of cloud-native concepts.
Or, if you wish:
Cloud-native application development is a methodology — covering all stages of an app's lifecycle: design, deployment... operations — for developing apps that run in the cloud.
Applications that use the cloud computing model to its full potential.
DevOps, agile, microservices, and other modern software architectures all fall under the umbrella of a cloud-native methodology.
Therefore, it's fast, resilient, highly scalable and easily maintainable applications that you get to run in a cloud-native infrastructure.
2. And What Is Cloud Native with Respect to Drupal?
In other words: where does Drupal fit in this revolution in how we develop and deploy our applications on a cloud platform?
Overall, taking full advantage of a cloud-native Drupal app development environment means:
Finding the best solution for handling decentralized storage, auto-scaling, auto-provisioning and multi-region fault tolerance.
Getting the most of cloud-native and Drupal comes down to:
minimizing the use of long-running servers
relying more on purpose-built services and elastic computing
setting up a development environment where you can easily test your new themes and modules, fix bugs, build, and deploy resilient enterprise Drupal apps
3. Why Build Your Own Cloud Native Drupal Platform? And When?
For there are cases (is this your case, too?) when such a powerful, yet... challenging architecture is not justified by the company's business needs.
So, let's answer your "when" question first.
You're better off with a cloud-native infrastructure, where you deploy Kubernetes and containers, if:
you're dealing with high traffic, high volume applications and polyglot architecture
you already have an Ops team
you've already made at least some sort of investments in the private or public cloud
your current requirements in terms of costs and control justify setting up a multi-cloud architecture
you're running and maintaining an entire ecosystem of Drupal sites
"OK, so it looks like I "qualify" for it. But still: what would be the biggest advantages of building my own cloud-native platform compared to opting for a cloud vendor's services?"
Here are the 2 most obvious advantages:
you'd avoid getting locked in to a cloud provider
you'd avoid growing dependant on your PaaS provider for hosting, scaling, and managing your own Drupal apps
4. Why Would You Want to Containerize Your Drupal Apps in the First Place?
What would be your major wins if you ran Drupal in containers?
Here are the 3 most significant ones:
repeatability and consistency: you get the same predictable and specific result with each container that you run
less maintenance work
an easier way to run PHP upgrades compared to a conventional VM stack where you depend on your host for that and where there's a whole cluster of sites that needs to get PHP upgraded simultaneously
5. 3 Pillars of a Container-Based Infrastructure: Drupal, Kubernetes, Docker
What goes into a cloud-native Drupal platform? There are 3 key players involved:
5.1. Drupal
The robust, open-source software and content management system which, beginning with its 8th major version, grew into a Symfony-based content management framework.
Backed by a huge (100K+) and active community of contributors and a rich plugin ecosystem, Drupal powers a wide variety of web applications: media and entertainment apps, non-profit, gov, education...
The Acquia Cloud Platform is the only web hosting solution designed to meet the wide range of demands of enterprise-level businesses in Drupal.
5.2. Kubernetes
It's the standard container orchestration technology.
In the context of your future cloud-native infrastructure, you'll be using it to manage:
your containers' lifecycle
command and control
distribution
scheduling
5.3. Docker
It's the standard... tool that you will be using for creating your containers.
6. 4 Cloud-Native Platform Features to Put on Your Wishlist
What feature requirements should you have with respect to your Drupal app development environment?
Here's how a... decent wishlist should look like:
it should provide a layer of abstraction over IaaS
it should handle cross-cutting concerns
it should be easily scalable and secure
it should provide an efficient developer experience (and agile operator experience, as well)
7. Deploying Your Drupal Apps on the Cloud: Requests & Constraints
What's the proper setup for a container-based Drupal architecture?
"What are the key requirements that my future cloud-native Drupal platform should meet?" you might legitimately ask yourself.
your Drupal application should be turned into a containerized stack
minimal Ops (or not Ops at all)
it should run properly on any cloud
your public/private file should be externalized
it should scale up, out, and down
it should make the most of PaaS services: for gateways, databases, load balances, cache stores, queues
it should tap into an operational model: new app provisioning-routing-monitoring...
your development team should be able to get high fidelity local environments up and running in no time
"And what challenges should I expect?" you'll further wonder:
your developers are faced with a steep learning curve: they should have some sort of understanding of what's happening under the hood when deploying Kubernetes
CI & Delivery Pipeline
logical architecture
monitoring and management
Dev & Build Tools
local development
The END!
What do you think about Drupal Cloud?
Is a cloud native Drupal development environment a viable solution for you?
Are the advantages highlighted here relevant enough for your use case and business needs? Or are the outlined challenges too discouraging for you?
Feel free to share with us any thoughts and concerns that you might have regarding the idea of building your own cloud native Drupal platform and see how Drupal Cloud can help you deliver outstanding digital experiences.
Photo by C Dustin on Unsplash
Silviu Serdaru / Dec 12'2019
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
Adriana Cacoveanu / Dec 06'2019
"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
Adrian Ababei / Dec 04'2019
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
Silviu Serdaru / Nov 26'2019
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
Silviu Serdaru / Nov 22'2019
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
Adriana Cacoveanu / Nov 15'2019