What is DevOps? Think, Code, Deploy, Run, Manage, Learn
Creating a DevOps workflow from scratch can be a daunting task. Luckily creating a DevOps solution is not too terribly difficult. This post will help guide you through all the new terms and functionality so that you can answer the question:
“What is Devops?”
DevOps is an approach that promotes closer collaboration between lines of business, development and IT operations. It is an enterprise capability that enables the continuous delivery, continuous deployment and continuous monitoring of applications. It reduces the time needed to address customer feedback. Development and operations, and even testing, were often siloed in the past. DevOps brings them together to improve agility. In this post to explore “What is DevOps?” we will be covering the following basics of a DevOps workflow: Think, Code, Deploy, Run, Manage, Learn
Getting started with Bluemix DevOps is the home for all DevOps needs in the Bluemix portal.
Toolchains: A collection of applications and custom integrations that support your application.
Pipeline: A series of scripts that run in sequence to build and deploy your application
Continuous Delivery: Changes are be deployed continuously, and automatically.
To get started, Create a toolchain, and select an appropriate template to your application.
The Think stage is were a developer will take their idea and write it down.
Github Issues: Ideal for public facing projects already on github.com
Bluemix Github Issues: Bluemix has a hosted version of GitLab community Edition that integrates very strongly with toolchains, and is idea for private or new projects.
Jira: An integration is available for projects that already have a backlog tracked in Jira.
Now that we can track changes to our project with issues, its time to actually write some code! As part of the toolchain Bluemix provides access to Eclipse Oriion IDE which is a great tool for editing code online, managing changes to git, and tracking its deployment to cloud foundry.
Next is the Deliver step, which is where most of the “magic” of DevOps comes into play. The Delivery Pipelinestarts with a trigger. The trigger can be an API call, or more commonly a change to the git repository.
The first stage will check out the code and make the files available to the pipeline as an artifact. Next come the test stage, which ensures new changes didn’t break anything. Then comes the deploy stage, making the new changes available.
Each stage in the pipeline is broken down into Jobs. Which can be as simple as a bash script, to more full featured jobs like Ant or Maven builders. Most noteworthy is the inclusion of some advanced testing that brings in the power of Watson to analyze the codebase, like the DevOps Insights plugin. Included in the testing jobs are some advanced functionality like the AppScan Dynamic Analyzer and IBM Security Static Analyzer, all of which help you gather robust information about your project that might have gone unnoticed otherwise.
At the end of a delivery pipeline, your application should be running, either in a development or production environment. Bluemix offers a variety of options on how to get your code out on the Internet.
Docker / Kubernetes: Package your application into a container and deploy it as needed.
Bare metal / VMs: Bluemix handles the hardware management, but give you full control over the operating system to run your applications with as little overhead as possible. Deploying changes here can be a bit challenging, so software like UrbanCode Deploy can greatly reduce the manual steps involved in deploying changes to bare metal environments.
After an application is running, keeping it running is also very important. Bluemix has a variety of tools to help with monitoring and manageing applications. One of the most obvious to get setup first is the Availability Monitoring service, which not only allows you to test if your application is responding, but how well it is responding from around the world, along with being able to perform Selenium tests.
Selenium tests are probably the best way to simulate user actions by recording actual mouse clicks and button presses into a HTML document, which can then be used to create a scripted test. In addition to scripted tests, the monitoring service can poll specific pages.
Bluemix keeps some of its more distinct and interesting features in the Learn phase. Developer Insights is one such tool that not only can be used to find problem areas in a code base, and it can also be integrated into a tool chain with a Insight Gate to make sure any new commit is of sufficient quality before being released. Along with Developer Insights is the Delivery Insights which integrates with Urban Code Deploy to provide insights into how well your deployments go.
Finally we have successfully completed one cycle of the Bluemix Garage Method! From here the cycle repeats, again and again. Hopefully you now understand the answer to the question “What is DevOps?” Want to see it live? Then register for “IBM Bluemix 101: How to Solve DevOps Dilemmas” on June 8th!