Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

X-Team Blog:
Automated Deployment in 90 minutes with Docker, AWS and Codeship
Jul 08, 2015 @ 10:22:27

In the X-Team blog they've posted about deployment, specifically combining Docker and Codeship to push an application (in this case a Symfony2 one) out to an Amazon Web Services instance.

Just imagine. It’s Friday afternoon, the team has just finished a new feature which should be deployed to the servers before the weekend. And you are the lucky guy who is responsible for completing the task. Generally, it shouldn’t take more than five minutes. Well, what could possibly go wrong. [...] In the attached video, you’ll find an introduction on how to setup and automate deployment with Docker, AWS Elastic BeansTalk and Codeship in 90 minutes. Don’t miss a Friday night party ever again!

The tutorial comes in the form of a video screencasting the whole process, all the way from setting up the AWS instance and Codeship account out to the configuration and software you'll need to use Docker to build the containers and make the deploy.

tagged: automation docker codeship aws instance tutorial screencast elasticbeanstalk

Link: http://x-team.com/2015/07/automated-deployment-90-minutes-docker-aws-codeship/

Jack Skinner:
In search of simplicity a - story of blog automation
Apr 03, 2015 @ 09:54:37

Jack Skinner has a new post to his site showing how he rewrote his blog aiming for simplicity with the help of Sculpin and Codeship.

I’ve recently relaunched my blog (hi everyone!), I’ll migrate some old content and scrap others. While I clean up the content however I wanted to share how the new site has come into being.

He starts off talking about why he chose to go with Sculpin but doesn't get too much into it as there are "plenty of posts and content around" on how to get started. He then talks about the Codeship service and share some of the initial setup commands and setting up a deployment pipeline to an AWS instance. He makes use of the S3 website hosting, Route53 and CloudFront services for the serving of the actual site. Codeship makes it simple to deploy a new build whenever he updates or adds a new post too.

tagged: simplicity blog automation sculpin codeship aws s3

Link: https://developerjack.com/blog/2015/03/31/in-search-of-simplicity-automating-my-blog/

Servers for Hackers:
Deployment with Envoy
Feb 11, 2015 @ 13:09:31

The Servers for Hackers site has a new post walking you through the steps to deploy a PHP application with Envoy, the Laravel-based ssh task runner to make automated deployment simpler.

We'll use Laravel's Envoy to deploy a PHP application to a production server. This will make a new release directory, clone the repository into it, run any needed build steps, and then finally swap the new code out with the older code, so that Nginx and PHP-FPM serve the new code.

They walk you through the full setup you'll need to get the deployment working including generating ssh keys, installing Envoy globally and making the first Envoy configuration file. With that in place and working, he enhances it with quite a few more steps including checking out a new version of the repository to a "release" directory, executing Composer to pull in needed libraries and changing the symlink to point the document root and the freshly installed version. He also includes the configuration for the Nginx server to set up a Laravel-based application inside of a Vagrant VM instance.

tagged: envoy deployment laravel tutorial nginx configuration automation

Link: https://serversforhackers.com/deploy-envoy/

Zend Blog:
Continuous Delivery: The Benefits and Barriers of Automation
Feb 10, 2015 @ 12:09:08

On the Zend blog there's a new post that looks at one of the major steps when you start to think about automation in the deployment of your application - continuous delivery.

For many, the process of manually developing and deploying software to production is archaic at best. Even in highly automated software development environments, at least one developer (although often more) typically manages modifications to code and software products, and the ramifications of these modifications can be extensive or unknown. [...] The emerging process for developing and deploying applications of high quality is one that is highly automated, executing continuously, and covers the entire development process, from modifying code through testing to deployment. Automation provides analysis that flags code for improvement and executes full regression tests every time a modification is made.

[...] This process is called continuous delivery, and automation is a key component of a mature continuous delivery process, which includes: continuous integration, infrastructure automation, and release automation.

After the introduction, they get into some of the basic concepts of continuous delivery and what kinds of steps can make up the full process. From there they get into some of the benefits of its introduction including lower staffing costs and enhanced teamwork. They balance this out with two barriers that could prevent adoption - the initial cost and the organization culture considerations that would need to change.

tagged: continuous delivery deployment benefits barriers automation

Link: http://blog.zend.com/2015/02/09/continuous-delivery-the-benefits-and-barriers-of-automation/

Matthew Weier O'Phinney:
Deployment with Zend Server (Part 8 of 8)
Sep 18, 2014 @ 11:20:04

Matthew Weier O'Phinney has posted the last part of his "Deployment with Zend Server" series with part eight. This part focuses on some hints around the actual deployment and automation.

This is the final in a series of eight posts detailing tips on deploying to Zend Server. Zend Server SDK to deploy your Zend Server deployment packages (ZPKs) from the command line. Today, I'll detail how I automate deployment with zf-deploy and zs-client (the Zend Server SDK), and wrap up the series with some closing thoughts.

He quickly summarizes the previous parts of the series as individual steps and wonders if there's a better way than doing each of them manually. He shows exactly this with the automation handling that zf-deploy and zs-client offer combined with a make script defining steps for the deploy, ZPK update and a cleanup/Composer update task.

