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.
Here’s a few mistakes and anti patterns that I have come across when developers are using a continuous integration server.
Sometimes, small questions lead to big answers. Sometimes these answers are controversial. One such question is “What does this warning about serialVersionUID mean”? All the advice out there basically is for developers who don’t know what’s going on to write code that will ignore errors when something unexpected happens. In my view – this is exactly the wrong approach. The safe way to act is to make sure that your program crashes if you don’t have control.
The Devops movement addresses the dysfunction that results from organizations composed of functional silos. Thus, creating another functional silo that sits between dev and ops is clearly a poor (and ironic) way to try and solve these problems.
Learn about the fusion of contemporary Continuous Delivery processes and practices with the established and widely-accepted Maven release process.
I’ve fought the idea that DevOps is a job title, I’m nearly ready to concede defeat. Companies may not know exactly what DevOps is yet, but they know they want people with “DevOps” on their resumes.
On my current project we’ve been setting up production and staging environments and Shodhan came up with the idea of making staging and production identical to the point that a machine wouldn’t even know what environment it was in.