I have been working in the space of DevOps (build/deployment/software delivery/automation) looking at delivering the software more efficiently from the customer user stories into the usable feature by customers. There are many ways of doing this, everyone have their own ideas and thoughts, but in the series you are really going to get the best industry tools which are available in the market to help organisations deliver the software better and quicker.
Let’s start from the requirements to the usable feature/ product.
- Attlassian products (JIRA and Confluence)
- GitHub / Git (Stash)
- TeamCity (Build and Orchestration)
- Octopus Deploy (Deployment / Delivery/ Workflow)
- ELK for Monitoring (Proactive measures / Feedback to developers )
There are many organizations where people have developed the frameworks, Tooling, Bespoke World few years ago and wanted to invest money and you need to think about Time Value of Money. actually it does not equate to the goal achieved. In the world of frameworks, the ROI is much lower, in some case you can say its Zero or negative. The reason might be person developed moved on to different place, resource constraint to cope up with the technology in the fast moving world not meeting the needs of customer.
ROI = (Gain from Investment – Investment Cost) / Investment Cost
Calculating the cost and benefits for the Continuous Improvement/Delivery programme is very important. You need to follow 5 simple steps in finding the right product for the organisations as shown below
- Define a baseline. (Creates the basic needs/Goals)
- Estimate investment cost (Stakeholders needs to be involved)
- Forecast/Estimate Savings (Over five years)
- Use Above formula to find your magic number
- Choose the Product / Project.
Since we have talked about cost and gains so far. This means it’s not the only deciding factors below are the few things to always consider
- Ease of use (Product/ Tools)
- Product review online
Existing customer stories
Nowadays, now companies more particularly start-ups are really becoming popular in making these tools and software more affordable. Few of them are even open source them to enhance and build upon the extensions/ modules.
Thinking of 10years ago there was no good work flow management tools where present, hence the tools like msbuild, wix packaging, msdeploy, Nant, psake were became popular. These where really good in solving the problem of workflows, tasks during the build and deployment in the space of software delivery. Everyone in that space enjoyed and embraced the tools and technologies. Only few thought out of the box, this is good but not the best way to build, package and delivery the software then evolved tools like Teamcity, Octopus Deploy, Jenkins, Bamboo, Release Management, XL deploy etc at the time of writing there are large number players in the market, but everyone is basically delivering the software into various environments in their own niche way.
Based on deep analysis in this 10 Part series, we are mainly going to be discussing about Octopus Deploy on how to deploy various kinds of .Net Applications built using the visual studio. Many might have a question in the mind asking we are Microsoft house and why should we not use the products from Microsoft like TFS, Team Build and release Management. I hear this question from most of my clients I have worked with. The only answer is world is moving on, cross platform tools and practices are becoming big and we need to ignore the fact on what technology the product is developed, rather we should be looking at what the product offers us in delivering the value to the business with ROI in mind. If someone cannot visualize those benefits and advantages then the real trouble begins where your investments does not have any value. Now, if you look even Microsoft is thinking of making .net as open source, windows 10 being able to run android apps and the applications developed on one platform can be converted to run on other platforms.
So in this series, we are going to look at Octopus Deploy in deep dive mode to understand how it can solve my problems around software delivery and what role it plays in the space of Devops.