tagged: deployment zendserver tip series part8 automation make command zfdeploy zsclient

Link: https://mwop.net/blog/2014-09-18-zend-server-deployment-part-8.html

A toolbox for less than $100 / month
Jul 03, 2014 @ 09:35:42

Joshua Thijssen has shared his toolbox for less than $100/month that includes a complete set of development and project tools "on the cheap" but still good.

There are a lot of tools out there which can help you as a developer / self-employed contractor. And even though most of these tools are free (as in beer), I don’t mind spending a certain amount of money on tools that help me do my business. So with all the tools out there, all the paid plans, the freemiums and the trial periods, what can a crispy 100 dollar bill every month buy?

His list includes hosting (ServerGrove), issue tracking (Jira), team communication (HipChat) and online storage (Dropbox). His list is made up of eight services with almost all of them having a small cost. The online collaboration (Basecamp) and hosting (from ServerGrove) are the highest costs at $20USD/month.

tagged: toolbox onehundred hosting communication storage issuetracking automation

Link: https://www.adayinthelifeof.nl/2014/07/01/a-toolbox-for-less-than-100-month/

ServerGrove Blog:
Deployment of Symfony2 applications with Ansible
Apr 02, 2014 @ 10:41:54

The ServerGrove blog has a new post today showing you how to deploy Symfony2 applications using Ansible, an automation tool that uses "playbooks" to define steps.

Ansible is a powerful automation engine that simplifies deploying systems and apps. Its popularity has been rising rapidly as developers and system administrators look for simpler ways to manage servers and deploy applications. The selling points of Ansible are: simplicity, agentless and extensible.

ServerGrove, traditionally a Capistrano/Capifony user, decided to give Ansible a try. They include the steps to go through to get the correct environment set up and how to execute commands on the remote servers. There's also an example of a sample task that updates packages on the remote server, moves a config file into place and restarts Apache. With this foundation, they get into the actual Symfony2 deployment, sharing their custom role that sets up the directory, clones the Git repository, runs Composer and executes an Assetic dump.

tagged: ansible tutorial introduction automation symfony2 deploy

Link: http://blog.servergrove.com/2014/04/01/deployment-symfony2-applications-ansible

/Dev/Hell Podcast:
Episode 33: Pol Pot-level Sucks
Jun 17, 2013 @ 12:42:26

The /Dev/Hell podcast (hosted by PHP community members Chris Hartjes and Ed Finkler) has posted its latest episode - Episode #33 - Pol Pot-level Sucks.

Back in the saddle for the double-tres, Chris and Ed rap about the loss of trust in Google and how that affects their perception of the Go language. Then Ed babbles for way too long about vintage gaming and computing. Chris wonders how you could be truly private on the Internet in the light of widespread government surveillance. Finally, we talk about the importance of automation and repeatable processes.

You can listen to this latest episode either through the in-page player or by downloading the mp3 directly. You can also subscribe to their feed so you'll know when the latest episodes are released.

tagged: devhell podcast ep33 google gaming privacy automation

Link: http://devhell.info/post/2013-06-13/pol-pot-level-sucks

Samantha Quinones:
Why you should consider Continuous Integration
Jun 14, 2013 @ 09:39:32

Samantha Quinones has a recent post to her blog about why you should consider continuous integration for your projects - some of the benefits and decisions that come along with it.

Last night at DCPHP, I gave a short “lightning” talk on Continuous Integration and Deployment in the context of PHP applications. I really like the lightning talk format as it forces you to focus on the meat of your topic– there’s no time to get distracted by details. As great as that is, though, I wanted to expand a little on the subject and touch on some of the details that I couldn’t include in my presentation.

She starts off by talking about what's wrong with a lot of the more traditional build and development practices, noting that "it sucks" because of the processes involved. With the help of continuous integration, some of the process can be automated and make for less human-related errors during a deployment. She talks about some of the things you'll need to do to prepare your codebase and a few things to think about your future setup like:

  • what does a successful build look like?
  • how much code needs to be covered by tests to deploy?
  • should a build be successful if standards are broken or issues found?
tagged: continuous integration integration opinion automation

Link: http://www.tembies.com/2013/06/continuous-integration-deployment-with-php

Action Automation with MySQL Triggers
Dec 11, 2012 @ 09:16:29

For the MySQL users out there, PHPMaster.com has a new tutorial showing you how to use triggers in your database to perform automatic actions on things like "before update" or "after insert".

By making MySQL do more work through triggers, the PHP side of my project was greatly simplified. So, it is the intention of this article to give you some insight into the creation and usage of MySQL triggers, so that by the end of this reading you can make use of them in your own projects.

They start by explaining what triggers are and how they're created on the database side (with an example syntax). They apply one to a more practical situation - helping keep data integrity on a revenue table based on the data inserted into an events tracking table. Their trigger ("CostCalc") calculates the time of the event on update and updates the revenue table with the correct cost. Also included is the sample PHP code (an "EventHandler") that updates the event records. The trigger fires transparently in the background with no need for the PHP script to make any additional calls.

tagged: mysql trigger automation tutorial update