Search

Series List Filter

What is DevOps

You landed up here which means that you are willing to know more about DevOps and hey, you can admit it! And of course, the business community has been taking this trend to the next level not because it looks fancy but of course, this process has proven the commitment. The growth and adoption of this disruptive model are increasing the productivity of the company.  So here, we will get an idea of how this model works and how we can enable this across the organization. According to DevOps.com, during the period of the year 2015 to 2016, the adoption rate of DevOps increased significantly, with a rise of 9 per cent in its usage rate. You may have a look at DevOps Foundation training course to know more about the benefits of learning DevOps.1. What is DevOpsDevOps is a practice culture having a union of people, process, and tools which enables faster delivery. This culture helps to automate the process and narrow down the gaps between development and IT. DevOps is a kind of abstract impression that focuses on key principles like Speed, Rapid Delivery, Scalability, Security, Collaboration & Monitoring etc.A definition mentioned in Gartner says:“DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture) and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology— especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.”2. History of DevOpsLet's talk about a bit of history in cloud computing. The word “cloud compute” got coined in early 1996 by Compaq computer, but it took a while to make this platform easily accessible even though they claimed its a $2 billion market per year.  In August 2006 Amazon had introduced cloud infra which was easily accessible, and then it became a trend, and post this, in April 2008 Google, early 2010 Microsoft and then April 2011 IBM has placed his foot in this vertical. This showed a trend that all Giants are highly believed in this revolution and found potential in this technology.And in the same era DevOps process got pitched in Toronto Conference in 2008 by Patrick Debois and Andrew Shafer. He proposed that there is a better approach can be adopted to resolve the conflicts we have with dev and operation time so far. This again took a boom when 2 Flickr employee delivered a  seminar that how they are able to place 10+ deployment in a day. They came up with a proven model which can resolve the conflicts of Dev and operation having component build, test and deploy this should be an integrated development and operations process.3. Why market has adopted so aggressivelyLouis Columbus has mentioned in  Forbes that by the end of 2020 the 83% of the workload will be on the cloud where major market contributor will be AWS & Google. The new era is working more on AI, ML, Crypto, Big Data, etc. which is playing a key role in cloud computing adoption today but at the same time, IT professionals say that the security is their biggest concern in adopting a cloud computing. Moreover, Cloud helped so many startups to grow at initial stages and later they converted as a leader in there market place, which has given confidence to the fresh ideas.This entire cloud enablement has given more confidence to the team to adopt DevOps culture as cloud expansion is helping to experiment more with less risk.4. Why is Devop used?To reduce day to day manual work done by IT teamTo avoid manual error while designing infraEnables a smooth platform for technology or cloud migrationGives an amazing version control capabilitiesA better way to handle resources whether it’s cloud infra or manpowerGives an opportunity to pitch customer a realistic feature rollout commitmentTo adopt better infra scaling process even though you receive 4X trafficEnables opportunity to build a stable infrastructure5. Business need and value of DevOpsLet's understand this by sharing a story of, a leading  Online video streaming platform 'Netflix' which was to disclose the acquisition or we can say a company called Blockbuster LLC got an opportunity in 2000 to buy Netflix in $50 million. Netflix previously was working only on  DVD-by-mail service, but in 2016 Netflix made a business of $8.83 billion which was tremendous growth in this vertical. Any idea of how this happened? This started with an incident at Netflix office where due to a database mismatch a DVD shipping got disrupted for 3 days which Forced Management to move on the cloud from relational systems in their data centers because this incident made a massive impact on core values. The shift happened from vertical to horizontal, and AWS later provided with Cloud service even I have read that in an early stage they gathered with AWS team and worked to scale the infrastructure. And, today Netflix is serving across 180 countries with the amount of 15,00,00,000 hours of video content to less or more 8,60,00,000 members.6. Goal Of DevOpsControl of quality and increase the frequency of deploymentsAllows to enable a risk-free experimentEnables to improve mean time to recovery and backupHelps to handle release failure without losing live dataHelps to avoid unplanned work and technical failureTo achieve compliance process and control on the audit trailAlert and monitoring in an early stage on system failureHelps to maintain SLA in a uniform fashionEnabling control for the business team7. How Does DevOps workSo DevOp model usually keeps Development and operation team tightly coupled or sometimes they get merged and they roll out the entire release cycle. Sometime we may see that development, operation and security & Network team is also involved and slowly this got coined as DevSecOps. So the integration of this team makes sure that they are able to crack development, testing, deployment, provisioning infra, monitoring, network firewalling, infrastructure accessibility and accountability. This helps them to build a clean application development lifecycle to deliver a quality product.8. DevOps workflow/LifecycleDevOps Workflow (Process)DevOps workflow ensures that we are spending time on the right thing that means the right time is involved in building product/infrastructure. And how it enables we can analyze in below diagram. When we look into the below diagram, it seems DevOps process in an extended version of agile methodologies but it doesn’t mean that it can fit in other SDLC methodologies.  There is enough scope in other SDLC process as well. Once we merge process and Tools workflow diagram, it showcases a general DevOps environment. So the team puts an effort to keep pushing the releases and at the same time by enabling automation and tools we try maintaining the quality and speed.DevOps Workflow (Process)DevOps Workflow (Tool)9. DevOps valuesI would like to split DevOps values into  two groups: 1) Business Values 2) Organization ValuesBusiness values are moreover customer centric  a) How fast we recover if there is any failure?  b) How we can pitch the exact MRR to a customer and acquire more customers?  c) How fast we can deliver the product to customers  d) How to roll out beta access asap if there any on-demand requirement?Organizational Values  a) Building Culture  b) Enabling communication and collaboration  c) Optimize and automate the whole system  d) Enabling Feedbacks loops  e) Decreasing silos  f) Metrics and Measurement10. Principle of DevOpsAutomated: Automate as much as you can in a linear and agile manner so you can build an end to end automated pipeline for software development life cycle in an effective manner which includes quality, rework, manual work and cost. And it’s not only about the cycle it is also about the migration from one technology to another technology, one cloud to another cloud etc.Collaborative: The goal of this culture is to keep a hold on both development and operations. Keep an eye and fix the gaps to keep moving thing in an agile way, which needs a good amount of communication and coordination. By encouraging collaborative environment an organization gets ample of ideas which help to resolve issue way faster. The beauty of the collaboration is it really handles all unplanned and manual work at an early stage which ends up given a quality build and process.Customer Centric approach: DevOps team always reacts as a startup and must keep a finger on the pulse to measure customer demands. The metrics they generate give an insight to the business team to see the trend of usage and burn rate. But of course, to find a signal in the noise, you should be focused and collect only those metrics which really matters.Performance Orientation: Performance is a principle and a discipline which gives an insight to the team to understand the implication of bad performance. Before moving to production if we get metrics and reports handy it gives confidence to technology and business both. This gives an opportunity to plan how to scale infrastructure, how to handle if there is a huge spike or the high usage, and the utilization of the infrastructure.Quality Indicators per application: Another set which is a predefined principle is to set measurable quality Assigning a quality gate to indicators with predefined targets, covering fit for purpose and security gives an opportunity to deliver a complete quality application.11. DevOps Key practices:i) CI/CD When we say “continuous” it doesn’t translate that “always running” but of course “always ready to run”.Continuous integration is nothing but the development philosophy and practices that drive teams to check-in code to version control system as often as possible. So keeping your build clean and QA ready developer's changes need to be validated by running automated tests against the build that could be a Junit, iTest. The goal of CI is to place a consistent and automated way to build and test applications which results in better collaboration between teams, and eventually a better-quality product.Continuous Delivery is an adjunct of CI which enables a facility to make sure that we can release new changes to your customers quickly in a sustainable way.Typical CD involves the below steps:Pull code from version control system like bitbucket and execute build.Execute any required infrastructure steps command line/script to stand up or tear down cloud infrastructure.Move build to right compute environmentAble to handle all the configuration generation process.Pushing application components to their appropriate services, such as web servers, API services, and database services.Executing any steps required to restarts services or call service endpoints that are needed for new code pushes.Executing continuous tests and rollback environments if tests fail.Providing log data and alerts on the state of the delivery.Below there is a table which will help us better understand what we need to put as an effort and what we will gain if we enable CI/CD in place:Practice TypeEffort RequiredGainContinuous integrationa) Need to prepare automated your team will need to write automated tests for each new feature,improvement or bug fix.b) You need a continuous integration server that can monitor the main repository and run the tests automatically for every new commits pushed.c) Developers need to merge their changes as often as possible, at least once a day.a Will give control on regressions which can be captured in early stage of automated testing.b) Less context switching as developers are alerted as soon as they break the build and can work on fixing it before they move to another task.c) Building the release is easy as all integration issues have been solved early.d) Testing costs are reduced drastically -your Cl server can run hundreds of tests in the matter of seconds.e) Your QA team spend less time testing and can focus on significant improvements to the quality culture.Continuous Delivery a) You need a strong foundation in continuous integration and your test suite needs to cover enough of your codebase.b) Deployments need to be automated. The trigger is still manual but once a deployment is started  there shouldn't be a need for human intervention.c) Your team will most likely need to embrace feature flags so that incomplete features do not affect customers in productiona) The complexity of deploying software has been taken away. Your team doesnt't have to spend days preparing for a release anymore.b) You can release more often,thus accelerating the feedback loop with your  customers.c) There is much less pressure on decisions for small changes,hence encoraging iterating faster.ii) Maintaining infra in a secure and compliant wayKeeping infrastructure secure and compliant is also a responsibility of DevOps or some organization are nowadays pitching as SecOps. A general and traditional way of security methodologies or rules get fails when you have multi-layer or multi-cloud system running for your product organization and sometimes it really fail when you moving with the continuous delivery process. So the job is to ensure that the team is putting clear and neat visibility on risk and vulnerabilities which may cause a big problem. Below adding a basic rule to avoid small loophole (Specific to GCP) :Level 1:- Define your resource hierarchy.- Create an Organization node and define the project structure.- Automation of project creation which helps to achieve uniformity and testability.Level 2:- Manage your Google identities.- Synchronize your existing identity platform.- Have single-sign-on (SSO).- Don’t add multiple users instead of that select resource level permission.- Be specific while providing resource access also with action type (Read, Write & Admin).- Always use service accounts to access meta-data because to authenticate this it uses keys instead of password and GCP rotates the service account keys for code running on GCP.Level 3:- Add VPC for network definition and create firewall rules to manage traffic.- Define a specific rule to control external access and avoid having unwanted port opens.- Create a centralized network control template which can be applied across the project.Level 4:- Enable centralized logging and monitoring (Preferred Stackdriver).- Enable audit log which helps you to collect the activity of Admin, System Event and Data Access in a phrase of who did what, where and when?Level 5:- Enable cold line data storage if there is a need to keeping a copy for disaster management.- Further reference for placing security standard in AWS there is an article I have posted a few months back. 12. DevOps Myths or What DevOps is not?Before I mention the myths I would clarify the biggest myth which every early stage learner carries that “DevOps practice can be rolled out in a day and output will be available from the 1st day”. This is too early to reach this conclusion, as the definition of DevOps always says that it's a culture and process which can be built in a day. But of course, you will get an opportunity to overcome your mistakes at an early stage. Let's discuss a few more myths:It’s now only about the tool, (It’s a component of the whole DevOps practice)Dev and Ops team should have used the same set of tools (How to overcome- push them to integrate both)Only startups can follow this practice (Azure has published an article on best practices of DevOps which says it can be applied anywhere)Joining DevOps/ DevOps tool conf with fancy sticker (Good you join but don’t pretend that now you are carrying DevOps tag)Pushing build in production in every 5 mins (This is not what Continuous delivery)DevOps doesn’t fit the existing system (Overcome: You may need to find the right approach to make an attempt)13. Benefits of DevOpsBusiness Benefitsa) Horizontal and vertical growth: When I’m using “Horizontal and Vertical Growth” I’m keeping customer satisfaction on X, Business on Y2 and time on the Y-axis. Now the question is how it helps to populate growth in 2 axis, and my answer will be the quick turnaround time for minor and major issues. Once we adopt DevOps we scale and built in such a fashion that in less time the graph shows a rapid jump.b) Improving ROI of Data: Having DevOps in an organization ensures that we can design a decent ROI from data at an early stage more quickly. If we will do a raw survey now Software industry is playing with data and have control over there a team should have an end to end control on data. And if we define DevOps it will help the team to crunch data in various ways by automating small jobs. By automation, we can segregate and justify data and this helps to populate either in Dashboard or can present offline to the customer.Technical Benefitsc) Scalability & Quality: If a business starts reaching to more user we start looking to increase infrastructure and bandwidth. But on the other hand, it starts popping up a question whether we are scaling our infra in the right way and also if a lot of people are pushing changes (Your code commits/builds) are having the same or greater quality we have earlier. Both the questions are somehow now reserved by the DevOps team. If your business pitch that we might be going to hit 2000+ client and they will be having billion of traffic and we are ready to handle, DevOps take these responsibilities and says yes can scale infra at any point of time. And if the same time internal release team says I want to deliver 10 feature in next 10 days independently, DevOps says quality can be maintained.Culture  Benefitsd) Agility & Velocity: They key param of adopting DevOps is to improve the velocity of product development. DevOps enables Agility and if both are in sync we can easily observe the velocity. The expectation of end users are always high and at the same time, the deliverable time span is short. To achieve this we have to ensure that we are able to our rollout new features to customers at much higher frequencies otherwise your competitors may win the market.e) Enabling Transparency:  A Practice to enable total transparency is a key impact on the DevOps culture. Sharing knowledge across the team gives you an opportunity to work faster and get aligned with the goal. Transparency will encourage an increasingly well-rounded team with heightened understandings.14. How to adopt a DevOps modelThe ideal way is to pick up a small part of the project or product but sometimes we start adopting when we are touching the bottleneck. So whatever you start few things need to be taken care like Goal should be clean and the team is are in sync to chase the same, loop whole which turns to a downtime, how can testing (Stress, performance, load ) to avoid production glitches and at the same time enable automated deployment process. All this could have some basic plan and move forward it can be elaborated in detailed format. While adopting a DevOps model, need to make sure that the team is always looking into metrics so they can justify no’s and make assumption towards the goal. If you want to have a roadmap of DevOps adoption then you really need to find the gaps up front and the typical problem you face every day which really holds your release process or spoils your team time.15. DevOps automation toolJenkins: Jenkins is an open source automation server which is used to automate the software build, and deliver or deploy the build.  It can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed. In short, Jenkins enables continuous integration which helps to accelerate the development. There are ample of plugins available which enable the integration for Various DevOps stages. For example Git, Maven 2 project, Amazon EC2, HTML publisher etc. More in-depth information about the same can be found here in our training material on Jenkins and if you are inquisitive about what sort of questions related to Jenkins are asked in job interviews, then feel free to view our set of 22 Jenkins interview questions.Ansible: An open-source platform which helps to automate the IT engine which actually pushes off the slavery work from DevOps day to day life. Usually, Ansible helps in 3 day to day task, Provisioning, configuration management and application deployment. Beauty is it can automate traditional servers, virtualization platforms, or the cloud one. It is built on playbooks which can be applied to an extensive variety of systems for deploying your app. To know more, you may have a look at our Ansible training material here or go through our set of 20 interview questions on Ansible.Chef: It’s an open source config management system and works as a master-client model. It is having a transparent design and works based on instruction which needs to be defined properly. Before you plan using this tool you need to make sure that you have a proper Git practice going on and you have an idea about Ruby as this is completely built on Ruby. The industry says that this is good to have for development-focused environments and enterprise mature architecture. Our comprehensively detailed training course on Chef will give you more insight into this tool.Puppet:  So Puppet works as a master-client setup and utilized as model driven. This is built on Ruby but you can customize this as scripting language somewhere close to JSON. Puppet helps you to get control of full-fledged configuration management. This tool somewhere helps Admin (Part of DevOps) to add stability and maturity towards config management. A more detailed explanation of Puppet and its functionality can be found in our training material.Docker:  A tool designed to help developers and administrators to provide flexibility to reduce the count of the system as docker don’t create a complete virtual operating system, instead they allow applications to use the same Linux kernel as the system. So somewhere we can say we use Docker to create, deploy, and run applications by using containers. Just a stats submitted by docket that over 3.5 million applications placed in containers using docker and 37 billion containerized applications have been downloaded. Specifically, Docker CI /CD provided an opportunity to have exactly like a live server and run multiple dev infra form the same host with different config and OS. You may visit our training course on Docker to get more information.Kubernetes: Platform developed to manage containerized applications which provide high availability and scalability. According to the usage we can downgrade and upgrade the system, we can perform rolling updates, rollback feasibility, switch traffic between to different versions of the application.  So we can have multiple instances having Kubernetes installed and can be operated as Kubernetes cluster. Post this you get an API endpoint of Kube cluster, configure Kubel and you are ready to serve. Read our all-inclusive course on Kubernetes to gather more information on the same.Docker and Kubernetes, although being widely tools as DevOps automation tools, have notable differences between their setup, installation and their attributes, clearly mentioned in our blog stressing the differences between Docker and Kubernetes.Alert:Pingdom: Pingdom is a platform which enables monitoring to check the availability,  performance, transaction monitoring (website hyperlink) and incident collection of your websites, servers or web applications. Beauty is if you are using a collaboration tool like slack or flock you can just integrate by using the webhook (Pretty much simpler no code required )you can easily get notified at any time. Pingdom also provides an API so you can have your customized dashboard (Recently started) and the documentation is having enough details and self-explanatory.Nagios: It’s an Open Source Monitoring Tool to monitor the computer network. We can monitor server, applications, incident manager etc and you can certainly configure email, SMS, Slack notifications and phone calls even. Nagios is licensed under GNU GPLv2. Listing some major components which can be monitored with Nagios:Once we install Nagios we get a dashboard to monitor network services like SMTP, HTTP, SNMP, FTP, SSH, POP, etc and can view current network status, problem history, log files, notifications that have been triggered by the system, etc.We can monitor Servers resources like disk drives, memory, processor, server load usage, system logs, etc.Image copyright stackdriver- D-4Stackdriver: Stackdriver is again a Monitoring tool to get the visibility of performance, uptime, and overall health for cloud-powered applications. Stackdriver monitoring collects events and metadata from Google Cloud Platform, Amazon Web Services (AWS). Stackdriver consumes data and generates insights via dashboards, charts, and alerts. And for alerting we can integrate to collaboration tools like Slack, PagerDuty, HipChat, Campfire, and more.Image copyright stackdriver- D-2Adding one sample log where we can see what all parameter it collects and also i have just separated them in fashion which will help us to understand what all it logs it actually collects:Log InformationUser Details and Authorization InfoRequest Type and Caller IPResource and Operation DetailsTimeStamp and Status Details{  insertId:    logName:  operation: {   first:     id:   producer:  } protoPayload: {   @type:   authenticationInfo: {   principalEmail:       }   authorizationInfo: [   0: {   granted:     permission:       }   ]methodName:     request: {    @type:     } requestMetadata:  { callerIp: callerSuppliedUserAgent:   } resourceName: response: { @type:    Id:  insertTime:    name:  operationType:    progress:    selfLink:    status:      targetId:     targetLink:    user:    zone:     }   serviceName:    }receiveTimestamp:  resource: {  labels: {  instance_id:  project_id:      zone:      }  type:    }  severity:  timestamp:   }Monitoring:Grafana: It is an open source visualization tool and can be used on top of different data stores like InfluxDB,Elasticsearch and Logz.io.We can create comprehensive charts with smart axis formats (such as lines and points) as a result of Grafana’s fast, client-side rendering — even over long ranges of time — that uses Flot as a default option. We can get the 3 different levels of access, watcher, Editor and Admin, even we can enable G-Auth for having good access control. A detail information guide can be found hereImage copyright stackdriver- D-5Elasticsearch:It's an open source realtime distributed, RESTful search and analytics engine. It collects unstructured data and stores in a cultivated format which is optimized and available for language based search. The beauty of Elastic is scalability, speed, document-oriented, schema-free. It scales horizontally to handle kajillions of events per second, while automatically managing how indices and queries are distributed across the cluster for smooth operations.Cost OptimizationreOptimize.io : Once we run ample of servers we usually end up with burning good amount not intentionally but of course because of not have a clear visualization. At reOptimze helps thereby providing a detailed insight about the cloud expense the integration can be done with 3-4 simple steps but before that you might need to look into the prerequest which can be accessed here. Just a heads up that they only need read access for all these and permission docs can be found here . Image copyright reOptimizeD-616. DevOps vs AgileDevOpsAgileDevOps culture can be enabled in the software industry to deliver reliable build.Agile is a generic culture which can be deployed in any department.The key focus area is to have involvement at an end to end process.Agile helps the management team to push a frequent release.Enables quality build with rapid delivery.Keep team aware of frequent changes for any release and feature.Agile sprints work within the immediate future, A sprint life cycle varies between 7-30 days.DevOps don’t have such scheduled metrix, they work to avoid such unscheduled disruptions.Team size also differs, in Agile wee can minimal resource can be one as well.DevOps works on collaboration and bridge a big set of the team. 17. Future of DevOpsThe industry is moving more on cloud which enables a few more responsibilities to DevOps. And immediate hot topic could be DevSecOps because more automation tends to more connectivity means more exposure. AI or ML is more data-centric and learning based which gives an opportunity to DevOps to share hand to train ML modules, unique analysis correlating, code, test results, user behavior, and production quality & performance. There is also an opportunity to break the stereotype that DevOps can be only adopted by startup and surely the next 2-3 years this will become a general practice in Enterprise.18. Importance of DevOps training certificationCertifications work like an add-on, and add-on always gives some crisp and cumulative results. Certification works similar to that if someone adds any professional certificates to resume it gives an add-on value. In the process of certification, professionals help you to understand in detail and the deep dive of DevOps culture help individual to get a clear picture. While certification you may have to look into the vendor reputation, an academic who is giving approval, the transparency, session hour and many more components.19. Conclusion: I have been working closely and observing the DevOps team from a year & so and found every day we learn something new. The more we dive we see a lot can be done and can be achieved in a couple of different ways. As the industry is growing the responsibility of DevOps seems to increase which creates a possible chance for professional but always set a new bar of quality. Now, since you have come to know everything about DevOps, feel free to read our blog on how you can become a DevOps Engineer.
Rated 4.0/5 based on 11 customer reviews

