LendInvest is the UK’s leading online property lending and investing business. They provide an online investment platform for people and institutions to invest in loans, that are secured against property, to property professionals. LendInvest spun out of Montello in May 2013 to be the world’s first online lender for property finance. Their mission is simple: to bring the speed and efficiency of online lending to the mortgage market for the first time.
“Since developing our new platform, we’ve worked with some other consultancy companies. We kept facing the same problem when trying to move forward with these parties: The progress was slow and inadequate. Going into business with Kumina was a big turnaround. After two months they managed to get our entire new platform live. During the creation of the set-up we were in contact on a daily basis via online chat and several conference calls. It was reassuring they continuously showed us the progress: Things were getting done this time. Whatever kind of questions we had, they always took the time to answer them properly and flew several times to London to visit us making sure the co-operations was going well and everything was clear on both sides. They consulted us on how to organize the platform in such a way that we can save on costs and our developers can work more efficiently. We really appreciate the personal contact and hands-on mentality of the team. They solve all our daily and direct technical problems and challenges, enabling us to concentrate on doing our job.” – Leonardo Proietti, Software Development Manager at Lendinvest
Container-based infrastructure for continious delivery
When LendInvest came to Kumina duting the Summer of 2016, they were working on the next generation of their platform. LendInvest was looking for a partner who would not just build a platform for them but also actively engage them in the process of the design and deployment.
They had several requirements for their new infrastructure:
» Micro services architecture.
» Use container technology as the core of the platform.
» Fault tolerant and high available.
» Continuous integration and continuous deployment.
» Service discovery.
» Amazon AWS as cloud provider.
With these requirements Kumina set out to build a platform that would not only meet LendInvest's requirements, but exceed their expectations.
At Kumina we deploy all our platforms based on "infrastructure as code" (IaC) principles. This allows us to easily reproduce and scale environments. For this particular platform we use Hashicorp's Terraform. Terraform enables us to codify the entire Amazon AWS infrastructure. Due to the numerous providers that come with Terraform we can provision everything from EC2 to RDS.
We use CoreOS as the operating system for the plaform. By using CoreOs, we get a lightweight Linux operating system which is designed for providing infrastructure to clustered deployments. CoreOS comes bundled with several tools:
» Docker (Container runtime)
» Fleet (Distributed init System)
» Etcd (Service discovery and key/value store)
Jenkins is used as the Continuous Integration and Continuous Deployment platform. It's set up to automatically create and deploy images, run tests, cron jobs and migrations, smoothing the entire experience with the platform. Developers just need to push code to Git and most other steps are done automatically. LendInvest has chosen to manually deploy new versions of their applications at the touch of a (web-based) button, but that could be automated as well.
As LendInvest is using a micro-services architecture and container technology, we needed an orchestration tool that is stable, feature rich and allows easy administration. Kubernetes was the obvious choice for us, as it has a strong Open Source community and is feature-rich. Also, it's based on 15 years of experience with Google Borg, where it has been running production workloads.
Some of Kubernetes features include:
» Automatic binpacking
» Horizontal scaling
» Automated rollouts and rollbacks
» Storage orchestration
» Service discovery and load balancing
» Secret and configuration management
» Batch execution