Bengaluru Tech Summit : Day 1


Damiel Manuel talked about Cyber SecurityIn this world, millions and billions of people are active on various social media like Facebook, WhatsApp, Instagram, YouTube, LinkedIn etc. It rises "deep fake" video threat. The video footage that appears to be real but is produced by technology. Now, we can no longer believe our eyes. NIST is a cyber security framework. Link 1 and Link 2 Cyber security is also a layered architecture. Hardware and network security is at physical layer. Application/software security at logical layer. Data security includes protection of personal information, location, accessibility, integrity of data etc. Social aspects covers people, culture and processes. it needs more attention. Cyber security topic now moves to Cyber resilience 

Interesting panel discussions about AI/ML

Ajay Sharma : Machine used to crunch numbers and humans make decision. Now machines are capable of doing both. Use cases (1) use Intel Mobileye to prevent, predict accident zones. (2) CheXNeXt is deep learning for chest radiograph diagnosis. Discussion about Niti Ayog #AIforAll ICTAI (International Center for Transformative AI) etc. 

Raj Cherubal: Smart City solutions :  (1) Parking management system (2) public bicycle sharing (3) restoration of water bodies (ponds) (4) solar panel on government buildings (5) water meter (6) smart class (7) disaster management system etc. IUDX (Indian Urben Data Exchange) Link  Whitepaper Link

Aksah Ravi (gnani) talked about NLP based voice assistant products that supports Hindi, Kannada etc. 

Out of all AI/ML projects hardly 13 to 14 % projects are successful and only 8% of customer are happy. Some projects need their ML model to be updated every week, even every day. AI/ML business case is all about identifying and satisfying unmet and unmentioned need. Few challenges (1) AI/ML implementation needs cultural change, where man and machine both work together. (2) upskill of existing staff (3) Data is fuel for AI. More time goes to find out which data to use rather than building AI/ML model. Noise in data can cause bias. The chatbot may learn offensive language over time. (4) explain-ability of AI/ML outcome. (5) Robust governance is also important. At present, chatbots are becoming popular. Long way to go. Information architecture (IA) is must for AI/ML projects. IA is the structural design of shared information environments.

Queryplex and federation are effective tools from IBM to connect multiple data sources. AI OpenScale is another tool from IBM

Ashok Ayengar talked about shopx - buy and sale platform. 

Last 25 years of history big enterprise adopted new technologies like ERP and small stratup companies built eco-system around it. Many fortune 500 companies have huge legacy in range of 20 to 100 years. They need machine learning even on end-of-life servers. 

The collaboration at Bangalore is not seen even in developed country. Here we have hackathon, open source contribution, discussion at physical meetup etc. It is really proud to be in Bangalore. 

The day 1 ended with thought leaders conclave on "TechScape 2035"

The following trends are emerged. 

1. Digitalization
2. Rapid Urbanization
3. Customer does not want product, but wants solution
4. so more and more collaborations

The growth of Internet was not predicated. 

1. Growth with many IoT devices
2. Growth for amusement e.g. Netflix
3. Many networks E.g. Car has many networks

During 90s, when Internet based innovative services and business was planned, no one predicated that everyone (4 billion people) will have smart phone. Now cost of computing come down. Technology is democratized. This growth will be accelerated further, as everything (e.g. speaker, light etc.) will have compute power, connectivity, intelligent (AI/ML). The enormous data is generated by our wearable. Evolution will happen in laboratory and new human being will be created. Excitement with fear.  

Now the smart software makes diagnosis smarter than doctor. In next 5 to 10 years, it will be mandatory to take second opinion from machines. People will get incentive for not being sick by health insurance and hospitals. The Indian doctors and nurses are best in the world. This is a license driven industry. 

Now in automobile people need : 0 emission, 0 downtime, 0 accident, and first solution is electric car. Electricity is alternate fuel. The omnipresent 3D printing will eliminate need to keep inventory of spare parts of cars. The digitization, GST have improved logistics a lot. We need more efficiency steps like: spare trailers will just replace the loaded one to save time. 

All these trends will empower the bottom of pyramid, surprisingly.  

In future, there is no concept of firm. All companies are becoming platform. Apple started as platform for iOS apps. People starts company just on WhatsApp group. Now we will see rapid consolidation of firms. So monopoly will be back. 