What is DevOps

3469
  • by MD Zaid Imam
  • 30th Nov, 2018
  • Last updated on 08th May, 2019
  • 9 mins read
What is DevOps

You landed up here which means that you are willing to know more about DevOps and hey, you can admit it! And of course, the business community has been taking this trend to the next level not because it looks fancy but of course, this process has proven the commitment. The growth and adoption of this disruptive model are increasing the productivity of the company.  So here, we will get an idea of how this model works and how we can enable this across the organization. According to DevOps.com, during the period of the year 2015 to 2016, the adoption rate of DevOps increased significantly, with a rise of 9 per cent in its usage rate. You may have a look at DevOps Foundation training course to know more about the benefits of learning DevOps.

1. What is DevOps

DevOps is a practice culture having a union of people, process, and tools which enables faster delivery. This culture helps to automate the process and narrow down the gaps between development and IT. DevOps is a kind of abstract impression that focuses on key principles like Speed, Rapid Delivery, Scalability, Security, Collaboration & Monitoring etc.

A definition mentioned in Gartner says:

DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture) and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology— especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.

2. History of DevOps

Let's talk about a bit of history in cloud computing. The word “cloud compute” got coined in early 1996 by Compaq computer, but it took a while to make this platform easily accessible even though they claimed its a $2 billion market per year.  In August 2006 Amazon had introduced cloud infra which was easily accessible, and then it became a trend, and post this, in April 2008 Google, early 2010 Microsoft and then April 2011 IBM has placed his foot in this vertical. This showed a trend that all Giants are highly believed in this revolution and found potential in this technology.

