Waydev helps companies worldwide implement an innovative data-driven method of tracking engineers’ output in order to achieve groundbreaking results. Thus, continuous improvement is part of the company’s DNA, constantly investing in new methods to improve customer experience. Now, the next step in the process is adopting a solution that ensures an always-on infrastructure and a flexible approach for the entire development life cycle.
In order to scale the product, Waydev was searching for a solution that would increase overall infrastructure stability and reliability, improve developer productivity, and automate mundane tasks like SSL/TLS certificate renewal. Improving observability across infrastructure and applications was also an important challenge as product teams were in need of a solution to better understand how applications behave once in production.
Our journey started with a thorough audit of Waydev’s infrastructure. First and foremost, we needed to build a Kubernetes strategy in order to eliminate any possible frictions and errors after migration. To aid in our infrastructure stability, we knew we needed a solid foundation, so we opted for Amazon Web Services (AWS Cloud). Also, being a small and agile team, Waydev was looking to leverage AWS managed services like EKS, RDS and Elasticache in order to reduce the administrative burden from their dev team.
While having Kubernetes and AWS as our building blocks, we could start addressing the issues which Waydev were facing. First, we leveraged the power of GitHub Actions pipelines to build a CI/CD strategy. This shifted the administrative burden for the CI/CD tool to GitHub and provided the most security, as the code and pipeline tools are managed by the same company.
We opted for Cloudflare as a proxy and DNS provider. SSL/TLS offloading is taken care of by Istio, which we have deployed as our ingress of choice, having its performance, observability capabilities and many powerful features in mind. Waydev’s old infrastructure was riddled with single points of failure, so Kubernetes came as a breath of fresh air, as it moves workloads from one server to another when there is a node failure.
The need for observability was evident. As stated earlier, things could fail and no one would know. The client was the “alerting system”, and as such, downtimes were discovered late. Kubernetes perfectly integrates with existing monitoring solutions, of which we chose the Prometheus and Grafana stack. Grafana is integrated with both Prometheus and CloudWatch, so we know when anything goes wrong, and all alerts go to a dedicated Slack channel.
As Waydev is continuously building new application components, easily deploying and configuring them is a top priority. We have created a flexible enough Helm Chart which masks the complexity of the Kubernetes manifests and works on any of their applications, irrespective of it being a web application, a worker, or a cron job. Lastly, application logging is also very important for debugging and monitoring purposes. Here we went with an ELK stack, and all Nginx logs are parsed so as to simplify Kibana dashboarding.
Map of the migration process:
- Audit and Migration planning
- Cloud infrastructure setup using Terraform
- Kubernetes Deployment and configuration
- Database Migration on AWS
- Application containerisation
- Application migration
- Implementing logging using the ELK stack
- Building CI/CD pipeline using Github Actions
- Go live 🙂
Waydev’s mission is to reinvent how engineering leaders track engineers’ output, help them be data-driven and make objective decisions.
Use this form to get in contact with us