Category: Linux

Why I choose CLI over web interface

Yesterday I was working on a piece of code which needs to communicate with beanstalkd server, so I spent about an hour or so trying to figure out which framework to use, Lumen, Slim or even Laravel.

The code was not that much complicated, just getting some data and passing it to the queue server and processing it later. Nothing that much complicated, I even though to do it with plain PHP and not use any framework at all.

Long story short, I ended up creating a PHP CLI application, I mean literally I found it the best solution, so why did I choose to go with CLI instead of any regular web application and make it a web app or even a RESTFUL app.

I went with CLI for few reasons :

  1. There is no interaction from outside, so no one will communicate with it or even call it from outside the server
  2. It has only one purpose, getting the data and push them to the queue server to be processed later.
  3. needed it to be light, and simple.
  4. didnt need all this mambo jambo of setting up nginx, PHP & SSL .. etc

And the nice thing is that I was able to do it in less time than if I ever wanted to use a framework.

 

so my advice to you, if you are going to work with microservices try to check if you can do the job via CLI, if yes dont do it via web.

 

 

Alert! As usual, English is not my first language so if you found any linguistic error just let me know to fix. thanks in advanced.
Filed under: Business, Code, Linux, PHP

How to test and auto deploy your laravel code from Gitlab

Few days ago, I was playing with the new Laravel 5.4 and Gitlab CI, and got to the point where I wanted the CI to test my code once I push it.

Using google lead me to this post on Laracasts, and it was the starting point for me, there you can get important files .gitlab-ci.yml and .gitlab-ci.sh  , basically the first one will define the stages for the testing and the second one will build the environment for your test.

So lets look at a short version of .gitlab-ci.yml

Continue reading

Filed under: Business, Code, docker, Laravel, Linux, MySQL, PHP

Docker compose wait don’t run it now

One of the main problem you will face when you work with Docker is that you are not 100% sure that the service on the ImageX is ready for you to use it or even for ImageY to communicate with it.

For example, lets say that you have the ImageX which run MySQL/MariaDB (or any other DB), and ImageY which run PHP, no matter how you try you cant be sure that ImageX is ready to accept connections from ImageY and CRUD some data from it, so Docker docs stated that you should find some solution for that, and they do provide some simple instruction for it on Controlling startup order in Compose.

Continue reading

Filed under: docker, Linux, MySQL, PHP

The myth about Docker depends_on and links

I have been reading lately (again) a lot of articles which try to explain to the developers how to use Docker for development, now they are all good (in general), each try to make simple and easy for you to move and use docker, and everyone advice you to use depends_on and links (but remember links is a legacy compose item so with Docker 1.13 you should use depends_on ).

both some how works the same, except that depends_on will give you the ability to define the order which your images should start.

Continue reading

Filed under: Code, docker, Linux, MySQL, Nginx, PHP

[Tip] Cloning a host machine via Rancher

If you have setup Rancher correctly and you have a machine running, you can clone it using the following option

Actually its not cloning by the exact name of cloning, but the thing is that it will use the same API token ( or any credentials ) you have used to create that Host, so for example am using DO, so it just going to use the same API token that I used before to create this host but you will got to the same UI that you have used to create the host like this one

Filed under: docker, Linux, Other