top 10 technology trends changing developer's landscape

57
10 Technology Trends Changing Developer’s Landscape Arun Gupta, @arungupta

Upload: arun-gupta

Post on 21-Jan-2018

1.716 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Top 10 Technology Trends Changing Developer's Landscape

10 Technology TrendsChanging

Developer’s Landscape

Arun Gupta, @arungupta

Page 2: Top 10 Technology Trends Changing Developer's Landscape

Container

Page 3: Top 10 Technology Trends Changing Developer's Landscape

Container

▪Package, deploy, run and scale application, with dependencies, in an O/S-, language- and framework-agnostic way

▪Light-weight alternative to Virtual Machines, higher density

Page 4: Top 10 Technology Trends Changing Developer's Landscape

Why containers?

▪Fast deployment

▪Easy portability

▪Minimize impedance mismatch between dev, staging and prod

▪Existing toolsets included in workflow

Page 5: Top 10 Technology Trends Changing Developer's Landscape

Current State▪Docker ▪OCI, rkt, … ▪Container orchestration frameworks

– Docker – Kubernetes – Amazon EC2 Container Service – DC/OS – . . .

Page 6: Top 10 Technology Trends Changing Developer's Landscape

6

promote a set of common, minimal, open standards and specifications

around container technology

opencontainers.org

Page 7: Top 10 Technology Trends Changing Developer's Landscape

Container Microservices

Page 8: Top 10 Technology Trends Changing Developer's Landscape

the microservice architectural style is an approach to developing a single application as a suite of

small services, each running in its own process and communicating with lightweight mechanisms,

often an HTTP resource API.

8

martinfowler.com/articles/microservices.html

Page 9: Top 10 Technology Trends Changing Developer's Landscape
Page 10: Top 10 Technology Trends Changing Developer's Landscape

Why Microservices?

▪Strong module boundaries

▪Technology diversity

▪Independent deployment/scaling

▪Fault and resource isolation

Page 11: Top 10 Technology Trends Changing Developer's Landscape

▪Uses an open source software stack to – deploy applications as microservices – package each part into its own container – dynamically orchestrate containers for optimum

resource utilization

11

Page 12: Top 10 Technology Trends Changing Developer's Landscape

©2016 Couchbase Inc.

Page 13: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

Page 14: Top 10 Technology Trends Changing Developer's Landscape

Tenets of CI▪Source code repository is the “single source of truth”

– All source code - application and test – Include build/test scripts, schemas, IDE configurations, docs, … – Tag your builds, define cadence

▪Automate the build - single command builds the codebase – Track who, when, what

▪Keep the build fast (< 10 mins) ▪Tests are triggered for each build ▪Commit early and often

– Once every few hours, at least once a day

Page 15: Top 10 Technology Trends Changing Developer's Landscape

–Martin Fowler

“Continuous Integration doesn't get rid of bugs, but it does make them

dramatically easier to find and remove”

15

martinfowler.com/articles/continuousIntegration.html

Page 16: Top 10 Technology Trends Changing Developer's Landscape

16

“it is the practice of releasing every good

build to users”

“continuous integration to its

logical conclusion”

Page 17: Top 10 Technology Trends Changing Developer's Landscape

aws.amazon.com/codepipeline

Page 18: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps

Page 19: Top 10 Technology Trends Changing Developer's Landscape

sites.google.com/a/jezhumble.net/devops-manifesto/

Page 20: Top 10 Technology Trends Changing Developer's Landscape

2016 State of DevOps Report

puppet.com/resources/whitepaper/2016-state-of-devops-report

Page 21: Top 10 Technology Trends Changing Developer's Landscape

Five “C”s of DevOps

• Collaboration between “dev” and “ops”

• Culture

• Code everything - application and configuration

• Consistency - automation over documentation

• Continuous delivery

Page 22: Top 10 Technology Trends Changing Developer's Landscape

“you build it, you run it!”

With great power, comes great

responsibility

Page 23: Top 10 Technology Trends Changing Developer's Landscape

• Switched from self-hosted data center to AWS

• New update every 11.6 seconds on weekdays

• Peak was 3x (1079 deployments in an hour)

• Picked up by 10k different hosts

• 0.0001% deployments resulted in outage

• Apollo - “secret sauce” for rolling updates

• aws.amazon.com/codedeploy

http://servicevirtualization.com/profiles/blogs/making-the-transition-to-a-devops-culturehttp://www.allthingsdistributed.com/2014/11/apollo-amazon-deployment-engine.html

Page 24: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

Page 25: Top 10 Technology Trends Changing Developer's Landscape
Page 26: Top 10 Technology Trends Changing Developer's Landscape

postscapes.com/what-exactly-is-the-internet-of-things-infographic/

Page 27: Top 10 Technology Trends Changing Developer's Landscape

postscapes.com/what-exactly-is-the-internet-of-things-infographic/

Page 28: Top 10 Technology Trends Changing Developer's Landscape

postscapes.com/what-exactly-is-the-internet-of-things-infographic/

