Details
Alexandra Carter - Callcredit, Numero and Microsoft: Containerisation Hack of a Legacy Software Solution
This is the story of how we took a legacy solution and pushed it into containers on windows in just three days. This was also a great chance to work with Microsoft at the cutting edge of their work on containerisation, VSTS and Azure. Moving on from our Hackathon, we have continued adding new components, experimenting with orchestration and showcasing our work. I’ll talk you through the prep work, the 3 day hack and the subsequent work; what it means for the product roadmap, the experimentation we have done and how stakeholders are responding. Finally, we’ll look ahead to next steps.
Case study: https://microsoft.github.io/techcasestudies/devops/2017/06/16/Callcredit_DevOps.html
Alex Carter
"I have worked in IT, Marketing, Software Support and Software Delivery before moving into my current System Build (DevOps) role within Callcredit. I live and breathe DevOps and am currently focussing on anything around containerisation in Windows. A day without Metal and motor racing is a dull one."
@smileandeliver (https://twitter.com/smileandeliver)
From CodeMill digital skills meetup https://www.meetup.com/CodeMill-Digital-Skills/events/243110732/
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill - Dec 2017
1. “Let’s put Numéro into Containers on
Windows!”
This is what happened…
2. Callcredit
Who we are
• Credit Reference Agency
• Data Company
• Windows .NET
• “Software” Products
3. Protects Cardholder Data
Regulates Use & Storage of Personal Info.
Implementation of the FoI Act
Financial markets need to be honest, fair and effective so that consumers get a fair deal.
9. Enterprise / Bespoke Solutions
Browser Mobile
App
Data
Platform DefinitionApp Definition – ADK
ConfigurationContent
API Based Architecture
Core
Services
API
Transactions
API
Web API
Web UI
Creation
API
API
Identity and Access Management
PUBLIC/DMZPRIVATECLIENT
JSON Store
API
Enterprise
API Process Proxy
Legacy
Services
Legacy
Services
16. • Starts with sales
Issues can be introduced long
before any technology involved
17. • Manual steps, waiting,
• multiple deployments
Multiple manual
deployments
Lots of waiting and
manual steps
18. Long builds – 8 hours
Failures common -> re run -> 16 hours
Due to tech debt, such as redundant tests
Queued builds due to hardware bottleneck
19. Manual deployment, often
using copy/paste over RDP
One site uses Octopus for
deployment
Multiple customers means
multiple deploys
Some customers don’t
upgrade: wait time to receive
value = infinity!
20. Callcredit’s requirements:
• Portable (deployable onto platform of choice)
• Push an update once to all live instances
• Quickly replicate any bespoke customer solution
• Methodology suitable for other software products
• Scalability
• Resilience
Containers were the most obvious thing to try
21. Before the Hackathon Started, we…
• Identified the minimum viable components
Database
Core Services
Identity Component
• Built Numéro solution from scratch
• Confirmed Prerequisites
• Created a Pipeline in Octopus Deploy
• Set up Azure Sandbox
• Set up VSTS
• Imported code into VSTS from Git
Prep Work
24. Why VSTS?
• Callcredit use TFS
• Integrate Numéro with other product teams’ practices
• Useful to have a cloud service - sharing with remote teams
• Strong push to evaluate VSTS
• Updates and enhancements handled by Microsoft
• VSTS Updated before TFS
26. Aims for the Hack
• Build our three components within VSTS
Database
Core Services
Identity Component
• Release Process:
Docker Containers
Test and Live environments
Azure
• Monitoring
53. Release using Docker Compose
• Why Compose & Swarm?
• Needed to deploy to single VM
• Swarm provides a Windows only solution
• No Linux servers required
• What's in the compose file?
• Services and their configuration
• Image
• Ports
• Environment variables
• Dependencies
• Networking details
54. Release Pipeline
Used docker-compose up to run
containers. If using Swarm would
use docker deploy
For the hack, two
environments Test &
LV (live)
57. Monitoring
• Microsoft Operations Management Suite
• Collects logs from Docker hosts
• Integrates into the Azure portal
• Allows export of logs to external platforms such
as ELK
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70. • Right now…
• Map and Script everything we did
• Shout about it
• Orchestration: Kubernetes? Swarm?
• Recreate it in a fully automated way from scratch – on Azure
• Within a Year
• Prove Portability – Callcredit environment – AWS
• Add Customer config
• Fully functional, Live customer solution running in containers
• Begin containerisation of next Software product
Next steps
71. Callcredit’s requirements:
• Portable (deployable onto platform of choice)
• Push an update once to all live instances
• Quickly replicate any bespoke customer solution
• Methodology suitable for other software products
• Scalability
• Resilience
72. • Right now…
• Map and Script everything we did
• Shout about it
• Orchestration: Kubernetes? (Marcus - Swarm?)
• Recreate it in a fully automated way from scratch – on Azure
• Within a Year
• Prove Portability – Callcredit environment – AWS
• Add Customer config
• Fully functional, Live customer solution running in containers
• Begin containerisation of next Software product
Next steps
73. Resources
Alex Carter
System Build Engineer
Callcredit Information Group
Email: Alexandra.carter@callcreditgroup.com
Twitter: @smileandeliver
• DevOps Fundamentals:
https://channel9.msdn.com/Series/DevOps-Fundamentals
• DevOps Dimensions:
https://channel9.msdn.com/Shows/DevOps-Dimension
• Lots of videos about Azure and containers
https://channel9.msdn.com/
• Get access to free online training:
https://mva.microsoft.com/training-topics/devops
• Numero Interactive:
http://www.thisisnumero.com/
• Callcredit
http://www.callcredit.co.uk/
Want access to Azure, VSTS and more for FREE?
Visual Studio Dev Essentials - https://www.visualstudio.com/dev-essentials/