Sunday 11 June 2017

Friday 2 June 2017

Agile & DevOPS

Agile is defined by a set of values and principles enshrined in the Agile Manifesto. DevOps is Agile. On the other hand, Agile has become defined by a set of practices that are almost universal to Agile implementations - things such as standups, team rooms, test-driven development, a product owner, iterations, and so on. In that sense, DevOps change Agile

Agile project culture is very team focused.A DevOps pipeline looks like a waterfall process, consisting of requirements followed by implementation, followed by various kinds of system level testing, followed by deployment. What makes is not waterfall, however, is the fact that the pipeline operates continuously. That is, every portion of the pipeline has something in it - it is a non-stop flow.

Behavior-Driven Development Versus Test -Driven Development

The practice of Test-Driven Development (TDD) is deeply entrenched in Agile culture. Teams that practice it are often viewed as advanced, whereas teams that do not are considered by many in the Agile community to be less advanced.TDD has come under fire, and there are many people who feel that it is not the best approach for everyone in all cases. it turns out that DevOps does not need TDD for an effective pipeline. What DevOps needs is Behavior-Driven Development (BDD).

BDD consists of defining tests from a user perspective. Thus, tests are "end-to-end" because they are defined in terms of the behavior of the system - not the behavior of system components or even more granular "units". Historically it has been difficult to implement a BDD approach because one needs to assemble the entire system as an integrated unit to perform the tests. However, virtualization - the technology that has enabled cloud computing and DevOps - makes it possible - even easy - to create local instances of system components, so that one can assemble an integrated system very early. That makes BDD possible. Thus, one can use a test-first approach in which tests are defined at a behavior level, instead of a very granular unit level, as is the case with TDD.

Blockchain

Block chain works by creating a shared, distributed ledger of the transactions as they happen, building a permanent and immutable history of every transaction in the chain. Rather than going through a trusted third party such as a bank or stock market, transactions are validated and added to the chain by common consensus across the network. Any additions are validated in all copies of the ledger instantly. The chain is essentially under equal control by all its participants, with no one party overseeing contract execution. It is secured by a blend of asymmetric data encryption, and digital identities through which participants are authenticated.