it trends and perspectives 2016

23
Information Technology Trends and Perspectives Presented By: Vaidheswaran CS MSC, MBA,MCP Business Analyst New Dreams Data Systems Pvt. Ltd

Upload: vaidheswaran-cs

Post on 14-Apr-2017

46 views

Category:

Software


0 download

TRANSCRIPT

Page 1: IT TRENDS AND PERSPECTIVES 2016

Information Technology

Trends and Perspectives

Presented By: Vaidheswaran CS MSC, MBA,MCP

Business Analyst New Dreams Data Systems Pvt. Ltd

Page 2: IT TRENDS AND PERSPECTIVES 2016

Technology

Trends

Development Methodology

Modern scripting languages

Continuous Integration

Frameworks

Node.js and JavaScript

Cloud Computing Browsers - Not IDE

Application Containers

DevOps

Social Code Sharing/Distributed version control

Libraries and API’s

Big Data

Internet of Things [IOTS

3D-Printing

No SQL DB’s

AGENDA

Page 3: IT TRENDS AND PERSPECTIVES 2016

Software Development Methodology

Agile DevelopmentCurrent/FutureWater-Fall Development

Iteration –1

Iteration 0

Iteration –1 Releas

eIteration

–1 Constructi

on Iterations

Start work on release N+1

Deliver a working system which meets the changing needs of stakeholders

Deploy Release N into Production

Operate andSupport Release N

Remove the systemcompletely from production

Old /Fading

Select the project

Initiatethe project

Production

Retirement

<--Agile--> <--Iterative--> <--Waterfall-->

<----|-------------|----------------|----->Adaptive Predictive

Page 4: IT TRENDS AND PERSPECTIVES 2016

Agile Software Development Agile software development is a conceptual framework for software engineering that promotes development

iterations throughout the life-cycle of the project.

Software developed during one unit of time is referred to as an iteration, which may last from one to four weeks.

Agile methods also emphasize working software as the primary measure of progress

Characteristics Modularity Iterative Time-bound Incremental Convergent People-oriented Collaborative

What Is Agile ? Agile --readiness for motion, nimbleness, activity, dexterity in motion

AgilityThe ability to both create and respond to change in order to profit in a

turbulent business environment Companies need to determine the amount of agility they need to be competitive

Existing Agile Methods Extreme Programming (“XP”)

Agile Unified Process

Scrum

It is an Agile S/w development method for project management

Characteristics: Prioritized work is done. Completion of backlog items Progress is explained Agile Software Development

Scrum

Page 5: IT TRENDS AND PERSPECTIVES 2016

Node.Js -Server Side JavaScriptNode.js was created by Ryan Dahl in 2009.Event-ed I/O for Server Side Java Script.Runs on Google's V8 JavaScript Engine [ Same Used By Chrome ]

JavaScript used in client-side but node.js puts the JavaScript on server-side thus making communication between client and server will happen in same language

Servers are normally thread based but Node.JS is “Event” based. Node.JS serves each request in a Event-ed loop that can able to handle simultaneous requests.

platform for writing JavaScript applications outside web browsers.

no DOM no other browser capability can’t run on GUI

Runs on POSIX like terminal [ UNIX derivatives ]

In a normal process cycle the web-server while processing the request will have to wait for the IO operations and thus blocking the next request to be processed.

Node.JS process each request as events, The server doesn’t wait for the IO operation to complete while it can handle other request at the same time.

Platform Requests/Second PHP ( via Apache) 3187,27 Node.js 5569,30

Page 6: IT TRENDS AND PERSPECTIVES 2016

Shipping Application Containers –ships bundles of right libraries Test Machine server.Eliminates incompatibilities between our desktops and the server .

Application Containers Docke

r

Internet of Things [IOTS]

•called The Internet of Objects, refers to a wireless network between objects, usually the network will be wireless and self-configuring, such as household appliances.

•From any time ,any place connectivity for anyone, we will now have connectivity for anything!

RFIDSensorSmart NetworkNano Tech

Page 7: IT TRENDS AND PERSPECTIVES 2016

Social Code Sharing/ Distributed Version

ControlGitHub

Source Forge

Visual Studio Online[VSO]Git is a Distributed

VersionControl System that wasdeveloped initially as partof the Linux developmentinitiative, and later on as anindependent open sourceproject

Git forces the user to clonethe server repository on the user’s machine. In thisway, the user gets all the versions of all the files ofthat software in a local repository.

VSO is an implementation of TFS on thecloud maintained by Microsoft.Microsoft Team Foundation Server included Git from its version TFS 2012.2.

1) Team Foundation Version Control (TFVC) is a centralized version control system.

