Web Development : A step up with Automated Deployment

Developing a website… ; Open up “notepad++”, browse to your web server via FTP and edit the files. Then refresh to see the changes…

Sounds familiar? Probably… It’s a very straight forward and easy process. The downside however is that you have no tracking of your changes (Version Control) and that the process is pretty manual. So this becomes a problem when you aren’t the only one on the job or if something goes wrong.

So let’s step it up and introduce “version control”… Now we have an overview of all the revisions we made to our code and we are able to revert back to it. Yet suddenly, we need to do a lot more to get our code onto the web server. This brings us to the point where we want a kind of helper that does the “deployment” for us.

The basic process
automated-web-development-kvaes.be

  • Local Development : The development will happen here. Have fun… When you (think you) are happy with what you have produced, you update the files via your version system.
  • Source Repository : The source repository will contain all the versions of your code. Here you can configure it to send a notification to your deployment system whenever a new version has been introduced.
  • Deployment System : The deployment system will query the source repository and retrieve the latest code. This code will be packaged, transmitted and deployed onto the target system(s).
  • Target Systems : The systems that will actually host your code and deliver the (web) service!

Real Life Example?
Ingredients

Recipe

  • Create a private repository at BitBucket
  • Pull/push the repository between BitBucket & your local SourceTree
  • In GitHub, go to “Settings”, “Deployment Keys” and generate a key for your automation. Copy it to your clipboard…
    2015-01-12 15_33_53-kvaes _ kvaes.be - 2015 _ Admin _ Deployment keys — Bitbucket
  • In DeployHQ, go to “Settings”, “General Settings” and copy to key into the “Public Key Authentication” textbox.
    2015-01-12 15_31_19-Website 2015 - LogiTouch - Deploy
  • In DeployHQ, go to “Settings”, “Servers & Group” and create a new server.
    2015-01-12 15_36_53-Website 2015 - LogiTouch - Deploy
  • In the same screen, Enable “Auto Deploy” and copy the url hook.
    2015-01-12 15_38_19-Website 2015 - LogiTouch - Deploy
  • Now go to “Settings” in GitHub, and then “Hooks”. Add a “POST” hook containing the url hook you just copied.
    2015-01-12 15_39_11-kvaes _ kvaes.be - 2015 _ Admin _ Hooks — Bitbucket
  • Now every time you do a commit on your workstation, the code will be deployed to your server!

In fact, this is the mechanism I utilize for my own (hobby) development projects. An example of here, is my own homepage, which is deployed via the system as described above.

Are my sites up?

Are My Sites Up is a very simple service to help you keep an eye on your sites and warn you if they go down. It is completely free.

aremysitesup

You need to know if there are any issues with your own sites or the ones you maintain. The guys at “aremysitesup.com” offer you this service for free! It’s just a small test offcourse, but in most cases this will suffice… 😉

The 3 kinds of free models

Logic+Emotion featured an article called Visualizing Chris Anderson’s “Free” Model.

  • Free 1 : Kinda like the concept often used by Telecom operators. Buy a subscription and get the mobile phone for free. (Too bad this concept isn’t allowed by law in Belgium…. “Koppelverkoop”)
  • Free 2 : The concept where the whole web 2.0 is running towards… Offer something for free to your community, but let an external party pay for their “subscription” by means of advertising.
  • Free 3 : Shareware meets web 2.0… Get a limited version for free, but pay for the premium version.

You might also want to read the original article

LogiTouch

About a month ago I started my own webdesign agency. So after almost 2 years of kvaes.be I’ve took the step towards entrepreneurship!

We focus on the “local” market, providing quality websites at an affordable price. It’s not “yet another high priced” bureau… The OpenSource world provides the means which enables us to provide a very interesting price.

Time to Jump the Box

A while ago I talked about Bitnami, that enabled you to jumpstart several OpenSource stacks. Now I just noticed “JumpBox“…

JumpBox Open is a collection of easy to use virtual appliances for Open Source software. Each JumpBox is focused on a single task (or single application) and is carefully crafted to capture the best practices for how the software should be implemented. The goal is to save you time and allow you to get more done with less effort. JumpBoxes will run on all of the popular virtualization platforms including VMWare, Parallels, Microsoft Virtual PC/Server, Virtual Iron and Xen.

