The DevOps Way — New Era of Computing

Mohan Pawar
5 min readJan 9, 2018

You come from an existing IT professionals, whether you are a software developer or from a system admin or operations team, and you help them appreciate the challenges facing start-ups or companies which are looking to embrace scalable software deployment as well as the architectures and thought processes they can be use to address these challenges. First, always look at the purpose of DevOps, is ultimately the purpose of your organization. Here are few of the problems face by every organization.

The Problems We face:

  • Everything in society needs a software now-days.
  • Your application must be distributed so it has to run on a servers.
  • You are creating values by providing the service to end users.
  • There are various friction points that makes your strategy unique that ultimately leads to better performance.
  • How can you focus on the core business principals rather than doing unnecessary work which eats your days time.

“Cloud is about how you do computing, not where you do computing” — Paul Maritz

The landscape of software development is exponentially increased over the decade. With advances in hardware and software the pace of innovation is only accelerated. If you are not adopting the new technologies you might go out of business. New tools, languages, frameworks, agile, micro-services architecture came into picture to reduce the time to market and you easily do the more than 100 builds a day using the Continuous Delivery(CD) framework. Virtualization has changed the game for operational teams. You can create a service in minutes and harness the full power of physical(virtual servers) computing resources. If your software is buggy or have a long response time then it will ruined all your companies image. So, how do you manage everything at this new pace ? How to you change old habits in the organizational structure processes to adapt ? It has become history where software development projects taking months or even more than a year timespan. As devops will allow collaboration through all stages of development. That ultimately drive your definition of DevOps.

You will find out there is no standard definition of Devops. As there are several different definition practitioners come up with as they experience.

“DevOps is the practice of development and operations engineers participating together in the entire service life cycle from design to development to the production support.”

Another definition coined by the developers of Chef defines, “A cultural and professional movement, focused on how we build and operate, high velocity organizations, born from the experiences of practitioners.”

DevOps is a practice, use suitable and appropriate tools, softwares to build, ship and deploy your application anywhere. The CAMS principle will solve the above problem and helps ease the solution. Making sure everything is going as per the plan, you have full control over your resources and end-users are more than happy. Their is always a room to improve the whole process over time and it’s necessary to measure it all. But, for that measurement to be actionable, there has to be a good communication and a culture of sharing and collaborating between all the teams involved. This culture and collaboration leads the automation which we follow in the devops.

Culture: The main inspiration for devops is agile. And agile is people over process over tools. Even if you have best developers in the world, if there is no co-ordination between them, it might lead to huge loss of time as well resources. Lean approach benefits and make you focus on main goal rather doing the unnecessary, less important work. The culture drive the complete flow of the organization. And, with this the positive outcomes can be expected.

Automation:It’s key component in devops. There re many task in development as well in operations team you can automate. It just test your capability to measure how much percentage of your system you have automated ! One big one is deployment, setting up your server to run an application. The system admins were spending days to set up and configure the systems on physical servers and individual upgrade was time consuming. Another, could be migrating your logs to amazon S3, etc. The smart operations people automate as much of this as possible, like write a shell script or use any one configuration management tools like chef, puppet, ansible or saltstack to automate the task. In large infrastructure where you are running thousands of servers, it’s impossible to do it manually. You have to have automation in place to get the job done. On the dev site the agile movement embrace the unit test, integration test, continuous integration(CI). Devops impose these into the deployment process which breaks the barrier between the dev and ops people.

Measurement: If you want to improve something, you should have unit of measurement. In devops we called all the measurable metrics as golden signals. The better means the the improvement in performance, response time, etc. In traditional IT, infrastructure monitoring is ops responsibility. This includes like if the server has crashed or application is unavailable or disk is filling up. But, if we monitor individual services on the server we can get much better monitoring with the help of devs as they will make sure application will expose the useful data and integrate certain services for recording and analyzing the services. Monitoring can be apply to release process as if the new release takes the system to slow down, we can roll back to the previous state. The measurement actually goes beyond dev and ops. We can use the same measurement tools to record business metrics, customer activity, transactions per seconds, even customers happiness which we bring into the umbrella of analytics.

Sharing: It’s very important that all the teams, stack holders must know the end goal. First, a shared view and suggestion makes the decision and leads to the path. What are the current practices and flows ? Everyone have to participate to make the end goal more concrete. Share input generally creates shared responsibility and ownership. People are willing to work together if there thought and opinions being heard. Discuss and solve the early problems with shared view and shared solution and eliminate the bottlenecks. It should not be burden to other stack holder as new feature release. The shared architecture must be benefited all the teams. To achieve that you need to define and measure key performance indicators with the whole cross functional teams.

Understanding Continuous Improvement

Traditional IT: The old ways are gone and adapt to the new era of DevOps.

Core Conflict: The core services process has to change for betterment.

Reliability (Operations): Remove the friction between the stack holders and make it reliable and easy for shipping.

Speed (Developers): Measure the bottlenecks and improve the speed of entire process.

Embrace the CI/CD pipeline through Continuous Integration, Continuous Delivery and Continuous Deployment.

If Cloud is a new way of computing then DevOps is the modern way of getting things done. You should leverage new age DevOps tools for monitoring, application performance management, log management, security, data protection and cloud management instead of trying to build adhoc automation or dealing with primitive tools offered by AWS. A good open source tools can save time, efforts and money.

DevOps is a culture, a philosophy, a methodology. Software Development and Operations teams that practice DevOps are more agile, more innovative,
and more profitable. Through increased collaboration and greater visibility across teams, Development and Operations teams can work more productively and efficiently than ever before.

--

--