top 10 technology trends changing developer's landscape

Post on 21-Jan-2018

1.716 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

10 Technology TrendsChanging

Developer’s Landscape

Arun Gupta, @arungupta

Container

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

Why containers?

▪Fast deployment

▪Easy portability

▪Minimize impedance mismatch between dev, staging and prod

▪Existing toolsets included in workflow

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

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

6

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

around container technology

opencontainers.org

Container Microservices

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

Why Microservices?

▪Strong module boundaries

▪Technology diversity

▪Independent deployment/scaling

▪Fault and resource isolation

▪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

©2016 Couchbase Inc.

Container MicroservicesContinuous Integration/Deployment

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

–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

16

“it is the practice of releasing every good

build to users”

“continuous integration to its

logical conclusion”

aws.amazon.com/codepipeline

Container MicroservicesContinuous Integration/Deployment

DevOps

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

2016 State of DevOps Report

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

Five “C”s of DevOps

• Collaboration between “dev” and “ops”

• Culture

• Code everything - application and configuration

• Consistency - automation over documentation

• Continuous delivery

“you build it, you run it!”

With great power, comes great

responsibility

• 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

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

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

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

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

AWS IoT

Data Plane

Control Plane

Service Access

Data Plane

Many Successful IoT Deployments Running On AWS

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

Serverless

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

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

How it works?

aws.amazon.com/serverless

Application Flow

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

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Virtual vs Augmented Reality

Virtual Reality: Experience a world that does not exist

Augmented Reality: Enhanced experience of the real world

What do we need for VR?

Detailed world

Processing Power Gear

Amazon EC2 Instance Families

Virtual Reality Gear▪Headset

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

▪Gloves ▪Immersive Rooms

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Artificial Intelligence

Deep Learning

Machine Learning

Real Machine Learning on AWS

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Blockchain Blockchain

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

What is Blockchain?

Blockchain Usecases

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

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

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Blockchain ChatOps & Offline First

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

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, …

Container MicroservicesContinuous Integration/Deployment

DevOps Internet of Things

ServerlessVirtual &

Augmented Reality

Artificial Intelligence &

Machine Learning

Blockchain ChatOps & Offline First

Thanks!

@arungupta

top related