DevOps
7-
18 USD GitLab CI
DevOpsImplemented GitLab pipeline
-
2000 USD Building and migrating infrastructure in AWS
DevOpsProject Description
For a web project hosted on its own servers (on-premises), the task was to migrate the infrastructure to the cloud with the aim of automating processes, ensuring high availability (HA), and reducing infrastructure maintenance costs.
… What was accomplished:
Design and approval of the new infrastructure: a detailed infrastructure plan was developed and approved with the client.
Cost optimization: the cost of using the cloud platform was calculated and optimized.
Infrastructure as Code: the infrastructure was described using Terraform.
Immutable servers: a strategy for creating immutable servers was implemented using Packer.
Performance testing: load testing was conducted to assess performance and identify bottlenecks.
Step-by-step migration of services: a phased transfer of services was completed.
Compliance with security requirements: the infrastructure was built in accordance with security policies and the requirements of the cloud platform.
Monitoring and alerts: monitoring and a notification system were set up for all critical components.
Backup and recovery: backup and disaster recovery strategies were implemented.
Final testing and documentation: final testing was conducted and all processes were documented.
#Amazon #AWS #terraform #packer #IaC #ansible
-
1000 USD Setup and implementation of the monitoring stack (Icinga, Prometheus)
DevOpsTask:
For one of the projects, it was necessary to deploy a monitoring stack. The client required monitoring of services and a notification system based on Nagios. Additionally, Prometheus and Grafana were needed to track SLO/SLI and individual services.
… How I implemented it:
Instead of Nagios, I recommended using Icinga due to its more powerful API and user-friendly dashboard. Furthermore, Icinga is better suited for scaling and implementing high availability. The Icinga server was initially configured with scalability in mind. I grouped all services and set up detailed metrics and notifications for the staff.
To collect extended metrics for individual services, Prometheus was used. VictoriaMetrics was employed as the metrics storage due to its high performance and extensive scaling capabilities. A distributed cluster of VictoriaMetrics was deployed for the client.
SLI and alerts for SLO violations were configured for critical services. Grafana was used for convenient visualization of graphs.
#grafana #prometheus #icinga2
-
Server Management
DevOpsInstallation and setup under any project.
The full management.
-
25 USD Terrafrom AWS EKS Kubernetes Cluster
DevOpsBuilding a fault-tolerant, high available, scalable and secure AWS Cloud infrastructure and Kubernetes cluster using Terrafrom IaC
-
Deploying Spring PetClinic Application using Vagrant
DevOpsCreate repository on Gitlab and commit all changes to your gitlab repository
Create a deployment script for the PetClinic application. Use Vagrant to automate the process of creating the infrastructure for the deployment with Virtualbox (preferably). As for provisioning you can choose to use bash, python or ansible in any combination.
Subtask I - Infrastructure
… Describe two virtual machines using Vagrantfile for deployment of the application (codename APP_VM) and the database (codename DB_VM)
Preferably use private networking feature for easy VM communication
VMs should be either Centos or Ubuntu
If not using private networking then APP_VM should have port 8080 forwarded to host
Subtask II - Database
Use any provisioning script that you created to install MySQL and any dependency on DB_VM
Customize the mysql database to accept connections only from your vagrant private network subnet
Create a non root user and password (codename DB_USER and DB_PASS) in mysql. Use host environment variable to set these values and pass them to the Vagrantfile using ENV
Create a database in mysql (codename DB_NAME) and grant all privileges for the DB_USER to access the database
Subtask III - Application
Create a non root user (codename APP_USER) that will be used to run the application on APP_VM
Use any provisioner to install Java JDK, git and any dependency on APP_VM
Clone this repository to the working folder (codename PROJECT_DIR)
Use the Maven tool to run tests and package the application. For more info you can use this 5 minutes maven documentation. For convenience the project folder has Maven wrapper script (mvnw) that downloads and executes the required Maven binary automatically.
If testing and packaging is successful, then get the *.jar package from $PROJECT_DIR/target folder and place it in the APP_USER home folder (codename APP_DIR).
Set environment variables in APP_VM (preferably use the same environment variables passed from host machine using ENV as in DB_VM):
DB_HOST - IP of the DB_VM
DB_PORT - MySql port (default 3306)
DB_NAME - MySql database name
DB_USER - MySql user
DB_PASS - MySql user's password
Run the application with the APP_USER using the java -jar command
If everything is successful - you will see the PetClinic application on $APP_VM_IP:8080
-
25 USD Setup of DevSecOps CI/CD
DevOpsSetting up Secure CI/CD through the GitLab CI. Cost per hour