1. How do you define DevOps?
Ans: DevOps is a clipped compound term which combines “Development” and “Operations” practices of IT software development, having originated in the mid 2000s among IT professionals looking for efficient and innovative ways to automate and speed up the process of software delivery. As a change agent, DevOps promotes a culture of collaboration and information sharing across the organization, a radical departure from the ‘silos’ of the past.
Nowadays, the DevOps cultural movement has spread far and wide among the technical community and can no longer be confined to software development alone. Its scope of adoption has pervaded product engineering services, various devices of ‘Internet-of-Things’ and Cloud-enabled services, with CloudOps as a resulting metonym.
2. How DevOps in IT differs from DevOps in Internet of Things (IoT)?
Ans: The biggest difference is that compared to pure play IT where you have to deal with software codes alone, when applying DevOps to IoT, you also need to take physical components, devices and existing legacy systems into account which together build in an extra layer of complexity in the overall automation process.
Then, there are specific challenges during each and every stage of the project, including a fragmented development pipeline comprising very small teams, automated Build-Verification-Test (BVT) plans, greater usage of legacy systems, non-unified release cadence and conversion of the entire production environment to a singular code (“environment as a code”).
For more information on this subject, we highly recommend that you check out this white paper written by eInfochips subject matter experts, titled “DevOps in the Age of Connected Devices”.
3. Why is it that DevOps can be so easily extended to the world of product engineering services?
Ans: The electronic and industrial devices and intelligent gadgets commonly seen in IoT era operate based on the software running inside them producing advanced business intelligence (BI). This software has to be managed, tested and updated frequently, and in real time. Also, there are physically devices connected to each other, which may include GPS, cameras, accelerometers, energy meters, medical devices, machine sensors and so much more. DevOps is the only methodology available right now which can help prepare for real time failure scenarios with the use of simulators, virtual machines and remote monitoring and updates of firmware.
4. In which industries can you find DevOps organizations?
Ans: DevOps has been a great disruptor in practically every industry that depends on software delivery, and other application delivery endpoints including diverse devices, web, and mobile services.
Some of the industries where eInfochips has direct, proven experience in enabling DevOps services include:
5. What is the role of QA in DevOps? Where exactly does QA fit in?
Ans: QA is a very important step in any software/product delivery function. However, in a DevOps oriented work culture, QA is not seen separately as it is very much a part of the overall development-operations environment. In a traditional QA focused organization, the main endeavor of quality assurance teams is to find bugs while in DevOps organizations, the responsibility of quality assurance is not limited to that but to prevent them from occurring in the first place. This approach helps in an environment where there is a need for newer releases every few minutes or hours.
6. Can DevOps be helpful in Remote Device Management (RDM)?
Ans: Indeed it is. DevOps is the most efficient way to realize the vision of IoT because as a methodology, it supports bulk operations on many devices simultaneously.
7. What are the issues facing development teams in DevOps?
Ans: Development teams adopting DevOps have to overcome challenges mainly due to their existing business environments comprising organizational silos which are a major impediment to the success of DevOps. The biggest problem lies in prioritizing the importance of the products, projects and applications for which monitoring and deployment has to be performed at multiple ends. In order to tackle these issues, DevOps streamlines automation processes to achieve business agility. This helps in delivering a product with total commitment and achieve better quality standards.
8. How to measure DevOps?
Ans: DevOps can be measured according to the following mentioned categories:
- Deployment frequency: Direct and indirect measure of response time, team efficiency and capabilities, and DevOps tools evaluation and effectiveness.
- Mean time to recover (MTTR): It is a metric which stands for time to recover from a given failure. It measures both team capability and the rate of failures.
- Change lead time: The time elapsed from first code sent to operational teams to its deployment at customer end which defines the complexity of the code and the team capabilities of developers.
- Change failure rate: The rate of frequent deployments across multiple endpoints on everyday basis to a benchmarked value.
9. How to achieve Continuous Delivery (CD) in DevOps without downtime?
Ans: It is possible to achieve continuous delivery with zero downtime for DevOps using any of the following techniques:
- A/B switch
- Software load balancers
- Delaying the port binding
10. What is TOSCA in DevOps?
Ans: TOSCA stands for Topology and Orchestration Specification for Cloud Applications. It deals with a missing piece in continuous testing hosted on cloud applications and services. The aims of TOSCA include a reduction in escaped bugs, reducing the cost of rework and gaining faster feedback cycle.
11. What is DevOps Scrum methodology ?
Ans: DevOps scrum methodology is a method of scrum which uses standard DevOps techniques to improve overall agility in a given business. It's a more thoughtful approach which focuses on monitoring operational teams, QA and product teams in a cycle. It’s an agile development framework which includes multiple scrum features like product owner, web, mobile and QA which forming a scrum of scrum to deliver a product feature to customer.
12. What are the top 5 challenges of DevOps implementation in a product environment?
Ans: Some of the key challenges while adopting DevOps for Product Development include
- Complex and fragmented development pipeline: Unlike pure-play IT, it is very challenging to streamline the team composition and workflow across multiple application delivery end points, including web, mobile, and devices.
- Treating the “Environment” as a code: Product Development would require virtualization of multiple associated devices along with server infrastructure. The concept of ‘Infrastructure as code’ in IT needs to be extended towards offering complete ‘Environment as code’.
- Ensuring product pipeline: With variety of devices and applications, it is very challenging to ensure product delivery to multiple customers (customization & enhancement) and varied market segments (Low, mid, & high). It requires multiple custom production environment that is difficult to reproduce and maintain at development stage.
- Support to Legacy devices and solutions: Product along with cloud infrastructure brings in requirement for managing, updating, and maintaining existing devices on field, along with newly added devices, resulting in increased variations and complexity for Devops.
- Release Cadence: Developing a unified release plan becomes a challenge with multiple solution components, including firmware, web app, mobile app, and pc app.
13. What are the various components in DevOps implementation?
Ans: A typical DevOps workflow will include:
- Continuous integration:
- Integration of multiple pipelines (Device, Web and mobile) and prepare main and customized builds.
- Configuration and Automation of the environment setup
- Auto triggering of alerts and reports
- Continuous testing:
- Developing and triggering test script automation with simulation and physical devices
- Continuous delivery:
- Auto Build Deployment on devices and sensors
- Rollback management on the live environment, and generating automated alerts and reports on failure scenarios and performance issues.
- Continuous monitoring:
- It includes monitoring and automated troubleshooting of production and test environment, including device health.
- An automated alert mechanism
14. What are the benefits that an organization can get with Devops transformation?
Ans: Key benefits for an organization moving to DevOps are:
- Reduced time-to-value / Faster time-to-market: Improved agility in product development
- Collaboration: Overcoming from Silos culture and opting for more collaboration and efficiency with different working departments.
- Customer Delight: Faster releases, improved agility & quality, and customized builds enables quicker resolution of customer requests.
- Operational Efficiency: The ability to scale faster helps in Opex/Capex optimization
- Cost Savings: High-scale automation enables to control remotely, reduce the outages, and eliminates product recalls.
15. What are the key business metrics required to measure DevOps success?
Ans: ROI / Profitability is useful for both engineering or business owner to assess on the level of collaboration between Development and Operation teams, the effectiveness of processes followed and the impact of the technologies used. Product investment and running cost metrics will give a measure on the impact of profitability.
Metrics like “Cycle Time” impacts incremental sales and customer satisfaction. Cycle time is in-turn derived from the matrices like the number of product features delivered, sprint velocity, and release planning. The lower the Cycle Time, more features can be pushed into the product and faster the product can hit the market. It also results in potential incremental revenue in terms of the value brought by reducing the cycle time.
16. How is build verification testing process implemented in DevOps?
Ans: Automated Build Verification Test (BVT) – BVT is focused on delivering the highest quality products, on time. BVT in agile-DevOps methodologies plays an important role in which QA team runs a set of pre-defined test cases for each new build to ensure that they are a stable build for further testing. These pre-defined test cases are for core functionality so that the product’s core functionality is not broken, with further eligibility to release this build to QA team for a thorough testing. You can read in detail about the automated BVT process here: https://goo.gl/zdKC5K