2) It stores all the versions of software at a central repository; the database of TFS.

3) Whenever a request comes in, either the latest version or a specific version of files is given to the user by transferring over the network from TFS.

4) All the other versions remain on the central repository only.

Page 8: IT TRENDS AND PERSPECTIVES 2016

JavaScript MVC Framework

( SproutCore,JavaScriptMVC,Backbone.js, … )

JavaScript Frameworks

( jQuery,MooTools,

YUI Library,Dojo Toolkit,

… )

Template Frameworks( Mustache,JAML, Eco,ICanHaz.js,JQote 2, … )

Testing Frameworks

(QUnit, JasmineSinonJS, … ) Dynamic Stylesheet

Language( SASS, LESS )

Mobile Frameworks( PhoneGap,

Zepto, … )

Minification Frameworks

( YUI compressorJSMIN, … )

Frame Works

Java Based .NET

Page 9: IT TRENDS AND PERSPECTIVES 2016

3D Printing3D printing creates three-dimensional objects via various

processes. Also known as additive manufacturing, 3D printing relies on computer control to form an object by printing

successive layers of a material. Materials currently in use include thermoplastics, advanced nickel alloys, carbon fiber, glass, conductive ink, rubber, modelling clay, and biological

matter.

Definitions Back

No SQL is a class of database management system identified by its non-adherence to the widely used relational database management system (RDBMS) model with its structured query language (SQL).NOSQL has evolved to mean “Not Only” SQLNOSQL has become prominent with the advent of web scale data and systems created by Google, Facebook, Amazon, Twitter and others to manage data for which SQL was not the best fit

Page 10: IT TRENDS AND PERSPECTIVES 2016

What is Continuous Integration?

"Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day.  Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible"

--Martin Fowler

DefinitionsBack

• Source Control - Git & Subversion• Scripting - NAnt (will briefly see Rake, PSake, & Phantom)• Unit Test - NUnit• Build Server - TeamCity

Page 11: IT TRENDS AND PERSPECTIVES 2016

Continuous Integration Process

Initial Checkout

Build Locally Develop

Commit to Repository

Fix Errors

Build Locally

Build Locally

Remote Build

Update from SCM

Page 12: IT TRENDS AND PERSPECTIVES 2016

BackNO SQL DB’S vs. SQL

Page 13: IT TRENDS AND PERSPECTIVES 2016

Big VolumeWith simple (SQL) analyticsWith complex (non-SQL) analytics

Big VelocityDrink from the fire hose

Big VarietyLarge number of diverse data sources to

integrateBig Veracity

The Meaning of Big Data - 4 V’s

Detecting and correcting noisy and inconsistent data are important to conduct trustable analysis. Establishing trust in big data presents a huge challenge as the variety and number of sources grows

Page 14: IT TRENDS AND PERSPECTIVES 2016
Page 15: IT TRENDS AND PERSPECTIVES 2016

In cloud computing, hardware and software capabilities are a pool of virtualized resources provided over a network, often the Internet. Businesses and employees have access to applications and IT infrastructure anywhere, at any time, and on any device

CLOUD COMPUTING PLATFORM

Page 16: IT TRENDS AND PERSPECTIVES 2016

Trending Languages-2016Google Go:Google’s Go Programming Language was created in 2009 by

three Google employees, Robert Griesemer, Rob Pike, and Ken Thompson. The language’s success can be seen clearly by the fact that BBC, SoundCloud, Facebook and UK Government’s official website are some of the notable users of Go. It is faster, easier to learn and does the same job that C++ or Java has been doing for us. As the creators said, “Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language.

HackSwift:-According to Apple, 

Swift brings the best of Python and Ruby together and adds modern programming fundamentals, to make it more effective and fun. If you’ve been using or were planning on learning Objective C to develop iOS apps,

RustJuliaDart:-Given that Google Go has garnered such unprecedented success, the

other language from Google – Google Dart – has been in its shadows for the past 7-8 months. However, now that app development is gaining pace, people are realising how useful Dart can be in implementing high performance architecture and performing modern app development. Unveiled as a substitute for Javascript for browser apps, Dart is finally realising its true potential and is expected to continue its rise in the coming years.

Page 17: IT TRENDS AND PERSPECTIVES 2016

