Simply put, technology-independent architecture means not being biased towards any particular platform or software language. It’s about selecting the right technology that fits the solution, not fitting the solution around the technology. In terms of web development this usually relates to three different aspects: the HTTP server, the web application and the CMS (Content Management System).
Defining the server
The end-to-end solution deployed depends on what is required to meet business needs. Does the solution need to have real-time updates? If so, an architecture that can deliver and update a website without the need to refresh the page is essential. Is the solution an in-house tool or a marketing website? Will the content be updated on a regular basis? Is the SEO strategy crucial to business needs? Here at Accelerate, we define the full scope of the client’s business requirements first and then plan the web architecture that will fit best around the solution.
Defining the web application
The web application is made up of client and server-side technology. Client-side technology refers to technology that is based on the consuming device e.g. a web browser, a mobile device, a smart TV. The device and the intended functionality of the application will determine what technology to use. Will you need access to the device location? Will you need access to the device hardware? Is the content going to be static or dynamic?
Server-side technology refers to the central processing and business logic of the application. There is more flexibility around technology options for this so long as it’s compatible with the client-side app and architecture. The determining factor of the server-side technology is more geared towards best practises e.g. security and performance.
Decoupling the CMS
The key to a flexible approach is to remove the dependence of developing within a CMS. Each CMS has its own framework, tools and markup language and this causes issues for developers who want the freedom to use any given tools with the latest industry practices. Usually this means hiring developers with specialist knowledge of a particular CMS. For this reason, we decided to use Drupal 8 as our current CMS at Accelerate, as it has the ability to expose all of our content via the REST JSON communication. This gives us the ability to use Drupal exclusively as a CMS, and our server-side web application is based on the technology framework that we feel is best suited for the solution. Drupal 8 is the first open-source CMS that has this functionality built into its core, however, other CMS platforms can be extended to have similar capabilities. And although we currently use Drupal 8 for its security and customisation, this could change in the future. Using a common language like JSON between the different points of the architecture means that we have more flexibility to change technologies.
What does all this mean?
It all comes down to flexibility and adaptability. Our approach to web architecture gives us the ability to:
- Tailor the technology around the solution and not the other way around
- Use the latest industry tools and practices without being restricted by a framework or platform
- Configure the CMS and develop the client and server-side web application alongside this, significantly reducing development time and bottlenecks
- Change the web architecture at different points as clients’ needs change without impacting the rest of the solution
How does this help our clients?
As our clients grow they will face numerous challenges and decisions. They will have to adapt to their environment, and the technology will need to do the same. Usually changing technology is expensive and time consuming, regardless of where sits in the web architecture. By decoupling various systems and using a common language, we can deploy new solutions faster and at a lower cost.
– Jaspal Gahunia, Head of Technology