And in the same era DevOps process got pitched in Toronto Conference in 2008 by Patrick Debois and Andrew Shafer. He proposed that there is a better approach can be adopted to resolve the conflicts we have with dev and operation time so far. This again took a boom when 2 Flickr employee delivered a  seminar that how they are able to place 10+ deployment in a day. They came up with a proven model which can resolve the conflicts of Dev and operation having component build, test and deploy this should be an integrated development and operations process.

3. Why market has adopted so aggressively

Louis Columbus has mentioned in  Forbes that by the end of 2020 the 83% of the workload will be on the cloud where major market contributor will be AWS & Google. The new era is working more on AI, ML, Crypto, Big Data, etc. which is playing a key role in cloud computing adoption today but at the same time, IT professionals say that the security is their biggest concern in adopting a cloud computing. Moreover, Cloud helped so many startups to grow at initial stages and later they converted as a leader in there market place, which has given confidence to the fresh ideas.

This entire cloud enablement has given more confidence to the team to adopt DevOps culture as cloud expansion is helping to experiment more with less risk.

4. Why is Devop used?

To reduce day to day manual work done by IT team

To avoid manual error while designing infra

Enables a smooth platform for technology or cloud migration

Gives an amazing version control capabilities

A better way to handle resources whether it’s cloud infra or manpower

