top 10 technology trends changing developer's landscape
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
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