Page 29: Top 10 Technology Trends Changing Developer's Landscape

AWS IoT

Data Plane

Control Plane

Service Access

Data Plane

Page 30: Top 10 Technology Trends Changing Developer's Landscape

Many Successful IoT Deployments Running On AWS

Page 31: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

Serverless

Page 32: Top 10 Technology Trends Changing Developer's Landscape

Virtual Machines Containers Serverless

Unit of Scale Machine Application Function

Abstraction Hardware Operating System Language Runtime

Packaging AMI Container File Code

Configure Machine, storage, networking, O/S

Run Servers, configure applications, scaling Run code when needed

Execution Multi-threaded, multi-task Multi-threaded, single task Single threaded, single

task

Runtime Hours to months Minutes to days Microseconds to seconds

Unit of cost Per VM per hour Per VM per hour Per memory/second per request

Amazon EC2 Docker, Kubernetes, ECS Lambda

Page 33: Top 10 Technology Trends Changing Developer's Landscape

Functions

Applications

Runtime

Containers

Operating System

Virtualization

Hardware

IaaS

Functions

Applications

Runtime

Containers

Operating System

Virtualization

Hardware

CaaS

Functions

Applications

Runtime

Containers

Operating System

Virtualization

Hardware

PaaS

Functions

Applications

Runtime

Containers

Operating System

Virtualization

Hardware

FaaS

Customer Managed

Customer Managed Unit of

Scale

Vendor Managed

Page 34: Top 10 Technology Trends Changing Developer's Landscape

How it works?

aws.amazon.com/serverless

Page 35: Top 10 Technology Trends Changing Developer's Landscape

Application Flow

aws.amazon.com/api-gateway/details/

Page 36: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Page 37: Top 10 Technology Trends Changing Developer's Landscape

Virtual vs Augmented Reality

Virtual Reality: Experience a world that does not exist

Augmented Reality: Enhanced experience of the real world

Page 38: Top 10 Technology Trends Changing Developer's Landscape

What do we need for VR?

Detailed world

Processing Power Gear

Page 39: Top 10 Technology Trends Changing Developer's Landscape

Amazon EC2 Instance Families

Page 40: Top 10 Technology Trends Changing Developer's Landscape

Virtual Reality Gear▪Headset

– Samsung Gear VR – Sony Playstation VR – Oculus Rift – Microsoft Hololens – HTC VIVE – Google Daydream View

▪Gloves ▪Immersive Rooms

Page 41: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Page 42: Top 10 Technology Trends Changing Developer's Landscape

Artificial Intelligence

Deep Learning

Machine Learning

Page 43: Top 10 Technology Trends Changing Developer's Landscape
Page 44: Top 10 Technology Trends Changing Developer's Landscape
Page 45: Top 10 Technology Trends Changing Developer's Landscape
Page 46: Top 10 Technology Trends Changing Developer's Landscape

Real Machine Learning on AWS

Page 47: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Blockchain Blockchain

Page 48: Top 10 Technology Trends Changing Developer's Landscape

What is Blockchain?

A distributed database that maintains a continuously growing list of ordered records

called blocks. Each block contains a timestamp and a link to previous block.

No new technology, just existing components

assembled in a new way

Page 49: Top 10 Technology Trends Changing Developer's Landscape

What is Blockchain?

Page 50: Top 10 Technology Trends Changing Developer's Landscape

Blockchain Usecases

▪Smart Contracts ▪Sharing Economy ▪Crowd funding ▪Governance ▪Neighborhood microgrids ▪Stock trading

Page 51: Top 10 Technology Trends Changing Developer's Landscape

Blockchain Frameworks▪Public Open Source Blockchain

– Ethereum (EF), Hyperledger (LF), Monax (nee Eris), … ▪Private Blockchain

– MultiChain, Edgeverve (Infosys), … – Configured on AWS with partners

– VPC, Private Subnet, Auto Scaling Groups, Elastic Load Balancer, Route 53, Docker/Kubernetes, EC2 Container Registry, Identity and Access Management

Page 52: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Blockchain ChatOps & Offline First

Page 53: Top 10 Technology Trends Changing Developer's Landscape
Page 54: Top 10 Technology Trends Changing Developer's Landscape

ChatOps▪Connect people, bots and tools in an automated workflow ▪Conversation-driven development ▪Example: Slackbot, Hipchat Connect ▪Serverless: An easy way to deploy and scale bots ▪Benefits

– Higher transparency – Short feedback loops – More agility

Page 55: Top 10 Technology Trends Changing Developer's Landscape

Offline First▪Lack of connectivity is not an error condition

– Do not need constant connectivity – Low network bandwidth – Zero reception, unreliable connection – Geography

▪Features – Synchronization – Conflict resolution – Security

▪Frameworks: Hoodie, Ionic, Couchbase Mobile, Mapbox Mobile, …

Page 56: Top 10 Technology Trends Changing Developer's Landscape

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Blockchain ChatOps & Offline First

Page 57: Top 10 Technology Trends Changing Developer's Landscape

Thanks!

@arungupta