Gives an opportunity to pitch customer a realistic feature rollout commitment

To adopt better infra scaling process even though you receive 4X traffic

Enables opportunity to build a stable infrastructure

5. Business need and value of DevOps

Let's understand this by sharing a story of, a leading  Online video streaming platform 'Netflix' which was to disclose the acquisition or we can say a company called Blockbuster LLC got an opportunity in 2000 to buy Netflix in $50 million. Netflix previously was working only on  DVD-by-mail service, but in 2016 Netflix made a business of $8.83 billion which was tremendous growth in this vertical. Any idea of how this happened? This started with an incident at Netflix office where due to a database mismatch a DVD shipping got disrupted for 3 days which Forced Management to move on the cloud from relational systems in their data centers because this incident made a massive impact on core values. The shift happened from vertical to horizontal, and AWS later provided with Cloud service even I have read that in an early stage they gathered with AWS team and worked to scale the infrastructure. And, today Netflix is serving across 180 countries with the amount of 15,00,00,000 hours of video content to less or more 8,60,00,000 members.

6. Goal Of DevOps

  • Control of quality and increase the frequency of deployments
  • Allows to enable a risk-free experiment
  • Enables to improve mean time to recovery and backup
  • Helps to handle release failure without losing live data
  • Helps to avoid unplanned work and technical failure
  • To achieve compliance process and control on the audit trail
  • Alert and monitoring in an early stage on system failure
  • Helps to maintain SLA in a uniform fashion
  • Enabling control for the business team

7. How Does DevOps work

So DevOp model usually keeps Development and operation team tightly coupled or sometimes they get merged and they roll out the entire release cycle. Sometime we may see that development, operation and security & Network team is also involved and slowly this got coined as DevSecOps. So the integration of this team makes sure that they are able to crack development, testing, deployment, provisioning infra, monitoring, network firewalling, infrastructure accessibility and accountability. This helps them to build a clean application development lifecycle to deliver a quality product.

8. DevOps workflow/Lifecycle

DevOps Workflow (Process)

DevOps workflow ensures that we are spending time on the right thing that means the right time is involved in building product/infrastructure. And how it enables we can analyze in below diagram. When we look into the below diagram, it seems DevOps process in an extended version of agile methodologies but it doesn’t mean that it can fit in other SDLC methodologies.  There is enough scope in other SDLC process as well. Once we merge process and Tools workflow diagram, it showcases a general DevOps environment. So the team puts an effort to keep pushing the releases and at the same time by enabling automation and tools we try maintaining the quality and speed.

DevOps Workflow (Process)DevOps Workflow (Process)

DevOps Workflow (Tool)

DevOps Workflow (Tool)

9. DevOps values

I would like to split DevOps values into  two groups: 1) Business Values 2) Organization Values

Business values are moreover customer centric

  a) How fast we recover if there is any failure?

  b) How we can pitch the exact MRR to a customer and acquire more customers?

  c) How fast we can deliver the product to customers

  d) How to roll out beta access asap if there any on-demand requirement?

Organizational Values

  a) Building Culture

  b) Enabling communication and collaboration

  c) Optimize and automate the whole system

  d) Enabling Feedbacks loops

  e) Decreasing silos

  f) Metrics and Measurement

10. Principle of DevOps

Automated: Automate as much as you can in a linear and agile manner so you can build an end to end automated pipeline for software development life cycle in an effective manner which includes quality, rework, manual work and cost. And it’s not only about the cycle it is also about the migration from one technology to another technology, one cloud to another cloud etc.

Collaborative: The goal of this culture is to keep a hold on both development and operations. Keep an eye and fix the gaps to keep moving thing in an agile way, which needs a good amount of communication and coordination. By encouraging collaborative environment an organization gets ample of ideas which help to resolve issue way faster. The beauty of the collaboration is it really handles all unplanned and manual work at an early stage which ends up given a quality build and process.

Customer Centric approach: DevOps team always reacts as a startup and must keep a finger on the pulse to measure customer demands. The metrics they generate give an insight to the business team to see the trend of usage and burn rate. But of course, to find a signal in the noise, you should be focused and collect only those metrics which really matters.

Performance Orientation: Performance is a principle and a discipline which gives an insight to the team to understand the implication of bad performance. Before moving to production if we get metrics and reports handy it gives confidence to technology and business both. This gives an opportunity to plan how to scale infrastructure, how to handle if there is a huge spike or the high usage, and the utilization of the infrastructure.

Quality Indicators per application: Another set which is a predefined principle is to set measurable quality Assigning a quality gate to indicators with predefined targets, covering fit for purpose and security gives an opportunity to deliver a complete quality application.

11. DevOps Key practices:

i) CI/CD 

When we say “continuous” it doesn’t translate that “always running” but of course “always ready to run”.

Continuous integration is nothing but the development philosophy and practices that drive teams to check-in code to version control system as often as possible. So keeping your build clean and QA ready developer's changes need to be validated by running automated tests against the build that could be a Junit, iTest. The goal of CI is to place a consistent and automated way to build and test applications which results in better collaboration between teams, and eventually a better-quality product.

Continuous Delivery is an adjunct of CI which enables a facility to make sure that we can release new changes to your customers quickly in a sustainable way.

Typical CD involves the below steps:

  • Pull code from version control system like bitbucket and execute build.
  • Execute any required infrastructure steps command line/script to stand up or tear down cloud infrastructure.
  • Move build to right compute environment
  • Able to handle all the configuration generation process.
  • Pushing application components to their appropriate services, such as web servers, API services, and database services.
  • Executing any steps required to restarts services or call service endpoints that are needed for new code pushes.
  • Executing continuous tests and rollback environments if tests fail.
  • Providing log data and alerts on the state of the delivery.

Below there is a table which will help us better understand what we need to put as an effort and what we will gain if we enable CI/CD in place:

Practice Type
Effort RequiredGain
Continuous integrationa) Need to prepare automated your team will need to write automated tests for each new feature,improvement or bug fix.

b) You need a continuous integration server that can monitor the main repository and run the tests automatically for every new commits pushed.

c) Developers need to merge their changes as often as possible, at least once a day.
a Will give control on regressions which can be captured in early stage of automated testing.

b) Less context switching as developers are alerted as soon as they break the build and can work on fixing it before they move to another task.

c) Building the release is easy as all integration issues have been solved early.

d) Testing costs are reduced drastically -your Cl server can run hundreds of tests in the matter of seconds.

e) Your QA team spend less time testing and can focus on significant improvements to the quality culture.

Continuous Delivery a) You need a strong foundation in continuous integration and your test suite needs to cover enough of your codebase.

b) Deployments need to be automated. The trigger is still manual but once a deployment is started  there shouldn't be a need for human intervention.

c) Your team will most likely need to embrace feature flags so that incomplete features do not affect customers in production

a) The complexity of deploying software has been taken away. Your team doesnt't have to spend days preparing for a release anymore.

b) You can release more often,thus accelerating the feedback loop with your  customers.

c) There is much less pressure on decisions for small changes,hence encoraging iterating faster.

ii) Maintaining infra in a secure and compliant way

Keeping infrastructure secure and compliant is also a responsibility of DevOps or some organization are nowadays pitching as SecOps. A general and traditional way of security methodologies or rules get fails when you have multi-layer or multi-cloud system running for your product organization and sometimes it really fail when you moving with the continuous delivery process. So the job is to ensure that the team is putting clear and neat visibility on risk and vulnerabilities which may cause a big problem. Below adding a basic rule to avoid small loophole (Specific to GCP) :