The present generation is Digital Native and generation Z Their working style is completely different. 

Continuous delivery : 2nd DevOps Pillar


CI = build and UT after code checkin

Six Principle 
2.1.1 Build less than 5 min
2.1.2 Commit small bits
2.1.3 Don't leave the build broken
2.1.4 Trunk based development flow
2.1.5 Don't allow flaky test. Fix them
2.1.6 build should return status, log and artifact

CDelivery = CI + deploy at production like environment (staging) + automate integration testing + automate acceptance testing + smoke testing

Principles

2.2.1 Build artifact once
2.2.2 Artifact should be immutable
2.2.3 Deployment to production like environment = load balancers + n/w settings + security controls + data that matches production
2.2.4 stop if previous step fails
2.2.5 Deployment should be idempotent 


CDeployment = CDelivery + Full automated testing + Deployed to production 

For higher performances teams
* Less than 3 branch (ideally 1 branch)
* Their life span is less than a day and then merge to trunk. 

It is not about how much you can deliver but it is about how little you can

Infrastructure automation : 1st DevOps Pillar


Operation team should use source control

Define your infrastructure as model or drive it using RESTful API
Model OR Recipes  = H/w + OS + OS Dependencies + System Configuration + Accounts + SSL Certs + Application

* ColudFormation JSON file for AWS
* Azure Resource Manager template for Azure
HashiCorp's Terraform for multiple cloud providers
* Ubuntu's Juju = Infra + services (common in docker) 

http://www.infrastructures.org/

Configuration Management 

* Provisioning : Server ready with hardware, OS, system services, network 
* Deployment : Automatic deploy / upgrade application on server
* Orchestration : Coordinated operations across multiple systems

Tools
Chef 
     Lint: Foodcritic 
     Unit Testing : Chefspec
     Integration Testing : KitchenCI
Puppet
Ansible
Salt
CFEngine
Packer

Important terms

* Imperative (procedural) Approach where commands desired to produce a state are defined and then executed.
* declarative (functional) Approach where you define the desired state, and the tool converges the existing system on the model. 
* Idempotent The ability to execute the CM procedure repeatedly. And end up in the same state each time. 
* Self service The ability for an end user to kick off one of these processes without having to go through other people

Evolution

Provisioning Tools: CFEngine -> Puppet -> Chef , Commercial IT Provisioning tool : Ghost, Enterprise tool : HP

Adhoc script OR Capistrano framework by developers to push changes. 

Then Golden Image or Foil Ball : This result in image sprawl or configuration drift. So stem cell system approach with min initial provisioning and update late on : Chef DSL, 

Capistrano -> RunDeck

Orchestrated deployment techniques

* Canary Deployment
* Blue / Green Deployment
* Cluster immune system deployment
* Immutable deployment (1) for Container  = OS + Dependency + App code (2) not for data store

Artifact : JAR -> WAR -> Deb-> Image (for amazon) 

CMDB : 

  • DB 
  • then Puppet + Chef gave node registry 
  • then ZooKeeper from Haddop 
  • then etcd  and HashiCorp's Consul emerged. They powers Mesos, Swarm and Kubernetes.  
  • Tumblr's Collins project
  • Chef + Ohai = searchable CMDB


Service Discovery Tools

* etcd
* ZooKeepr
* Consul

Container As a Services

* Rancher
* Google Cloud Platform
* AWS ECS

Habitat : Application automation = Build + Deploy. It extends Chef. 

Levels of DevOps Practice



1. Values:

CALMS Culture Automation Lean Measurement and Sharing 

1.1 culture
1.2 automation, 
1.3 measurement, 

* MTTR
* cycle Time
* Costs
* Revenue
* Employee Satisfaction 

1.4 sharing: Kizen

Later on, L for Lean is also added. 

2. Principles

2.1 System thinking : Concept to Cash 
2.2 Amplifying f/b loop
2.3 Continuous experiments and learning


3. Methods

3.1 People (Who is responsible) , Process, Tools
3.2 Continuous Delivery
3.3 Lean Management 
3.4 Change Control
3.5 Infrastructure as code

4. Practices 

