Transitioning from Traditional CMS to Content as a Microservice
Posted by Abhishek Kothari on October 27, 2019
Table of contents
Web content is an important asset for organizations today requiring constant management and updates. Content distribution has evolved exceptionally, being accessed over various channels and devices and often presents challenging situations in the content management domain.
1. Present content management landscape
At present, organizations around the globe utilize a variety of content management solutions as per their needs.
These systems vary widely over their content management architecture. While some are closely coupled with their frontend medium, the others are loosely coupled and share a common database. Generally, content management systems involve three major components:
- Database & Object storage
The database and object storage play an important role here by being solely responsible for the storage of data and files. Backend is the interfacing medium between the data and user interface. The frontend is the presentation layer for the users to view the content.
Presently, most organizations follow an approach where backend and frontend are closely coupled and serve over a defined medium. For instance, the backend and frontend for a website and mobile application are developed separately. The primary reason behind this is to optimize content for each medium individually.
2. Evolution of content viewing mediums
Electronic mediums for content viewing have evolved exceptionally. Previously only available through hard copy and print, people now browse digitally through content on multiple devices such as laptops, tablets, and mobile devices.
This content consumption transformation has resulted in an evolution of content management tools too. Content customization, mobile optimization, and accessibility are among the features that content management systems must have today.
There is one more evolution in the content management system that is in its initial phase. This evolution focuses on optimizing the code base involved in content delivery and processing. The content management tools are now moving towards API based content management. This concept is called “Content as a microservice”.
3. What is content as a microservice?
Content as a microservice is a concept evolved from the need to have a fixed backend for each type of content. This will assist in reducing the replication of code logic across multiple applications.
a. What is a microservice?
Microservices are practically similar to an API provided by the backend server. In a microservice architecture, multiple such backend servers are deployed to manage individual responsibilities. The above image depicts such an architecture for content management as a microservice. Every server is responsible for providing microservices for a specific task.
b. How can content management be transformed into a microservice?
This architecture allows you to leverage different tools or engines for each content type rather than using a single content management system for all the content. With such flexibility, you can ensure that each type of content is managed by an engine that is best at it. For instance, you could utilize ButterCMS microservices for managing the content for textual data as well as file storage while utilize an alternate service like YouTube Live APIs.
This shift towards content as a microservice benefits you in multiple ways. The next sections will discuss this fact in more detail.
4. Benefits of making the shift
You already have a system that works great. Do you really need to shift to a new one? Do you really wish to put in the effort to restructure the complete system? — This is the most difficult decision to make. Here’s a great overview of what it takes to do this from Marco Palladino, the CTO of Kong. Now, let us understand the benefits you gain by making this shift.
With content as a microservice, the overall responsibility of the development team is greatly reduced. Moreover, with a common backend supporting the data, the overall effort put in to organize and update content also reduces.
a. Impact of the shift for marketing teams
The marketing teams play a major part in managing the content for an organization and are responsible for managing various campaigns, posting blogs, news and events. For marketing teams to create an impact, they need to ensure that content is perfectly suitable for viewing in a variety of devices.
With content being served as a microservice, the frontend engineers take up this responsibility by rendering optimized content. This helps the marketing teams to focus on content rather than worrying about its viewability. Additionally, with content flowing out of a centralized backend, the marketing teams need not worry about the latest content being shown on all the mediums. A common backend ensures that the same data is served for all the devices irrespective of the caching strategy.
b. General benefits for the organization
For an organization, getting the content centralized is of considerable advantage. With content being distributed, implementing approval flows can be inefficient and challenging due to multiple backend engines. With a centralized content repository, organizations can have proper approval flows and versioning systems in place. A single backend engine and database allows a one-click approval for all the mediums.
From an architecture point of view as well, the organization reduces costs by serving content as a microservice. On top of it, they are always independent to choose a different engine for a particular content type as and when needed. This ensures modularity and easy upgrades.
5. Challenges in moving to a microservice architecture
When migrating to a microservice architecture, there are issues that need to be considered. The primary set of challenges in moving to a microservice architecture involve:
- Identifying a strategy for migration of the content from the old CMS to the new CMS
- Cost-benefit analysis of the migration
- Understanding the new content data structure and mapping the existing system to it
With a proper step-by-step approach, this migration could be quite smooth and easy. Moreover, it should also be known that numerous organizations have today embraced this new architecture and have seen long term benefits of the same.
6. Migrating an existing system to a microservice architecture
a. Understanding existing content data-structure
For every system upgrade, understanding the existing content data-structure in terms of its data storage as well as file storage is the basic step. It is necessary to know the underlying data structure before we could map the existing data to the new CMS architecture.
For this, normally the organization generate an ER diagram of the existing database schema and try to understand how the data is structured presently. A list of entities and attributes are extracted from it. This list further helps in mapping the entities and attributes in the new data structure.
b. Choosing a microservice engine
When shifting to a microservice architecture, you might have two choices — Build your own or buy one? It has been observed that unless you work with a very stringent requirement for your CMS, it is always beneficial to buy one rather than reinventing the wheel.
Defining a clear set of business requirements is the first step to shifting to a microservice architecture.
Some relevant questions that can be used are:
- What type of content do you wish to store?
- What are the target mediums?
- Do you need approval flows for your content?
- How do you plan to authorize the content request?
- Do you wish to handle SEO of the content yourself or wish to automate it?
With these questions, you can contrast and compare various Headless CMS engines that might suit your requirements. ButterCMS can support requirements involving needs for a fully-managed CMS hosting content over CDN, auto-generating SEO metadata, supporting localization and providing excellent development support.
c. Transforming data structure
Once you have finalized the microservice engine, you know the new data structure. In coordination with the CMS support team, identify the mapping for the entities and attributes for the new data structure. Once this identification has been done, you could either choose to utilize migration services provided by the CMS or engage your development team to migrate your content.
Once the data structure mapping has been identified, you can begin with the data migration. To keep the process of content migration smooth, it is important that you utilize the support of the respective CMS team. Any glitches in the migration could result in major rework too.
d. Getting started with app development
Finally, you are ready to leverage content as a microservice. Now, you have the content architecture setup and a backend engine running on top of it. The content is available to consume as a microservice in any programming language of your choice. This ensures independence in developing excellent responsive applications by using the programming language of your choice.
So what are you waiting for? — Switch to a headless CMS engine like the ButterCMS engine now for getting your content served as a microservice!
Content as a Service: Your Guide to the What, Why, and How
Using Web Components with ButterCMS
ButterCMS is the #1 rated Headless CMS
Don’t miss a single post
Get our latest articles, stay updated!
Abhishek is a software solution architect with 6+ years of experience in the industry. He has had opportunities to build and architect numerous small to large web applications and platforms leveraging various Cloud services and platforms. He also really enjoys sharing knowledge with the community by writing blogs, conducting training and building engaging courses.