Posted on 01 Apr 19 by Luke Dudney - Senior System Engineer
Learn how KZN helped PC Locs re-architect the TechDen platform and deployment pipeline to improve the reliability and ongoing capability to scale in order to meet customer demands.
PC Locs is a company dedicated to the design, manufacture and distribution of the highest quality and most functional security, charging and transport solutions for storing Laptop, Tablet, Chromebook, iPad and other mobile devices.
PC Locs TechDen is an IoT product designed to manage children’s device screen time, it consists of a physical ‘den’ that is used to store the device and a pair of mobile applications that can be installed on phones and tablets and used by both adults and children. Adults can use the parent application to set schedules and limits on device usage to encourage their children to return their devices to the den for storage and charging, whilst children can use the child application to see how much time they have remaining or to request additional time.
PC Locs had developed their TechDen product ready for release to the market.
The existing application architecture consisted of a single monolithic deployment, keeping configuration information, user data, and end-user session state within a single operating system context. The business was concerned that the architecture was not fit for purpose as it did not address the security, reliability, scalability requirements that the product team was demanding of the IT function. Releases of new application logic were entirely manual, non-repeatable activities, with a very small number of key personel having the technical expertise and experience necessary to release new code to production, a process that also involved significant periods of service disruption. With the device being launched via Kickstarter, there was the potential that unexpected popularity of the device would lead to the supporting infrastructure unable to keep up with user demand.
Additionally, PC Locs are a product company, with a focus on delivering exceptional and innovative products to the end user. Any time spent by the development team managing infrastructure is time is better spent developing enhancements to the product and delivering bottom line value. These business challenges aligned with the enabling capabilities of the DevOps ethos, and PC Locs engaged KZN to implement the processes and technology required to achieve their product objectives.
Employing the DevOps mindset, KZN worked with PC Locs to decouple their application architecture into discrete functional units that could be developed and deployed as individual docker containers. State was removed from the application to facilitate scalability, high availability, and reliability by allowing end-user requests to be serviced from any running container instance. Credentials, secrets, and other configuration items were removed from the application deployment artefacts and defined using AWS Systems Manager Parameter Store (SSM) parameters, or as container environment variables. Once the application was in a cloud-ready state, an infrastructure solution leveraging Amazon Elastic Container Service for Kubernetes (EKS) as the management engine for a fleet of EC2 container host instances was deployed. These AutoScaling “pods” are configured to scale in and out automatically in response to application load, and to self-heal from instance health issues, ensuring that resources are only provisioned when they are needed and are terminated during periods of low demand, minimising infrastructure costs.
All infrastructure is provisioned using infrastructure-as-code CloudFormation templates, which are stored alongside application code in the hosted git source control system GitHub. This serves as the trigger for an event-driven Continuous Integration with Continuous Deployment (CI/CD) pipeline using the AWS CodePipeline service. Any code changes to the “develop” or “master” respository branches that pass automated tests produce application artefacts that are automatically registered as container images within the Elastic Container Registry (ECR) service, and are then deployed to the development and staging environments respectively. Completed releases deployed to the staging environment are held in the pipeline at a manual gate in order to allow for integration testing and validation by the product stakeholders and, once approved, are deployed to the production environment automatically by the pipeline. The AWS CodeBuild service acts as the workhorse of the pipeline, executing integration tests, building docker images, and running deployment commands as pipeline actions.
The Kubernetes RBAC feature is integrated into the AWS Identity and Access Management (IAM) service to enforce the principle of lease privilege on deployment roles, with user accounts protected using Multi-Factor Authentication to satisfy organisational security requirements.
By adopting DevOps mindset and processes for the TechDen product, KZN delivered a secure, scalable, and cost-effective solution. Replacing non-repeatable manual deployment tasks with automation has reduced time to market, increased developer efficiency, and given the business confidence in the ongoing viability of the product. A release process that once took several hours, involved significant downtime, and was not guaranteed to be successful can now be completed within minutes and without customer impact. With all application and infrastructure defined using code, developers can provision production-analogue environments on-demand, letting them develop new features in real-world conditions increasing confidence that new features in software releases will perform as intended.
The development team now spend more time developing product instead of managing infrastructure, letting IT deliver even greater business value.
One of PC Locs’ driving objectives is to make the lives of their customers easier; now with TechDen implementing by a fully automated feature delivery pipeline backed by auto-scaling and self-healing infrastructure, they have confidence that their application will be available and responsive to customer demands whenever it is needed.
DevOps is Agile. By building and supporting cross-functional teams with the right tooling, you can empower teams to spend their time on value-creating activity that helps you identify and deliver what your customers need most.
Your DevOps journey is unique, and as cloud experts we will partner with you to help you identify any gaps and use your project to start building out DevOps culture and practices.
Learn more about how KZN can assist you with your DevOps ambitions here.