DevOps workflow assistance, including cloud infrastructure budget optimization (migration from AWS), implementation of GitOps approach for CI/CD and new services, maintenance of clusters, support of the in-house dev team, and end product deployment.
The client had a running project maintained by the client’s team of software specialists that lacked DevOps. At the time of active growth in demand and resulting project infrastructure scaling, the cloud-based solution support and maintenance processes needed optimization so that software updates could be delivered faster while the whole infrastructure is thoroughly managed. The main requirement was to provide a smooth workflow for the client’s team so that it could focus on improving the product and help achieve the product’s high availability among target customers.
The client owns a successful Ukrainian startup currently focused on scaling over the local market and reinforcing positions in the rest of Europe. The main hardship for the client’s team was the complete lack of the DevOps input needed to better support clusters, manage resources, and ensure automatic product deployment (including automated deployment and updates at the customers’ facilities). To fix that, the client required our team to migrate the project’s internal infrastructure and provide further assistance in reducing the cloud services budget.
|Client||Location||Project goal||Team||Project Timeframe|
|A B2C virtual assistance startup owner||Ukraine||To conduct a technical audit and suggest budget optimization methodsto minimize vendor dependence and implement open-source solutionsto optimize and unify CI/CD for fast clusters deployment for new customersto provide the DevOps team that is a universal helper for the client’s dev team||1 Lead DevOps +
2 DevOps Engineers for tech support
|Consulting services and support have been provided since October 2020|
Stack of tasks:
- Downscale AWS Kubernetes clusters resources: minimize resources of all services and prepare clusters for complete deletion after the full migration of services.
- Migrate AWS to Linode (via GitOps approach):
- Set up the Kubernetes cluster on Linode via Terraform;
- Set up monitoring via Prometheus and Grafana;
- Set up Flux CD (dev/stg/prod);
- Update the old cluster’s domain name;
- Remove old AWS resources;
- Create the dev/stage/prod environment on Linode;
- Configure Elastic search, ELK, NATS, MinIO, Rabbit MQ, and other services;
- Configure Dockerfile for node Red application;
- Prepare the Docker-compose file.
- MongoBI: implement business intelligence.
- Enable services: Deploy ELK stack, Rabbit MQ, MinIO, Prometheus+Grafana monitoring tools with PagerDuty.
- Reconfigure CI/CD: optimize CI/CD for BitBucket and the new Docker registry with the following migration to Circle CI.
- Further CI/CD: implement CI/CD for new services.
- Deploy end product: help fully deploy the product on the end customers’ servers, with environment configuration and all other underlying tasks.
- to provide a universal DevOps assistance and consulting team;
- to standardize product deployment processes;
- to conduct fast onboarding for dev teams and SDLS projects;
- to boost the efficiency of resource utilization and infrastructure costs management;
- to help plan out product deployment among the end customers and support projects;
- to centralize access rights management and optimize project security;
- to employ the infrastructure-as-code approach, without vendor lock-in.
We went through the whole project infrastructure, suggested, and helped implement solutions and approaches that ultimately streamline the dev team workflow and we continue assisting and optimizing crucial internal project processes up until this day.
How we did it:
- we kicked things off with the detailed audit of the project’s internal infrastructure and recommendations alignment;
- the first tech task was to configure resourcing limits, cluster priority classes, and healthchecks for each service;
- next, we adjusted the metrics server for the cluster and set up its thorough monitoring via dashboards with metrics and alerts;
- then, we optimized the cluster scaling and resource utilization in AWS based on the preliminary investigation and metrics analysis;
- with enough budget capacities in hand, the decision was made to migrate the project infrastructure to another provider’s platform, which resulted in x4 infrastructure budget reduction;
- we also introduced a GitOps approach to CI/CD processes, divided build and deployment processes, implemented code versioning (the BitBucket pipeline was migrated and adapted to CircleCI), and enabled cluster deployment via Flux (currently, we are at phase 2 of migrating to the 2nd version of Flux);
- we implemented all the services mentioned above in the Stack of tasks section;
- other major tasks included assisting product deployment among end customers, which included preparing cloud provider capacities, deploying environments (clusters), deploying services, setting up monitoring capabilities, etc.;
- we continue maintaining internal development processes and assisting developers;
- we also analyze metrics and conduct regular maintenance checks.
DevOps technical stack:
- AWS(EKS), Linode(k8s), MongoDB, MinIO Cloud Storage;
- Prometheus+Grafana, ELK, NATS, RabbitMQ, Elastic search.
The client required substantial DevOps input and internal project optimization to scale more efficiently and smoothly while providing top-notch performance for the existing users and eliminating the dev team pains. And the client received exactly that with our thorough approach to DevOps consulting and technical input that resulted in the 40% reduction of the internal infrastructure budget; end-to-end automation of cumbersome, routine tasks; implementation of SLA with constant thorough project monitoring and assistance for the tech team.
Dmitry has 5 years of professional IT experience developing numerous consumer & enterprise applications. Dmitry has also implemented infrastructure and process improvement projects for businesses of various sizes. Due to his broad experience, Dmitry quickly understands business needs and improves processes by using established DevOps tools supported by Agile practices. The areas of Dmitry’s expertise are extensive, namely: version control, cloud platform automation, virtualization, Atlassian JIRA, software development lifecycle, Confluence, Slack, Service Desk, Flowdock, Bitbucket, and CI/CD.