Monthly Archives: July 2019

  • -

CMS: Hybrid, Decoupled, Headless, or Clueless

Content management systems (CMS) are as ubiquitous as food carts in major cities. Most of them find a niche to survive. We have many flavors of CMS. Depending on your needs, implementing a CMS solution can be trivial to more complex.

The traditional CMSs that added API capabilities are called the hybrid. The new ones that built their delivery mechanism separate from the backend system are called the decoupled. The ones with API as primary interaction mechanism are called the headless. Headless stands for anything that doesn’t use a graphical user interface for user interaction. The term headless has been around well before it became a buzzword in CMSs. Software applications such as word processors, pdf generators, image processors and browsers have long been used in headless mode by developers.

What Choices Do We Have?

Let’s start with the headless buzzword. A quick search for headless CMS brings up one interesting article in CMS Wire that explains a couple dozen players. The URL for the article starts as 13-headless-cms but goes on to list 24 of them. This is not an exhaustive list. There are many more CMSs and digital experience platforms that provide hybrid and decoupled platforms as well. A few of them include Episerver, Adobe Experience Cloud, Sitecore, Crafter CMS, Liferay, and Jahia. We also have many more PHP based solutions such as Drupal and others.

The other major CMS in terms of market share is WordPress. There are more sites built on WordPress than any other single platform. Organizations of all sizes use them somewhere or the other. WordPress also has REST API that could be leveraged to create single page applications and deliver content to various devices. WordPress could be considered as a hybrid CMS with the API capabilities. Jetpack provides security, backup and performance on top of standard wordpress installation.

The concept behind headless, hybrid and distributed are not new. CMSs have provided these capabilities for a long time. These terms have become the buzzword as we are moving into the fourth industrial revolution with connected devices.

How Do You Choose?

There are many factors that come into play when it comes to choosing a CMS. The basic requirement is that it has a robust way to create and deliver contents of various types. In addition, we could look into the following listed reasons:

1. Purpose

What are you building? Answering this question will help choose the appropriate CMS. In a startup economy, not everyone needs a complex system with a high price tag. Also, not all sites need all the capabilities. Based on your need you can definitely find the one that suits with price tags from a few dollars a month to thousands of dollars a month. More and more vendors are supporting businesses of all sizes with their SaaS offerings and pricing model.

2. Ecosystem

Developers who are already into a certain ecosystem such as Firebase may want to go with something like Flamelink that is already built and billed for such environments. Those who are using Heroku may want to start using something like Butter CMS or Elegant CMS as these vendors target that niche. A more robust enterprise implementation may want to focus on enterprise scale systems that have both self-hosted and cloud solution (SaaS).

3. Content Delivery / Caching

Speed and distribution are basic requirements for all CMS solutions. Deployment and delivery also depends on what you are building and where your audiences are located. Are you trying to build a site/app for a museum, a sports site, a news media, or an intranet for distributed workforce around the world? It is easy to distribute static assets that are publicly accessible to various channels and regions. Assets that require permissioning needs advanced capabilities and may benefit from distributed decoupled CMS.

4. Security and Audience Targeting

When it comes to users and roles a lot of these systems focus on content creators and not content consumers. If you are building a site for the general public, the only access control that you may need is for authoring, editing, and publishing contents. Once the contents are published they are public and often have no restrictions on who can view them. 

If you have highly permissioned, sensitive contents with targeted audience a better choice is to look into digital experience platforms that offer a hybrid/decoupled model along with all the enterprise features.

5. Robust Search

Robust search capabilities backed by search engines such as Elastic or Solr are key requirements for most major implementations. The search needs to be powered by strong support for taxonomy and permission models. 

6. Whom are they Competing with?

Another way to identify the capabilities of the CMS is to look at whom they are competing against. Are they claiming themselves to be better than WordPress, Drupal or other enterprise vendors? This can give you an idea, especially when you are not familiar with the product that you are looking into.

7. Cost

Cost is always going to be a major factor when choosing a product. As an example, Butter CMS focuses on a number of blog posts to determine the pricing. This may not be a great pricing option to build a public blogging platform. Some platforms may require thousands of dollars per month in investment which may include subscription, licensing, and development costs. The amount of money an organization spends often depends on the size of the budget. It does not always correlate with the need unless they are employing lean methodologies.

8. Find Out Who Uses These CMSs

This is a little tricky one. Many vendors may list the same customer as their client. In large organizations, different departments tend to have their own procurement processes. It is possible that a large company may have multiple solutions across various departments and locations. It is also possible that the listed customer was once a client of the vendor but not anymore.

9. Support

If you are planning on a major implementation, support is a very key factor. The sales team often goes away once you make the purchase. How do we know if a vendor has a good support service? It could be a challenge to get unbiased opinions from references. It may help to talk to other customers at conferences, roadshows or by directly reaching out to them to understand their experience. The happiness level of employees are also indicators of company culture. Don’t hesitate to look at Glassdoor reviews.

