Dave works for a company whose success iscontingent on its ability to offer new and exciting products to its online customersfaster than competitors.
Dave is a developer, who writes code for newproducts, new features, security updates and bug fixes.
Unfortunately, he needs to wait weeks forhis work to be placed into production.
This delay increases the pressure of stayingcompetitive, because some competitors are able to deploy new products and features muchfaster.
In addition, the delay makes it very challengingfor Dave to manage both the code that is pending to be pushed into production and the developmentof the next product and/or feature that he is responsible for producing.
When DaveÕs code is finally deployed intothe production environment, occasionally unforeseen errors or problems occur.
This mostly happens because Dave is focusedon writing code for his Development Environment and itÕs not identical to the ProductionEnvironment.
Meet DaveÕs coworker Anna! SheÕs a System Administrator from the Operationsteam.
She is responsible for maintaining and assuringthe uptime of the Production Environment.
The number of servers that she needs to administeris constantly growing because her company continues to launch new products and customersare consuming more of their services.
This increase of servers has caused some challengesfor Anna.
The tools that she used to administer a fewservers are not as effective when used to administer a much larger volume of servers.
This challenge affects how new code is deployedin her production environment.
Usually when new code is released it takesa little massaging to fit into her environment.
This is why she requires code deploymentsto be scheduled and are only allowed once a month.
Once the new code is actually deployed, itÕsher responsibility to diagnoses any errors or problems caused by the changes.
Sometimes to her it feels as though the Developershave tossed their work over the wall to her and her team.
So, What can be done to help Dave and Annawork better? Ultimately, they want the same thing, , , , happycustomers! What if Dave the Developer and Anna from Operations* Worked better together? * Thought more alike? * Broke down silos? * Shared responsibilities? This would require them to change their mindseton how DEV and Ops work? So, what is DevOps? Devops integrates developers and operationsteams in order to improve collaboration and productivity, by automating infrastructure, automating workflows and continuously measuring application performance.
If AnnaÕs and DaveÕs teams were more DevOpsoriented, they would do a few things differently.
They would place more focus on automation.
DevOps teams try to automate everything: fromtesting of new code to how infrastructure is provisioned.
They would write software in small chunksthat are integrated, tested, monitored and deployed usually in hours, versus the traditionalway of writing large chunks of software over weeks or months to then do weeks or monthsof testing.
Plus they will have identical developmentand production environments based on same configurations.
Writing small chunks of software will allowthem to increase the frequency of the deployments and improve the time to deploy new code.
It also enables them to adopt an iterativeprocess to monitor, measure and improve the code and operations every day.
Improve their ability to respond to marketneeds, or other things that impact software.
Instead of building and configuring softwareplus infrastructure manually on an ad-hoc basis, AnnaÕs and DaveÕs teams would writeConfiguration Management Code that describes how things should be built.
As a result: they will have the ability tobuild infrastructure at scale to dozens, hundreds or even thousands of servers), in multiplelocations, using different types of hardware.
Another change that a DevOps oriented teamwould do, is to use a source control system to help manage and document all of the changesto both the Application Code and Configuration Management Code.
The change that Anna and Dave would implementis to adopt a discipline of application performance monitoring and optimization in almost real-time.
This will allow Dave and the rest of his developersto understand the performance impact of their changes.
The ultimate goal is to have a ProductionEnvironment that gives their customers a great experience.
So what benefits does having a DevOps orientedteam give AnnaÕs and DaveÕs company? Well, it allows them to increase the rateof Software Delivery and improves the companyÕs ÒTime to MarketÓ potentially from Monthsand Weeks to Days and Hours.
This will be a huge competitive advantage.
It also allows them to maintain better BusinessFocus by automating their infrastructure so they can focus things that improve the businessand their online content.
They will spend more time of the things thatadd more value to their organizations When a company is able to build and offerbetter products, this means they have happier customers, and happier developers.
How does a DevOps oriented team actually accomplishthis? Well as mentioned before, a culture changeis needed, or changes in the mindsets of the two groups that need to work closer together.
The other component to the formula is gettingthe right tools.
New tools are needed in this new fast paceworld.
They will need a tool that allows them totest their code and programs.
An example of this is Jenkins.
They will need a tool for Source Control suchas GiTHub.
This will allow them to manage and documentall the changes to their Application Code and their Configuration Management Code.
They will need tools for Configuration Management, such as Chef, puppet and Saltstack.
These tools will allow them to deploy applicationsin an automated fashion, maybe across hundred or thousands of servers in different locations.
They will also need new tools that allow themto continuously measure the performance of their environment.
Generating, reading and analyzing system logsis extremely helpful to monitor an environment; but now that many environments have hundredsor thousands of servers, new tools like new relic are required to make sense on all thedata.
This will allow them to know how the entireapplication is performing and identify bottlenecks.
But many companies donÕt know how to usethese new tools or do not have the skills to automate software delivery process.
This is where Rackspace DevOps AutomationService can help.
In Conclusion, DevOps is a new philosophythat can help software organizations innovate faster and be more responsive to businessneeds.
It promotes collaboration between developersand operations, which improves quality or software deployments, and more frequent softwarereleases.
Adopting the DevOps philosophy requires anew mindset, new tools and new skills.
Rackspace can help.
Learn more at www.