JumpBox might help you to deploy certain services faster, just like LAMP jumpstarts your basic webservice environment!

Prisoner’s Dilemma

Prisoner’s Dilemma

If the Strategy of Giving fails, the explanation may lie in the game theory’s prisoner’s dilemma. Prisoner’s dilemma in a nutshell: Two people are suspects in a crime where they could face jail time if convicted. The suspects have agreed that neither one will talk in the interrogations. The interrogators offer a deal to both of the suspects. If only one of them comes clean, he will be released, but his partner will then get a ten-year prison sentence. If both of them talk, both will be sentenced to five years in prison. If neither confesses, they will be both sentenced to just one year in prison. The prisoners are not able to communicate to each other, so there is no way for them to know what the other one has chosen. In the name of common interest, both of them should keep quiet. But, from an individual’s perspective, the best alternative is to talk.

Continue reading “Prisoner’s Dilemma”

Catchers & Throwers

Megan Casey said the following on SquidBlog:

You can break most online interactions into two groups:
Catchers and Throwers.

Catching is what you do when you collect friends of friends on Facebook, when you follow Twitterers, when you subscribe to RSS feeds of blogs you like. Catching can be a great way to organize your favorite bits of the web.

Throwing is harder. Lots harder. It’s what you do when you post on your blog, and keep doing it a few times every week. It’s starting a petition on Care2.com and getting people to sign it. It’s what you do when you make lenses about the things, ideas and people that excite you.

One should find the perfect balance between throwing and catching. The trick is to do it judiciously and respectfully. When you like someone’s blog and subscribe to it, drop the person a note and say thanks. When you disagree with a post, don’t bash the blogger, just… disagree.

Throw a lot. Just respect your catchers.

References
SquidBlog
Seth Godin

Your favorite Webapps as easy to installable stacks

Bitnami

Today I stumbled upon an article mentioning the existence of BitNami. It was an unknown product to me, but I think it has some potential. Imagine the power of Lampp combined with your favorite cms/wiki/…

The key features where they prize themselves with:

  • Easy to install
    In just a few clicks, you can have your favorite open source applications up and running.
  • Multiplatform
    Bitnami Stacks are available for Linux, Windows, and Mac OS X.
  • Integrated
    By the time you click ‘finish’, the software will be integrated, configured and ready to go.
  • Independent
    Bitnami Stacks won’t interfere with any software already installed on your system.
  • Run Natively
    The stacks install directly on your system – no virtual machine required.
  • Open Source
    All Bitnami Stacks are free to download and use under the terms of the Apache License 2.0

For a full list, check out the their stacks page.

OWA Most Popular – version 1.2

OWA Most Popular has been updated.

OpenSource

Seperate function
It is possible to call the function directly in your php code (hint: templates), by using the following function:

owa_api_popular($max_owa_popular=10,$date_range_owa_popular="last_seven_days",$post_only_owa_popular=TRUE)

New algorithm
The widget will use weighted algorithm, if you would set the variable $style_owa_popular to “weighted”. The formula is pretty simple, being:

(Sort) Factor = number of visits / (date difference (in days) + 1)

Important note : This weighted algorithm is pretty (system) resource intensive, I would advise you to use some form of caching mechanism in combination with this option.

The architecture behind microsoft.com

Jeff Alexander blogged about the setup behind microsoft.com. It got the slashdot effect, and his blog is apparently (temporarily?) suspended. You can find the blog post below, as I dug it from out of the google caches.

Microsoft
Microsoft.com: What’s the story?
If you’ve ever wondered how microsoft.com uses our technology then read on. I recently came across some good information from the folks over at the Operations team at Microsoft.com. The thread basically talks about how we use IIS, Firewalls and Windows Server 2008. I think as we come up to launch next year it’s a really good and quick insight into what they do and how they do it. So enjoy the reading and let me know what you think..Pretend I’ve asked about how they protect our sites…

At this point we still don’t use firewalls for MS.COM sites and don’t have any plans on the books to put them in place. Here is the short answer as to why:

Continue reading “The architecture behind microsoft.com”