10. A Trusted Partner

Any major implementation needs a trusted partner. A partner does not have to be a major firm. It could one or two people who have the expertise to sort through the pile. It is key that you are able to look beyond the buzz and hype.

Conclusion

Identify your need. Identify your budget. Identify a few vendors using some or all of the capabilities listed above. If the product is an open source, download and see the capabilities for yourself. If it is not an open source, ask for a trial. Build a quick proof of concept. Choose the one that meets your criteria. If your team is committed and happy with the choice, that is a sign of a great beginning.

Published: July 25, 2019


  • -

Serverless Computing: A Universal Fit

Category : Development , Serverless

Many organizations are pushing for serverless architecture in every aspect of application development. Serverless is not just functions as a service. It basically consists of everything from handling request, data, notification, authentication, authorization, and more. More importantly, it has become a solution for companies of all sizes.

What Is Serverless?

Serverless applications do run on servers. It is just that the users are not the ones who provision and manage them. Computing resources are spun up to do a job for a very short time and are released for others to use. Cloud providers have built a vast amount of capacity and continue to do so. The idea is that not every single customer is going to need the maximum capacity at the same time. If it does happen, there can be a service outage and a blackout. This is something that the serverless service providers always factor into their ongoing effort. 

Serverless also differs from all the other offerings by the way the cost is calculated. In a serverless model you pay for the commodities by per usage at a much more granular level. The usage is usually driven by an event and the amount of resources it consumes during the processing of that event. It is common to run a function for less than a second and to pay for every 100 milliseconds of usage as is the case with AWS Lambda pricing.

Scale Up and Down Without Any Commitment

Serverless providers guarantee scalability to most of their service offerings. This is the most attractive part for startups and startups within an enterprise. This allows the teams to innovate faster without a major investment in infrastructure. 

Serverless As First Class Offerings

AWS has something called the Spot Instances where you could use unallocated resources for a much reduced cost with the understanding that it could be interrupted anytime. Spot instances are much more complicated than serverless offerings. Serverless services come with the promise that they will be able to scale as needed without interruption. This promise makes serverless a reliable first-class service for building critical applications.

Serverless Containers and Kubernetes

Azure and AWS both offer container services in a serverless mode. The idea is that Kubernetes is not for everyone to deploy and manage. Businesses should focus on deploying and scaling the applications without having to manage the underlying processes that help with scaling. Azure Kubernetes Service describes itself as serverless Kubernetes. AWS has AWS Elastic Container Services (ECS) with two modes of operation. For those who want more control, it can be run on EC2 mode. And for those who are not concerned about granular control, Amazon provides AWS Fargate, which is a serverless mode for containers.

Authentication In Serverless 

Authentication in serverless is billed a little differently in terms of units of charge compared to traditional Identity as a Service (IDaaS). Serverless services such as AWS Cognito charge based on monthly active users (MAUs) and not based on requests. Other identity providers such as Okta, Auth0 have similar models. The difference from serverless pricing and that of Okta/Auth0 is that they offer tiers such as up to 1000 MAUs, 2500 MAUs etc.

Upgradable Application Design

Various upgrade nightmares are primarily related to the tight coupling of the services and underlying dependencies to other services. If applications can communicate via https and consider other services as blackboxes, it will significantly reduce the upgrade nightmare scenarios. Such a design does come with an upfront effort. The traditional model of Rest APIs’ is evolving. If you are making a lot of API calls from browser to server for single purpose, consider building applications with GraphQL. GraphQL acts as a layer between APIs and data sources reducing the number of calls to get the desired data. GraphQL has also gained some attention in AWS, Azure, and GCP communities in the serverless model. AWS provides AWS AppSync as their GraphQL engine while there are third party plugins and support for GraphQL on Azure.

Serverless Edge Computing

Edge computing is the next major application delivery model that has gone serverless. Every major cloud service provider offers edge computing capabilities. These are primarily geared towards the IoT devices. Edge computing is becoming critical especially for the businesses that have global user bases. Edge computing can be considered as an extension to the content delivery networks that we are used to. The main difference is that your serverless code runs close to the users.

Go Innovate

It does not matter which cloud provider you use. The key to success is the ability to innovate fast. Application delivery is not like building a plane or space program where fast usually means a few years. In application development, teams are building and deploying applications in a matter of weeks. If you are new to serverless, start with functions and offload some of the workload. Then slowly expand to other services.

Serverless offerings are geared towards businesses that are startups or would like to act like startups and innovate faster. It is not a surprise that big companies are already spending millions of dollars in serverless services. The actual choice of what to use will require more than just the cost factor. Each and every business and their executives need to evaluate the right model based on cost, talent pool, and more importantly the organizational culture. Make your team the most valuable equation of all solutions. The industry is changing rapidly, but the core principles and need to solve the problems we face remains the same.

Published: July 8, 2019