Technical Debt is worth nothing if no pragmatic action is taken into code, in order to control and tackle it. To ilustrate this, we performed code refactoring on OpenKM.
This week, DZone published its 165th Refcard. The author took a few minutes to respond to some questions.
Virtualisation has changed the assumptions we can make about the physical deployment. Let me give you a few simple examples.
We all love webapps, but in the former days applications have done so much more. They were integrated into our desktops, they have done notifications in real time, they could be customized to our own needs …
Continuous Integration is now very much a central process of most agile development efforts, but it hasn’t been around all that long. But some teams are still waiting to adopt C.I... Seriously, they are!
With all the components tied together, you can’t forget a piece or deploy versions that haven’t been tested together to production.
Conceptually Maven distinguishes between snapshot versions and release versions. For top-level Maven projects that are continuously integrated it is unnatural to make this distinction.
No Manual Changes refers to the behavioural trait of not messing with any productive systems. Let’s discuss why messing with production systems is bad and what to do about it.
Configuration in DNS is a valuable technique to reduce this complexity by using standard hostnames like ‘mail’ or ‘db’ and have DNS resolve to the correct host for that environment.
There's no magic tool that will completely solve organizational woes, but it would be crazy to deny that some tools make things a lot easier.
To my way of thinking, if you continually work weekends and late nights and suffer stress and cancelled holidays, so that you can painfully and manually push your app in to the production environment, then there’s something very wrong with your development process.
A few weeks ago, a few of us joined the Jenkins community at the Jenkins User Conference 2012 in San Francisco. Our presentation “Improving Software Quality Using Component Lifecycle Management with Jenkins” given by Manfred Moser, was very well attended and there seemed to be a lot of interest. A video of our presentation has now been posted here and you can download the slides as well.
Branching is boring. Merging is also boring. None of this stuff is fun. But for some strange reason, I still see the occasional branching policy which involves using the largest number of branches you can possibly justify
The debt is an economic one, NOT technical. That’s no coincidence. Economics is a better way to persuade managers to listen to developers.
In this tutorial let’s create a small web application, use GitHub for source control and automatically deploy any commits directly to our AppHarbor hosted site.
Have you ever been to an Internet Cafe and connected to the free WIFI? Have you found that after five minutes of activity the connection has been dropped and you have go through the License and Terms of Agreement again and again and again? Annoying isn’t it?
Take a look at the history of open source monitoring tools, an attempt at fixing our vocabulary within monitoring, and a proposal for the "event stream model" as the future of open source tooling.
The setup mentioned below discusses just the deployment to the test project. Deployment to the production will be similar, and by the end of the article, you should understand what differences it will require. If you have any questions, or suggestions, drop me an email, or leave a comment below.
Read some of the great answers from John Allspaw to the question: "What are the attributes (other than technical ability/experience) that make a great VP of Technical Operations?"
Where large development teams and codebases are involved, code modularity is a key enabler for continuous delivery. At a high level this shouldn’t be too terribly surprising—it’s easier to move a larger number of smaller pieces through the deployment pipeline than it is to push a single bigger thing through.
Lets define a true pipeline as being a pipeline that is strictly associated with a single revision within a version control system. This makes sense as ideally we want the build server to return full and accurate feedback for each single revision.
I am writing this blog to discuss how I went about iteratively testing my puppet module that was created to install the tool Blur.
Development Forges unify application development tools and promote collaboration, but they are often design and development time environments disconnected from run-time infrastructure. The next evolutionary step is Cloud DevOps Factories.
Developers extend their continuous integration platforms towards continuous delivery organically, deploying to dev test environments for simple functional tests. And later to QA environments using similar approaches.
GitHub, Inc., wrote the first version of Hubot to automate their company chat room. Hubot knew how to deploy the site, automate a lot of tasks, and be a source of fun in the company.