How To Deploy from Jenkins to Any Data Center or Cloud
If you’re responsible for network, compute infrastructure, or even VM administration – DevOps can sound like mumbo jumbo: Continuous Integration. Continuous Deployment. DevOps tool chain. Branching. Release trains. Agile Development. Green/Blue. A/B. Yadda Yadda Yadda.
You don’t need to understand all of that. What you need to understand is that with Cisco CloudCenter, an automated Jenkins build triggers an automated deployment of a clean environment and the latest build package to any data center or cloud, without a “ticket and wait” deployment process.
Watch this 2 min CloudCenter plus Jenkins overview
Why does that matter to network or infrastructure professionals?
All the fuss about things like big data, mobile apps, and digitization – is about the transformative power of the application. And your company is probably making changes this year to speed the time between software “done”, and software in user’s hands realizing business value.
So, while you may not be involved in writing code, you have a great opportunity to help speed up the process and as a result be more relevant in the software development and release process. If you don’t get DevOps savvy – you risk becoming irrelevant. Especially in the cloud era where developers can literally swipe a credit card and rent infrastructure in the cloud.
- Question: How can you as a network and infrastructure focused IT professionals be more relevant in a DevOps conversation?
- Answer: Make it easy for developers to quickly deploy their software and consume all the great infrastructure services you deliver.
You don’t have to learn about software development practices. It doesn’t matter if your developers release new features every year or every day. Doesn’t matter if the code changes are branched, or forked, or trained, or whatever.
What matters is that developers can build AND deploy their applications on as needed, without a ticket and wait through multiple IT teams. Without learning infrastructure APIs. Without needing to know port settings. And also that deploying their latest code is easy in development. Or in user acceptance testing or systems integration environments. Or pre-production staging. Or production.
Here’s what’s important:
- On Demand – deploy process is immediate. When developers push a button to deploy, (or deploy is called via an API), it starts the process. The easy button or API call replaces a help ticket and wait as the request is passed from IT team to team. On demand eliminates complex scheduling, and the associated friction that causes developers to spend less time developing. With on demand deployment, developers don’t hoard resources. And that minimizes security and compliance risk associated with the “server under the desk”. If they know they can get what they need when they need it, they are willing to destroy each deployment and free up infrastructure resources when each task is done.
- Repeatable – push button works the same every time. Unpredictable doesn’t mix with fast. What drives process improvement and behavior change that speeds up the process is that each deploy works the say way every time. With a manual process, developers may wait two weeks then spend another day debugging. Fixing issues leaves the new deployment in a modified state which can cause all sorts of problems that are a drag on agile development methods. A repeatable deploy process reduces unnecessary trouble shooting trying to determine if the failure is the result of the code change, or some issue with the deployment environment. The deploy process should be repeatable in data center or cloud. And at different stages of the software development and release process.
- Clean Environment – each deploy is identical. When developers deploy a new build into a used environment (app server, database, middleware, have been previously used etc.) they are asking for unnecessary trouble. Environment drift can lead to code working in test or staging, but not production. Or version x.1 working but version x.2. Effective environment management is a top predictor of DevOps excellence according to the 2015 State of DevOps Report. With high performing IT organizations deploying 30x more frequently with 60x fewer failures.
- Automated – end-to-end or key workflows. Whether you want true continuous delivery with end-to-end chained automation, or just want to eliminate sources of process delay, automated deploy is key. An automated deploy process frees up network and infrastructure cycles and gets skilled personnel out of the “request and respond” cycle. And it means that the most skilled personnel can help build and maintain the automation, and lower skilled (read less expensive) resources can initiate and run automated processes.
- Integrated – one workflow triggers another. Development managers don’t want developers wasting time learning yet another tool and user interface. If a familiar and existing Dev tool can trigger a downstream automated Ops workflow, that saves time and eliminates tool hopping and distraction. An integrated tool chain ensures repeatable execution and minimizes developer distraction.
If do all this – you get:
- Faster – Accelerate the overall software lifecycle where each build gets deployed multiple times at each of multiple process stages.
- Better – Increase software quality, with less time guessing if issues are related to the code or the environment.
- Cheaper – Developers are more efficient. IT ops are more efficient. Resource utilization goes up. Cloud costs go down.
If don’t you get:
- Errors – process is plagued by troubleshooting.
- Hoarding – developers hold on to used deployment environments causing quality and control risk
- Request response – key personnel are bogged down in repetitive and unfulfilling work. Which takes time away from innovation.
- Delay costs – developers who wait for deployments get distracted, start other work, and then waste time re-engaging after a disruptive wait.
Cisco CloudCenter plus Jenkins is a great solution
If you are a network or infrastructure operator or admin – now you have a solution that can make your life easier AND make life easier for developers as well.
CloudCenter sits on top of your infrastructure, or network, and automates the application deployment process. It works with vSphere, OpenStack, Azure pack, UCS Director in your datacenter. It also seamlessly integrates with Cisco ACI. And extends your data center to public clouds such as AWS, Azure, Google, Softlayer and more.
CloudCenter with Jenkins closes the gap between developer tools and automated deployment. Each code change triggers a build and deploy in a clean environment. So you get the faster better cheaper benefits of automated deployment. And your business gets the benefit of better software faster.
Now you can “move upstream” in the development process and increase IT’s relevance with a solution that make life better for developers, makes software lifecycle move faster, and help optimize network and infrastructure operations.