The producer / consumer design pattern is a pre-designed solution to separate the two main components by placing a queue in the middle, letting the producers and the consumers execute in different threads. This way the production of tasks to be consumed is absolutely independent from its consumption.
With Nginx-Clojure we can make some looking difficult tasks become very simple.This article will give an example about using Clojure code to build a simple balancer with a role based dynamic bandwidth limiter on Nginx.
In VietnamWorks.com we managed to implement Continuous Delivery (CD), and we used following image as our reference. But why did we decide to use CD? We wanted to build the right features for our products, avoid as many risks (fail fast, succeed faster), increase our release cycle, and continue a stable product.
I teach git and often have issues with bad projectors where you can't see the colours. There's lots of documentation on how to turn on colours in git but not so much about how to turn them off. Try putting the following into .git/config:
Deprecated methods have to be treated different. At least in my opinion.
Yes, Test Driven Development (TDD) is a good practice, but it is NOT necessarily superior to: integration testing, penetration testing, operational readiness testing, disaster recovery testing, and any of a large number of other validation activities that should be a part of a software delivery practice.
Last week was DevOps Days here in Austin and I conducted a bunch of interviews. On Friday I shared an interview with Andrew Clay Shafer who gave the first-day keynote. The next three interviews I’ll be posting deal with configuration management tools.
You may face the following error while you running your Build-Deploy-Test workflow. Exception Message: There are no test cases matching the criteria specified. Use Microsoft Test Manager to view the test cases. This could happen for many reasons.
Developers, when they are staffed on a project, quickly become the largest and therefore most expensive group. At that moment, everything has to be optimized for their greatest throughput. If we could delay that moment, then we could delay the coupled increasing of costs.
Adopting agile devops requires a structural mind shift, and successful IT teams follow manifesto guidance to change delivery dynamics, take small steps to build one team, focus on real deliverables, accelerate reactive adaptation, and guide continuous loop activity.
Recently, there is a heaty debate regarding TDD which started by DHH when he claimed that TDD is dead.
This ongoing debate managed to capture the attention of developers world, including us. Some mini debates have happened in our office regarding the right practices to do testing. I will present my own view.
Oracle says, "The hierarchical naming structure for packages is intended to be convenient for organizing related packages in a conventional manner, but has no significance in itself." It is precisely this significance that some principles attempt to capture.
A while ago I was asked to talk about the problems of using TDD – being me I’ve decided to do the exact opposite, this session was names “what is wrong with TDD”.
Unfortunately, most IT teams do not have an environment fostering the rapid iteration, streamlined workflow, and effective collaboration required to operate at the speed of now and capture business opportunity.
Since Grails 2.3 we can define exception methods in our controllers to handle exceptions raised by code invoked in the action methods of the controllers.
Debuggers have become powerful tools, but like a drug have we become too dependent on them? A persistent fact in software is that between pre-test, QA, and deployment the cost of finding bugs is 1:10:100. Have we become so dependent on debuggers that we accept a process that is 10 times more expensive than other alternatives?
Successful movements have a clear manifesto outlining goals and principles. Many DevOps adopters may not be aware of the DevOps Manifesto (created by Jez Humble @jezhumble) nor how successful DevOps requires keeping a clear focus on principles, practices, and value (instead of infrastructure tooling.
In this article, you will find the steps to enable OpenID authentication in Spring-Security applications. Sections covered include the changes in spring-Security.xml, a sample implementation of beans defined in the config file, JSP changes, and how to test the application.
Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (May 16 to May 22). This week's topics include the DZone Research Continuous Delivery update, Continuous Delivery loose ends, abstraction and automation, how TDD affects design, and thoughts on testing.
We programmers keep our instance variables private and automatically add public setters and getters to them. This is the same as making the instance variables public. Why are we exposing our variables in this way?
In this article, you'll find a list of the top 10 improvements that impressed the author over previous versions of JDK.
In regular integration tests, we would have an integration deployment of all sub-systems, in order to test how they work together.
Recently I started to implement our release process in Jenkins. Until then I just ran the release plugin of Maven on my local machine which did the job. As I said we decided to move this task to Jenkins.
Unit Testing has moved from fringe to mainstream, which is a great thing. Unfortunately, as a side effect developers are creating mountains of unmaintainable tests.
Blackbox automation testing should be part of any successful software development organization. Unit testing is great, but to cover the largest area of your software with the least effort you need to have blackbox automation testing. Not only that, but you also need to have an automation testing framework.