We build and support two main platforms that host a variety of different products. The platforms are split broadly between client facing and internal support tools.
Our client platform provides our clients with everything they need to plan, understand and manage their investment with Netwealth. Using our platform, they can learn and discover the different ways they can invest and manage their money with us. We provide them with tools to plan their financial goals, open an account and move their money to us. Once they are a fully-fledged client they are able to manage their portfolios online using our powerful, cost-effective and award-winning online service.
Our internal platform is built to provide our Client Service, Advisory and Operations teams with everything they need to open, process and manage client accounts and investments. This includes complex financial processing, 3rd party integrations and client account management.
From the very start, Netwealth has been a cloud-first company, choosing Microsoft Azure. The majority of our middle- and back-end languages and frameworks are from Microsoft, but we use more open-source offerings on our front-end.
We use the latest and best tools so that our teams are as productive as they can be.
At the start of 2019 we decided to migrate our architecture to Serverless Microservices. This was made more obvious and possible by the improvements to Azure (Durable) Functions, Event Grid, and the more general move Microsoft is making towards Consumption models for all their resources.
We advocate orchestration for intra-service work and choreography for inter-service communications. Our platform is now being underpinned by Event Sourcing and we've championed the idea of User-Aspected Services.
Our goal is to have an architecture where everything that can be serverless, is.
Whilst certainly not legacy, in its purest term, it helps to clarify the older ways of working that we are moving away from.
Our platform is deployed to multiple Azure data centres in Europe and the UK. We use automatic scaling and load-balancing techniques on our user-facing resources, which are ASP.Net websites running in App Services.
Our middle-office functionality is primarily supported by queue-fed WebJobs and Logic Apps.
All our secrets are encrypted with access restricted and audited via Key Vault.
We use various data persistence media for our domain including SQL Server, Tables, Blobs and Queues.
All our CI/CD and Agile (Scrum) processes are housed in a single product: Microsoft DevOps. We benefit from the seamless, joined-up nature with which all these elements can interact with one another. Employees get used to working in a single, integrated environment for multiple aspects of DevOps.
The entire lifecycle of that bug is connected and visible; from discovery, through code fixes, through approvals and, finally, to release.
Here's an overview of the major elements of our DevOps setup:Scrum Work Items and Custom Processes Source Control (Git) Branching and merging strategies and policies PR Builds, Tests and Code Reviews Automated Branch Build, Test and Release Automation Tests Release Approval Gateways