Julia is a high-level dynamic programming language designed to address the requirements of high-performance numerical andscientific computing

Stable Release :19 June 2016 

Influenced byMATLAB, Lisp, C, Fortran, Mathematica[4](strictly its Wolfram Language), Python, Perl

 For generating and running Turing machines, creating graphics and audio, analyzing 3D models, matrix manipulations, and solving differential equations

Delivering Hadoop style parallelism, Julia’s stock in the tech industry is rising. The Julia Language is highlighted as one that is destined to make a major impact in the future. Described as a high level, high performance, dynamic programming language for technical computing

http://julialang.org

Page 18: IT TRENDS AND PERSPECTIVES 2016

R is a programming language and software environment for statistical computing and graphics supported by the R Foundation for Statistical Computing.[4]

The R language is widely used among statisticians and data miners for developing statistical software[5]and data analysis

Filtype Extensions: .r, .R, .RData, .rds, .rda

r-project.org

Jasmine (JavaScript testing framework)

Jasmine is an open source testing framework for JavaScript.[2] It aims to run on any JavaScript-enabled platform, to not intrude on the application nor the IDE, and to have easy-to-read syntax. It is heavily influenced by other unit testing frameworks, such asScrewUnit, JSSpec, JSpec, and RSpec.[3]

http://jasmine.github.io/

Page 19: IT TRENDS AND PERSPECTIVES 2016

In 2010, Kaggle was founded as a platform for predictive modelling and analytics competitions on which companies and researchers post their data and statisticians and data miners from all over the world compete to produce the best models

Kaggle has run over 200 data science competitions since the company was founded. It is best known as the platform hosting the $3 million Heritage Health Prize. Other competitions have looked at improving gesture recognition for Microsoft Kinect,[5] or at improving the search for the Higgs boson at CERN

https://www.kaggle.com

Feedzai was founded by data scientists and aerospace engineers with one powerful mission: Make commerce safe for business customers and create a better experience for their consumers through artificially intelligent machine learning. 

Pulse QLPulse QL is a data query language created by Feedzai to meet the rise in the volume of data stored about users, events and objects as well as the ultra-high frequency in which this data is accessed. Together with the other technologies, Pulse QL enables data systems that are non-relational, distributed, open-source and horizontally scalable.

Page 20: IT TRENDS AND PERSPECTIVES 2016

The Phantom Language is a powerful, robust scripting language used to automate interaction with windows and controls in Microsoft Windows operating systems. The language supports common scripting capabilities such as variables, flow control, and user defined functions coupled with a large set of built-in functions designed specifically for automation.

Phantom is very stable, providing a platform for reliable, repeatable automation. With over 200 built-in functions and the ability to create user-defined functions, there is virtually no task that cannot be automated using Phantom.

The following are just a few examples of how Phantom can be used:

Automated Testing - Phantom can be used to automate the testing of Microsoft Windows based applications. Phantom test scripts are a valuable, repeatable addition to any manual testing process.

Regression Testing - Phantom scripts can be used to perform automated regression testing of your product. This is a cost-effective way to ensure new changes to an application dont introduce defects in existing features.

Process Automation - Phantom can be used to automate complex processes requiring user interaction between many different kinds of applications. By using Phantom to automate processes, manual error

input errors are eliminated, resulting in a more efficient, stable process.

Page 21: IT TRENDS AND PERSPECTIVES 2016

Latest: PreprocessorsOld: Full language stacks

Hot: JavaScript MV* frameworksOld: JavaScript files

Hot: CSS frameworksOld: Generic Cascading Style Sheets

Hot: SVG + JavaScript on CanvasOld: Flash

Hot: Almost big data (analysis without Hadoop)Old: Big data (with Hadoop)

Hot: SparkOld: Hadoop

Hot: Single-page Web appsOld: Websites

Hot: AndroidOld: iOS

Hot: GPUOld: CPU

Hot: Web interfacesOld: IDEs

Hot: IaaSOld: PaaS

Hot: Node.jsOld: JavaEE, Ruby on Rails

Hot: PHP 7.0Old: Old PHP

Trending Hot Vs Old -2016

Page 22: IT TRENDS AND PERSPECTIVES 2016

DevOpsTools such as Docker (containerization), Jenkins (continuous Integration), Puppet (Infrastructure as Code) and Vagrant (virtualization platform) among many others are often used and frequently referenced in DevOps tooling discussions

Page 23: IT TRENDS AND PERSPECTIVES 2016