Level 1:

- Define your resource hierarchy.

- Create an Organization node and define the project structure.

- Automation of project creation which helps to achieve uniformity and testability.

Level 2:

- Manage your Google identities.

- Synchronize your existing identity platform.

- Have single-sign-on (SSO).

- Don’t add multiple users instead of that select resource level permission.

- Be specific while providing resource access also with action type (Read, Write & Admin).

- Always use service accounts to access meta-data because to authenticate this it uses keys instead of password and GCP rotates the service account keys for code running on GCP.

Level 3:

- Add VPC for network definition and create firewall rules to manage traffic.

- Define a specific rule to control external access and avoid having unwanted port opens.

- Create a centralized network control template which can be applied across the project.

Level 4:

- Enable centralized logging and monitoring (Preferred Stackdriver).

- Enable audit log which helps you to collect the activity of Admin, System Event and Data Access in a phrase of who did what, where and when?

Level 5:

- Enable cold line data storage if there is a need to keeping a copy for disaster management.

- Further reference for placing security standard in AWS there is an article I have posted a few months back.

 12. DevOps Myths or What DevOps is not?

Before I mention the myths I would clarify the biggest myth which every early stage learner carries that “DevOps practice can be rolled out in a day and output will be available from the 1st day. This is too early to reach this conclusion, as the definition of DevOps always says that it's a culture and process which can be built in a day. But of course, you will get an opportunity to overcome your mistakes at an early stage. Let's discuss a few more myths:

  1. It’s now only about the tool, (It’s a component of the whole DevOps practice)
  2. Dev and Ops team should have used the same set of tools (How to overcome- push them to integrate both)
  3. Only startups can follow this practice (Azure has published an article on best practices of DevOps which says it can be applied anywhere)
  4. Joining DevOps/ DevOps tool conf with fancy sticker (Good you join but don’t pretend that now you are carrying DevOps tag)
  5. Pushing build in production in every 5 mins (This is not what Continuous delivery)
  6. DevOps doesn’t fit the existing system (Overcome: You may need to find the right approach to make an attempt)

13. Benefits of DevOps

Business Benefits

a) Horizontal and vertical growth: When I’m using “Horizontal and Vertical Growth” I’m keeping customer satisfaction on X, Business on Y2 and time on the Y-axis. Now the question is how it helps to populate growth in 2 axis, and my answer will be the quick turnaround time for minor and major issues. Once we adopt DevOps we scale and built in such a fashion that in less time the graph shows a rapid jump.

Business understanding growth

b) Improving ROI of Data: Having DevOps in an organization ensures that we can design a decent ROI from data at an early stage more quickly. If we will do a raw survey now Software industry is playing with data and have control over there a team should have an end to end control on data. And if we define DevOps it will help the team to crunch data in various ways by automating small jobs. By automation, we can segregate and justify data and this helps to populate either in Dashboard or can present offline to the customer.

Technical Benefits

c) Scalability & Quality: If a business starts reaching to more user we start looking to increase infrastructure and bandwidth. But on the other hand, it starts popping up a question whether we are scaling our infra in the right way and also if a lot of people are pushing changes (Your code commits/builds) are having the same or greater quality we have earlier. Both the questions are somehow now reserved by the DevOps team. If your business pitch that we might be going to hit 2000+ client and they will be having billion of traffic and we are ready to handle, DevOps take these responsibilities and says yes can scale infra at any point of time. And if the same time internal release team says I want to deliver 10 feature in next 10 days independently, DevOps says quality can be maintained.

Culture  Benefits

d) Agility & Velocity: They key param of adopting DevOps is to improve the velocity of product development. DevOps enables Agility and if both are in sync we can easily observe the velocity. The expectation of end users are always high and at the same time, the deliverable time span is short. To achieve this we have to ensure that we are able to our rollout new features to customers at much higher frequencies otherwise your competitors may win the market.

e) Enabling Transparency:  A Practice to enable total transparency is a key impact on the DevOps culture. Sharing knowledge across the team gives you an opportunity to work faster and get aligned with the goal. Transparency will encourage an increasingly well-rounded team with heightened understandings.

14. How to adopt a DevOps model

The ideal way is to pick up a small part of the project or product but sometimes we start adopting when we are touching the bottleneck. So whatever you start few things need to be taken care like Goal should be clean and the team is are in sync to chase the same, loop whole which turns to a downtime, how can testing (Stress, performance, load ) to avoid production glitches and at the same time enable automated deployment process. All this could have some basic plan and move forward it can be elaborated in detailed format. While adopting a DevOps model, need to make sure that the team is always looking into metrics so they can justify no’s and make assumption towards the goal. If you want to have a roadmap of DevOps adoption then you really need to find the gaps up front and the typical problem you face every day which really holds your release process or spoils your team time.

15. DevOps automation tool

Jenkins: Jenkins is an open source automation server which is used to automate the software build, and deliver or deploy the build.  It can be installed through native system packages, Docker, or even run standalone by any machine with a Java Runtime Environment (JRE) installed. In short, Jenkins enables continuous integration which helps to accelerate the development. There are ample of plugins available which enable the integration for Various DevOps stages. For example Git, Maven 2 project, Amazon EC2, HTML publisher etc. More in-depth information about the same can be found here in our training material on Jenkins and if you are inquisitive about what sort of questions related to Jenkins are asked in job interviews, then feel free to view our set of 22 Jenkins interview questions.

Ansible: An open-source platform which helps to automate the IT engine which actually pushes off the slavery work from DevOps day to day life. Usually, Ansible helps in 3 day to day task, Provisioning, configuration management and application deployment. Beauty is it can automate traditional servers, virtualization platforms, or the cloud one. It is built on playbooks which can be applied to an extensive variety of systems for deploying your app. To know more, you may have a look at our Ansible training material here or go through our set of 20 interview questions on Ansible.

Chef: It’s an open source config management system and works as a master-client model. It is having a transparent design and works based on instruction which needs to be defined properly. Before you plan using this tool you need to make sure that you have a proper Git practice going on and you have an idea about Ruby as this is completely built on Ruby. The industry says that this is good to have for development-focused environments and enterprise mature architecture. Our comprehensively detailed training course on Chef will give you more insight into this tool.

Puppet:  So Puppet works as a master-client setup and utilized as model driven. This is built on Ruby but you can customize this as scripting language somewhere close to JSON. Puppet helps you to get control of full-fledged configuration management. This tool somewhere helps Admin (Part of DevOps) to add stability and maturity towards config management. A more detailed explanation of Puppet and its functionality can be found in our training material.

Docker:  A tool designed to help developers and administrators to provide flexibility to reduce the count of the system as docker don’t create a complete virtual operating system, instead they allow applications to use the same Linux kernel as the system. So somewhere we can say we use Docker to create, deploy, and run applications by using containers. Just a stats submitted by docket that over 3.5 million applications placed in containers using docker and 37 billion containerized applications have been downloaded. Specifically, Docker CI /CD provided an opportunity to have exactly like a live server and run multiple dev infra form the same host with different config and OS. You may visit our training course on Docker to get more information.

Kubernetes: Platform developed to manage containerized applications which provide high availability and scalability. According to the usage we can downgrade and upgrade the system, we can perform rolling updates, rollback feasibility, switch traffic between to different versions of the application.  So we can have multiple instances having Kubernetes installed and can be operated as Kubernetes cluster. Post this you get an API endpoint of Kube cluster, configure Kubel and you are ready to serve. Read our all-inclusive course on Kubernetes to gather more information on the same.

Docker and Kubernetes, although being widely tools as DevOps automation tools, have notable differences between their setup, installation and their attributes, clearly mentioned in our blog stressing the differences between Docker and Kubernetes.

Alert:

Pingdom: Pingdom is a platform which enables monitoring to check the availability,  performance, transaction monitoring (website hyperlink) and incident collection of your websites, servers or web applications. Beauty is if you are using a collaboration tool like slack or flock you can just integrate by using the webhook (Pretty much simpler no code required )you can easily get notified at any time. Pingdom also provides an API so you can have your customized dashboard (Recently started) and the documentation is having enough details and self-explanatory.

Pingdom

