Our client is one of the largest financial information providers that publishes content on markets, banking, fintech and other financial sectors. Our client’s goals include the automation of publishing workflows, data storage and enrichment, and improvements in semantic metadata processing. The company also aims to provide a pleasant customer journey online across numerous brands in their portfolio, with information easily discoverable through powerful search capabilities.
For years, our client used various internal software products for publishing workflow automation, in addition to several online websites built around a common core. The tightly coupled nature of this approach became a challenge, as any changes to the common core were slow and risky. Several aspects of our client’s approach to development workflow, build and deployment automation, and package and artefact management further contributed to the lower iteration speed of development efforts.
As a result, there was a requirement for a robust, scalable, testable and service-oriented approach. The first milestone included decoupling the existing infrastructure and adjusting the development process. Some additional effort was also required to modernise the authentication system, revamp the content storage and create an integration platform.
Adopting a robust service-oriented approach requires changing the development process. Service-oriented architecture mandates the establishment of standardised service contracts and the enforcement of service autonomy. Each team is responsible for ensuring that their service adheres to the contract, as well as reaching their service-level objectives, such as availability and a low error rate. The above considerations led us to delineate the following goals:
- Establishing boundaries within various parts of software solutions;
- Automating the build and deployment processes;
- Running builds and deployments independently of each other;
- Cultivating a strong ownership culture.
To ensure a smooth transfer to ownership culture, we implemented changes in version control, package management, build processes and the development workflow. In particular, we switched to a distributed version control system, Git, instead of the centralised SVN repository, with the code split across multiple repositories.
A constant focus on adopting industry standards made it feasible to offload dependency management to NuGet for .NET application code and NPM for front-end packages. This delivered two major improvements: applications were now able to depend on different versions of shared libraries, and the build and automation tooling setup became much easier due to the widespread support of NuGet and NPM in the CI/CD offerings. As a result, the existing TeamCity build pipelines were significantly streamlined and improved.
The deployment process, which had previously been only partly automated, was completely rebuilt using Octopus Deploy. This yielded multiple advantages, such as reproducible deployments, the ability to change host configuration during deployment and the enabling of most deployments to be done independently with almost zero cross-team communication.
Finally, all teams adopted Scrum, which facilitated feedback, enabled faster delivery, and ensured predictable milestones and timely reporting.
With continued focus on industry standards, the authentication system was redesigned based on the OpenID Connect protocol. We integrated a multitenant system on top of the open-source IdentityServer library, thus providing secure management of the client’s credentials.
In the next stage, we redesigned several internal projects using the established service-oriented approach; this included a content storage platform based on ASP.NET WebAPI, Azure Storage and Azure API Management. Using Azure Service Bus topics, stakeholders within our customer’s infrastructure can now be notified about document changes, which makes integrations and business process automation easy, scalable and asynchronous by default.
To decouple workflows from the underlying providers, we built an integration platform using SnapLogic pipelines. As a result, the business gained additional operational capabilities and could now adjust their processes without developer involvement. With this new platform in place, one can seamlessly integrate Salesforce, Adestra and Marketo into business workflows.
This redesigned architecture allows the website teams to focus on those features that are most relevant to them, including content management, visual aspects, A/B testing and personalisation. Sitecore was selected as our primary CMS to serve as a backbone for all newly developed websites. Sitecore’s experience platform now allows editors to experiment with website structure; reuse, remix and repurpose content easily; provide personalised content suggestions; and run A/B campaigns to gain further insights into a website audience’s interests and preferences with minimal involvement of IT personnel.
With the improved development process and automation tool implementation, we managed to significantly boost the time-to-market of developed features. Continuous integration is currently implemented across the board, with many projects oriented towards continuous delivery.
Decoupled infrastructure enabled the client to switch to cloud-based services, adopt best-in-class platforms and focus development efforts on projects that generate value in the business chain.
Related CasesRead all
Online Robotics Simulation Application
An educational robotics kit—a browser app simulating the whole process of building, programming and testing a robot.
Implementing LTI 1.3 for LMS
Implementation of the latest version of the standard, LTI 1.3 and in particular LTI Advantage.
OneRoster 1.2 Integration for LMS
A solution for passing grade information from the LMS to a student information system (SIS)