Category Archives: HOWTO’s

Kubernetes: part 3 – AWS EKS overview and manual EKS cluster set up

15 August 2019
 

 Let’s proceed with our Kubernetes journey. Previous parts: Kubernetes: part 1 – architecture and main components overview Kubernetes: part 2 – a cluster set up on AWS with AWS cloud-provider and AWS LoadBalancer In this part we will start working with AWS Elastic Kuberneters Service (EKS) – its short overview, then will create Kubernetes Control… Read More »

Kubernetes: part 2 – a cluster set up on AWS with AWS cloud-provider and AWS LoadBalancer

10 August 2019
 

 In the first part – Kubernetes: part 1 – architecture and main components overview – we did a quick glance about Kubernetes. The next thing I’d like to play with is to manually create a cluster using kubeadm, run a simple web-service there and access it via AWS LoadBalancer. The main issue I faced with… Read More »

NGINX: limit_req – limiting requests per IP

9 August 2019
 

 The next task is to set a limit per one IP to our backend’s API: add requests limiter on the /user/oauth/refresh_token URI set limit to 5 requests/minute from one IP if the limit is reached – return 429 Too Many Requests response Will use NGINX ngx_http_limit_req_module. limit_req_zone To make limiting works firs need to create… Read More »

Kubernetes: part 1 – architecture and main components overview

25 July 2019
 

  On my current project for our mobile applications, we have an API-backend on the Yii PHP-framework, which is working now on an ordinary LEMP stack – Linux/NGINX/PHP-FPM/MySQL (AWS EC2 + MariaDB RDS). Eventually, it’s time to break this monolith into microservices which will be orchestrated by the Kubernetes and will be running on the… Read More »

AWS: S3 Cross-Region Replication with DeleteMarkers set up

17 July 2019
 

 At this moment I’m configuring a new CDN for our project. Will use CloudFront and Cloudflare here so need to create two dedicated buckets with different names – cdn.cfr.example.com => CloudFront and cdn.cfl.example.com => Cloudflare. To avoid coping data each time to both buckets – an AWS S3 Cross-Region Replication can be used, so data… Read More »

NGINX: multi-branch deployment with Ansible, NGINX map and HTTP Headers

26 June 2019
 

 We have a standard LEMP setup NGINX, PHP-FPM. Application – Yii-framework, deployed from Jenkins using Ansible role with the synchronize module on backend hosts in a /data/projects/prjectname/frontend/web,  directory which is set as a root for an NGINX virtual host. The task is to have the ability to deploy the same application on the same backend… Read More »

SonarQube: the “SCM provider autodetection failed” error

19 June 2019
 

 We have a fresh SonarQube installation (see details in the SonarQube: running tests from Jenkins Pipeline from Docker post). The issue But in its dashboard there is always an error: SCM provider autodetection failed. Please use “sonar.scm.provider” to define SCM of your project, or disable the SCM Sensor in the project settings. Also, it’s displayed… Read More »

SonarQube: running tests from Jenkins Pipeline in Docker

18 June 2019
 

 The task is to run our backend PHP tests using SonarQube from a jenkins Pipeline job. Jenkins running in Docker and all its builds also uses Docker. The main issue I faced during this setup was the fact that SonarQube’s container inside spawns another process with Elastisearch (while Docker concept says “1 service per one… Read More »

Jenkins: running PHPUnit from Codeception by a Pull Request in Github and Allure-reports

6 June 2019
 

 The task is to create a Jenkins Scripted Pipeline job to run PHPUnit with our PHP-based backend unit-tests. To run PHPUnit Codeception will be used. This Jenkins job must be triggered from a Github repository after creating Pull Request so will use Github Pull-Request Builder plugin here. To view generated reports – Allure Jenkins plugin… Read More »

AWS: IAM users keys rotation, EC2 IAM Roles and Jenkins

30 May 2019
 

 Today I checked our IAM-users and “suddenly” recalled that it’s good to update their credentials sometimes: Well, that’s good to do but here is a question: it’s simple enough to set an expire for keys in IAM, but what to do with all scripts which are used in our Jenkins and which are using those… Read More »