Nagios: It’s an Open Source Monitoring Tool to monitor the computer network. We can monitor server, applications, incident manager etc and you can certainly configure email, SMS, Slack notifications and phone calls even. Nagios is licensed under GNU GPLv2. Listing some major components which can be monitored with Nagios:

  • Once we install Nagios we get a dashboard to monitor network services like SMTP, HTTP, SNMP, FTP, SSH, POP, etc and can view current network status, problem history, log files, notifications that have been triggered by the system, etc.
  • We can monitor Servers resources like disk drives, memory, processor, server load usage, system logs, etc.

Nagios

Image copyright stackdriver- D-4


Stackdriver: 

Stackdriver is again a Monitoring tool to get the visibility of performance, uptime, and overall health for cloud-powered applications. Stackdriver monitoring collects events and metadata from Google Cloud Platform, Amazon Web Services (AWS). Stackdriver consumes data and generates insights via dashboards, charts, and alerts. And for alerting we can integrate to collaboration tools like Slack, PagerDuty, HipChat, Campfire, and more.

Stackdriver

Image copyright stackdriver- D-2

Adding one sample log where we can see what all parameter it collects and also i have just separated them in fashion which will help us to understand what all it logs it actually collects:

Log Information
User Details and Authorization Info
Request Type and Caller IPResource and Operation DetailsTimeStamp and Status Details
{
 insertId:  
 logName:
 operation: {
  first:  
  id:
  producer:
 }

protoPayload: {
  @type:
  authenticationInfo: {
  principalEmail:    
  }
  authorizationInfo: [
  0: {
  granted:  
  permission:    
  }
  ]
methodName:  
  request: {
   @type:  
  }
requestMetadata:
 {
callerIp:
callerSuppliedUserAgent:
  }

resourceName:
response: {
@type:  
 Id:
 insertTime:  
 name:
 operationType:  
 progress:  
 selfLink:  
 status:    
 targetId:    
targetLink:  
 user:  
 zone:  
  }
  serviceName:  
 }
receiveTimestamp:
 resource: {
 labels: {
 instance_id:
 project_id:    
 zone:    
 }
 type:  
 }
 severity:
 timestamp:  
}

Monitoring:

Grafana: It is an open source visualization tool and can be used on top of different data stores like InfluxDB,Elasticsearch and Logz.io.We can create comprehensive charts with smart axis formats (such as lines and points) as a result of Grafana’s fast, client-side rendering — even over long ranges of time — that uses Flot as a default option. We can get the 3 different levels of access, watcher, Editor and Admin, even we can enable G-Auth for having good access control. A detail information guide can be found here

Grafana

Image copyright stackdriver- D-5

Elasticsearch:It's an open source realtime distributed, RESTful search and analytics engine. It collects unstructured data and stores in a cultivated format which is optimized and available for language based search. The beauty of Elastic is scalability, speed, document-oriented, schema-free. It scales horizontally to handle kajillions of events per second, while automatically managing how indices and queries are distributed across the cluster for smooth operations.

Cost Optimization

reOptimize.io : Once we run ample of servers we usually end up with burning good amount not intentionally but of course because of not have a clear visualization. At reOptimze helps thereby providing a detailed insight about the cloud expense the integration can be done with 3-4 simple steps but before that you might need to look into the prerequest which can be accessed here. Just a heads up that they only need read access for all these and permission docs can be found here .

reOptimize.io

 Image copyright reOptimizeD-6

16. DevOps vs Agile

DevOps
Agile
DevOps culture can be enabled in the software industry to deliver reliable build.
Agile is a generic culture which can be deployed in any department.
The key focus area is to have involvement at an end to end process.
Agile helps the management team to push a frequent release.
Enables quality build with rapid delivery.
Keep team aware of frequent changes for any release and feature.
Agile sprints work within the immediate future, A sprint life cycle varies between 7-30 days.
DevOps don’t have such scheduled metrix, they work to avoid such unscheduled disruptions.
Team size also differs, in Agile wee can minimal resource can be one as well.
DevOps works on collaboration and bridge a big set of the team.

 17. Future of DevOps

The industry is moving more on cloud which enables a few more responsibilities to DevOps. And immediate hot topic could be DevSecOps because more automation tends to more connectivity means more exposure. AI or ML is more data-centric and learning based which gives an opportunity to DevOps to share hand to train ML modules, unique analysis correlating, code, test results, user behavior, and production quality & performance. There is also an opportunity to break the stereotype that DevOps can be only adopted by startup and surely the next 2-3 years this will become a general practice in Enterprise.

18. Importance of DevOps training certification

Certifications work like an add-on, and add-on always gives some crisp and cumulative results. Certification works similar to that if someone adds any professional certificates to resume it gives an add-on value. In the process of certification, professionals help you to understand in detail and the deep dive of DevOps culture help individual to get a clear picture. While certification you may have to look into the vendor reputation, an academic who is giving approval, the transparency, session hour and many more components.

19. Conclusion: I have been working closely and observing the DevOps team from a year & so and found every day we learn something new. The more we dive we see a lot can be done and can be achieved in a couple of different ways. As the industry is growing the responsibility of DevOps seems to increase which creates a possible chance for professional but always set a new bar of quality. Now, since you have come to know everything about DevOps, feel free to read our blog on how you can become a DevOps Engineer.

MD Zaid

MD Zaid Imam

Project Manager

Md Zaid Imam is currently serving as Project Manager at Radware. With a zeal for project management and business analytics, Zaid likes to explore UI/UX, backend development, and DevOps. Playing a crucial role at his current job, Zaid has helped his team to deliver world-class product features that cater to the demand of current industry requirements of bot mitigation arena (Processing 50 billion API calls per month). Zaid is a regular contributor on Hashnode.


Website : https://zaid.hashnode.dev/

Join the Discussion

Your email address will not be published. Required fields are marked *

Suggested Blogs

12 DevOps Skills That A DevOps Engineer Should Master