4.1 Chaos Monkey 
4.2 Blue / Green Deployment
4.3 Dependency Injection (Inversion of control)  using service discovery
4.4 Andon Cord
4.5 Cloud : API driven way
4.6 Embedded Teams 
4.7 Blameless Postmortem (industrial safety)  should happen within 24 or 48 hours
4.8 Public Status Page is also about Transparent uptime
4.9 Developers on call
4.10 Incident Command System (Like fire department) 

5. Tools

criteria 
1. Tools should be programmable. Can invoke by API and CLI, not only GUI. 
2. verifiable : events and matrix
3. well behave: deploy automatically, acceptance test case. it can be in form for .deb OR chef cookbook 

5.1 Code – code development and review, source code management tools, code merging
5.2 Build – continuous integration tools, build status
5.3 Test – continuous testing tools that provide feedback on business risks
5.4 Package – artifact repository, application pre-deployment staging
5.5 Release – change management, release approvals, release automation
5.6 Configure – infrastructure configuration and management, infrastructure as code tools

5.7 Monitor – applications performance monitoring, end-user experience

Six Phases of tool chain

5.1 Version Control : Git (Github OR Bigbucket) as SAS or enterprise version

5.2 CI systems : Jenkins, commercial Jenkins from CloudBees, GoCD, Bamboo, TeamCity. CI as Service : Travis CI, Circle CI

5.3 Build : Make, Rake, Maven (Workflow approach), Gulp for front end, HashiCorp's Packer for infrastructure 

5.4 Test : Testing for developers before check in

5.4.1 Unit Test and code hygiene : JUnit, golint/gofmt, RuboCop, 
Integration Testing : Robot, Protractor, Cucumber, Selenium (for UI testing), Sauce Labs from SAS for front end acceptance testing
5.4.2 Infrastructure Testing : Kitchen Chef
5.4.3 Performance Testing : Apache Bench, Meter
5.4.4 Security Testing : Brakeman, VeraCode, gauntlet 
Vagrant, Otto, Docker Compose 

5.5 Artifact Repository

Artifactory
Nexus
DockerHub
AWS S3

5.6 Deployment

RunDeck
UrbenCode
ThoughtWorks
Deployinator


===================================

How to build Trust, Respect and eliminate blame and hostility ?  

* Some people may introvert
* People think others job is easy to do
* bring transparency "chat ops" : Hip Chat, slack, ICR, Hubot

organisational boundary is also communication boundary. 

Organisational culture

1. Pathological (Power oriented)
2. Bureaucratic (rule oriented)
3. Generative (performance oriented) 

Processes are like training wheels: So go for minimal viable process

===================================

Building Blocks of DevOps


DevOps includes both

1. New project management principles : agile and lean 
2. old-school principles : ITIL (Information Technology Infrastructure Library) , ITSM (IT Service Management), and SDLC

Let's see three building blocks of DevOps. 

1. DevOps should be extensions of Agile 

2. Lean : Seven principles 

2.1 Eliminating waste 

* Muda : Absorbs resources but no value
* Muri : unreasonable work imposed on workers and machines
 ** Technical waste for compliance 
 ** Plain waste 

2.1.1 Partially done work
2.1.2 Extra Features
2.1.3 Re-Learning
2.1.4 Handoffs
2.1.5 Delays
2.1.6 Task Switching
2.1.7 Defects

* Mura : No regular flow of work

2.2 Amplify Learning
2.3 Decide as late as possible
2.4 Decide as fast as possible
2.5 Empower the team
2.6 Build an integrity
2.7 See the whole

Plan Do Check Act 
is
Build Measure Learn Repeat in lean

Value Stream Mapping
From Supplier to Customer : What Information and Materials are flowing 

3. Six principles of Kaizen

3.1. Good process brings good results
3.2. Gemba
3.3. Speak with data
3.4. Take action to correct root cause

* Five Whys
* Focus on causes not symptoms
* Fish Bone : Equipment, Process, People, Materials, Environment, Management 
* Do not accept (1) No time (2) human error . People does not fail. Process fails. 

3.5. Team work
3.6. Kaizen is for everyone

4. ITIL (Information Technology Infrastructure Library), ITSM (IT Service Management) and SDLC