Are you an engineer looking out to excel in DevOps skills? Is your team looking to adopt DevOps? You have come to the right place. In this article, we will discuss key DevOps engineering skills that make you an expert in this space. DevOps is all about breaking down the traditional silos and creating a culture of collaboration between business, operations and development teams. Along with the culture aspect, DevOps also emphasizes the key aspect of automating any repetitive and error-prone tasks using a spectrum of modern engineering tools. This article will help you gain insights on 12 specific skill set one needs to master in this space.One thing to keep in mind when you talk about a “DevOps engineer“ is that it is not a role but a skill set that needs to be mastered by every software developer and not just operation folks.DevOps Skills"DevOps, everyone is doing it, few have mastered it " - Mirco Hering, Author of “DevOps for the Modern Enterprise”. He explicitly quotes that nowadays all are adopting and working in DevOps way without understanding much about the key concepts and skills needed. Only a few are doing it right. What started as a great idea would end up in becoming a mere buzz word if we don’t understand the 12 Devops engineering skills.The 12 DevOps engineering skills are:1. Linux fundamentals and scriptingLinux is an open-source operating system created by Linus Torvalds in 1991. Since then there has been no looking back. Linux is now the most preferred operating system in the world. It’s more secure, compared to other operating systems like windows. Most of the companies have their environment setup in Linux based systems.Many DevOps tools in the configuration management space like Chef, Ansible, Puppet, etc have their architecture based on Linux master nodes. These tools help in provisioning and managing infrastructure automatically with the help of any scripting language like Ruby, Python, etc.Linux fundamentals and scripting know-how is a must to get you started with infrastructure automation which is a key concept in DevOps.2. Knowledge of various DevOps tools and technologiesDevOps is implemented with the help of tools but in most of the cases, DevOps is often misunderstood as tools. We have to always remember the great quote from Scott Hanselman “The most powerful tool we have as developers are automation.”The main aim of DevOps is to add value to the customer at an increased pace. Tools are chosen to incorporate this purpose and never to be used for the sake of using it. Technical knowledge of the tools is an added advantage for you to embrace DevOps.DevOps tools are categorized broadly into 10 categories:Collaboration toolsApplication Life management and Issue Tracking toolsCloud/Iaas/Paas/Serverless toolsSource control management toolsPackage ManagersContinuous Integration and continuous delivery toolsContinuous Testing toolsRelease orchestration toolsMonitoring toolsAnalytics tools.In each of these categories, we have more than 10 tools. A right tool must be chosen in each of these categories based on client requirements and the project environment. The main point to remember is that a tool should add value to the customer either by reducing delivery time or increasing the quality of the deliverables.3. Continuous Integration And Continuous DeliveryA better understanding of the continuous integration and continuous delivery approaches helps to deliver a high-quality product at a faster pace to the clients.Continuous integration is one of the best practices in DevOps Community where whenever a developer finishes a functionality or a user story(in terms of scrum) he/she integrates the new code with the existing code base continuously. This helps to save a lot of time spent during the integration phase of the project. Continuous integration helps to detect integration issues in the early stages itself thus making the life of the developer easier.Continuous delivery comes as an extension to continuous integration where the newly integrated code is made ready for deployment automatically without or minimum human intervention. Often in the case of the waterfall model, the development team has to release the new code to the testing team and then the testing team takes it forward. This usually takes a couple of days. These delays could be avoided by automating the transfer and testing process, making the code ready for deployment quickly.Continuous deployment is the next step in automating the delivery pipeline of an application. This is where the new code is automatically deployed in the production environment. Some of the software companies do not consider continuous deployment as a best practice as they foresee it as a place where a lot of defects can creep into.4. Infrastructure as Code (IAC)Infrastructure as Code is the latest best practice in the DevOps community. This helps to provision and manage infrastructure by abstracting to a high-level programming language. Thus all the features of the source code could be applied to the infrastructure of the application like version control, tracking, storing in repositories, etc. With the emergence of IAC, days of manually configured infrastructure and infrastructure shell scripts are gone. A person who knows to develop infrastructure as code creates less error-prone, consistent and reliable infrastructure.5. DevOps Key ConceptsDevOps is a culture where business, development, and operations teams collaborate breaking the traditional silos. The key value is to create a cross-functional team that knows what each team member does and where any team member can take up the work of the other, thus providing a better collaboration within team members and delivering a high-quality product to the customer. Since we don’t have silos anymore, unwanted time spent on transfer of the code between various teams like the testing team, the operation team is reduced, increasing the pace of delivery.Another key concept is automating everything. This is done to generate a high-quality product for the customers by reducing human defects.6. Soft SkillsDevOps emphasizes culture and people more than tools and practices. Hence people skills are a must-have when we are trying to adopt DevOps. The next important key value is trust among the team members. Trust is enabled by active and effective communication between team members creating positive vibes among team members. This, in turn, gets reflected on the quality of the deliverables and finishing off the work on time.7. Customer-first mindsetDevOps emphasizes on a customer-first mindset. All people who adopt DevOps should take decisions keeping this in mind. No activity should be performed that does not add value to the customer.8. Security skillsDevOps is all about speed, automation, and quality. As we increase the speed often we encounter vulnerabilities that get introduced into the code at a faster pace. DevOps practitioners should be able to write the code that is protected from various attacks. This has often led to DevSecOps thinking where security features are incorporated from the beginning rather than stitching it at the end.9. FlexibilityAccording to Heraclitus: “The Only Thing That Is Constant Is Change ”. A team that embraces DevOps must be equipped to adopt change. All team members should be able to accept a  requirement change or a role change. He/she must be comfortable to work in integration, testing, release, deployment, etc and also should have the technical knowhow. He/she must be aware of modern engineering tools and should be equipped to work on different tools based on requirements. Anant Agarwal, CEO of edX summarises the flexibility as follows:“It’s hard to learn something that seems to evolve as quickly as the lessons are taught. Self-learners are the perfect candidates for embracing and pursuing  DevOps adoption, as it requires a roll-up-your-sleeves, trial-and-error, do-it-yourself, continuous learning approach.”10. CollaborationCollaboration is one of the important key values in DevOps. A team that adopts DevOps is a cross-functional team where members from business, operations and development teams co-exist. Active collaboration is a key skill required by the team members. There should be transparency between the team members. Everyone should know what is happening in the team and who is responsible for a particular task.11. Decision-makingDecisiveness or decision-making is one of the key elements employers look for in their employees. The ever-changing nature of the code in the DevOps team should be handled by a person who is quick in taking decisions. Thus enabling quick delivery and deployment of new code. Faster deployments give faster returns to the customer and provide immediate feedback from the end-users. This often leads to customer satisfaction.12. Agile engineeringDevOps was introduced in 2008 by Patrick Debois and Andrew Clay Shafer after a discussion about agile infrastructure. Therefore DevOps is heavily rooted in agile principles and values. There are 4 agile values and 12 principles according to the Agile Manifesto.  Every DevOps practitioner needs to have an in-depth understanding of agile philosophies.Practical knowledge of agile practices like Test-driven development, behavior-driven development, etc helps to make a great DevOps practitioner.ConclusionDevOps is all about breaking down silos and where development teams, operation teams, and business teams collaborate to deliver a high-quality product quickly. All team members where DevOps is adopted should have all the 12 DevOps engineering skills. He/she focuses on customer satisfaction rather than local optimizations. To summarise, he/she should be a great team player, technically strong with good knowledge of  DevOps tools and who can adapt to changes.This subtle but important combination of all the attributes is important for a professional to  be a DevOps engineer. Because, at the end of the day, customer satisfaction is the key to running a successful business enterprise.
Rated 4.5/5 based on 356 customer reviews
12892
12 DevOps Skills That A DevOps Engineer Should Mas...

Are you an engineer looking out to excel in DevOps... Read More

Can Devops and Scaled Agile Models Coexist?

DevOPs, is a perfect blend of Software DEVelopment and Information Technology OPerationS. This term is used to refer to a set of practices that highlights the collaboration and conveyance of both software developers and Information Technology people, while automating the software delivery process and performing changes in infrastructure. The aim behind DevOPs is to provide the environment which can help in coding, testing and deploying the software, rapidly and more reliably. Agile and DevOPs are similar concepts. Agile represents some changes in imagining and practicing what is best for organizational change, whereas DevOps places more importance on implementing the organizational changes to perceive its goals. Due to the increasing popularity of the Agile Software Development, the need to introduce DevOPs has escalated. This has led to a cooperation in software delivery, as there are increased number of releases. If DevOps practices are adapting the Agile methodology, it will contribute to an increased organizational profit. Ultimately, it will be beneficial if Agile and DevOps go hand in hand, to maximize the outcome for the organization. However, everyone should be aware of the fact that the software is being created first and ranked by the developers. The success of the implementation of this software  depends entirely on the use of the software. Let’s have a look on some well-known models: SAFe® (Scaled Agile Framework) Scaled Agile Framework is the Agile Software Framework, designed by Scaled Agile, Inc. It consists of a knowledge base of combined patterns, which forms the Enterprise-Scale and Lean-Agile development. SAFe® aims at the collaboration of both software and systems development and delivery, for increased number of Agile teams. SAFe® is mainly about helping the customers to solve their most challenging scaling problems. SAFe®uses 3 primary bodies to maximize the advantage. These are: Agile development, Lean product development, and systems thinking. You can say that there are two aspects of SAFe® are: the DevOps team and the System team. The System team is more centered around the development side activities like Continuous Integration and test automation, while  the DevOps team focuses on the features which will be useful for deployment and the automation of the process. DAD (Disciplined Agile Delivery): The focus of DAD is more on the processes. DAD is the decision framework process that enables decisions on incremental and iterative solution delivery. DAD has been known as the “movement beyond the scrum”,which is described in the book written by Scott Ambler and Mark Lines. The DAD framework provides a mechanism to construct smoothly working of IT processes and helps in Scaling. LESS (Large Scale Scrum): In LESS, DevOps is not called in the detailed manner, but it is covered by Technical Excellence. Technical Excellence is the way of  making changes to the product in a simple, rapid and flexible way,also called Technical Agility. LESS has a ‘less’ focus on explicitly describing how to use the process and at what time.  So, it is upto you to assign the work at the right time to the right person. It is therefore highly recommendable that the organizations use the combination  of ‘Explicit Structure of SAFe® principles’ and the ‘ideas of LESS’ to create a framework. This will definitely create more profit in your Organizations.
Rated 4.0/5 based on 1 customer reviews
4540
Can Devops and Scaled Agile Models Coexist?

DevOPs, is a perfect blend of Software DEVelopment... Read More

Why Stop Inventing New DevOps Combinations?

DevOps - What's in a name?The term DevOps is well known by now. It was initially introduced by Patrick Dubois a Belgian IT consultant who organized an agile oriented event in October 2009 and named it DevOpsDays, targeting not only developers but also systems administrators, managers, and toolsmiths from all over the world. After the conference, the conversations continued on Twitter with the hashtag #DevOps.If you want to know more about the origin of the DevOps, you can check the video given below which gives you a lot of background about the reason why Patrick Dubois initially started this DevOpsDays conference:DevOps and the rise of the combinations and derivatives With the increasing popularity of DevOps, more people start to give their definition of DevOps. The different definitions of DevOps that go around can differ, depending on what aspect(s) of DevOps you want to focus.In a previous article, I wrote about how to explain DevOps in 5 letters - CALMS or CALMR i.e CALMS framework for DevOpsSome other definitions tend to focus primarily on the automation aspect, omitting the Agile foundation. As a consequence, you get the first combination of DevOps, named BizDevOps or BusDevOps. There are different interpretations about what BizDevOps actually means. “BizDevOps, also known as DevOps 2.0, is an approach to software development that encourages developers, operations staff and business teams to work together so the organization can develop software more quickly, be more responsive to user demand and ultimately maximize revenue.”At the same time, it is the most disputable definition. This definition assumes that DevOps is mainly a technology-driven initiative that hardly involves business people. But as mentioned in my previous article, the foundation of DevOps is culture, which goes back to the agile principles. And we all know that agile without business is only symptomatic. So DevOps without business is as symptomatic as agile without business.According to the Dzone article, DevOps is focusing on a single application or system whereas BizDevOps is focusing on the entire enterprise with all its complex processes and the mixture of applications and systems that support these complex processes.According to this article, BizDevOps provides an answer to dealing with:OK, fair point, but these aspects could as well be tackled by defining proper value streams and Agile Release Trains to deal with all the links and dependencies between these systems and applications. I don't see the need to come up with a different term.I guess you understand by now that I am not a big fan of the BizDevOps term and the confusion it creates. But it can get worse. It was some likely clever tool vendors that came up with the term DevSecOps. And if it is not the tool vendors that invented it, at least they were so clever to jump on the wagon to support the need for more security awareness in DevOps.Nowadays, large tool vendors using of the term DevSecOps instead of DevOps.Here's my opinion on this: security should be an integral part of DevOps. It should be a part of the culture:Don't only think about what something functionally should do, but also what can go wrong (think Abuse or Misuse cases). It is also a part of the automation. All security related tests should be automated as much as possible. Think about scanning vulnerabilities in your own source code, vulnerabilities in external libraries that you use, scanning your container images for vulnerabilities, or even - up to some extent - automated penetration testing. It is also a part of Lean principles: when a security test in your build pipeline fails (e.g. scanning your source code discovers a critical vulnerability), you stop the line.So again, the is no reason why the term DevSecOps should exist at all.Now that we have business and security covered, we can go on and see who else could feel denied or at least ignored? Maybe DBA's? Or any other person involved in data management? Maybe, that is the reason why we also have DevDataOps nowadays.I could go on for a while like this. But you get the point by now: it is uselessMaybe the DAD is right!I recently got to read an interesting article on disciplined agile delivery, the information portal from Mark Lines and Scott Ambler of their Disciplined Agile Delivery, or short DAD. DAD is not - as they call it - an agile methodology, but a process selection framework. DAD is the kernel of a layered model, like an onion, that they call Disciplined Agile and that consists of the following layers:Let’s explore each aspect in Disciplined Agile Framework mentioned in the diagram.1. Disciplined Agile Delivery (DAD)Disciplined Agile Delivery (DAD) aspect consists of initial modeling and planning, forming the team, securing funding, continuous architecture, continuous testing, continuous development, and governance all the way through the lifecycle. The Disciplined Agile Delivery (DAD) framework supports multiple delivery life cycles, basic/Agile lifecycle based on Scrum, a lean lifecycle based on Kanban, and a modern Agile lifecycle for continuous delivery. This aspect is responsible for addressing all the aspects of solution delivery.2. Disciplined DevOpsDisciplined DevOps streamlines the IT solution development and IT operations activities, and supports organization-IT activities, to benefit more effective outcomes to the organizations.3. Disciplined Agile IT (DAIT)DAIT aspect helps to understand how to apply Agile and Lean strategies to IT organizations. This aspect comprises of all IT-level activities such as enterprise architecture, data management, portfolio management, IT governance, and other capabilities.4.Disciplined Agile Enterprise (DAE)DAE can predict and respond quickly to the changes in the marketplace by facilitating a change through an organizational culture and structure. This aspect can be applied to organizations having the learning mindset in the mainstream business and underlying lean and agile processes to drive innovation.The second one, Disciplined DevOps principles deal exactly with what I mentioned before: the different derivatives and combinations of DevOps. They start by giving an answer to the question of why it is so difficult to come to a common definition of DevOps:Specialized IT practitionersMany IT professionals still tend to specialize, choose a focus, like DBA, enterprise architect, operations engineer, or whatever. Each discipline will focus on its own aspect of DevOps.Agilists are focused on continuous deliveryBecause of their focus on releasing daily or even several times a day, a lot of discussions deal with bringing new features faster and more frequently to production and not paying attention to all aspects of DevOpsOperations professionals are often frustratedSystems administrators are crunched between the push of the development teams to deliver faster and more frequently and the typical stringent service management processes they have to deal with, that are not yet adapted to the need for more frequent changesTool vendors have limited offeringsA fool with a tool is still a fool… DevOps tool vendors only focus on these DevOps-aspects that their tools coverService vendors have limited offeringsSimilarly to tool vendors, service vendors will only focus on these DevOps aspects that their  services can currently coverTool vendors treat DevOps as a marketing buzzwordSurfing the waves of the hypes, vendors might be persuaded to rebrand their existing toolset to something DevOps-ish, because it sounds better in a sales pitch. Sounds like window dressing…The DevOps = Cloud visionApparently, some people think that implementing DevOps in your organization can only succeed if you move to a cloud-based platform. Although cloud-native development practices are a facilitator for implementing DevOps, it not a requirement. And moving to a cloud platform definitely isn’t a requirement.All these reasons make that person come up with DevOps combinations that give an answer to only part of the problem.Disciplined DevOps mentions the following visions:1. BizDevOpsBizDevOps is a basic DevOps vision that explicitly brings the customers into the picture. BizDevOps is also called BusDevOps. DevOps is not just for teams, but it can be potentially applicable to any team supporting an incremental delivery lifecycle. The BizDevOps workflow consists of Business Operations, activities of delivering of products and services to the organizations. BusDevOps seeks to streamline the entire value stream, not just the IT portion of it. Its workflow is depicted in the diagram below.2.   DevSecOpsAnother common improvement over the basic DevOps vision is something called DevSecOps. The aim behind this vision is to ensure data security by getting the various security issues, adopting the latest security practices, and finding out and addressing the highest priority security gaps [DevSecOps]. This vision includes collaborative security engineers, exploit testing, real-time security monitoring, and building “rugged software” that has built-in security controls. The workflow of DevSecOps is shown in the figure.  3. DevDataOpsThe aim behind DevDataOps is to maintain a balance between the current needs of data management consists of providing timely and accurate information to the organization and DevOps to respond to the marketplace. Supporting data management activities include the definition, support, and evolution of data and information standards and guidelines; the creation, support, evolution, and operation of data sources of record within your organization; and the creation, support, evolution, and operation of  data warehouse (DW)/business intelligence (BI) solutions. The following figure depicting the workflow of DevDataOps.Or should we just stick to the term DevOps?Even though the message of Scott Ambler and Mark Lines is perfectly reasonable, not everybody might the term Disciplined DevOps. It fits their framework like a glove: everything boils down to Disciplined. If you don’t want to be framed into the Disciplined Agile/DevOps framework (pun intended), you may as well stick to the term DevOps and make sure that you cover all the aspects, which include business, security, data, release management and support.
Rated 4.0/5 based on 11 customer reviews
4810
Why Stop Inventing New DevOps Combinations?

DevOps - What's in a name?The term DevOps is well ... Read More

20% Discount