SlideShare a Scribd company logo
1 of 173
Download to read offline
www.mobiliya.com
Cloud Stack in 2017
“What is & How to choose a cloud stack ?“
“AN OPINIONATED VIEW”
Gaurav Roy, @MobiliYa
gaurav-roy-2457635
opengauravroy
- Spread the Knowledge, Initiative
- Feb 4th 2017
2
Agenda
1. Intro - Cloud Application Stack Options
2. Breath-wise dive into options & how to choose
1. Cloud Hosting
2. Public Cloud
3. Private Cloud
4. Architecture
5. Backend
6. Front End
7. DB - Relational
8. DB – NoSQL
9. Deployment Tools
10. QA Automation
11. Monitoring &
Logging Tools
3
What is a Cloud?
 Cloud
“An Internet-based computing environment providing
shared computation resources and data
to computers and other devices on demand.”
4
When do you need to choose a Cloud stack?
 New web application?
 Re-architect parts of an existing application?
 For Performance
 For Elastic Load Scaling
 For Security
 For re-usability
 For Manageability & Governance
5
Why is this a recurring choice @ Mobiliya?
 We do a lot of R&D & Consulting that have Cloud requirements
 on Works Areas : Cloud, IoT, AR, Mobility, Analytics
 on Domains : Devices, Automotive, Healthcare, Telecom, Finance
 Most of projects are from scratch development
 A new Project = A new choice
6 6
KNOWING WHEN
TO USE WHAT
“IS IMPORTANT “
EACH TOOL HAS A PURPOSE AND FITS A BILL!
7
What are the Cloud Options – “Cambrian Sea Slide”
1. Cloud Hosting
2. Public Cloud
3. Private Cloud
4. Architecture
5. Backend
6. Front End
7. DB - Relational
7. DB – NoSQL
8. Deployment
Tools
9. QA Automation
10. Analytics
11. Data Routing
12. Monitoring &
Logging
Monolithic Micro-services Serverless
Azure Warehouse
Zuul
PUBLIC CLOUD PRIVATE CLOUD HYBRID CLOUD
Truckload of other options
Not covered in this presentation
Not covered in presentation
8
What do you need to choose?
1. Cloud Hosting
2. Public Cloud
3. Private Cloud
4. Architecture
5. Backend
6. Front End
7. DB - Relational
7. DB – NoSQL
8. Deployment
Tools
9. QA Automation
10. Analytics
11. Data Routing
12. Monitoring &
Logging
Monolithic Micro-services Serverless
Azure Warehouse
Zuul
PUBLIC CLOUD PRIVATE CLOUD HYBRID CLOUD
Monolithic Micro-services Serverless
Azure Warehouse
https://en.wikipedia.org/wiki/Machine_learning
Zuul
12 areas of choices and some more
- Choose one or more components in each area.
- There are more choice areas in a cloud stack and certainly main more options
than depicted in each area.
A CHOICE AT A TIME
BREAK-UP THE CLOUD. MAKE IT SIMPLER.
LOOK AT ONLY SECTION OF INTEREST IN SLIDES AHEAD
10
Choice #1 : Cloud Hosting
Choice #1: Cloud Hosting
Where are we Hosting the cloud ?
[Private] Inside our company
[Public] Shared internet data center
[Hybrid] Confidential parts private, rest public
11
On the InternetOn Premise
Private PublicHybrid Cloud
(Private + Public)
12
#1.1 HOSTING: THE “PRIVATE CLOUD”
 Drive your PRIVATE Car
13
1.1 Private Cloud : What ?
 Deployed within/for a single organization
 Multiple known machines acting together as a common system
 Monitored using modern Platform Tools. (for downtime & other outages)
Just hosting a webserver on prem does not mean it’s a private cloud.
On premise network
Private Cloud
External Clients
Internal Clients
External Clients
14
#1.2 HOSTING : THE “PUBLIC CLOUD”
 Shared PUBLIC Transport
15
1.2 Public Cloud : What ?
 Deployed on the internet
 Shared infrastructure by multiple apps or organisations.
 Standardized interfaces given by Public Cloud Provider
 Monitored using advanced Public Cloud Tools.
Public Cloud Provider Network
Public Cloud (running various apps)
Cloud
Provider
Firewall
App#2 Client
App#1 Clients
16
#1.3 HOSTING : THE “HYBRID CLOUD”
 Park and Ride
(use the tool, where it’s useful)
17
1.3 Hybrid Cloud : What ?
 Use both Public & Private Cloud
 Regulated data in Private Cloud and other data in Public Cloud
 Can do customizations in Private Cloud section
Public Cloud Provider Network
Private Cloud
External Clients
External Clients
Internal Clients
Cloud
Provider
Firewall
18
SHORT IDEA (Infra) YOUR OWN DATA CENTER SHARED DATA CENTER YOUR & SHARED DATA CENTER
When to use? • Regulated Data
(financial, medical etc)
• Gradual increase in Load
• Consumer usecases
• Bursty Load (Black Friday)
• Part regulated part
unregulated data
• All Weather Load 
Cost (operating) 60x (at scale)
150x (at no scale)
100x 150x
Devops Effort 100x 20x 100x
Code Effort 50x 50x 100x
Opportunities Large Enterprises Startups & Large Enterprises Large Enterprises with legacy
inhouse servers
Strengths Customizability & Control,
Data Security
Feature rich, Quick setup,
standardized API, talent hiring,
Scale on the GO
Best of both Worlds,
Customizable & Scalable
Weakness Time & Cost -
Build/Operate/Scale
3rd Party provider trust Cost, Technical Complexity
1. Cloud Hosting : A simple compare table
Private Cloud Public Cloud Hybrid Cloud
19
Choice #1 : Decision Tree Cloud Hosting ?
Q : Private Data?
(cannot host outside?)
YES :
(Note: This needs to be due to some Govt, regulation
or financial/medical/competitive reasoning)
Private Cloud
NO
PARTIALLY
Public Cloud
Q : Do you have
low or
bursty load ?
YES:
reco move
(less load
or bursty)
Hybrid Cloud
NO : Steady & High Load
Q : Is not well funded
PROOF OF CONCEPT
like funding?
YES:
Start with public
For quick POC
(cheaper & easier)
NO
20
1. SHORT DECISION (for new apps)
Highly
Confidential
Data
Super Large
App
PRIVATE
CLOUD
For all
Else,
there’s
PUBLIC
CLOUD
Large Enterpises would be
HYBRID, if looked across org
However,
Individual Apps or Services
are likely to be Either
PRIVATE or PUBLIC
21
1. Marketshare : Private Vs Public (2016)
Just hosting a webserver on prem does not mean it’s a private cloud. A lot more services on prem, which are not private cloud.
Large enterprises prefer Private or Public. Startups – Public. Reason: Features/Costs on PUBLIC cloud are a lot more compelling for quick release.
Ref : http://wikibon.com/public-cloud-iaas-is-3-5x-the-size-of-true-private-cloud-adoption/
$25
Billion
$7
Billion
Private Cloud
Public Cloud
22
Choice #2: Public Cloud : Infra Models
Cloud Infrastructure Models ?
[IaaS] Infrastructure as a service
[PaaS] Platform as a service
[FaaS] Function as a service
[SaaS] Software as a service
23
2. What is IaaS – PaaS – FaaS - SaaS?
Functions
Data
Application
Runtime
Backend Code
OS
Virtualization
Server Machines
Storage
Networking
Awesome Vizualisation picked from : Ref : http://www.slideshare.net/manuel_silveyra/austin-cf-meetup-20150224/3
PS: We expect Container as a Service term in 2017-18 too, there is a separate section on it later
Functions
Data
Data
Runtime
Backend Code
OS
Virtualization
Server Machines
Storage
Networking
Function
Data
Application
Runtime
Backend Code
OS
Virtualization
Server Machines
Storage
Networking
Functions
Data
Application
Runtime
Backend Code
OS
Virtualization
Server Machines
Storage
Networking
Public Cloud Provider - responsibility
Application Writer - responsibility
Private Cloud Infrastructure
(as a service)
Platform
(as a service)
Function
(as a service)
(serverless arch)
Functions
Data
Application
Runtime
Backend Code
OS
Virtualization
Server Machines
Storage
Networking
Software
(as a service)
24
SHORT IDEA LEASE MACHINES LEASE AN APP RUNTIME LEASE A FUNCTION RUNTIME
What it means? Lease Virtual Machines,
Storage and Network.
Like Leasing a Machines
Lease a Runtime to execute
code.
Like lease a JVM
Lease an env that runs
functions.
Like get an object
Code/Devops Effort High Medium Minimal
Lock In to Cloud Provider LOW NEAR COMPLETE IMPOSSIBLE TO MOVE
Advantage • Flexible in usage
• Can Customize
• Complete freedom for dev
• Semi-flexible in usage
• Super-Easy to deploy, scale
• Usually has a methodology
of code and limited
languages supported
• Cannot change anything
Cost (operating) • 100x • 110x • 200x
Cost (development) • 100x • 70x • 10x
• Fantastic in some scenarios
(new hot dish on the block)
2. Cloud Infra : A simple compare table
Infrastructure
(as a service)
Platform
(as a service)
Function
(as a service)
25
2. Software as a Service
 Software as a Service
 Whole Software is leased
 No deployment, limited/no development
 Specialized domain specific software
 Configs are available to customize generic software as per org needs.
 API are available to read/write data to the Cloud Software. (Hybrid Cloud or extend)
 For eq: Office 365, Azure-AD, Sales Force
 Choice : “Build (PaaS/IaaS/FaaS) or Lease (SaaS) Software”
 We will not cover range of SaaS in this presentation – “Too large an area”
26
Private Cloud
Infrastructure
(as a service)
Platform
(as a service)
Function
(as a service)
Software
(as a service)
Customizability
Cost/Time of Development
& Maintenance
2. Customizability Vs Cost of Development
27
2. Customizability : How to choose – Cloud as a Service ?
1. GET GOING FAST : You Will be able to get rolling and scale up really fast.
2. SO LONG AS: What works for everyone, works for you. Cannot request many changes in the food
1. SaaS is like McDonald (take it, if it works for you) – simple decision of YES/NO.
2. FaaS, PaaS maybe like going to a Restaurant.
3. Others are like cooking yourself.
28
2. Cloud Infra : How to choose - IaaS or PaaS?
B. Do you have legacy code or 3rd
Party dependencies ?
Or App is not simple – ie. simple app-
a DB + business logic + API calls?
IaaS PaaS, FaaS
YES NO
29
Choice #2 : Type of Cloud choice? Type of Cloud ?
Q : Any readymade
Sofrware work
available ?
YES
SaaS IaaSPaaS
Q : Standard
run of mill app
(from scratch dev -
no legacy code) ?
YES
Q : Is app
completely
event driven
or API Intensive ?
YES
FaaS
YES
NO
NO
30
Choice #2.1: Select A Cloud Provider
Who do we select ?
Tens of Public Cloud Providers
AWS, Azure, Google Cloud, Oracle Cloud
Rackspace, Heroku, VmWare, CISCO
31
2.1 Leased Components on Public IaaS/PaaS (typical)
1
Compute
VMs (IaaS)
Runtime (Pass)
Runs your
apps
2
Database
R-DBMS or
NoSQL
Save data
3
Storage
File Storage &
Archiving
Save large
files
4
Networking
Routing, VPN
Connect up
everything
5
Monitoring
VM Health,
Outages
Health
Check
32
2.1.1 What do we lease for Public Cloud ? Examples?
Compute (VM)
Compute (Docker Container Mgmt)
Compute (FaaS)
Storage (large files)
Storage (VM persistent)
DB (Relational)
DB (NoSQL)
DB (Caching)
Networking (API Gateway)
Networking (Virtual Private N/w)
Networking (Load Balancer, Routing)
Amazon Web Services
EC2
EC2 Container Service
Lambda
S3, Glacier, Cloud Front
Elastic File, Block Storage
RDS (MySQL), Redshift
DynamoDB
Elastic (Memcache/Redis)
AWS API Gateway
VPC
Elastic Load Balancer, Route 53
Microsoft Azure
Virtual Machines
Azure Container Service, Registry
Function, Batch Jobs
Blob, File, Data Lake, CDN
Disk
SQL, Data Warehouse
DocumentDB, TableStorage
Redis Cache
API Management, App Gateway
VPN
Load Balancer
1 Compute
2 Storage
3 Database
4 Networking
Note: Have chosen top two providers but everyone has the same situation. ( in various stages progression )
33
Spoilt for choice ? Among Cloud Providers
 Choosing a Cloud Provider is like “Buying a SUV”
[lot of options – choose as per your needs and likes]
1. Look at your Usage Cost (each provider has a cost calculator)
2. Check for Marketshare & stability of cloud platform.
3. Check code language support (when using Paas/FaaS) – wrt expertise in your team
4. Each Public Cloud has found a niche.
A good tool to use for feature compare : http://cloudcomparison.rightscale.com/
34
2.2.1 : Cloud Provider : AWS
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) Best in Class
IaaS (Bare metal) -
PaaS -
FaaS Best in Class (tied with Azure)
SaaS -
DB Best in Class (arguably)
Analytics Best in Class (tied with Azure)
Storage Best in Class (tied with Azure)
Networking Best in Class (tied with Azure)
Monitoring, Ops Best in Class
Value Added : IoT, MSGQs Best in Class (tied with Azure)
Best in Class - Offering
Market Leader (IaaS)
Expertise easy to get
Very Reliable
Good Support & Training
Java Go
JS/Node PHP
Python Ruby
.NET C++
Started the revolution – by leasing internal unused infrastructure capacity
IaaS – still remains main selling point
Awesome - Value Added services
Defacto Recommendation – along with Microsoft Azure (safe bet)
Australia X
China X
India
Middle East
East Asia X
Europe X
Russia
USA X
South
America
X
Enterprises X
SMEs X
Startups X
Individuals X
35
2.2.2 : Cloud Provider : Microsoft Azure
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) Best in Class
IaaS (Bare metal) -
PaaS WebApps (.Net,Node,Java,PHP)
FaaS Best in Class (tied with AWS)
SaaS Office 365, Azure-AD etc
DB Competitive
Analytics Best in Class (tied with AWS)
Storage Best in Class (tied with AWS)
Networking Best in Class (tied with AWS)
Monitoring, Ops Competitive
Value Added : IoT, MSGQs Best in Class (tied with AWS)
Microsoft Ecosystem
Awesome Offerings
Great Support
SaaS complementary
Java GO
JS/Node PHP
Python Ruby
.NET C++
Home Turf - .NET (as PaaS), Diversified to support other eco-systems
Works very well for enterprises – (Part – IaaS/PaaS – Part – SaaS)
Lot of SaaS Offerings – Dynamics, 365, Azure-AD,
Defacto Recommendation – along with AWS (safe bet)
Strongly Recommend : When legacy app sections in .NET
Strongly Recommend : When integrating with Microsoft SaaS Services
Australia X
China X
India X
Middle East
East Asia X
Europe X
Russia
USA X
South
America
X
Enterprises X
SMEs X
Startups X
Individuals X
36
2.2.3 : Cloud Provider : IBM Bluemix/Softlayer
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) Competitive
IaaS (Bare metal) Best in Class
PaaS Best in Class (Cloud Foundry)
FaaS -
SaaS 160 Various Small SaaS Elements
DB (R-DBMS) Weaker
Analytics Only SaaS (IaaS – Weaker)
Storage Competitive
Networking Competitive
Monitoring, Ops Weaker
Value Added : IoT, MSGQs Weaker
Private Cloud like IaaS
Salesforce, SAP
Integration
CloudFoundry Ecosystem
Java GO
JS/Node PHP
Python Ruby
.NET C++
SoftLayer – acquired by IBM – Bare Metal (IaaS) + Lots of Data Centers
IBM – Traditionally strong with Consulting Services, Enterprise Integration
Modules
CloudFoundry (PaaS) – is a newer addition. (for rapid development)
Niche Recommendation – Want Public Cloud (with customization)
Niche Recommendation – Want integration modules + strong partner
Niche Recommendation – Quick development – CloudFoundry (lock in)
Australia X
China X
India X
Middle East
East Asia X
Europe X
Russia
USA X
South
America
X
Enterprises X
SMEs X
Startups
Individuals
37
2.2.4 : Cloud Provider : Oracle
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) Competitive
IaaS (Bare metal) Competitive
PaaS Competitive
FaaS -
SaaS Best in Class
DB (R-DBMS) Best in Class
Analytics Competitive
Storage Competitive
Networking Competitive
Monitoring, Ops Competitive
Value Added : IoT, MSGQs Competitive
Great SaaS Portfolio
Existing Enterprise
Customers and Contracts
Supports IaaS, PaaS, SaaS
Java GO
JS/Node PHP
Python Ruby
.NET C++
IaaS gives REST APIs
Late in Public Cloud.
Strong Enterprise connections and Enagements
Wanting to keep customers as they move to the Coud
Niche Recommendation – Enterprises moving from On Prem to Cloud
Niche Recommendation – Enterprises wanting part SaaS / IaaS (build + buy)
Australia
China
India
Middle East
East Asia X
Europe X
Russia
USA X
South
America
X
Enterprises X
SMEs
Startups
Individuals
38
2.2.5 : Cloud Provider : Google Cloud Platform
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) New
IaaS (Bare metal) -
PaaS Google App Engine(Java,Python)
FaaS -
SaaS -
DB (R-DBMS) Weaker
Analytics Competitive
Storage Competitive
Networking Competitive
Monitoring, Ops Weaker
Value Added : IoT, MSGQs Very Weak
Google Eco-system
PaaS – easy to scale
Google Brand
Java GO
JS/Node PHP
Python Ruby
.NET C++
Launched PaaS – Google App Engine (did not take off – due to lock-in fear)
Venturing into IaaS Space Recently.
Great for Consumer apps on Google App/Android Eco-system
Niche Recommendation – Consumer App Ecosystem – Google Integration
Australia
China
India
Middle East
East Asia X
Europe X
Russia
USA X
South
America
Enterprises
SMEs X
Startups X
Individuals X
39
2.2.5 : Cloud Provider : Rackspace
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) Competitive
IaaS (Bare metal) Competitive
PaaS -
FaaS -
SaaS -
DB (R-DBMS) Weaker
Analytics Competitive
Storage Competitive
Networking Competitive
Monitoring, Ops Weaker
Value Added : IoT, MSGQs Very Weak
Mature Cloud platform –
quick to Open Stack
upgrades
Monitoring of App done
by Rackspace
Provides Architectural,
Design Guidance
Best in class - support
Java GO
JS/Node PHP
Python Ruby
.NET C++
NA: Mainly Infra
Launched as IaaS (bare metal) in 2003
Monitoring, Architecture & Management services for Rackspace + other clouds
Niche Recommendation – Infant Cloud development org (first cloud project)
Niche Recommendation – New to devops & monitoring
Australia
China
India
Middle East
East Asia X
Europe X
Russia
USA X
South
America
Enterprises
SMEs X
Startups X
Individuals X
40
2.2.7 : Cloud Provider : VmWare
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) Awesome (vSphere)
IaaS (Bare metal) -
PaaS -
FaaS -
SaaS -
DB (R-DBMS) Weaker
Analytics -
Storage Weaker
Networking -
Monitoring, Ops Competitive
Value Added : IoT, MSGQs Weak
Hybrid Cloud
Private (on Public)
Horizon (virtual Desktops)
Java GO
JS/Node PHP
Python Ruby
.NET C++
NA : As just gives infra
Legend in Virtualization. Early in Private Cloud. Late in Public Cloud.
Strength – Hybrid – when coupled with vSphere.
Dedicated Cloud Offering (nearly private)
Niche Recommendation – Wanting Private/Hybrid on Public Cloud Infra
(with existing reliance on Windows eco-system – managed by VmWare)
Australia X
China
India
Middle East
East Asia X
Europe X
Russia
USA X
South
America
Enterprises
SMEs X
Startups X
Individuals X
41
2.2.8 : Cloud Provider : Heroku (Salesforce)
Offering Value
Proposition
Languages Data
Centers
Customers
History (Core Strength) When to Recommend?
IaaS (VM) -
IaaS (Bare metal) -
PaaS Competitive
FaaS -
SaaS -
DB (R-DBMS) Weaker
Analytics -
Storage Weaker
Networking -
Monitoring, Ops Competitive
Value Added : IoT, MSGQs Weak
Rapid App Development
Java GO
JS/Node PHP
Python Ruby
.NET C++
PaaS – developed with Ruby
Super quick and easy to setup, prototype and write apps
Later added support – for some other languages
Niche Recommendation – Rapid development of apps, Consumer side
Australia
China
India
Middle East
East Asia X
Europe X
Russia
USA X
South
America
Enterprises
SMEs
Startups X
Individuals X
42
2. Which Public
Cloud? Which Public Cloud?
Q : From scratch
a new concept
(no strings
attached) ?
AWS Oracle
Google
Cloud
Azure
Q : Customer
prefers ?
AWS
(mostly)
Azure
(mostly)
IBM
Q : Are we Hybrid ?
NO
Google
(consumer
product)
Vm
Ware
Yes
(with
private
with
VmWare)
Rack
space
Yes
(and also
not sure of
public Cloud
to support)
Yes
(good devops org
& no VmWare Private Cloud)
YES
Q : Any SaaS
available (partly) ?
NO
YES
IBM?
YES
Oracle
YES
Microsoft?
YES
any others?
NICHE RECOMMENDATIONSMAINSTREAM
Major Factors are always
1. COST 
- Use service provider calculator
2. Language Support
- (PaaS/FaaS Programming Language)
- (Storage, Messaging libraries)
43
2. Public Cloud : Which Public Cloud ?
Area of Work Recommended Cloud Provider Why?
Most Projects {Defacto} AWS or Azure Eco-system, Features, Support
Hybrid Cloud VmWare If Private Cloud –VmWare {largest marketshare}
Non-commital on Cloud Rackspace Support other providers, ops and engg support
Enterprise (SaaS) Oracle or IBM or Microsoft If SaaS available for part of software
Consumer (Google Eco) Google Cloud Platform Google Eco-system
44
IaaS
Provider
Market Share
31%
24%
14%
5%
4%
2%
2. Public Cloud IaaS : Market Share
Above chart as per June-2016. Major options are above.
Note: There are others too – making up remaining 20% (like VmWare, Heroku ). https://www.statista.com/statistics/
Cisco, HP-E have discontinued their services, however they support existing customers
PaaS (Platform as a Service) : Hard to tell really
SaaS (Software as a service)
Ever increasing vertical domains.
(as cloudification increases)
AWS & Azure are so far ahead due to a reason
45
Choice #1 : Cloud Hosting
Choice #3: Private Cloud
What do we choose for building our Private Cloud ?
VmWare
OpenStack
SCCM & Azure Pack
Apache CloudStack
46
3. Steps to a private Cloud
1
2 Connect & Define Cloud
- a Private Cloud Tool
Buy
– Physical Servers,
Storage, Networking
Deploy & Monitor
- a Private Cloud Tool
Write Code, DB Schemas
3
4
Buy Physical Infra
Orchestrate a Cloud
App Development
Monitor Operation
47
3. Typical Private Cloud
CPU NETWORKING STORAGE
Compute (VM etc)
Mgmt Nodes / Console
VPN
Security & Roles
Load Balancing
Routing
Block Storage
Virtual File System
App Image Mgmt
Database
1Physical Infra
2Cloud Orchestration
(private cloud tool)
Web Application API Definition DB Schema & Migration
3App Development
Metering Failover & Redundancy App-VM Provisioning
4Monitor Operation
Monitoring
Reporting
Private Cloud ToolApp Logic/Infra
Essentially choice here is which private tool to use – which gives us more Blue Boxes – out of the box.
48
3.1 : Private Cloud : VmWare
Offering Value
Proposition
Languages Weakness
Customers
History (Core Strength) When to Recommend?
Compute vSphere Hypervisor (ESXi- VMs)
DB (R-DBMS) -
Storage VMFS over vSAN & iSCSI, vBlob
Networking NSX, Traditional Switching
Monitoring, Ops vRealize Automation, Ops
Data Management Replication, Data Protection
Log vRealize Log Insight
Mgmt Console vCenter
Identity -
Analytics -
API Powershell + Perl (vmWare spec)
Existing VmWare
Virtualized Infrastructure
VmWare eco-system in IT
Java GO
JS/Node PHP
Python Ruby
.NET C++
Any : Server Virtualized
VmWare was always Virtualization Behemoth (large trained IT)
Enterprises want to private cloudify their internal VmWare virtual machines
– so it was a natural progression for VmWare to add deployment+monitoring
Super easy tools, Traditional Enterprise Apps (Oracle, SAP, Microsoft)
Defacto Recommendation (Market Leader) : Small -medium size projects for
enterprises
Defacto Recommendation : Windows Intensive eco-system
Recommendation : Simple Setup expectation by org for maintenance/setup
Enterprises X
SMEs X
Startups X
Individuals X
Proprietary Platform
Cost more than Open
Source Alternatives
Awesome for Windows
Apps Private Clouds
Most apps are very tuned
to Windows
Supports only ESXi as
default hypervisor
(OpenStack has a variety
of hypervisors) - ESXi
Disclaimer: Limited experience on VmWare
49
3.2 : Private Cloud : Open Stack
Offering Value
Proposition
Languages Weakness
Customers
History (Core Strength) When to Recommend?
Compute Nova (VM), BareMetal (Ironic)
DB (R-DBMS) Trove
Storage Cinder (Block), Object (Swift)
Networking Neutron, DNS (Designate)
Monitoring, Ops Heat, Mistral, Glance
Data Management Shared File System (Manila)
Log Telemetry (Ceilometer)
Mgmt Console Horizon
Identity Keystone, Barbican
Hypervisors KVM, VmWare, Xen,
API REST (like AWS)
Free
Open Source
Feature Rich & Mature
Large Community
Java GO
JS/Node PHP
Python Ruby
.NET C++
Any : Server Virtualized
Started as a joint project between Rackspace & NASA. – now non-profit
Diversified to Public Cloud – though loosing the battle.
API modelled on AWS EC2 & S3 REST API (leverage trained engineers)
Defacto Recommendation – The Private Cloud Standard (for large projects)
Enterprises X
SMEs X
Startups X
Individuals X
Learning Curve & Skill
Complex Setup & Debug
High number of Mgmt
nodes
http://docs.openstack.org/developer/nova/support-matrix.html
50
3.3 : Private Cloud : System Center
Offering Value
Proposition
Languages Weakness
Customers
History (Core Strength) When to Recommend?
Compute VMs (under Windows Server)
DB (R-DBMS) -
Storage ReFS
Networking Traditional
Monitoring, Ops SCCM
Data Management -
Log SCCM Plugins
Mgmt Console SCCM
Identity Azure-AD, AD, Dynamic Access Contrl
Hypervisor Hyper-V
API Comprehensive SDK
Popular in Enterprise IT
Microsoft Eco-system
Java GO
JS/Node PHP
Python Ruby
.NET C++
With R12 Windows, Microsoft offered IT an easy way to host a private cloud with
the tools like SCCM – IT knows and loves these tools.
Defacto Recommendation – Cloudification of hosted Windows Servers
(ideally use Azure Pack)
Enterprises X
SMEs X
Startups X
Individuals X
Not a modern cloud
(look at Azure Pack)
Lock-in to Microsoft
Ecosystem
Limits to flexibility &
customizability
51
3.3 Doing a Private Cloud with Win R12 & SCCM
CPU NETWORKING STORAGE
(Win R12 Server)
1Physical Infra
Microsoft defines a private cloud using SCCM giving – pooled resource with dynamic provisioning, elastic scaling, resource metering.
Though this is not a private cloud tool for some, market uptake for this is a lot in traditional enterprises – IT Driven
Compute (Win Server)
Mgmt Console (SCCM)
VPN
Security & Roles (AD)
Load Balancing
Routing
Block Storage (Windows
Virtual FS (Windows)
App Image (Windows)
Database
2Cloud Orchestration
(private cloud tool)
Web App (MS tech) API Definition DB Schema & Migration
3App Development
Metering Failover & Redundancy App-VM Provisioning
4Monitor Operation
Monitoring
ReportingSCCM
SCCM &
Win Server
52
3.4 : Private Cloud : MS Azure Pack
Offering Value
Proposition
Languages Weakness
Customers
History (Core Strength) When to Recommend?
Compute Windows Server (Azure PaaS & IaaS)
DB (R-DBMS) SQL & MySQL Database Connectors
Storage
Networking Virtual N/wing, Service Bus
Monitoring, Ops
Data Management
Log
Mgmt Console Azure like + System Center
Identity Azure-AD, AD
Hypervisor Hyper-V
API ODATA REST API
Free
Open Source
Java GO
JS/Node PHP
Python Ruby
.NET C++
Public Cloud like tools (from Azure Public Cloud to manage SCCM + Win Server
Best of Microsoft Public and Private Cloud from the last few years.
Multi-tenancy – allowing the private cloud to be leased by multiple customers
(incase the enterprise wants to become a SaaS provider)
Defacto Recommendation – Cloudification of hosted Windows Servers
(ideally use Azure Pack)
Enterprises X
SMEs X
Startups X
Individuals X
Lock-in to Microsoft Eco-
system
Limits to flexibility &
customizability
Ref : https://www.microsoft.com/en-in/cloud-platform/windows-azure-pack
53
3.4 How does Azure-Pack differ from Win R12 & SCCM
CPU NETWORKING STORAGE
(Win R12 Server)
1Physical Infra
With AzurePack, Private Cloud gets a lot of added features –PaaS, Tenant Mgmt, ServiceBus.
Compute (IaaS/PaaS)
Mgmt Console (SCCM)
VPN
Security & Roles (AD)
Load Balancing
Routing
Block Storage (Windows
Virtual FS (Windows)
App Image (Windows)
Database
2Cloud Orchestration
(private cloud tool)
Web App (MS tech) API Definition DB Schema & Migration
3App Development
Metering Failover & Redundancy App-VM Provisioning
4Monitor Operation
Monitoring
ReportingAzure Pack
Azure Pack
SCCM &
Win Server
Private Cloud Tool - responsibility
Application Writer - responsibility
54
3.5 : Private Cloud : Apache Cloudstack
Offering Value
Proposition
Languages Weakness
Customers
History (Core Strength) When to Recommend?
Compute Presentation writer does not know
DB (R-DBMS) Presentation writer does not know
Storage Presentation writer does not know
Networking Presentation writer does not know
Monitoring, Ops Presentation writer does not know
Data Management Presentation writer does not know
Log Presentation writer does not know
Mgmt Console Presentation writer does not know
Identity Presentation writer does not know
Hypervisor KVM, Xen, VmWare
API REST (own + AWS) + Ruby/Python Lib
Free
Open Source
Relatively easier to use
among Open source
Java GO
JS/Node PHP
Python Ruby
.NET C++
Any : Server Virtualized
Started in 2008, acquired by Citrix, opensourced as Apache Cloudstack – 2011-12
Easy to install, Good Web UI
Niche Recommendation : Low cost Vs VmWare – simpler than open stack.
(sort of middle ground)
Enterprises X
SMEs X
Startups X
Individuals X
Marketshare / Community
more with OpenStack
Disclaimer: Limited experience on private cloud with Cloudstack
55
3 Private Cloud : Marketshare
Hard to tell marketshare (as its private cloud): Best we can guess market pulse from surveys (one below from RightScale)
Note: A Bare Metal Cloud – App Writer deploys apps on physical servers without using any private cloud tool (perfectly possible). App Writer invests in his own tools as required.
56
3. Which Private Cloud? Which Private Cloud?
Q : Migrating on Prem
to Cloud ?
Vm
Ware
Azure
+
SCCM
Q : IT skilled in
SCCM/VmWare ?
VmWare
Azure
or
SCCM
Q : Are we large and
muli-tenanted ?
NO
Open
Stack
YES
(community)
Cloud
Stack
YES
(simplicity)
YES
NO
(we are small-medium)
57
Choice #1 : Cloud Hosting
Choice #4: Application Architecture
How do we define the application ?
Monolithic
Micro-services (usually with containers)
Serverless (FaaS paradigm)
58
4. Application Architecture
 Patterns are a widely used concept in computer science to describe good solutions to reoccurring
problems in an abstract form.
 For Cloud Application Architecture, we have 3 high level design patterns
Monolithic Micro-services Serverless
59
4.1 Monolithic Architecture
Binary (executable) Single (all modules compiled into one large binary)
DB Inter-connected (all tables kept in a single relational DB)
Scaling Horizontal (whole app scales with load, add more nodes)
Intermodule comms Function Calling (directly call functions between modules)
TRAITS
Typical Online Ordering Site.
Identity
& Auth
Products
Web Portal Analytics
Billing & Order
Mgmt
Load
Balancer
Router
Clients
Clients
Data
base
60
4.2 Micro-Services Architecture
Binary (executable) Multiple (all modules [aka micro-services] compiled & deployed separately)
DB Separated (each micro-service has its own data, no relationship with other’s data)
Scaling Vertical (loaded micro-services will be scaled and allocated more resources)
Intermodule comms Defined HTTP or Messaging API (web or message Q based formalized calls)
TRAITS
Identity Mgmt
+ Authentication
Products
User Settings
Analytics
Billing & Order
Mgmt
Load
Balancer
Router
VM
VM
VM
VM
VM
Clients
Clients
DB
DB
DB
DB
DB
61
4.2 Micro-Services Architecture (with Containers)
Binary (executable) Multiple (all modules [aka micro-services] compiled & deployed separately)
DB Separated (each micro-service has its own data, no relationship with other’s data)
Scaling Vertical (loaded micro-services will be scaled and replicated)
Intermodule comms Defined HTTP or Messaging API (web or message Q based formalized calls)
MULTIPLE MICRO-SERVICES ON ONE VM (smaller micro-services can be deployed on a single VM)
SAME TRAITS
(ONE DEVOPS ADDITION)
Identity Mgmt
+ Authentication
Products
User Settings
Analytics
Billing & Order
Mgmt
Load
Balancer
Router
VM
VM
VM
Clients
Clients
DB
DB
DB
DB
DB
Contnr
Contnr
Contnr
Contnr
Contnr
Contnr VM
Contnr VM
62
4.3 Server-less Architecture
Identity Mgmt
+ Authentication
Products
User Settings
Analytics
Billing & Order
Mgmt
Load
Balancer
Router
Clients
Clients
DB
DB
DB
DB
Binary (executable) Multiple (all code is in form of reactive functions - executed on a virtual runtime)
- Certain Cloud Platforms give functions (limited time)
DB Separated or Relational (functions should separate data / but not mandatory)
Scaling Vertical (scale individual as per needs)
Intermodule comms Defined HTTP or Messaging API (web or message Q based formalized calls)
TRAITS
There is no VM, hence Server-less
Compute is ON DEMAND
63
4. Cloud Architecture Options
SHORT IDEA ONE LARGE BINARY MULTIPLE SMALLER BINARIES SMALL FUNCTIONS (no VM)
What it means? • Traditional Web Arch
• Single large app
• Relational DB Design
• Split into small modules
• Multiple Binaries
• Split DB Design
• Split into multiple
request/response functions
• API Driven Design
Code Effort Low Medium Low
Devops Effort Low High Low
Advantage • Quick Execution
• Simple Architecture
• Resilience to complete failure
• Clean & Small components
• Easy to split into teams
• Efficient elastic scaling
• Resilience to complete failure
• Quick Execution & Least Effort
• Hardly any devops effort
• Super-easy elastic scaling
Disadvantage • Hard for project newbees
• Hard to split work between
multiple teams
• Horizontal scaling is wasteful in
resource terms
• Complex Architecture
• Need experience to get it right
• Costly in terms of dev effort for
small projects
• Works only for Event/Driven
Projects
• Lot of limitations depending on
FaaS Provider
• Classified : Experimental
Monolithic
(yesterday)
Micro-services
(today)
Serverless
(tomorrow ?)
64
4. Monolith – When server is down
If single server (monolith) is rendering this whole page & sourceing data,
When the monolith is down, whole page is down. But, its simple to implement 
65
4. Micro-services : Breakdown the data on the page
Lets try to split up this site into individual data – for micro-services.
66
4. Micro-services –backend into smaller services
Each Micro-service has
1. Data
2. API
Advertisement Micro-service
Advertisement
Micro-service
Scores
Micro-service
Content
Micro-service
Content
Micro-service
User Context Micro-service
Search MS Identity MS
67
4. Micro-services : When a Micro-service is down
If micro-services are rendering this whole page, data is fetched from different micro-services.
Most folks don’t even notice the difference – unless really wanting to use the feature
Scores
Micro-service is
up/down
68
4. Micro-services Vs Monolith Complexity
Advertisement Micro-service
Advertisement
Micro-service
Scores
Micro-service
Content
Micro-service
Content
Micro-service
User Context Micro-service
Search MS Identity MS
Micro-services increase
complexity in
1. API design,
2. DB transactions
3. Deployment
Benefit:
1. Scaling Teams
2. Scaling Performance
3. Resilience to Failure
69
Choice # 4. Application Architecture
Which Architecture ?
Q : Is the project
completely Event Driven
?
Micro
services
Server
less
Q: Large Project?
Or
Spread Teams?
NO
YES
(community)
Mono
lithic
NO
YES
70
Choice #1 : Cloud Hosting
Choice #5: Backend (Runtime)
In which eco-system do we develop our app ?
 PHP
 Java
 Ruby
 ASP.NET
 Node.js
 Golang
71
5. BackEnd & FrontEnd
Clients
Clients
HTML
CSS
Java Script
Mobile/Desktop App
Load
Balancer
Router
Front End
Application Code
App Server
Framework
Language Runtime
Database
Back End
72
5. What is a backend (runtime) ?
 Lets get back to out definition:
 “An Internet-based computing environment providing shared computation resources and data to computers and other devices on
demand.”
 Typically for most web, mobile apps, the cloud runs
A. Application - Business Logic / Code
B. Application - Server
C. Application - Framework
D. Application – Dependencies
E. Application - Object Relation Mapper to Database
F. Database
 BLUE elements – leverage existing 3rd party components
 ORANGE element – need to build ourselves as app developers
73
5 Backend (runtime) choice
A
Language
Write Code in?
B
Web Server
Process
running your
app
C
Framework
App
Scaffolding
D
ORM
DB to App
Mapping
E
Your
Application
Design
Patterns &
Logic
Choosing one – limits the choice of the others
74
5. Backend – Select One Selects All
LANGUAGE SERVER
FRAMEWORK
& MODULES
Language
Eco-system
When you select a language – you are committing to the whole eco-system
75
5.A Backend (Language)
Language
Every one knows what this is 
Each language is a specification to
formulate your code in.
There are a few considerations when
choosing the languages
1. Compiled Code vs Interpreted Code
2. Static vs Dynamic Typing
It usually takes a developer a bit of
learning and unlearning to move from
one category to another.
76
5.B Application Frameworks
Framework
A Framework is the base scaffolding on
which your app is built on.
It comes with
• Base code (everyone needs)
• Design Patterns
• Repository of helper modules
Each language has a set of
app-frameworks to choose from.
FaaS/PaaS also provide a Framework
77
5.C Application Server
Application Server
Application server serves the clients
It comes with
• Process HTTP/other protocols
• Data Routing (URL to resource map)
• Spawns threads for dynamic requests
Each language has a set of
app-servers to choose from.
FaaS/PaaS also provide a App Server
Application Server is process running on your
VM/Container.
Java Glassfish, Wildfly, Tomcat, JOnS, Weblogic, Google App Engine
Rails Passenger, Unicorn, Thin, Puma
Node.js Google V8 Engine (Connect & Express)
.NET IIS, Mono, Base4, TNAPS
Python CherryPy, Gunicorn, Tornado, uWSGI, Twisted Web
PHP Zend Server, appserver.io, Quercus, PHP-FPM
GO Enduro/X
78
5.D 3rd Party Module Repository
3rd Party Module Support
Power of an eco-system is to pick
libraries that accelerate the project
These libraries can be picked from a
central repository.
Server languages are rated on its library
eco-system. More libraries – less work
Ref: http://www.modulecounts.com/
Note: Maven double counts some modules
However, Maven, nuget have been quality modules.
npm has the widest repo, but you need to hunt stable and supported modues
Java Maven
Rails Ruby Gems
Node.js NPM
.NET Nuget
Python PyPI
PHP Packagist
GO Go Doc
Perl CPAN
79
5.E Object Relationship Mapper – Language to DB
Object Relationship Mapper
Translates Database objects to
Language Objects – without writing
irritating code.
This is an optional item
Java Hibernate, EclipseLink, JPA, MyBatis, jOOQ, TopLink
Rails ActiveRecord, DataMapper
Node.js Wetland
asp.NET ADO.net
Python Django-ORM, SQLAlchemy, Storm, web2py
PHP All frameworks come with own ORM
GO gorm, xorm, gorp
80
5. Detailed Eco-system Analysis next
You could skip next 10 slides – at end of section #5 for recommendations, if too detailed for you
81
5.1 Backend : PHP
Offering (Spider Chart) Strengths Famous Sites Weakness
Nuances
When to use Recommendation
Facebook
Claim to fame : SPEED OF DEVELOPMENT for EASY SITES, Community
Most simple sites on Web on PHP.
Most Websites in the
world written in PHP
Easy to master, start with
Development Speed
Free Community Modules
Engg Availability – high
LAMP stack was the web
standard for sometime
Code Organization
Performance
Design Patterns
Code imported as source
Discipline needed to
secure code
Standardized package
repository just came in
Memory Mgmt
No Multithreading
Trending Down
PHP License. (free)
Runtime : Scripted
Best Fwks: Laravel
Born in : 1995
Domains : Informative & Consumer Websites
Teams: Small Teams
When : Super-Quick Development needed
Project Size : Small to medium
0
1
2
3
4
5
Age
Skill Availability
Development Speed
Package Repository
CostPerformance
Tools Support
Easy to Secure
Maintainability
PHP
28
Website Leader
82
5.1 PHP Frameworks Trends
Reco
1
Laravel
83
5.2 Backend : Java
Offering (Spider Chart) Strengths Famous Sites Weakness
Nuances
When to use Recommendation
Claim to Fame : ENTERPRISE, large-long running projects, engg availability
Enterprise Leader
Performance
Large Community
Open Source
Free Community Modules
Known Design Patterns
Lots of Expertise available
Easier to Secure
More code to be written
for same work
Super-Strong Typing is a
bit old school now
Useful for large – long
running projects
Slower Development
Google
Amazon
Ebay
LinkedIn
Domains : Enterprize
Teams: Large Teams
When : Enterprise Software, Security, Distributed Teams, CPU intensive work
Project Size : Medium to Large
(free & paid options)
Runtime : Compiled (JVM)
Best Fwks: Spring
Born in : 199438
0
1
2
3
4
5
Age
Skill Availability
Development Speed
Package Repository
CostPerformance
Tools Support
Easy to Secure
Maintainability
Java
Enterprise Leader
84
5.2 Java Frameworks Trends
Reco
1
Java Spring
85
5.3 Backend : Ruby
Offering (Spider Chart) Strengths Famous Sites Weakness
Nuances
When to use Recommendation
Github
AirBnB
Slideshare
free (MIT License)
(tools paid like good IDEs)
Runtime : Scripted
Best Fwks: Rails
Born in : 2004
Web Dev Leader
Less code for work done
Awesome Gems, modules
Opinionated – defaults
makes config & setup easy
Speed of development
Maintainable – defined
code structure
Database Migration –
easiest across frameworks
Performance vs compiled
and also due to rails stack
Needs more experience to
debug complex bugs due
to layer in rails
Harder to modify base
assumptions – due to it
being opinionated
Need experience to
optimize rails
Domains : Startups
Teams: Small-Medium Teams
When : Rapid Web Development, Proof of Concepts, First version of Product
Project Size : Small to Medium
Claim to Fame : RAPID WEB DEVELOPMENT
Interesting Read from the Hacker who made Ruby on Rails : https://m.signalvnoise.com/the-day-i-became-a-millionaire-55d7dc4d8293#.ge96bqjl4
31
0
1
2
3
4
5
Age
Skill Availability
Development Speed
Package Repository
CostPerformance
Tools Support
Easy to Secure
Maintainability
Ruby
Website Leader
86
5.3 Ruby Frameworks
Reco
1
Rails
87
5.4 Backend : Python
Offering (Spider Chart) Strengths Famous Sites Weakness
Nuances
When to use Recommendation
Pinterest
free
Runtime : Scripted
Best Fwks: Django
Born in : 1991
Speed of Development
Less code for work done
Code Readability
LAMP stack was the web
standard for sometime
Performance vs compiled
Maintainable code needs
more experienced hands
Quality Engg Availability
(a lot python devs don’t
have web development
expertise – sys admins)
Domains : Content Management, System Administration, Python on PaaS
Teams: Niche framework now (Ruby solves in same space has more followers)
When : Rapid Development, Code Readability
Project Size : Small to Medium
Claim to Fame : Quick Web Development
26
0
1
2
3
4
5
Age
Skill Availability
Development Speed
Package Repository
CostPerformance
Tools Support
Easy to Secure
Maintainability
Python
88
5.4 Python Frameworks
Reco
1
Python
Django – easiest to start and most popular
Tornado – high volume traffic
Pyramid – may give most flexibility
89
5.5 Backend : ASP.NET (C#, VB.Net or Python)
Offering (Spider Chart) Strengths Famous Sites Weakness
Nuances
When to use Recommendation
Bing
MSN
Free (but tools paid)
Runtime : Compiled (CLI)
Best Fwks: asp.net 
Born in : 2002
Microsoft Ecosystem
Code Maintainability
Enterprise expertise
Performance
Security
Design Patterns
Vast structured libraries
Tools (IDE) are pricier
Lock in to Microsoft
Enterprise Classification
Less Vibrant and
supportive open source
community
Hosting of Windows
Servers is pricier
Complex than others
Domains : Enterprise
Teams: Large Teams
When : Microsoft Products Integration, Azure or VmWare
Project Size : Large
Claim to Fame : Microsoft Eco-system
30
Don’t reject it just because it comes from Microsoft
Asp.net is a framework. Hence, its not an apples to apples comparison. Languages supported are C#, VB.Net, Python. However, it’s a specialized eco-system
0
1
2
3
4
5
Age
Skill Availability
Development Speed
Package Repository
CostPerformance
Tools Support
Easy to Secure
Maintainability
asp.net
Enterprise Incumbent
90
5.6 Backend : node.js
Offering (Spider Chart) Strengths Famous Sites Weakness
Nuances
When to use Recommendation
Medium
Uber
Free
Runtime : V8 Engine
Best Fwks: Express.js
Born in : 2009
Fullstack using Javascript
Large set of modules
Performance
Do more for less code
Free
Eco-system
Heavy I/O intensive apps
Same code can run on
both client & server
Web sockets – well
integrated into design
Maintainability harder –
no real design patterns.
Transfer of knowledge
Error handling
Memory mgmt. –
performance bursts
NPM module stability
Secure module usage
needs experiene
Domains : IoT, Gaming
Teams: Small Teams
When : Interactive Apps, Realtime or Large I/O, Proof of Concepts (POCs)
Project Size : Small to Medium
Claim to Fame : One Dev (full stack development)
Great for Input/Output intensive app
33
Challenger - Web, IoT, Gaming, POCs
91
5.7 Backend : Golang
Offering (Spider Chart) Strengths Famous Sites Weakness
Nuances
When to use Recommendation
Some parts of Google
Backend
Free
Runtime : Compiled
Best Fwks:
Born in : 2007
High Performance - Scale
Concurrency
Mature for its age
C/C++ like
CPU utlization
Easy to learn
Package Eco-system weak
Expertise
Community
Domains : High Performance
Teams: Small Teams
When : High Performance Apps
Project Size : Any
Claim to Fame : High Performance & Compute Requirements , Easy to learn
24
0
1
2
3
4
5
Age
Skill Availability
Development Speed
Package Repository
CostPerformance
Tools Support
Easy to Secure
Maintainability
go
Challenger - High Performance
92
5. Backend : How to choose ?
Lack of Resource Expertise : Is the Top Challenge with Cloud Maturity.
Ref: Right scale state of the Cloud https://www.rightscale.com/lp/state-of-the-cloud
93
5. Backend : How to choose ?
Job Postings : Your Technology Bet is not receding ? Check trends on indeed.com / github.com
94
5B. Programming Pulse (Stackoverflow & Github)
Rankings
Javascript (partly node.js)
Java (including desktop)
PHP (only web – wow)
Python (inc sys-admin)
C# (including desktop)
Ruby (only web)
GO (only web)
Courtesy : http://redmonk.com/sogrady/category/programming-languages/
95
5B. Expertise Trends
Industry Job Trends
Java, C#, Python – Tier #1 (leaders)
Rails, PHP, asp.net – Tier #2 (steady)
Node.js, Golang – Tier #3
(trending up)
Courtesy : Indeed.com & Google Trends
Some Java, C#, Python – includes non-web development. Hence take these with a pinch of salt. 
96
5B. Trends (Growing or Receding)
Receding
PHP
Steady - Growing
Ruby, Python, C#
Growing
Java, Node.js, Go
Not too sure about Python
97
5. Backend : How to choose ?
Knowledge from previous slides
98
5.C. Backend : How to choose right tool ?
Area of Work Recommended Eco-system Why?
Enterprise (Generic) Java Maintainability, Design Patterns, Security
Enterprise (Microsoft) Asp.net Microsoft SaaS - Library support and integration
IoT Node.js High I/O
High Load (AR) Go Parallelism and High Performance
Gaming Node.js High I/O (bidirectional), interactivity
Website Ruby Rapid Development, Maintainable
Website (sometimes) PHP When you see the right module available for pickup
99
Choice #1 : Cloud Hosting
Choice #6: Frontend (Web development)
In which eco-system do we develop our app ?
 HTML
 CSS
 Java Script
100
6. BackEnd & FrontEnd
Clients
Clients
HTML
CSS
Java Script
Mobile/Desktop App
Load
Balancer
Router
Front End
Application Code
App Server
Framework
Language Runtime
Database
Back End
Directly accessible to
the end user
Not Directly accessible to
the end user, but
performs a function for
him
101
6. Server Side Rendering
Front End
Browser
Back End
Server
HTML (data)
Clients Browser
Server creates HTML with data and formatting. Spoon feeds the Front End.
102
6. Client Side Rendering
Front End
Browser
Back End
Server
HTML
Clients Browser
Server sends static resources (HTML/CSS/Javascript)
Client fetches data using API to fill into DOM.
CSS
Javascript
Data
103
6. Server Vs Client Side Rendering
SHORT IDEA SERVER SENDS HTML with DATA CLIENT JS FETCHES DATA
Advantage • Search engines can index your page
• Usually simpler
• Easier to secure
• Partial content changes – renders faster
Disadvantage • Each click is a new page load • Browser JS Compatibility Issues
Latency • End-to-end latency is lower • Initial page slower
• Subsequent pages faster
Use For • Read Only Web
• Wikipedia, ESPN, CNN
• Interactive Web
• Gmail, Facebook, Office 365
Programming Environments • HTML + Data assimilated using backend
framework from PHP, Rails, Java (JSF),
Python, asp.net etc.
• Java Script (Client Side)
Server Side Client Side
Cloud is used primarily for Interactive Web – hence some Client Side Rendering is always there.
In today’s day & age, a combination of client + server side rendering is usually done.
104
6. Front End - Basic Building Blocks
HTML & XHTML
Bootstrap, Foundation,
Semantic UI, Materialize
JQuery, Angular, React
Render
Data
Lets add
some Style
Add some
behavior
HTML
CSS
Java Script
1
2
3
105
6.2 CSS Frameworks – What do we get with it?
Reset CSS - short, often minified set of CSS rules (theme)
- resets the styling of all HTML elements to a consistent baseline for your site.
Responsive Grid - Grid layout to auto-size space as per mobile, tablet, desktop resolutions.
Web Typography - Fonts
Icons - Sprites and Standard icon support
Styling - Styling for tooltips, buttons, elements of forms etc.
Extra GUI Elements - Extra elements to make richer UI – accordions, breadcrumbs, tabs etc
106
6.2 CSS Frameworks – What should you look for?
1. Community - how much is the framework in use.
2. Responsiveness - work for mobile, TV, Desktops etc
3. Component Richness - tables, buttons, checkboxes etc.
4. Easy of Customization- to be able to retheme the defaults
5. File Sizes - size of the framework
107
6.2. CSS Framework Options
Backing Twitter Google
Popularity on GitHub
Advantage • Community
• Revolutionary Web Framework
• Very Stable
• Tons of Components with API
• Easy to write
• Full Material Design
• Easy to write
• Mobile First UI
Disadvantage • No Material Design Support • No Material Design support
• No Angular.js support
• Limited UI Components
• UI Components consume too
much space
Reco • Reco : just use this  • Reco : Mobile Centric Apps
(with focus on Android)
Bootstrap Semantic UI Angular Material
108
6.2 CSS: What is this Material Design we keep hearing ?
 Google concept : how apps for Android should look
 Set of Guidelines and References for UI Design
 Adhering to Guidelines, will make your app look like any other app on the OS.
 Especially useful – where you want to make your app look like any other – Mobile Oses
 Designing your own UI guidelines has costs.
 You can leverage Material Design to do it for you. Makes life easy.
 If what works for everyone works for you “Material Design”
Note : There is some other jazz around, Material Design being like pen and paper, which I never quite understood.
109
6.C Java Script Frameworks
Classification Library Framework Library
Popularity
Advantage • Community
• Revolutionary Web Framework
• Very Stable
• Tons of Components with API
• Easy to write
• Opinionated set of stuff
• Full Material Design
• Easy to write
Disadvantage • No Material Design Support • No Material Design support
• No Angular.js support
• Limited UI Components
• UI Components consume too
much space
Trend • Decline • Leader & Growing • Growing
110
6.C. Java Script Race
Angular & React are the two libraries trending up – all others are flat or trending down.
MVVC/MVC Frameworks
DOM to REST API Linkage
2010-11
Best of existing MVC Frameworks (from Backbone etc)
+ Declarative Programming,
+ Custom Modules, + Dependency Injection
+ Google Branding
2010
+ No MVC Simple View Library
+ Components with Code + UI
+ Virtual DOM – super performance
+ Facebook Branding
2013
Java Script Library
Manually Change DOM
AJAX, Interactive Websites
2006
6.C. Client Side Java Script Framework History
112
6.C. Java Script Story (JQuery)
 JQuery Library –
 (post 2006) : All new sites moved from plain Java Script to JQuery
 First proper DOM manipulation library
 JQuery allows your code to interact with the DOM elements directly.
 As app size increases,
 No way to write modularized code – it becomes a spaghetti.
 Lose track of code, for medium to complex apps
113
6.C. Java Script Story (AngularJS)
 MVC Architecture : AngularJS Framework
 (post 2011) Most new sites are written with AngularJS
 A complete Framework not only a library
 Brought some structure to code – (MVC – model, view & controller)
 Dependency Injection
 Two way data binding – without writing much code.
 (info can flow from JS to HTML & vice-versa)
 It makes complex things in JQuery very simple & structured
114
6.C. Java Script Story (ReactJS)
 V Component Architecture : ReactJS Library
 (post 2014) Most new sites being written with ReactJS
 New Simplified Structure –
 how you design UX is how you write code (hierarchy of components)
 Simpler than Angular, uses JSX
 Have a page of components, made of sub-components. (HTML/CSS + JS)
 Virtual DOM – Improved Performance
 if a user is viewing a list of 100 items rendered with React, and he or she changes the third one down
somehow, only that item gets rerendered, leaving the other 99 items unchanged.
115
6.C. Angular Vs React Direct Comparison
Attribute AngularJS Angular 2 React
Author Google Google Facebook
Language Javascript/HTML Typescript JSX (extended Java Script)
Size 143K 764K 151K
DOM Regular DOM Regular DOM Virtual DOM
Learning Curve High Medium Low
Packaging Weak Medium Strong
Abstraction Weak Strong Strong
Debugging General Good HTML / Bad JS Good JS/Good HTML Good JS / Bad HTML
Debug Line NO No No Yes
Unclosed Tag Mentioned? No No Yes
Fails When? Runtime Runtime Compile-Time
Binding 2 Way 2 Way Uni-Directional
Templating In HTML In TypeScript Files In JSX Files
Component Model Weak Strong Medium
Building Mobile? Ionic Framework Ionic Framework React Native
MVC Yes Yes View Layer Only
Ref : https://www.pluralsight.com/guides/front-end-javascript/angular-vs-react-a-side-by-side-comparison
116
6.C. Reco : React.js
Use : React.js for new projects
Unless: Wanting to use MEAN Stack
MEAN = Mongo, Express.js, Angular, Node
117
Choice #1 : Cloud Hosting
Choice #7: Database Choice
Which DB would you choose ?
 Relational R-DBMS (Oracle, MySQL etc)
 NoSQL (Mongo, Cassandra etc)
 Data Warehouse (Redshift etc)
118
7. A Backend DB of today looks like
A backend of today has
(0-1) SQLs
(0-1) “Not Only SQL” – NoSQL players
(0-n) “Big Data”.
It’s a potpourri of what works best for which datasets.
Data
Warehouse
Usually 1
Usually 1
Usually 0-n
119
7.1 Relational model of Database
1. Relations : Organize data into tables (or “relations”) of columns or rows
2. Relationships : Relationships are a logical connection between tables
The most important concept is that a relational database has “Relations”
- Meaning data is organized in TABLES
Tuple
Attribute
Relation
120
7.2 R-DBMS Popularity
Marketshare 25% 5% 29% 23%
Most popular open
source R-DBMS
Most advanced open
source from SQL
perspective
Most advanced
paid R-DBMS
An Advanced R-DBMS
from Microsoft
Cost $ $ $$$$ $$$$
When to use Most cases,
Easy to setup / configure
Good for high read loads
Niche
SQL compliance
Less Money
Harder to setup
Heavy Usage cases
Great Tools
Have money
Using Oracle SaaS
Hard to setup/configure
Niche
Microsoft Eco-system
Have Money
Licensing GPL v2 BSD Proprietary Proprietary
Above choices are available for R-DBMS.
The choice are easy when you just choose R-DBMS.
121
7.2 What is NoSQL
1. All data – is not (Relational)
2. All transactions don’t require ACID (immediate consistency)
The above two allow/need a new type of idealogy “NoSQL”
Characteristics of a NoSQL DB
 Schema-less (no fixed relation)
 Simple API
 Eventually consistent (BASE)
 Store huge amounts of data (without slowdown)
122
7.2 Classification of NoSQL Databases
NoSQL DBs
Types Examples
Column DB H-Base, Cassandra, Hypertable, MapR
Document Store MongoDB, Couchbase, CouchDB
Key Value Store DynamoDB, Riak, Redis,
MemcacheDB
Graph DB Neo4j, OrientDB
….. There are a lot more types
A comparison only within a category is fair. As each area solves a different problem in R-DBMSes
123
7.2.1 Choose NoSQL : Column DBs
 Traffic Patterns
 High Write Traffic & High Availability
 Super large data sets – in 100s of terabytes
 Short term inconsistency is fine
 Storage: Store data in columns
 When to use?
 Analytics
 Big Data Science
 Social Networks
 Search Engines
 Denormalize the data 
124
7.2.2 Choose NoSQL : Document DBs
 Traffic Patterns
 Schema-less
 When data is accessed together, Store in a document
 Provide Indexing on document content
 Storage : Store data in Documents (xml or json)
 When to use?
 Web Apps with large reads/writes – no ACID reqs
 Large Metadata of objects
 Apps with JSON structures (ease of implementation)
 Data with structures within structures
 (essentially competes with R-DBMS for storage)
125
7.2.3 Choose : NoSQL – Key Value Pair
 Traffic Patterns
 Simple Reads/Writes
 Lookup using a simple key
 Storage : Hash Table
 When to use?
 Cache implementation
 User Sessions & Shopping Carts
 App Configuration Management
126
7.2.4 Choose : NoSQL – Graph
 Traffic Patterns
 Focuses on Relationships between Entities
 Storage : A Graph
 When to use?
 Niche: Crazy Queries for Business Intelligence
 Niche: Social Networking
 Model real world human interactions with objects, each other places
127
7.C Database Vs Data Warehouse
 Transactional Database (R-DBMS or NoSQL)
 What it does: Transactional systems run efficiently.
 Optimized for : Performing read-write operations of single point transactions.
 Not for : A transactional database doesn’t lend itself to analytics
 aka OLTP (online transaction processing) database – MySQL, PostgreSQL
 Needs 99.99% SLA
 Data Warehouse
 What it does : A large store of data accumulated from a wide range of sources
 Optimized for : Large bulk reads and sequential fewer inserts
 Not for : A data warehouse does not lend itself to being the primary backed of a webapp.
 aka OLAP (online analytical processing) database – AWS Redshift, Azure Data Warehouse
 Weaker SLAs are fine.
Note: Both may or maynot use SQL for accessing data.
128
7. Reco : Databases
Area of Work Major Recommendation Niche Recommendation
Main Transactional Database MySQL Oracle or Microsoft (eco-system)
Database for Sessions, Config, Cache NoSQL Key value – Redis, Riak, Cloud PaaS (like DynamoDB if appl)
Large JSON serializable datasets NoSQL – like Mongo, CouchBase
Large Analytical Datasets (from one source) NoSQL – Cassandra
Analytical Data (from many sources) Data Warehouse –like Oracle, Redshift,
Azure Data Warehouse
129
Choice #1 : Cloud Hosting
Choice #8: Deployment Ops Tool
Which Devops Tool to use ?
 Chef
 Salt
 Puppet
 Kubernetes
 EC2 Container Service
8. Deployments tools? Why do I need one?
A nail can be used without a
hammer, however with a
hammer its easier!
(especially, if you need to
hammer multiple nails)
131
8. What do these tools do?
1. Cloud Orchestration (Container or VMs)
2. Push or Continuous Deployments
3. Configuration Management
4. Networking
5. Credential & Access Security
6. Auto Scaling
7. Wrap Private/Public Cloud APIs (sometimes)
It’s about automating the above.
Write once – run many times.
132
8.1 Cloud Orchestration
1. Create VMs & Containers
2. Give the VM a app to run
3. Connect up the VMs and
Containers
4. Monitor whether VMs &
Containers
133
8.2 Manual Push and Continuous Deployments
1. Command to push an app
binary to a VM/Container
2. When build is done, auto-
deploy app binary to a Container
3. When auto-deploy is done, run
integration test
4. Ability to do Rolling Upgrades
(upgrade one instance at a time)
134
8.3 App Properties Configuration
1. Configure File Server
Paths in Apps
2. Configure Database urls
3. Configure env properties
like feature toggles
Depending on whether it’s
a production, engineering
or test environment,
Configuration properties
change
Tool helps automating
these configurations in
various apps
A feature toggle is a config
flag to enable/disable a
feature on an environment
135
8.4 Networking
1. Service/App Registry
(which services running where & their health)
2. Apps URL orchestration
(map IPs for which app/service is running where –
tell other apps about it)
3. Configure Load balancer, API
Gateways for external internal
routes
136
8.5 Security – API & Credentials
1. Credential & Config
in Apps/Services
(Apps need Credentials / Roles for
access of DB/Files, configure this
without human touch/error is
important)
2. API Configuration
(which api is accessible to the world
vs privately)
As per OWASP – top 10
Configuration Security
issues is the No 5 top
vulnerability in Cloud
Deployments
https://www.owasp.org/ima
ges/f/f8/OWASP_Top_10_-
_2013.pdf
137
8.6 Auto-scaling on load
1. Add/Remove VMs
on load
2. Quota
Management
(don’t allow crazy scaling, scale with
limits)
138
8.7 Platform Independent Orchestration
1. Wrap the
underlying API
(AWS, Azure, Google Cloud, OpenStack
API wrapping allows easier porting
across Cloud Providers)
2. Multi-Cloud
Usage
(though rare in practice, allows for
different services like DB from Azure
and S3 from Amazon to be used –
with VMs in either )
8.1.1 Evolution of Cloud Orchestration
-2007 2007-2014 2014 +
Manually Deploy Era
•Build Server copies wars
•Scale using Cloud Provider Tools
VM Orchestration Era
•Deploy app using multiple VMs
•Horizontal & Vertical Scaling VMs
Containers & Micro-services Era
•Move to Docker / LXC Containers
•Flexibly scale using Containers & VMs
Automation VM Utilization
140
8.1.2 What are the container techs available?
Ofcourse, most use Reason: Support, Eco-system, Tool integration
Others are available too :
A Small Startup, available on github
Microsoft Drawbridge Windows Container option (still a research project)
Cannonicals own usage of LXC (the tech that docker uses too)
141
8.1.3 Containerization Benefits – Less OS Overhead
Machine
#1
OS #1 OS #2 OS #3
App Server
#1
App
Server #2
App
Server #3
Machine #1
Host Operating System
Hypervisor
Guest OS
#1
Guest OS
#2
Guest OS
#3
App Server
#1
App
Server #2
App
Server #3
Machine
#2
Machine
#3
Machine #1
Host Operating System
Container
App Server
#1
App
Server #2
App
Server #3
Hosting without Virtual Machines Hosting with Virtual Machines Hosting with Containers
Optimize – running
multiple apps on a single
machine using VMs
Optimize – utilization of
Infrastructure by doing
function call mapping vs
virtualization
Note: a Hypervisor is a full emulation of a machine, a
Container is not, so, if there are certain functions
that are not mapped by the container, you cannot
access those OS functions.
Works for most apps
Less OS overhead
142
8.1.4 Container Benefits – CPU Utilization
Containers
Micro-service #1
Micro-service #2
Micro-service #3
Without Containers
If we have
2 - geographical regions
2x – redundancy per region
3 - microservices,
we need 12 VMs
- Though we don’t use them to capacity,
we pay, say we use 1/4th capacity
With Containers
If we have
2 - geographical regions
3x – redundancy per region
3 - microservices,
we need 6 VMs
- With maximum utilization of capacity
possible
Better CPU Utlization
8.1.5 Container Other Benefits
Cloud Agnostic
(same image runs on AWS, Azure
App is portable)
Developer Environment
(dev env and the cloud env mimick each other)
Release Cadence
(increases release cadence due to
alignment with CI/CD)
144
8.2 Devops Tools Race
Puppet
• Advantage
• Robustness
• Web UI & Reporting
• Disadvantage
• Learning Curve
• Scaling
•Language : Ruby
Salt
• Advantage
•Tech Depth
•Flexibility
•Easy debug
• Disadvantage
•Basic UI
•Less Windows Support
•Language : Python
Ansible
• Advantage
•Agent less
•Very Easy
• Disadvantage
•Less Powerful
•Language: YAML (easy)
Chef
• Advantage
•Mature Solution
•Large Community
•Window, Linux
Support
• Disadvantage
•Complex
•Learning Curve
•No Push
•Language: Ruby
Kubernetes
• Advantage
• Best in class features
• Community
• Google Backing
• Disadvantage
•Complexity
•Language : Go
DockerSwarm
• Advantage
• Easy to setup/use
• Docker friendly
• Docker like API
• Disadvantage
•Features Vs Docker
Large Apps
(microservices)Simple Apps
Another Tool worth a mention is AWS-ECS – however this is limited to orchestration of containers on AWS.
145
8.2 Public Cloud – Devops Tools
Each Public Cloud Provider gives a variety devops tools.
When to use: If lock-in is fine, these maybe super easy to work with.
For eq: AWS gives Cloudformation, ECS = Elastic Container Service, ECR = Elastic Container Repo, AWS CLI, AWS Data Piplelines for achieving an awesome
amount of devops automation.
146
Choice #1 : Cloud Hosting
Choice #9: QA Automation
Which QA Automation Tool ?
Unit
API
UI
Performance
Pentest & Vulnerabilities
9. Need for QA Automation
1. Regression Testing – doing regression on each release/each new piece of code is expensive
2. Automation – Helps increase productivity
3. Automation – Lesser mishaps and vs manually testing releases
4. Reduce Vulnerabilities
5. Reduce Performance Regressions
6. Maintain 3rd Party developer API contracts
7. Replay – failed QA tests can be replayed by Developers
MOST IMPORTANTLY: CANNOT DO CONTINUOUS INTEGRATION & DELIVERY WITHOUT IT
148
9. Categories of QA Automation
Performance Testing
- Load Testing (every Release)
- Latency Testing (every Release)
Penetration Testing
- Code Scan Utilities (every Checkin)
- Pentest Utils (every Release)
Automated UI Testing
- Automated User Acceptance Tests
- (every deployment)
Unit Testing
- Run Unit tests (every checkin)
- Linked with a code coverage bar
API Testing
- API Testing (every deployment)
Quality increases with each Category of Automation
149
9.1 Unit Testing
Unit testing is very language specific
Language Tools
PHP SimpleTest, PHPUnit
Java JUnit, TestNG, Mockito, PowerMock
Ruby On Rails Rspec, MinTest, Cucumber
Node.js Mocha, Jasmine, Expresso (no longer maintained), Should, NodeUnit, jsUnit
Python Python Unit Tests, unittest, nosetests, pylint
C# C# Tests
Golang testify, ginkgo + gomega
150
9.2 API Testing Tools
API testing is very dependent on the API Spec (REST, SOAP, SAP)
Language Tools
REST API RestAssured, SOAP UI, Jmeter,
Even without tools a standard code can be used to trigger API testing.
151
9.3 QA – UI Automation tools
(some popular ones,, there are a whole lot more – depends on your clients and service)
Selenium
• Website
Testing
•Language : Java
Watir
• Website
Testing
•Language : Ruby
Coded UI
• Windows
Apps
•Language: C#
AutoIT
• Windows
Apps
•Language: Basic iike
scripting
TestPlant
/EggPlant
• Website,
Android
•Language : English like
Scripts
QTP
• Windows
Browser,
Mobile
•Language : VB Script
152
9.4 QA – Performance Testing tools
(some popular ones,, there are a whole lot more – depends on your clients and service)
Jmeter/
Blazemeter
• PRO
•Easy to learn
•Simple Charts
• CONS
• Reporting is limited
HP LoadRunner
• PRO
•Low cost of distributed load
testing
• Good use of generator farm
• CONS
•Cost for enterprise grade
WebLoad
• PRO
•Good Web Tech coverage
• CONS
Borland Silk
Performer
• PRO
•Licensing Model
• CONS
•Cost for enterprise grade
IBM Rational
Performance
Tester
• PRO
•No code knowledge reqd
• CONS
•Cost for enterprise grade
#HTTP #FTP #HTTP #SAP #Oracle #SaaS #HTTP #HTTP #FTP #Email #HTTP #SOA #SAP
153
9.5 Code Vulnerability Tools
Typically integrated with the build environment
Language Tools
Free Java (FindBugs, Xanitizer,) PHP (RIPS)
Commercial KlocWork, Fortify, Coverity Code Advisor,
154
Choice #1 : Cloud Hosting
Choice #10: Analytics Pipeline
It’s a thesis in itself and not covered in this
presentation. We will do another one on it.
155
Choice #1 : Cloud Hosting
Choice #11: Data Routing
Not covered in this presentation
156
Choice #1 : Cloud Hosting
Choice #12: Monitoring & Logging
 Cloud Health Monitoring
 Application Performance Management
 Logging
 Crash Debugging
157
3. Application Logging
1. Cloud Dashboards
4. Excepting & Crash
Monitoring
2. Cloud Application
Performance Monitoring
(CAPM)
12. Monitoring Tools for the Cloud
12.1 Cloud Health Monitoring Dashboards ?
A Cloud Monitoring Dashboard helps monitor health of the cloud
Meaning
1. Compute
2. File Storage
3. Networking & Heartbeats
4. Infrastructure Load & Scaling
5. Exceptions
Note: Some do more than just monitoring
like Prometheus
Sample Prometheus Dashboard (promdash). Courtesy : https://prometheus.io/docs/visualization/promdash/
159
12.1 Cloud Log Dashboards Comparison
A visual dashboard and
query UI
Part of ELK Stack.
Market leader
Use: For Log Based Cloud
Monitoring
A visual dashboard
Graphana +
InfluxDB/Graphite
Use: For beautiful
visualizations & graphs
A Storage backend with
visual dashboard
Promdash + Prometheus
New kid on the block
Use: Good with Docker &
Kubernetes / Alerting too
Old IT and Cloud
Monitoring Dashboard and
backend
Nagios
Old & mature tool
Use: Great scalability
A special case, where its possible to combine one or more of these.
12.2 Cloud Application Performance Monitoring?
A CAPM Tool will help instrument and monitor a cloud application. (not the infrastructure)
Meaning
1. Application Business Logic
2. Application Framework
3. Database
4. Networking Traffic
5. Messaging Systems
Sample NewRelic CAPM Dashboard. Courtesy : www.newrelic.com
12.2 Cloud Application Performance Monitoring?
1. End User App Monitoring
• Passive : Monitoring –Network Traffic (Network port mirroring & agentless)
• Active : Monitoring the internal app API hits – using a agent compiled into the app
• Useful : End User Outages & Latency Monitoring
2. App Runtime Architecture
Discovery & Monitoring
• Mapping & Discovering the different servers/micro-services required for an API hit
• Provides the flow of data and control through the system for each transaction
• Useful : Mapping Components Involved in a transaction
3. Business Transaction
Profiling
• Aggregation of Business Transactions into categories
• Monitor category wise to get aggregated views on usage & performance
• Useful : Optimizing Infrastructure & Code
4. Deep Dive Component
Monitoring
• Monitoring Internal App Monitoring like DB, App, Web, MessageQs, Disk
• Needs instrumentation or agent into the application logic
• Useful : Exception & Performance Bottleneck Debugging
5. Reporting & App Data
Analytics
• Standardized reports and dashboards to present the data
• Only based on the APM Tool
• Useful : Trends, Capacity Planning, Service Level Management
Features of CAPM Tools
162
12.3 Application Logging Tools Comparison
Languages
Java, Scala, .NET, PHP,
Node.js, Ruby and Python
Deploy : SaaS
Pricing: Expensive
Best Overall Tool
Languages
Java, Scala, .NET, PHP
Deploy: SaaS/Onprem
Pricing: Expensive
Best Enterprizy Tool
Languages
Java, .NET, Go, Ruby, PHP,
Node.js, Scala, Python
Deploy: SaaS
Pricing : Cheaper
Most Value for money
Languages
Java, .NET, PHP, Node.js
Deploy : SaaS
Pricing : Expensive
If you can afford it
163
12.3 Application Logging Tools
Basically, it’s a capture of the history of your application.
Use logs for debugging,
Prevent repetition of pain
Basically has 4 components
1. Instrumented Cloud Application –sends the logs
2. Log Collection Service –stores the logs
3. Indexing Service –allows quick query of logs
4. Graphical Interface – easily visualize, query and view logs
164
12.3 Application Logging Tools Comparison
PROs
#Free #Opensource
#DockerImage
#MarketLeader
#PluginEcosystem
CONs
#UIKibanaSetup
#FiltersHardToWrite
#NoAlerts
#MemoryHeavy
When:
Most of the time
PROs
#Simple
#RidiculouslyEasysetup
CONs
#Paid
#NoUI
#NeedsStatHat etc
PROs
#Enterprizy
#EasySetup
CONs
#Paid
When:
Large scale enterprise log
analytics
PROs
#Free #Opensource
#PluginEcosystem
#MemoryFootprint
#Simplicity
CONs
#ComplicatedConfig
PROs
#RealtimeAlerts
#GreatSearch
#EasySetup
#GoodVisualizations
CONs
#Paid
ELK – Stack Trendsetter Logging Service Reco by Amazon/Google
EnterpriseCommon Man
165
12.4 Exception Monitoring Tools
Basically, it’s a capture of the failure traces of your application.
Captures/Groups the
exceptions
Maintains a DB of all the unhandled exceptions that may have occurred in
your application.
1. Captures all software errors
2. Groups them up
3. Allows query and error visualizations
4. Alerts on high error rates
166
12.4 Exception Monitoring Tools Comparison
Ruby, PHP, JavaScript,
.NET, Python, Django,
Node.js, iOS, Swift,
Android, Go, Angular,
Flask, Java
Rackspace Project
Pricing : Super-cheap
(but no free plan,
unlimited is cheap)
JavaScript, Angular,
Node.js, Python, Ruby,
Django, PHP, Clojure, .NET,
Android, iOS, Haskell,
Drupal, Rails
Needs code changes to
work
Pricing : Cheap
JavaScript, Node.js,
Python, Go, PHP, Ruby, C#,
Objective-C, Java
Opensource project that
took off
Pricing: Expensive
Android, Go, iOS, .NET,
Node.js, PHP, Python,
Ruby, Unity.
Pricing : Expensive
.NET, Android, Drupal, Go,
iOS, JavaScript, Node.js,
PHP, Python, Ruby, Unity
Pricing : Expensive
Use atleast 1, does not matter whichever. The competition here is close.
167
Choice #1 : Cloud Hosting
Cloud Stacks after here (just for fun)
https://stackshare.io/stacks#!
168
https://stackshare.io/airbnb/airbnb
169
170
171
https://stackshare.io/stackshare/stackshare
172
References (not credited in slides themselves)
 http://wikibon.com/
 https://stackshare.io/stacks/comparison
 http://www.rightscale.com/
 https://stackshare.io/stackups/bugsnag-vs-rollbar-vs-airbrake-vs-sentry-vs-raygun
 Various Answers : https://www.quora.com/
 Various Answers : http://stackoverflow.com/
 https://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/
 Some Images : https://pixabay.com/
 http://www.softwaretestinghelp.com/best-gui-testing-tools/
© 2015. Mobiliya Technologies. All Rights Reserved Confidential under NDA www.mobiliya.com
Thank You

More Related Content

What's hot

Understanding the Business Value of Migrating to Windows Server 2012
Understanding the Business Value of Migrating to Windows Server 2012Understanding the Business Value of Migrating to Windows Server 2012
Understanding the Business Value of Migrating to Windows Server 2012Microsoft
 
Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (mehek4
 
Informatica Cloud for Oracle
Informatica Cloud for OracleInformatica Cloud for Oracle
Informatica Cloud for OracleDarren Cunningham
 
How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...
How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...
How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...Kai Wähner
 
Defining Your Cloud Strategy
Defining Your Cloud StrategyDefining Your Cloud Strategy
Defining Your Cloud StrategyInternap
 
20181212 AWS NL - Informatica Cloud Overview
20181212 AWS NL - Informatica Cloud Overview20181212 AWS NL - Informatica Cloud Overview
20181212 AWS NL - Informatica Cloud OverviewGreg Rakers
 
The Cloud and You - the 'as a service' disruption you can't ignore
The Cloud and You - the 'as a service' disruption you can't ignoreThe Cloud and You - the 'as a service' disruption you can't ignore
The Cloud and You - the 'as a service' disruption you can't ignoreJohn Head
 
Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (SONU61709
 
5 Pillars of API Management
5 Pillars of API Management5 Pillars of API Management
5 Pillars of API ManagementRich Graham
 
Big Data beyond Apache Hadoop - How to integrate ALL your Data
Big Data beyond Apache Hadoop - How to integrate ALL your DataBig Data beyond Apache Hadoop - How to integrate ALL your Data
Big Data beyond Apache Hadoop - How to integrate ALL your DataKai Wähner
 
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise StrategyAWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise StrategyAmazon Web Services
 
Digital Transformation & Cloud Profitability
Digital Transformation & Cloud ProfitabilityDigital Transformation & Cloud Profitability
Digital Transformation & Cloud ProfitabilityGui Carvalhal
 
Next Steps In Your Digital Transformation
Next Steps In Your Digital TransformationNext Steps In Your Digital Transformation
Next Steps In Your Digital TransformationVMware Tanzu
 
Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...
Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...
Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...Amazon Web Services
 
Next-Generation BPM - How to create intelligent Business Processes thanks to ...
Next-Generation BPM - How to create intelligent Business Processes thanks to ...Next-Generation BPM - How to create intelligent Business Processes thanks to ...
Next-Generation BPM - How to create intelligent Business Processes thanks to ...Kai Wähner
 
Microsoft Azure And The Competitive Cloud Industry - SharePoint Fest
Microsoft Azure And The Competitive Cloud Industry - SharePoint FestMicrosoft Azure And The Competitive Cloud Industry - SharePoint Fest
Microsoft Azure And The Competitive Cloud Industry - SharePoint FestRichard Harbridge
 
SAP HANA Data Center Intelligence Overview
SAP HANA Data Center Intelligence OverviewSAP HANA Data Center Intelligence Overview
SAP HANA Data Center Intelligence OverviewSAP Technology
 
A Quick Guide to the Now and Future of Integration Platforms and iPaaS
A Quick Guide to the Now and Future of Integration Platforms and iPaaSA Quick Guide to the Now and Future of Integration Platforms and iPaaS
A Quick Guide to the Now and Future of Integration Platforms and iPaaSDennis Kelley
 

What's hot (19)

Cloud Digital Transformation
Cloud Digital TransformationCloud Digital Transformation
Cloud Digital Transformation
 
Understanding the Business Value of Migrating to Windows Server 2012
Understanding the Business Value of Migrating to Windows Server 2012Understanding the Business Value of Migrating to Windows Server 2012
Understanding the Business Value of Migrating to Windows Server 2012
 
Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (
 
Informatica Cloud for Oracle
Informatica Cloud for OracleInformatica Cloud for Oracle
Informatica Cloud for Oracle
 
How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...
How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...
How to create intelligent Business Processes thanks to Big Data (BPM, Apache ...
 
Defining Your Cloud Strategy
Defining Your Cloud StrategyDefining Your Cloud Strategy
Defining Your Cloud Strategy
 
20181212 AWS NL - Informatica Cloud Overview
20181212 AWS NL - Informatica Cloud Overview20181212 AWS NL - Informatica Cloud Overview
20181212 AWS NL - Informatica Cloud Overview
 
The Cloud and You - the 'as a service' disruption you can't ignore
The Cloud and You - the 'as a service' disruption you can't ignoreThe Cloud and You - the 'as a service' disruption you can't ignore
The Cloud and You - the 'as a service' disruption you can't ignore
 
Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (Cloud migration plan1. executive summary ( 1 page)2. scope (
Cloud migration plan1. executive summary ( 1 page)2. scope (
 
5 Pillars of API Management
5 Pillars of API Management5 Pillars of API Management
5 Pillars of API Management
 
Big Data beyond Apache Hadoop - How to integrate ALL your Data
Big Data beyond Apache Hadoop - How to integrate ALL your DataBig Data beyond Apache Hadoop - How to integrate ALL your Data
Big Data beyond Apache Hadoop - How to integrate ALL your Data
 
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise StrategyAWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
 
Digital Transformation & Cloud Profitability
Digital Transformation & Cloud ProfitabilityDigital Transformation & Cloud Profitability
Digital Transformation & Cloud Profitability
 
Next Steps In Your Digital Transformation
Next Steps In Your Digital TransformationNext Steps In Your Digital Transformation
Next Steps In Your Digital Transformation
 
Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...
Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...
Big Data Experience Sharing: Building Collaborative Data Analytics Platform -...
 
Next-Generation BPM - How to create intelligent Business Processes thanks to ...
Next-Generation BPM - How to create intelligent Business Processes thanks to ...Next-Generation BPM - How to create intelligent Business Processes thanks to ...
Next-Generation BPM - How to create intelligent Business Processes thanks to ...
 
Microsoft Azure And The Competitive Cloud Industry - SharePoint Fest
Microsoft Azure And The Competitive Cloud Industry - SharePoint FestMicrosoft Azure And The Competitive Cloud Industry - SharePoint Fest
Microsoft Azure And The Competitive Cloud Industry - SharePoint Fest
 
SAP HANA Data Center Intelligence Overview
SAP HANA Data Center Intelligence OverviewSAP HANA Data Center Intelligence Overview
SAP HANA Data Center Intelligence Overview
 
A Quick Guide to the Now and Future of Integration Platforms and iPaaS
A Quick Guide to the Now and Future of Integration Platforms and iPaaSA Quick Guide to the Now and Future of Integration Platforms and iPaaS
A Quick Guide to the Now and Future of Integration Platforms and iPaaS
 

Similar to What is A Cloud Stack in 2017

A Comprehensive Look into the World of Cloud Computing.pdf
A Comprehensive Look into the World of Cloud Computing.pdfA Comprehensive Look into the World of Cloud Computing.pdf
A Comprehensive Look into the World of Cloud Computing.pdfAnil
 
CLOUD COMPUTING.pptx
CLOUD COMPUTING.pptxCLOUD COMPUTING.pptx
CLOUD COMPUTING.pptxSurajThapa79
 
Journey to the Cloud: What I Wish I Knew Before I Started
Journey to the Cloud: What I Wish I Knew Before I Started Journey to the Cloud: What I Wish I Knew Before I Started
Journey to the Cloud: What I Wish I Knew Before I Started Datavail
 
Ibm cloud private and icp for data
Ibm cloud private and icp for dataIbm cloud private and icp for data
Ibm cloud private and icp for dataModusOptimum
 
What are the pros and cons of using cloud applications.pdf
What are the pros and cons of using cloud applications.pdfWhat are the pros and cons of using cloud applications.pdf
What are the pros and cons of using cloud applications.pdfAnil
 
Greg Dixon - 2011 ScanSource POS & Barcoding Partner Conference
Greg Dixon - 2011 ScanSource POS & Barcoding Partner ConferenceGreg Dixon - 2011 ScanSource POS & Barcoding Partner Conference
Greg Dixon - 2011 ScanSource POS & Barcoding Partner ConferenceScanSource, Inc.
 
Cloud computing
Cloud computingCloud computing
Cloud computinggd1410
 
Comparing Cloud-Based Infrastructure Services
Comparing Cloud-Based Infrastructure ServicesComparing Cloud-Based Infrastructure Services
Comparing Cloud-Based Infrastructure ServicesCDW
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudMark Hinkle
 
Cloud presentation for marketing purpose
Cloud presentation for marketing purposeCloud presentation for marketing purpose
Cloud presentation for marketing purposeAsif Anik
 
Cloud presentation for marketing purpose
Cloud presentation for marketing purposeCloud presentation for marketing purpose
Cloud presentation for marketing purposeAsif Anik
 
Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...
Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...
Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...Datavail
 
Big data application using hadoop in cloud [Smart Refrigerator]
Big data application using hadoop in cloud [Smart Refrigerator] Big data application using hadoop in cloud [Smart Refrigerator]
Big data application using hadoop in cloud [Smart Refrigerator] Pushkar Bhandari
 
Journey to the Cloud: What I Wish I Knew Before I Started
 Journey to the Cloud: What I Wish I Knew Before I Started Journey to the Cloud: What I Wish I Knew Before I Started
Journey to the Cloud: What I Wish I Knew Before I StartedDatavail
 
Cloud Computing Architecture Primer
Cloud Computing Architecture PrimerCloud Computing Architecture Primer
Cloud Computing Architecture PrimerIlham Ahmed
 
Accelerate Migration to the Cloud using Data Virtualization (APAC)
Accelerate Migration to the Cloud using Data Virtualization (APAC)Accelerate Migration to the Cloud using Data Virtualization (APAC)
Accelerate Migration to the Cloud using Data Virtualization (APAC)Denodo
 
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - AspawayPartnerWin - #SocialSelling StarterPacks
 
Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017
Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017
Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017Riccardo Romani
 
Application Considerations for Cloud
Application Considerations for CloudApplication Considerations for Cloud
Application Considerations for CloudKyle Brown
 

Similar to What is A Cloud Stack in 2017 (20)

A Comprehensive Look into the World of Cloud Computing.pdf
A Comprehensive Look into the World of Cloud Computing.pdfA Comprehensive Look into the World of Cloud Computing.pdf
A Comprehensive Look into the World of Cloud Computing.pdf
 
CLOUD COMPUTING.pptx
CLOUD COMPUTING.pptxCLOUD COMPUTING.pptx
CLOUD COMPUTING.pptx
 
Journey to the Cloud: What I Wish I Knew Before I Started
Journey to the Cloud: What I Wish I Knew Before I Started Journey to the Cloud: What I Wish I Knew Before I Started
Journey to the Cloud: What I Wish I Knew Before I Started
 
Ibm cloud private and icp for data
Ibm cloud private and icp for dataIbm cloud private and icp for data
Ibm cloud private and icp for data
 
What are the pros and cons of using cloud applications.pdf
What are the pros and cons of using cloud applications.pdfWhat are the pros and cons of using cloud applications.pdf
What are the pros and cons of using cloud applications.pdf
 
Greg Dixon - 2011 ScanSource POS & Barcoding Partner Conference
Greg Dixon - 2011 ScanSource POS & Barcoding Partner ConferenceGreg Dixon - 2011 ScanSource POS & Barcoding Partner Conference
Greg Dixon - 2011 ScanSource POS & Barcoding Partner Conference
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
cloud computing
cloud computingcloud computing
cloud computing
 
Comparing Cloud-Based Infrastructure Services
Comparing Cloud-Based Infrastructure ServicesComparing Cloud-Based Infrastructure Services
Comparing Cloud-Based Infrastructure Services
 
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your CloudLinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
LinuxCon North America 2013: Why Lease When You Can Buy Your Cloud
 
Cloud presentation for marketing purpose
Cloud presentation for marketing purposeCloud presentation for marketing purpose
Cloud presentation for marketing purpose
 
Cloud presentation for marketing purpose
Cloud presentation for marketing purposeCloud presentation for marketing purpose
Cloud presentation for marketing purpose
 
Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...
Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...
Top Considerations When Deciding Between Cloud Apps, Cloud Infrastructure or ...
 
Big data application using hadoop in cloud [Smart Refrigerator]
Big data application using hadoop in cloud [Smart Refrigerator] Big data application using hadoop in cloud [Smart Refrigerator]
Big data application using hadoop in cloud [Smart Refrigerator]
 
Journey to the Cloud: What I Wish I Knew Before I Started
 Journey to the Cloud: What I Wish I Knew Before I Started Journey to the Cloud: What I Wish I Knew Before I Started
Journey to the Cloud: What I Wish I Knew Before I Started
 
Cloud Computing Architecture Primer
Cloud Computing Architecture PrimerCloud Computing Architecture Primer
Cloud Computing Architecture Primer
 
Accelerate Migration to the Cloud using Data Virtualization (APAC)
Accelerate Migration to the Cloud using Data Virtualization (APAC)Accelerate Migration to the Cloud using Data Virtualization (APAC)
Accelerate Migration to the Cloud using Data Virtualization (APAC)
 
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
2014.04.10 - Cloud Hybride, Pourquoi, Comment - Patrice Lagorsse - Aspaway
 
Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017
Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017
Software Defined IT @ Evento SOIEL Roma 6 Aprile 2017
 
Application Considerations for Cloud
Application Considerations for CloudApplication Considerations for Cloud
Application Considerations for Cloud
 

Recently uploaded

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 

Recently uploaded (20)

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 

What is A Cloud Stack in 2017

  • 1. www.mobiliya.com Cloud Stack in 2017 “What is & How to choose a cloud stack ?“ “AN OPINIONATED VIEW” Gaurav Roy, @MobiliYa gaurav-roy-2457635 opengauravroy - Spread the Knowledge, Initiative - Feb 4th 2017
  • 2. 2 Agenda 1. Intro - Cloud Application Stack Options 2. Breath-wise dive into options & how to choose 1. Cloud Hosting 2. Public Cloud 3. Private Cloud 4. Architecture 5. Backend 6. Front End 7. DB - Relational 8. DB – NoSQL 9. Deployment Tools 10. QA Automation 11. Monitoring & Logging Tools
  • 3. 3 What is a Cloud?  Cloud “An Internet-based computing environment providing shared computation resources and data to computers and other devices on demand.”
  • 4. 4 When do you need to choose a Cloud stack?  New web application?  Re-architect parts of an existing application?  For Performance  For Elastic Load Scaling  For Security  For re-usability  For Manageability & Governance
  • 5. 5 Why is this a recurring choice @ Mobiliya?  We do a lot of R&D & Consulting that have Cloud requirements  on Works Areas : Cloud, IoT, AR, Mobility, Analytics  on Domains : Devices, Automotive, Healthcare, Telecom, Finance  Most of projects are from scratch development  A new Project = A new choice
  • 6. 6 6 KNOWING WHEN TO USE WHAT “IS IMPORTANT “ EACH TOOL HAS A PURPOSE AND FITS A BILL!
  • 7. 7 What are the Cloud Options – “Cambrian Sea Slide” 1. Cloud Hosting 2. Public Cloud 3. Private Cloud 4. Architecture 5. Backend 6. Front End 7. DB - Relational 7. DB – NoSQL 8. Deployment Tools 9. QA Automation 10. Analytics 11. Data Routing 12. Monitoring & Logging Monolithic Micro-services Serverless Azure Warehouse Zuul PUBLIC CLOUD PRIVATE CLOUD HYBRID CLOUD Truckload of other options Not covered in this presentation Not covered in presentation
  • 8. 8 What do you need to choose? 1. Cloud Hosting 2. Public Cloud 3. Private Cloud 4. Architecture 5. Backend 6. Front End 7. DB - Relational 7. DB – NoSQL 8. Deployment Tools 9. QA Automation 10. Analytics 11. Data Routing 12. Monitoring & Logging Monolithic Micro-services Serverless Azure Warehouse Zuul PUBLIC CLOUD PRIVATE CLOUD HYBRID CLOUD Monolithic Micro-services Serverless Azure Warehouse https://en.wikipedia.org/wiki/Machine_learning Zuul 12 areas of choices and some more - Choose one or more components in each area. - There are more choice areas in a cloud stack and certainly main more options than depicted in each area.
  • 9. A CHOICE AT A TIME BREAK-UP THE CLOUD. MAKE IT SIMPLER. LOOK AT ONLY SECTION OF INTEREST IN SLIDES AHEAD
  • 10. 10 Choice #1 : Cloud Hosting Choice #1: Cloud Hosting Where are we Hosting the cloud ? [Private] Inside our company [Public] Shared internet data center [Hybrid] Confidential parts private, rest public
  • 11. 11 On the InternetOn Premise Private PublicHybrid Cloud (Private + Public)
  • 12. 12 #1.1 HOSTING: THE “PRIVATE CLOUD”  Drive your PRIVATE Car
  • 13. 13 1.1 Private Cloud : What ?  Deployed within/for a single organization  Multiple known machines acting together as a common system  Monitored using modern Platform Tools. (for downtime & other outages) Just hosting a webserver on prem does not mean it’s a private cloud. On premise network Private Cloud External Clients Internal Clients External Clients
  • 14. 14 #1.2 HOSTING : THE “PUBLIC CLOUD”  Shared PUBLIC Transport
  • 15. 15 1.2 Public Cloud : What ?  Deployed on the internet  Shared infrastructure by multiple apps or organisations.  Standardized interfaces given by Public Cloud Provider  Monitored using advanced Public Cloud Tools. Public Cloud Provider Network Public Cloud (running various apps) Cloud Provider Firewall App#2 Client App#1 Clients
  • 16. 16 #1.3 HOSTING : THE “HYBRID CLOUD”  Park and Ride (use the tool, where it’s useful)
  • 17. 17 1.3 Hybrid Cloud : What ?  Use both Public & Private Cloud  Regulated data in Private Cloud and other data in Public Cloud  Can do customizations in Private Cloud section Public Cloud Provider Network Private Cloud External Clients External Clients Internal Clients Cloud Provider Firewall
  • 18. 18 SHORT IDEA (Infra) YOUR OWN DATA CENTER SHARED DATA CENTER YOUR & SHARED DATA CENTER When to use? • Regulated Data (financial, medical etc) • Gradual increase in Load • Consumer usecases • Bursty Load (Black Friday) • Part regulated part unregulated data • All Weather Load  Cost (operating) 60x (at scale) 150x (at no scale) 100x 150x Devops Effort 100x 20x 100x Code Effort 50x 50x 100x Opportunities Large Enterprises Startups & Large Enterprises Large Enterprises with legacy inhouse servers Strengths Customizability & Control, Data Security Feature rich, Quick setup, standardized API, talent hiring, Scale on the GO Best of both Worlds, Customizable & Scalable Weakness Time & Cost - Build/Operate/Scale 3rd Party provider trust Cost, Technical Complexity 1. Cloud Hosting : A simple compare table Private Cloud Public Cloud Hybrid Cloud
  • 19. 19 Choice #1 : Decision Tree Cloud Hosting ? Q : Private Data? (cannot host outside?) YES : (Note: This needs to be due to some Govt, regulation or financial/medical/competitive reasoning) Private Cloud NO PARTIALLY Public Cloud Q : Do you have low or bursty load ? YES: reco move (less load or bursty) Hybrid Cloud NO : Steady & High Load Q : Is not well funded PROOF OF CONCEPT like funding? YES: Start with public For quick POC (cheaper & easier) NO
  • 20. 20 1. SHORT DECISION (for new apps) Highly Confidential Data Super Large App PRIVATE CLOUD For all Else, there’s PUBLIC CLOUD Large Enterpises would be HYBRID, if looked across org However, Individual Apps or Services are likely to be Either PRIVATE or PUBLIC
  • 21. 21 1. Marketshare : Private Vs Public (2016) Just hosting a webserver on prem does not mean it’s a private cloud. A lot more services on prem, which are not private cloud. Large enterprises prefer Private or Public. Startups – Public. Reason: Features/Costs on PUBLIC cloud are a lot more compelling for quick release. Ref : http://wikibon.com/public-cloud-iaas-is-3-5x-the-size-of-true-private-cloud-adoption/ $25 Billion $7 Billion Private Cloud Public Cloud
  • 22. 22 Choice #2: Public Cloud : Infra Models Cloud Infrastructure Models ? [IaaS] Infrastructure as a service [PaaS] Platform as a service [FaaS] Function as a service [SaaS] Software as a service
  • 23. 23 2. What is IaaS – PaaS – FaaS - SaaS? Functions Data Application Runtime Backend Code OS Virtualization Server Machines Storage Networking Awesome Vizualisation picked from : Ref : http://www.slideshare.net/manuel_silveyra/austin-cf-meetup-20150224/3 PS: We expect Container as a Service term in 2017-18 too, there is a separate section on it later Functions Data Data Runtime Backend Code OS Virtualization Server Machines Storage Networking Function Data Application Runtime Backend Code OS Virtualization Server Machines Storage Networking Functions Data Application Runtime Backend Code OS Virtualization Server Machines Storage Networking Public Cloud Provider - responsibility Application Writer - responsibility Private Cloud Infrastructure (as a service) Platform (as a service) Function (as a service) (serverless arch) Functions Data Application Runtime Backend Code OS Virtualization Server Machines Storage Networking Software (as a service)
  • 24. 24 SHORT IDEA LEASE MACHINES LEASE AN APP RUNTIME LEASE A FUNCTION RUNTIME What it means? Lease Virtual Machines, Storage and Network. Like Leasing a Machines Lease a Runtime to execute code. Like lease a JVM Lease an env that runs functions. Like get an object Code/Devops Effort High Medium Minimal Lock In to Cloud Provider LOW NEAR COMPLETE IMPOSSIBLE TO MOVE Advantage • Flexible in usage • Can Customize • Complete freedom for dev • Semi-flexible in usage • Super-Easy to deploy, scale • Usually has a methodology of code and limited languages supported • Cannot change anything Cost (operating) • 100x • 110x • 200x Cost (development) • 100x • 70x • 10x • Fantastic in some scenarios (new hot dish on the block) 2. Cloud Infra : A simple compare table Infrastructure (as a service) Platform (as a service) Function (as a service)
  • 25. 25 2. Software as a Service  Software as a Service  Whole Software is leased  No deployment, limited/no development  Specialized domain specific software  Configs are available to customize generic software as per org needs.  API are available to read/write data to the Cloud Software. (Hybrid Cloud or extend)  For eq: Office 365, Azure-AD, Sales Force  Choice : “Build (PaaS/IaaS/FaaS) or Lease (SaaS) Software”  We will not cover range of SaaS in this presentation – “Too large an area”
  • 26. 26 Private Cloud Infrastructure (as a service) Platform (as a service) Function (as a service) Software (as a service) Customizability Cost/Time of Development & Maintenance 2. Customizability Vs Cost of Development
  • 27. 27 2. Customizability : How to choose – Cloud as a Service ? 1. GET GOING FAST : You Will be able to get rolling and scale up really fast. 2. SO LONG AS: What works for everyone, works for you. Cannot request many changes in the food 1. SaaS is like McDonald (take it, if it works for you) – simple decision of YES/NO. 2. FaaS, PaaS maybe like going to a Restaurant. 3. Others are like cooking yourself.
  • 28. 28 2. Cloud Infra : How to choose - IaaS or PaaS? B. Do you have legacy code or 3rd Party dependencies ? Or App is not simple – ie. simple app- a DB + business logic + API calls? IaaS PaaS, FaaS YES NO
  • 29. 29 Choice #2 : Type of Cloud choice? Type of Cloud ? Q : Any readymade Sofrware work available ? YES SaaS IaaSPaaS Q : Standard run of mill app (from scratch dev - no legacy code) ? YES Q : Is app completely event driven or API Intensive ? YES FaaS YES NO NO
  • 30. 30 Choice #2.1: Select A Cloud Provider Who do we select ? Tens of Public Cloud Providers AWS, Azure, Google Cloud, Oracle Cloud Rackspace, Heroku, VmWare, CISCO
  • 31. 31 2.1 Leased Components on Public IaaS/PaaS (typical) 1 Compute VMs (IaaS) Runtime (Pass) Runs your apps 2 Database R-DBMS or NoSQL Save data 3 Storage File Storage & Archiving Save large files 4 Networking Routing, VPN Connect up everything 5 Monitoring VM Health, Outages Health Check
  • 32. 32 2.1.1 What do we lease for Public Cloud ? Examples? Compute (VM) Compute (Docker Container Mgmt) Compute (FaaS) Storage (large files) Storage (VM persistent) DB (Relational) DB (NoSQL) DB (Caching) Networking (API Gateway) Networking (Virtual Private N/w) Networking (Load Balancer, Routing) Amazon Web Services EC2 EC2 Container Service Lambda S3, Glacier, Cloud Front Elastic File, Block Storage RDS (MySQL), Redshift DynamoDB Elastic (Memcache/Redis) AWS API Gateway VPC Elastic Load Balancer, Route 53 Microsoft Azure Virtual Machines Azure Container Service, Registry Function, Batch Jobs Blob, File, Data Lake, CDN Disk SQL, Data Warehouse DocumentDB, TableStorage Redis Cache API Management, App Gateway VPN Load Balancer 1 Compute 2 Storage 3 Database 4 Networking Note: Have chosen top two providers but everyone has the same situation. ( in various stages progression )
  • 33. 33 Spoilt for choice ? Among Cloud Providers  Choosing a Cloud Provider is like “Buying a SUV” [lot of options – choose as per your needs and likes] 1. Look at your Usage Cost (each provider has a cost calculator) 2. Check for Marketshare & stability of cloud platform. 3. Check code language support (when using Paas/FaaS) – wrt expertise in your team 4. Each Public Cloud has found a niche. A good tool to use for feature compare : http://cloudcomparison.rightscale.com/
  • 34. 34 2.2.1 : Cloud Provider : AWS Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) Best in Class IaaS (Bare metal) - PaaS - FaaS Best in Class (tied with Azure) SaaS - DB Best in Class (arguably) Analytics Best in Class (tied with Azure) Storage Best in Class (tied with Azure) Networking Best in Class (tied with Azure) Monitoring, Ops Best in Class Value Added : IoT, MSGQs Best in Class (tied with Azure) Best in Class - Offering Market Leader (IaaS) Expertise easy to get Very Reliable Good Support & Training Java Go JS/Node PHP Python Ruby .NET C++ Started the revolution – by leasing internal unused infrastructure capacity IaaS – still remains main selling point Awesome - Value Added services Defacto Recommendation – along with Microsoft Azure (safe bet) Australia X China X India Middle East East Asia X Europe X Russia USA X South America X Enterprises X SMEs X Startups X Individuals X
  • 35. 35 2.2.2 : Cloud Provider : Microsoft Azure Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) Best in Class IaaS (Bare metal) - PaaS WebApps (.Net,Node,Java,PHP) FaaS Best in Class (tied with AWS) SaaS Office 365, Azure-AD etc DB Competitive Analytics Best in Class (tied with AWS) Storage Best in Class (tied with AWS) Networking Best in Class (tied with AWS) Monitoring, Ops Competitive Value Added : IoT, MSGQs Best in Class (tied with AWS) Microsoft Ecosystem Awesome Offerings Great Support SaaS complementary Java GO JS/Node PHP Python Ruby .NET C++ Home Turf - .NET (as PaaS), Diversified to support other eco-systems Works very well for enterprises – (Part – IaaS/PaaS – Part – SaaS) Lot of SaaS Offerings – Dynamics, 365, Azure-AD, Defacto Recommendation – along with AWS (safe bet) Strongly Recommend : When legacy app sections in .NET Strongly Recommend : When integrating with Microsoft SaaS Services Australia X China X India X Middle East East Asia X Europe X Russia USA X South America X Enterprises X SMEs X Startups X Individuals X
  • 36. 36 2.2.3 : Cloud Provider : IBM Bluemix/Softlayer Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) Competitive IaaS (Bare metal) Best in Class PaaS Best in Class (Cloud Foundry) FaaS - SaaS 160 Various Small SaaS Elements DB (R-DBMS) Weaker Analytics Only SaaS (IaaS – Weaker) Storage Competitive Networking Competitive Monitoring, Ops Weaker Value Added : IoT, MSGQs Weaker Private Cloud like IaaS Salesforce, SAP Integration CloudFoundry Ecosystem Java GO JS/Node PHP Python Ruby .NET C++ SoftLayer – acquired by IBM – Bare Metal (IaaS) + Lots of Data Centers IBM – Traditionally strong with Consulting Services, Enterprise Integration Modules CloudFoundry (PaaS) – is a newer addition. (for rapid development) Niche Recommendation – Want Public Cloud (with customization) Niche Recommendation – Want integration modules + strong partner Niche Recommendation – Quick development – CloudFoundry (lock in) Australia X China X India X Middle East East Asia X Europe X Russia USA X South America X Enterprises X SMEs X Startups Individuals
  • 37. 37 2.2.4 : Cloud Provider : Oracle Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) Competitive IaaS (Bare metal) Competitive PaaS Competitive FaaS - SaaS Best in Class DB (R-DBMS) Best in Class Analytics Competitive Storage Competitive Networking Competitive Monitoring, Ops Competitive Value Added : IoT, MSGQs Competitive Great SaaS Portfolio Existing Enterprise Customers and Contracts Supports IaaS, PaaS, SaaS Java GO JS/Node PHP Python Ruby .NET C++ IaaS gives REST APIs Late in Public Cloud. Strong Enterprise connections and Enagements Wanting to keep customers as they move to the Coud Niche Recommendation – Enterprises moving from On Prem to Cloud Niche Recommendation – Enterprises wanting part SaaS / IaaS (build + buy) Australia China India Middle East East Asia X Europe X Russia USA X South America X Enterprises X SMEs Startups Individuals
  • 38. 38 2.2.5 : Cloud Provider : Google Cloud Platform Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) New IaaS (Bare metal) - PaaS Google App Engine(Java,Python) FaaS - SaaS - DB (R-DBMS) Weaker Analytics Competitive Storage Competitive Networking Competitive Monitoring, Ops Weaker Value Added : IoT, MSGQs Very Weak Google Eco-system PaaS – easy to scale Google Brand Java GO JS/Node PHP Python Ruby .NET C++ Launched PaaS – Google App Engine (did not take off – due to lock-in fear) Venturing into IaaS Space Recently. Great for Consumer apps on Google App/Android Eco-system Niche Recommendation – Consumer App Ecosystem – Google Integration Australia China India Middle East East Asia X Europe X Russia USA X South America Enterprises SMEs X Startups X Individuals X
  • 39. 39 2.2.5 : Cloud Provider : Rackspace Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) Competitive IaaS (Bare metal) Competitive PaaS - FaaS - SaaS - DB (R-DBMS) Weaker Analytics Competitive Storage Competitive Networking Competitive Monitoring, Ops Weaker Value Added : IoT, MSGQs Very Weak Mature Cloud platform – quick to Open Stack upgrades Monitoring of App done by Rackspace Provides Architectural, Design Guidance Best in class - support Java GO JS/Node PHP Python Ruby .NET C++ NA: Mainly Infra Launched as IaaS (bare metal) in 2003 Monitoring, Architecture & Management services for Rackspace + other clouds Niche Recommendation – Infant Cloud development org (first cloud project) Niche Recommendation – New to devops & monitoring Australia China India Middle East East Asia X Europe X Russia USA X South America Enterprises SMEs X Startups X Individuals X
  • 40. 40 2.2.7 : Cloud Provider : VmWare Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) Awesome (vSphere) IaaS (Bare metal) - PaaS - FaaS - SaaS - DB (R-DBMS) Weaker Analytics - Storage Weaker Networking - Monitoring, Ops Competitive Value Added : IoT, MSGQs Weak Hybrid Cloud Private (on Public) Horizon (virtual Desktops) Java GO JS/Node PHP Python Ruby .NET C++ NA : As just gives infra Legend in Virtualization. Early in Private Cloud. Late in Public Cloud. Strength – Hybrid – when coupled with vSphere. Dedicated Cloud Offering (nearly private) Niche Recommendation – Wanting Private/Hybrid on Public Cloud Infra (with existing reliance on Windows eco-system – managed by VmWare) Australia X China India Middle East East Asia X Europe X Russia USA X South America Enterprises SMEs X Startups X Individuals X
  • 41. 41 2.2.8 : Cloud Provider : Heroku (Salesforce) Offering Value Proposition Languages Data Centers Customers History (Core Strength) When to Recommend? IaaS (VM) - IaaS (Bare metal) - PaaS Competitive FaaS - SaaS - DB (R-DBMS) Weaker Analytics - Storage Weaker Networking - Monitoring, Ops Competitive Value Added : IoT, MSGQs Weak Rapid App Development Java GO JS/Node PHP Python Ruby .NET C++ PaaS – developed with Ruby Super quick and easy to setup, prototype and write apps Later added support – for some other languages Niche Recommendation – Rapid development of apps, Consumer side Australia China India Middle East East Asia X Europe X Russia USA X South America Enterprises SMEs Startups X Individuals X
  • 42. 42 2. Which Public Cloud? Which Public Cloud? Q : From scratch a new concept (no strings attached) ? AWS Oracle Google Cloud Azure Q : Customer prefers ? AWS (mostly) Azure (mostly) IBM Q : Are we Hybrid ? NO Google (consumer product) Vm Ware Yes (with private with VmWare) Rack space Yes (and also not sure of public Cloud to support) Yes (good devops org & no VmWare Private Cloud) YES Q : Any SaaS available (partly) ? NO YES IBM? YES Oracle YES Microsoft? YES any others? NICHE RECOMMENDATIONSMAINSTREAM Major Factors are always 1. COST  - Use service provider calculator 2. Language Support - (PaaS/FaaS Programming Language) - (Storage, Messaging libraries)
  • 43. 43 2. Public Cloud : Which Public Cloud ? Area of Work Recommended Cloud Provider Why? Most Projects {Defacto} AWS or Azure Eco-system, Features, Support Hybrid Cloud VmWare If Private Cloud –VmWare {largest marketshare} Non-commital on Cloud Rackspace Support other providers, ops and engg support Enterprise (SaaS) Oracle or IBM or Microsoft If SaaS available for part of software Consumer (Google Eco) Google Cloud Platform Google Eco-system
  • 44. 44 IaaS Provider Market Share 31% 24% 14% 5% 4% 2% 2. Public Cloud IaaS : Market Share Above chart as per June-2016. Major options are above. Note: There are others too – making up remaining 20% (like VmWare, Heroku ). https://www.statista.com/statistics/ Cisco, HP-E have discontinued their services, however they support existing customers PaaS (Platform as a Service) : Hard to tell really SaaS (Software as a service) Ever increasing vertical domains. (as cloudification increases) AWS & Azure are so far ahead due to a reason
  • 45. 45 Choice #1 : Cloud Hosting Choice #3: Private Cloud What do we choose for building our Private Cloud ? VmWare OpenStack SCCM & Azure Pack Apache CloudStack
  • 46. 46 3. Steps to a private Cloud 1 2 Connect & Define Cloud - a Private Cloud Tool Buy – Physical Servers, Storage, Networking Deploy & Monitor - a Private Cloud Tool Write Code, DB Schemas 3 4 Buy Physical Infra Orchestrate a Cloud App Development Monitor Operation
  • 47. 47 3. Typical Private Cloud CPU NETWORKING STORAGE Compute (VM etc) Mgmt Nodes / Console VPN Security & Roles Load Balancing Routing Block Storage Virtual File System App Image Mgmt Database 1Physical Infra 2Cloud Orchestration (private cloud tool) Web Application API Definition DB Schema & Migration 3App Development Metering Failover & Redundancy App-VM Provisioning 4Monitor Operation Monitoring Reporting Private Cloud ToolApp Logic/Infra Essentially choice here is which private tool to use – which gives us more Blue Boxes – out of the box.
  • 48. 48 3.1 : Private Cloud : VmWare Offering Value Proposition Languages Weakness Customers History (Core Strength) When to Recommend? Compute vSphere Hypervisor (ESXi- VMs) DB (R-DBMS) - Storage VMFS over vSAN & iSCSI, vBlob Networking NSX, Traditional Switching Monitoring, Ops vRealize Automation, Ops Data Management Replication, Data Protection Log vRealize Log Insight Mgmt Console vCenter Identity - Analytics - API Powershell + Perl (vmWare spec) Existing VmWare Virtualized Infrastructure VmWare eco-system in IT Java GO JS/Node PHP Python Ruby .NET C++ Any : Server Virtualized VmWare was always Virtualization Behemoth (large trained IT) Enterprises want to private cloudify their internal VmWare virtual machines – so it was a natural progression for VmWare to add deployment+monitoring Super easy tools, Traditional Enterprise Apps (Oracle, SAP, Microsoft) Defacto Recommendation (Market Leader) : Small -medium size projects for enterprises Defacto Recommendation : Windows Intensive eco-system Recommendation : Simple Setup expectation by org for maintenance/setup Enterprises X SMEs X Startups X Individuals X Proprietary Platform Cost more than Open Source Alternatives Awesome for Windows Apps Private Clouds Most apps are very tuned to Windows Supports only ESXi as default hypervisor (OpenStack has a variety of hypervisors) - ESXi Disclaimer: Limited experience on VmWare
  • 49. 49 3.2 : Private Cloud : Open Stack Offering Value Proposition Languages Weakness Customers History (Core Strength) When to Recommend? Compute Nova (VM), BareMetal (Ironic) DB (R-DBMS) Trove Storage Cinder (Block), Object (Swift) Networking Neutron, DNS (Designate) Monitoring, Ops Heat, Mistral, Glance Data Management Shared File System (Manila) Log Telemetry (Ceilometer) Mgmt Console Horizon Identity Keystone, Barbican Hypervisors KVM, VmWare, Xen, API REST (like AWS) Free Open Source Feature Rich & Mature Large Community Java GO JS/Node PHP Python Ruby .NET C++ Any : Server Virtualized Started as a joint project between Rackspace & NASA. – now non-profit Diversified to Public Cloud – though loosing the battle. API modelled on AWS EC2 & S3 REST API (leverage trained engineers) Defacto Recommendation – The Private Cloud Standard (for large projects) Enterprises X SMEs X Startups X Individuals X Learning Curve & Skill Complex Setup & Debug High number of Mgmt nodes http://docs.openstack.org/developer/nova/support-matrix.html
  • 50. 50 3.3 : Private Cloud : System Center Offering Value Proposition Languages Weakness Customers History (Core Strength) When to Recommend? Compute VMs (under Windows Server) DB (R-DBMS) - Storage ReFS Networking Traditional Monitoring, Ops SCCM Data Management - Log SCCM Plugins Mgmt Console SCCM Identity Azure-AD, AD, Dynamic Access Contrl Hypervisor Hyper-V API Comprehensive SDK Popular in Enterprise IT Microsoft Eco-system Java GO JS/Node PHP Python Ruby .NET C++ With R12 Windows, Microsoft offered IT an easy way to host a private cloud with the tools like SCCM – IT knows and loves these tools. Defacto Recommendation – Cloudification of hosted Windows Servers (ideally use Azure Pack) Enterprises X SMEs X Startups X Individuals X Not a modern cloud (look at Azure Pack) Lock-in to Microsoft Ecosystem Limits to flexibility & customizability
  • 51. 51 3.3 Doing a Private Cloud with Win R12 & SCCM CPU NETWORKING STORAGE (Win R12 Server) 1Physical Infra Microsoft defines a private cloud using SCCM giving – pooled resource with dynamic provisioning, elastic scaling, resource metering. Though this is not a private cloud tool for some, market uptake for this is a lot in traditional enterprises – IT Driven Compute (Win Server) Mgmt Console (SCCM) VPN Security & Roles (AD) Load Balancing Routing Block Storage (Windows Virtual FS (Windows) App Image (Windows) Database 2Cloud Orchestration (private cloud tool) Web App (MS tech) API Definition DB Schema & Migration 3App Development Metering Failover & Redundancy App-VM Provisioning 4Monitor Operation Monitoring ReportingSCCM SCCM & Win Server
  • 52. 52 3.4 : Private Cloud : MS Azure Pack Offering Value Proposition Languages Weakness Customers History (Core Strength) When to Recommend? Compute Windows Server (Azure PaaS & IaaS) DB (R-DBMS) SQL & MySQL Database Connectors Storage Networking Virtual N/wing, Service Bus Monitoring, Ops Data Management Log Mgmt Console Azure like + System Center Identity Azure-AD, AD Hypervisor Hyper-V API ODATA REST API Free Open Source Java GO JS/Node PHP Python Ruby .NET C++ Public Cloud like tools (from Azure Public Cloud to manage SCCM + Win Server Best of Microsoft Public and Private Cloud from the last few years. Multi-tenancy – allowing the private cloud to be leased by multiple customers (incase the enterprise wants to become a SaaS provider) Defacto Recommendation – Cloudification of hosted Windows Servers (ideally use Azure Pack) Enterprises X SMEs X Startups X Individuals X Lock-in to Microsoft Eco- system Limits to flexibility & customizability Ref : https://www.microsoft.com/en-in/cloud-platform/windows-azure-pack
  • 53. 53 3.4 How does Azure-Pack differ from Win R12 & SCCM CPU NETWORKING STORAGE (Win R12 Server) 1Physical Infra With AzurePack, Private Cloud gets a lot of added features –PaaS, Tenant Mgmt, ServiceBus. Compute (IaaS/PaaS) Mgmt Console (SCCM) VPN Security & Roles (AD) Load Balancing Routing Block Storage (Windows Virtual FS (Windows) App Image (Windows) Database 2Cloud Orchestration (private cloud tool) Web App (MS tech) API Definition DB Schema & Migration 3App Development Metering Failover & Redundancy App-VM Provisioning 4Monitor Operation Monitoring ReportingAzure Pack Azure Pack SCCM & Win Server Private Cloud Tool - responsibility Application Writer - responsibility
  • 54. 54 3.5 : Private Cloud : Apache Cloudstack Offering Value Proposition Languages Weakness Customers History (Core Strength) When to Recommend? Compute Presentation writer does not know DB (R-DBMS) Presentation writer does not know Storage Presentation writer does not know Networking Presentation writer does not know Monitoring, Ops Presentation writer does not know Data Management Presentation writer does not know Log Presentation writer does not know Mgmt Console Presentation writer does not know Identity Presentation writer does not know Hypervisor KVM, Xen, VmWare API REST (own + AWS) + Ruby/Python Lib Free Open Source Relatively easier to use among Open source Java GO JS/Node PHP Python Ruby .NET C++ Any : Server Virtualized Started in 2008, acquired by Citrix, opensourced as Apache Cloudstack – 2011-12 Easy to install, Good Web UI Niche Recommendation : Low cost Vs VmWare – simpler than open stack. (sort of middle ground) Enterprises X SMEs X Startups X Individuals X Marketshare / Community more with OpenStack Disclaimer: Limited experience on private cloud with Cloudstack
  • 55. 55 3 Private Cloud : Marketshare Hard to tell marketshare (as its private cloud): Best we can guess market pulse from surveys (one below from RightScale) Note: A Bare Metal Cloud – App Writer deploys apps on physical servers without using any private cloud tool (perfectly possible). App Writer invests in his own tools as required.
  • 56. 56 3. Which Private Cloud? Which Private Cloud? Q : Migrating on Prem to Cloud ? Vm Ware Azure + SCCM Q : IT skilled in SCCM/VmWare ? VmWare Azure or SCCM Q : Are we large and muli-tenanted ? NO Open Stack YES (community) Cloud Stack YES (simplicity) YES NO (we are small-medium)
  • 57. 57 Choice #1 : Cloud Hosting Choice #4: Application Architecture How do we define the application ? Monolithic Micro-services (usually with containers) Serverless (FaaS paradigm)
  • 58. 58 4. Application Architecture  Patterns are a widely used concept in computer science to describe good solutions to reoccurring problems in an abstract form.  For Cloud Application Architecture, we have 3 high level design patterns Monolithic Micro-services Serverless
  • 59. 59 4.1 Monolithic Architecture Binary (executable) Single (all modules compiled into one large binary) DB Inter-connected (all tables kept in a single relational DB) Scaling Horizontal (whole app scales with load, add more nodes) Intermodule comms Function Calling (directly call functions between modules) TRAITS Typical Online Ordering Site. Identity & Auth Products Web Portal Analytics Billing & Order Mgmt Load Balancer Router Clients Clients Data base
  • 60. 60 4.2 Micro-Services Architecture Binary (executable) Multiple (all modules [aka micro-services] compiled & deployed separately) DB Separated (each micro-service has its own data, no relationship with other’s data) Scaling Vertical (loaded micro-services will be scaled and allocated more resources) Intermodule comms Defined HTTP or Messaging API (web or message Q based formalized calls) TRAITS Identity Mgmt + Authentication Products User Settings Analytics Billing & Order Mgmt Load Balancer Router VM VM VM VM VM Clients Clients DB DB DB DB DB
  • 61. 61 4.2 Micro-Services Architecture (with Containers) Binary (executable) Multiple (all modules [aka micro-services] compiled & deployed separately) DB Separated (each micro-service has its own data, no relationship with other’s data) Scaling Vertical (loaded micro-services will be scaled and replicated) Intermodule comms Defined HTTP or Messaging API (web or message Q based formalized calls) MULTIPLE MICRO-SERVICES ON ONE VM (smaller micro-services can be deployed on a single VM) SAME TRAITS (ONE DEVOPS ADDITION) Identity Mgmt + Authentication Products User Settings Analytics Billing & Order Mgmt Load Balancer Router VM VM VM Clients Clients DB DB DB DB DB Contnr Contnr Contnr Contnr Contnr Contnr VM Contnr VM
  • 62. 62 4.3 Server-less Architecture Identity Mgmt + Authentication Products User Settings Analytics Billing & Order Mgmt Load Balancer Router Clients Clients DB DB DB DB Binary (executable) Multiple (all code is in form of reactive functions - executed on a virtual runtime) - Certain Cloud Platforms give functions (limited time) DB Separated or Relational (functions should separate data / but not mandatory) Scaling Vertical (scale individual as per needs) Intermodule comms Defined HTTP or Messaging API (web or message Q based formalized calls) TRAITS There is no VM, hence Server-less Compute is ON DEMAND
  • 63. 63 4. Cloud Architecture Options SHORT IDEA ONE LARGE BINARY MULTIPLE SMALLER BINARIES SMALL FUNCTIONS (no VM) What it means? • Traditional Web Arch • Single large app • Relational DB Design • Split into small modules • Multiple Binaries • Split DB Design • Split into multiple request/response functions • API Driven Design Code Effort Low Medium Low Devops Effort Low High Low Advantage • Quick Execution • Simple Architecture • Resilience to complete failure • Clean & Small components • Easy to split into teams • Efficient elastic scaling • Resilience to complete failure • Quick Execution & Least Effort • Hardly any devops effort • Super-easy elastic scaling Disadvantage • Hard for project newbees • Hard to split work between multiple teams • Horizontal scaling is wasteful in resource terms • Complex Architecture • Need experience to get it right • Costly in terms of dev effort for small projects • Works only for Event/Driven Projects • Lot of limitations depending on FaaS Provider • Classified : Experimental Monolithic (yesterday) Micro-services (today) Serverless (tomorrow ?)
  • 64. 64 4. Monolith – When server is down If single server (monolith) is rendering this whole page & sourceing data, When the monolith is down, whole page is down. But, its simple to implement 
  • 65. 65 4. Micro-services : Breakdown the data on the page Lets try to split up this site into individual data – for micro-services.
  • 66. 66 4. Micro-services –backend into smaller services Each Micro-service has 1. Data 2. API Advertisement Micro-service Advertisement Micro-service Scores Micro-service Content Micro-service Content Micro-service User Context Micro-service Search MS Identity MS
  • 67. 67 4. Micro-services : When a Micro-service is down If micro-services are rendering this whole page, data is fetched from different micro-services. Most folks don’t even notice the difference – unless really wanting to use the feature Scores Micro-service is up/down
  • 68. 68 4. Micro-services Vs Monolith Complexity Advertisement Micro-service Advertisement Micro-service Scores Micro-service Content Micro-service Content Micro-service User Context Micro-service Search MS Identity MS Micro-services increase complexity in 1. API design, 2. DB transactions 3. Deployment Benefit: 1. Scaling Teams 2. Scaling Performance 3. Resilience to Failure
  • 69. 69 Choice # 4. Application Architecture Which Architecture ? Q : Is the project completely Event Driven ? Micro services Server less Q: Large Project? Or Spread Teams? NO YES (community) Mono lithic NO YES
  • 70. 70 Choice #1 : Cloud Hosting Choice #5: Backend (Runtime) In which eco-system do we develop our app ?  PHP  Java  Ruby  ASP.NET  Node.js  Golang
  • 71. 71 5. BackEnd & FrontEnd Clients Clients HTML CSS Java Script Mobile/Desktop App Load Balancer Router Front End Application Code App Server Framework Language Runtime Database Back End
  • 72. 72 5. What is a backend (runtime) ?  Lets get back to out definition:  “An Internet-based computing environment providing shared computation resources and data to computers and other devices on demand.”  Typically for most web, mobile apps, the cloud runs A. Application - Business Logic / Code B. Application - Server C. Application - Framework D. Application – Dependencies E. Application - Object Relation Mapper to Database F. Database  BLUE elements – leverage existing 3rd party components  ORANGE element – need to build ourselves as app developers
  • 73. 73 5 Backend (runtime) choice A Language Write Code in? B Web Server Process running your app C Framework App Scaffolding D ORM DB to App Mapping E Your Application Design Patterns & Logic Choosing one – limits the choice of the others
  • 74. 74 5. Backend – Select One Selects All LANGUAGE SERVER FRAMEWORK & MODULES Language Eco-system When you select a language – you are committing to the whole eco-system
  • 75. 75 5.A Backend (Language) Language Every one knows what this is  Each language is a specification to formulate your code in. There are a few considerations when choosing the languages 1. Compiled Code vs Interpreted Code 2. Static vs Dynamic Typing It usually takes a developer a bit of learning and unlearning to move from one category to another.
  • 76. 76 5.B Application Frameworks Framework A Framework is the base scaffolding on which your app is built on. It comes with • Base code (everyone needs) • Design Patterns • Repository of helper modules Each language has a set of app-frameworks to choose from. FaaS/PaaS also provide a Framework
  • 77. 77 5.C Application Server Application Server Application server serves the clients It comes with • Process HTTP/other protocols • Data Routing (URL to resource map) • Spawns threads for dynamic requests Each language has a set of app-servers to choose from. FaaS/PaaS also provide a App Server Application Server is process running on your VM/Container. Java Glassfish, Wildfly, Tomcat, JOnS, Weblogic, Google App Engine Rails Passenger, Unicorn, Thin, Puma Node.js Google V8 Engine (Connect & Express) .NET IIS, Mono, Base4, TNAPS Python CherryPy, Gunicorn, Tornado, uWSGI, Twisted Web PHP Zend Server, appserver.io, Quercus, PHP-FPM GO Enduro/X
  • 78. 78 5.D 3rd Party Module Repository 3rd Party Module Support Power of an eco-system is to pick libraries that accelerate the project These libraries can be picked from a central repository. Server languages are rated on its library eco-system. More libraries – less work Ref: http://www.modulecounts.com/ Note: Maven double counts some modules However, Maven, nuget have been quality modules. npm has the widest repo, but you need to hunt stable and supported modues Java Maven Rails Ruby Gems Node.js NPM .NET Nuget Python PyPI PHP Packagist GO Go Doc Perl CPAN
  • 79. 79 5.E Object Relationship Mapper – Language to DB Object Relationship Mapper Translates Database objects to Language Objects – without writing irritating code. This is an optional item Java Hibernate, EclipseLink, JPA, MyBatis, jOOQ, TopLink Rails ActiveRecord, DataMapper Node.js Wetland asp.NET ADO.net Python Django-ORM, SQLAlchemy, Storm, web2py PHP All frameworks come with own ORM GO gorm, xorm, gorp
  • 80. 80 5. Detailed Eco-system Analysis next You could skip next 10 slides – at end of section #5 for recommendations, if too detailed for you
  • 81. 81 5.1 Backend : PHP Offering (Spider Chart) Strengths Famous Sites Weakness Nuances When to use Recommendation Facebook Claim to fame : SPEED OF DEVELOPMENT for EASY SITES, Community Most simple sites on Web on PHP. Most Websites in the world written in PHP Easy to master, start with Development Speed Free Community Modules Engg Availability – high LAMP stack was the web standard for sometime Code Organization Performance Design Patterns Code imported as source Discipline needed to secure code Standardized package repository just came in Memory Mgmt No Multithreading Trending Down PHP License. (free) Runtime : Scripted Best Fwks: Laravel Born in : 1995 Domains : Informative & Consumer Websites Teams: Small Teams When : Super-Quick Development needed Project Size : Small to medium 0 1 2 3 4 5 Age Skill Availability Development Speed Package Repository CostPerformance Tools Support Easy to Secure Maintainability PHP 28 Website Leader
  • 82. 82 5.1 PHP Frameworks Trends Reco 1 Laravel
  • 83. 83 5.2 Backend : Java Offering (Spider Chart) Strengths Famous Sites Weakness Nuances When to use Recommendation Claim to Fame : ENTERPRISE, large-long running projects, engg availability Enterprise Leader Performance Large Community Open Source Free Community Modules Known Design Patterns Lots of Expertise available Easier to Secure More code to be written for same work Super-Strong Typing is a bit old school now Useful for large – long running projects Slower Development Google Amazon Ebay LinkedIn Domains : Enterprize Teams: Large Teams When : Enterprise Software, Security, Distributed Teams, CPU intensive work Project Size : Medium to Large (free & paid options) Runtime : Compiled (JVM) Best Fwks: Spring Born in : 199438 0 1 2 3 4 5 Age Skill Availability Development Speed Package Repository CostPerformance Tools Support Easy to Secure Maintainability Java Enterprise Leader
  • 84. 84 5.2 Java Frameworks Trends Reco 1 Java Spring
  • 85. 85 5.3 Backend : Ruby Offering (Spider Chart) Strengths Famous Sites Weakness Nuances When to use Recommendation Github AirBnB Slideshare free (MIT License) (tools paid like good IDEs) Runtime : Scripted Best Fwks: Rails Born in : 2004 Web Dev Leader Less code for work done Awesome Gems, modules Opinionated – defaults makes config & setup easy Speed of development Maintainable – defined code structure Database Migration – easiest across frameworks Performance vs compiled and also due to rails stack Needs more experience to debug complex bugs due to layer in rails Harder to modify base assumptions – due to it being opinionated Need experience to optimize rails Domains : Startups Teams: Small-Medium Teams When : Rapid Web Development, Proof of Concepts, First version of Product Project Size : Small to Medium Claim to Fame : RAPID WEB DEVELOPMENT Interesting Read from the Hacker who made Ruby on Rails : https://m.signalvnoise.com/the-day-i-became-a-millionaire-55d7dc4d8293#.ge96bqjl4 31 0 1 2 3 4 5 Age Skill Availability Development Speed Package Repository CostPerformance Tools Support Easy to Secure Maintainability Ruby Website Leader
  • 87. 87 5.4 Backend : Python Offering (Spider Chart) Strengths Famous Sites Weakness Nuances When to use Recommendation Pinterest free Runtime : Scripted Best Fwks: Django Born in : 1991 Speed of Development Less code for work done Code Readability LAMP stack was the web standard for sometime Performance vs compiled Maintainable code needs more experienced hands Quality Engg Availability (a lot python devs don’t have web development expertise – sys admins) Domains : Content Management, System Administration, Python on PaaS Teams: Niche framework now (Ruby solves in same space has more followers) When : Rapid Development, Code Readability Project Size : Small to Medium Claim to Fame : Quick Web Development 26 0 1 2 3 4 5 Age Skill Availability Development Speed Package Repository CostPerformance Tools Support Easy to Secure Maintainability Python
  • 88. 88 5.4 Python Frameworks Reco 1 Python Django – easiest to start and most popular Tornado – high volume traffic Pyramid – may give most flexibility
  • 89. 89 5.5 Backend : ASP.NET (C#, VB.Net or Python) Offering (Spider Chart) Strengths Famous Sites Weakness Nuances When to use Recommendation Bing MSN Free (but tools paid) Runtime : Compiled (CLI) Best Fwks: asp.net  Born in : 2002 Microsoft Ecosystem Code Maintainability Enterprise expertise Performance Security Design Patterns Vast structured libraries Tools (IDE) are pricier Lock in to Microsoft Enterprise Classification Less Vibrant and supportive open source community Hosting of Windows Servers is pricier Complex than others Domains : Enterprise Teams: Large Teams When : Microsoft Products Integration, Azure or VmWare Project Size : Large Claim to Fame : Microsoft Eco-system 30 Don’t reject it just because it comes from Microsoft Asp.net is a framework. Hence, its not an apples to apples comparison. Languages supported are C#, VB.Net, Python. However, it’s a specialized eco-system 0 1 2 3 4 5 Age Skill Availability Development Speed Package Repository CostPerformance Tools Support Easy to Secure Maintainability asp.net Enterprise Incumbent
  • 90. 90 5.6 Backend : node.js Offering (Spider Chart) Strengths Famous Sites Weakness Nuances When to use Recommendation Medium Uber Free Runtime : V8 Engine Best Fwks: Express.js Born in : 2009 Fullstack using Javascript Large set of modules Performance Do more for less code Free Eco-system Heavy I/O intensive apps Same code can run on both client & server Web sockets – well integrated into design Maintainability harder – no real design patterns. Transfer of knowledge Error handling Memory mgmt. – performance bursts NPM module stability Secure module usage needs experiene Domains : IoT, Gaming Teams: Small Teams When : Interactive Apps, Realtime or Large I/O, Proof of Concepts (POCs) Project Size : Small to Medium Claim to Fame : One Dev (full stack development) Great for Input/Output intensive app 33 Challenger - Web, IoT, Gaming, POCs
  • 91. 91 5.7 Backend : Golang Offering (Spider Chart) Strengths Famous Sites Weakness Nuances When to use Recommendation Some parts of Google Backend Free Runtime : Compiled Best Fwks: Born in : 2007 High Performance - Scale Concurrency Mature for its age C/C++ like CPU utlization Easy to learn Package Eco-system weak Expertise Community Domains : High Performance Teams: Small Teams When : High Performance Apps Project Size : Any Claim to Fame : High Performance & Compute Requirements , Easy to learn 24 0 1 2 3 4 5 Age Skill Availability Development Speed Package Repository CostPerformance Tools Support Easy to Secure Maintainability go Challenger - High Performance
  • 92. 92 5. Backend : How to choose ? Lack of Resource Expertise : Is the Top Challenge with Cloud Maturity. Ref: Right scale state of the Cloud https://www.rightscale.com/lp/state-of-the-cloud
  • 93. 93 5. Backend : How to choose ? Job Postings : Your Technology Bet is not receding ? Check trends on indeed.com / github.com
  • 94. 94 5B. Programming Pulse (Stackoverflow & Github) Rankings Javascript (partly node.js) Java (including desktop) PHP (only web – wow) Python (inc sys-admin) C# (including desktop) Ruby (only web) GO (only web) Courtesy : http://redmonk.com/sogrady/category/programming-languages/
  • 95. 95 5B. Expertise Trends Industry Job Trends Java, C#, Python – Tier #1 (leaders) Rails, PHP, asp.net – Tier #2 (steady) Node.js, Golang – Tier #3 (trending up) Courtesy : Indeed.com & Google Trends Some Java, C#, Python – includes non-web development. Hence take these with a pinch of salt. 
  • 96. 96 5B. Trends (Growing or Receding) Receding PHP Steady - Growing Ruby, Python, C# Growing Java, Node.js, Go Not too sure about Python
  • 97. 97 5. Backend : How to choose ? Knowledge from previous slides
  • 98. 98 5.C. Backend : How to choose right tool ? Area of Work Recommended Eco-system Why? Enterprise (Generic) Java Maintainability, Design Patterns, Security Enterprise (Microsoft) Asp.net Microsoft SaaS - Library support and integration IoT Node.js High I/O High Load (AR) Go Parallelism and High Performance Gaming Node.js High I/O (bidirectional), interactivity Website Ruby Rapid Development, Maintainable Website (sometimes) PHP When you see the right module available for pickup
  • 99. 99 Choice #1 : Cloud Hosting Choice #6: Frontend (Web development) In which eco-system do we develop our app ?  HTML  CSS  Java Script
  • 100. 100 6. BackEnd & FrontEnd Clients Clients HTML CSS Java Script Mobile/Desktop App Load Balancer Router Front End Application Code App Server Framework Language Runtime Database Back End Directly accessible to the end user Not Directly accessible to the end user, but performs a function for him
  • 101. 101 6. Server Side Rendering Front End Browser Back End Server HTML (data) Clients Browser Server creates HTML with data and formatting. Spoon feeds the Front End.
  • 102. 102 6. Client Side Rendering Front End Browser Back End Server HTML Clients Browser Server sends static resources (HTML/CSS/Javascript) Client fetches data using API to fill into DOM. CSS Javascript Data
  • 103. 103 6. Server Vs Client Side Rendering SHORT IDEA SERVER SENDS HTML with DATA CLIENT JS FETCHES DATA Advantage • Search engines can index your page • Usually simpler • Easier to secure • Partial content changes – renders faster Disadvantage • Each click is a new page load • Browser JS Compatibility Issues Latency • End-to-end latency is lower • Initial page slower • Subsequent pages faster Use For • Read Only Web • Wikipedia, ESPN, CNN • Interactive Web • Gmail, Facebook, Office 365 Programming Environments • HTML + Data assimilated using backend framework from PHP, Rails, Java (JSF), Python, asp.net etc. • Java Script (Client Side) Server Side Client Side Cloud is used primarily for Interactive Web – hence some Client Side Rendering is always there. In today’s day & age, a combination of client + server side rendering is usually done.
  • 104. 104 6. Front End - Basic Building Blocks HTML & XHTML Bootstrap, Foundation, Semantic UI, Materialize JQuery, Angular, React Render Data Lets add some Style Add some behavior HTML CSS Java Script 1 2 3
  • 105. 105 6.2 CSS Frameworks – What do we get with it? Reset CSS - short, often minified set of CSS rules (theme) - resets the styling of all HTML elements to a consistent baseline for your site. Responsive Grid - Grid layout to auto-size space as per mobile, tablet, desktop resolutions. Web Typography - Fonts Icons - Sprites and Standard icon support Styling - Styling for tooltips, buttons, elements of forms etc. Extra GUI Elements - Extra elements to make richer UI – accordions, breadcrumbs, tabs etc
  • 106. 106 6.2 CSS Frameworks – What should you look for? 1. Community - how much is the framework in use. 2. Responsiveness - work for mobile, TV, Desktops etc 3. Component Richness - tables, buttons, checkboxes etc. 4. Easy of Customization- to be able to retheme the defaults 5. File Sizes - size of the framework
  • 107. 107 6.2. CSS Framework Options Backing Twitter Google Popularity on GitHub Advantage • Community • Revolutionary Web Framework • Very Stable • Tons of Components with API • Easy to write • Full Material Design • Easy to write • Mobile First UI Disadvantage • No Material Design Support • No Material Design support • No Angular.js support • Limited UI Components • UI Components consume too much space Reco • Reco : just use this  • Reco : Mobile Centric Apps (with focus on Android) Bootstrap Semantic UI Angular Material
  • 108. 108 6.2 CSS: What is this Material Design we keep hearing ?  Google concept : how apps for Android should look  Set of Guidelines and References for UI Design  Adhering to Guidelines, will make your app look like any other app on the OS.  Especially useful – where you want to make your app look like any other – Mobile Oses  Designing your own UI guidelines has costs.  You can leverage Material Design to do it for you. Makes life easy.  If what works for everyone works for you “Material Design” Note : There is some other jazz around, Material Design being like pen and paper, which I never quite understood.
  • 109. 109 6.C Java Script Frameworks Classification Library Framework Library Popularity Advantage • Community • Revolutionary Web Framework • Very Stable • Tons of Components with API • Easy to write • Opinionated set of stuff • Full Material Design • Easy to write Disadvantage • No Material Design Support • No Material Design support • No Angular.js support • Limited UI Components • UI Components consume too much space Trend • Decline • Leader & Growing • Growing
  • 110. 110 6.C. Java Script Race Angular & React are the two libraries trending up – all others are flat or trending down.
  • 111. MVVC/MVC Frameworks DOM to REST API Linkage 2010-11 Best of existing MVC Frameworks (from Backbone etc) + Declarative Programming, + Custom Modules, + Dependency Injection + Google Branding 2010 + No MVC Simple View Library + Components with Code + UI + Virtual DOM – super performance + Facebook Branding 2013 Java Script Library Manually Change DOM AJAX, Interactive Websites 2006 6.C. Client Side Java Script Framework History
  • 112. 112 6.C. Java Script Story (JQuery)  JQuery Library –  (post 2006) : All new sites moved from plain Java Script to JQuery  First proper DOM manipulation library  JQuery allows your code to interact with the DOM elements directly.  As app size increases,  No way to write modularized code – it becomes a spaghetti.  Lose track of code, for medium to complex apps
  • 113. 113 6.C. Java Script Story (AngularJS)  MVC Architecture : AngularJS Framework  (post 2011) Most new sites are written with AngularJS  A complete Framework not only a library  Brought some structure to code – (MVC – model, view & controller)  Dependency Injection  Two way data binding – without writing much code.  (info can flow from JS to HTML & vice-versa)  It makes complex things in JQuery very simple & structured
  • 114. 114 6.C. Java Script Story (ReactJS)  V Component Architecture : ReactJS Library  (post 2014) Most new sites being written with ReactJS  New Simplified Structure –  how you design UX is how you write code (hierarchy of components)  Simpler than Angular, uses JSX  Have a page of components, made of sub-components. (HTML/CSS + JS)  Virtual DOM – Improved Performance  if a user is viewing a list of 100 items rendered with React, and he or she changes the third one down somehow, only that item gets rerendered, leaving the other 99 items unchanged.
  • 115. 115 6.C. Angular Vs React Direct Comparison Attribute AngularJS Angular 2 React Author Google Google Facebook Language Javascript/HTML Typescript JSX (extended Java Script) Size 143K 764K 151K DOM Regular DOM Regular DOM Virtual DOM Learning Curve High Medium Low Packaging Weak Medium Strong Abstraction Weak Strong Strong Debugging General Good HTML / Bad JS Good JS/Good HTML Good JS / Bad HTML Debug Line NO No No Yes Unclosed Tag Mentioned? No No Yes Fails When? Runtime Runtime Compile-Time Binding 2 Way 2 Way Uni-Directional Templating In HTML In TypeScript Files In JSX Files Component Model Weak Strong Medium Building Mobile? Ionic Framework Ionic Framework React Native MVC Yes Yes View Layer Only Ref : https://www.pluralsight.com/guides/front-end-javascript/angular-vs-react-a-side-by-side-comparison
  • 116. 116 6.C. Reco : React.js Use : React.js for new projects Unless: Wanting to use MEAN Stack MEAN = Mongo, Express.js, Angular, Node
  • 117. 117 Choice #1 : Cloud Hosting Choice #7: Database Choice Which DB would you choose ?  Relational R-DBMS (Oracle, MySQL etc)  NoSQL (Mongo, Cassandra etc)  Data Warehouse (Redshift etc)
  • 118. 118 7. A Backend DB of today looks like A backend of today has (0-1) SQLs (0-1) “Not Only SQL” – NoSQL players (0-n) “Big Data”. It’s a potpourri of what works best for which datasets. Data Warehouse Usually 1 Usually 1 Usually 0-n
  • 119. 119 7.1 Relational model of Database 1. Relations : Organize data into tables (or “relations”) of columns or rows 2. Relationships : Relationships are a logical connection between tables The most important concept is that a relational database has “Relations” - Meaning data is organized in TABLES Tuple Attribute Relation
  • 120. 120 7.2 R-DBMS Popularity Marketshare 25% 5% 29% 23% Most popular open source R-DBMS Most advanced open source from SQL perspective Most advanced paid R-DBMS An Advanced R-DBMS from Microsoft Cost $ $ $$$$ $$$$ When to use Most cases, Easy to setup / configure Good for high read loads Niche SQL compliance Less Money Harder to setup Heavy Usage cases Great Tools Have money Using Oracle SaaS Hard to setup/configure Niche Microsoft Eco-system Have Money Licensing GPL v2 BSD Proprietary Proprietary Above choices are available for R-DBMS. The choice are easy when you just choose R-DBMS.
  • 121. 121 7.2 What is NoSQL 1. All data – is not (Relational) 2. All transactions don’t require ACID (immediate consistency) The above two allow/need a new type of idealogy “NoSQL” Characteristics of a NoSQL DB  Schema-less (no fixed relation)  Simple API  Eventually consistent (BASE)  Store huge amounts of data (without slowdown)
  • 122. 122 7.2 Classification of NoSQL Databases NoSQL DBs Types Examples Column DB H-Base, Cassandra, Hypertable, MapR Document Store MongoDB, Couchbase, CouchDB Key Value Store DynamoDB, Riak, Redis, MemcacheDB Graph DB Neo4j, OrientDB ….. There are a lot more types A comparison only within a category is fair. As each area solves a different problem in R-DBMSes
  • 123. 123 7.2.1 Choose NoSQL : Column DBs  Traffic Patterns  High Write Traffic & High Availability  Super large data sets – in 100s of terabytes  Short term inconsistency is fine  Storage: Store data in columns  When to use?  Analytics  Big Data Science  Social Networks  Search Engines  Denormalize the data 
  • 124. 124 7.2.2 Choose NoSQL : Document DBs  Traffic Patterns  Schema-less  When data is accessed together, Store in a document  Provide Indexing on document content  Storage : Store data in Documents (xml or json)  When to use?  Web Apps with large reads/writes – no ACID reqs  Large Metadata of objects  Apps with JSON structures (ease of implementation)  Data with structures within structures  (essentially competes with R-DBMS for storage)
  • 125. 125 7.2.3 Choose : NoSQL – Key Value Pair  Traffic Patterns  Simple Reads/Writes  Lookup using a simple key  Storage : Hash Table  When to use?  Cache implementation  User Sessions & Shopping Carts  App Configuration Management
  • 126. 126 7.2.4 Choose : NoSQL – Graph  Traffic Patterns  Focuses on Relationships between Entities  Storage : A Graph  When to use?  Niche: Crazy Queries for Business Intelligence  Niche: Social Networking  Model real world human interactions with objects, each other places
  • 127. 127 7.C Database Vs Data Warehouse  Transactional Database (R-DBMS or NoSQL)  What it does: Transactional systems run efficiently.  Optimized for : Performing read-write operations of single point transactions.  Not for : A transactional database doesn’t lend itself to analytics  aka OLTP (online transaction processing) database – MySQL, PostgreSQL  Needs 99.99% SLA  Data Warehouse  What it does : A large store of data accumulated from a wide range of sources  Optimized for : Large bulk reads and sequential fewer inserts  Not for : A data warehouse does not lend itself to being the primary backed of a webapp.  aka OLAP (online analytical processing) database – AWS Redshift, Azure Data Warehouse  Weaker SLAs are fine. Note: Both may or maynot use SQL for accessing data.
  • 128. 128 7. Reco : Databases Area of Work Major Recommendation Niche Recommendation Main Transactional Database MySQL Oracle or Microsoft (eco-system) Database for Sessions, Config, Cache NoSQL Key value – Redis, Riak, Cloud PaaS (like DynamoDB if appl) Large JSON serializable datasets NoSQL – like Mongo, CouchBase Large Analytical Datasets (from one source) NoSQL – Cassandra Analytical Data (from many sources) Data Warehouse –like Oracle, Redshift, Azure Data Warehouse
  • 129. 129 Choice #1 : Cloud Hosting Choice #8: Deployment Ops Tool Which Devops Tool to use ?  Chef  Salt  Puppet  Kubernetes  EC2 Container Service
  • 130. 8. Deployments tools? Why do I need one? A nail can be used without a hammer, however with a hammer its easier! (especially, if you need to hammer multiple nails)
  • 131. 131 8. What do these tools do? 1. Cloud Orchestration (Container or VMs) 2. Push or Continuous Deployments 3. Configuration Management 4. Networking 5. Credential & Access Security 6. Auto Scaling 7. Wrap Private/Public Cloud APIs (sometimes) It’s about automating the above. Write once – run many times.
  • 132. 132 8.1 Cloud Orchestration 1. Create VMs & Containers 2. Give the VM a app to run 3. Connect up the VMs and Containers 4. Monitor whether VMs & Containers
  • 133. 133 8.2 Manual Push and Continuous Deployments 1. Command to push an app binary to a VM/Container 2. When build is done, auto- deploy app binary to a Container 3. When auto-deploy is done, run integration test 4. Ability to do Rolling Upgrades (upgrade one instance at a time)
  • 134. 134 8.3 App Properties Configuration 1. Configure File Server Paths in Apps 2. Configure Database urls 3. Configure env properties like feature toggles Depending on whether it’s a production, engineering or test environment, Configuration properties change Tool helps automating these configurations in various apps A feature toggle is a config flag to enable/disable a feature on an environment
  • 135. 135 8.4 Networking 1. Service/App Registry (which services running where & their health) 2. Apps URL orchestration (map IPs for which app/service is running where – tell other apps about it) 3. Configure Load balancer, API Gateways for external internal routes
  • 136. 136 8.5 Security – API & Credentials 1. Credential & Config in Apps/Services (Apps need Credentials / Roles for access of DB/Files, configure this without human touch/error is important) 2. API Configuration (which api is accessible to the world vs privately) As per OWASP – top 10 Configuration Security issues is the No 5 top vulnerability in Cloud Deployments https://www.owasp.org/ima ges/f/f8/OWASP_Top_10_- _2013.pdf
  • 137. 137 8.6 Auto-scaling on load 1. Add/Remove VMs on load 2. Quota Management (don’t allow crazy scaling, scale with limits)
  • 138. 138 8.7 Platform Independent Orchestration 1. Wrap the underlying API (AWS, Azure, Google Cloud, OpenStack API wrapping allows easier porting across Cloud Providers) 2. Multi-Cloud Usage (though rare in practice, allows for different services like DB from Azure and S3 from Amazon to be used – with VMs in either )
  • 139. 8.1.1 Evolution of Cloud Orchestration -2007 2007-2014 2014 + Manually Deploy Era •Build Server copies wars •Scale using Cloud Provider Tools VM Orchestration Era •Deploy app using multiple VMs •Horizontal & Vertical Scaling VMs Containers & Micro-services Era •Move to Docker / LXC Containers •Flexibly scale using Containers & VMs Automation VM Utilization
  • 140. 140 8.1.2 What are the container techs available? Ofcourse, most use Reason: Support, Eco-system, Tool integration Others are available too : A Small Startup, available on github Microsoft Drawbridge Windows Container option (still a research project) Cannonicals own usage of LXC (the tech that docker uses too)
  • 141. 141 8.1.3 Containerization Benefits – Less OS Overhead Machine #1 OS #1 OS #2 OS #3 App Server #1 App Server #2 App Server #3 Machine #1 Host Operating System Hypervisor Guest OS #1 Guest OS #2 Guest OS #3 App Server #1 App Server #2 App Server #3 Machine #2 Machine #3 Machine #1 Host Operating System Container App Server #1 App Server #2 App Server #3 Hosting without Virtual Machines Hosting with Virtual Machines Hosting with Containers Optimize – running multiple apps on a single machine using VMs Optimize – utilization of Infrastructure by doing function call mapping vs virtualization Note: a Hypervisor is a full emulation of a machine, a Container is not, so, if there are certain functions that are not mapped by the container, you cannot access those OS functions. Works for most apps Less OS overhead
  • 142. 142 8.1.4 Container Benefits – CPU Utilization Containers Micro-service #1 Micro-service #2 Micro-service #3 Without Containers If we have 2 - geographical regions 2x – redundancy per region 3 - microservices, we need 12 VMs - Though we don’t use them to capacity, we pay, say we use 1/4th capacity With Containers If we have 2 - geographical regions 3x – redundancy per region 3 - microservices, we need 6 VMs - With maximum utilization of capacity possible Better CPU Utlization
  • 143. 8.1.5 Container Other Benefits Cloud Agnostic (same image runs on AWS, Azure App is portable) Developer Environment (dev env and the cloud env mimick each other) Release Cadence (increases release cadence due to alignment with CI/CD)
  • 144. 144 8.2 Devops Tools Race Puppet • Advantage • Robustness • Web UI & Reporting • Disadvantage • Learning Curve • Scaling •Language : Ruby Salt • Advantage •Tech Depth •Flexibility •Easy debug • Disadvantage •Basic UI •Less Windows Support •Language : Python Ansible • Advantage •Agent less •Very Easy • Disadvantage •Less Powerful •Language: YAML (easy) Chef • Advantage •Mature Solution •Large Community •Window, Linux Support • Disadvantage •Complex •Learning Curve •No Push •Language: Ruby Kubernetes • Advantage • Best in class features • Community • Google Backing • Disadvantage •Complexity •Language : Go DockerSwarm • Advantage • Easy to setup/use • Docker friendly • Docker like API • Disadvantage •Features Vs Docker Large Apps (microservices)Simple Apps Another Tool worth a mention is AWS-ECS – however this is limited to orchestration of containers on AWS.
  • 145. 145 8.2 Public Cloud – Devops Tools Each Public Cloud Provider gives a variety devops tools. When to use: If lock-in is fine, these maybe super easy to work with. For eq: AWS gives Cloudformation, ECS = Elastic Container Service, ECR = Elastic Container Repo, AWS CLI, AWS Data Piplelines for achieving an awesome amount of devops automation.
  • 146. 146 Choice #1 : Cloud Hosting Choice #9: QA Automation Which QA Automation Tool ? Unit API UI Performance Pentest & Vulnerabilities
  • 147. 9. Need for QA Automation 1. Regression Testing – doing regression on each release/each new piece of code is expensive 2. Automation – Helps increase productivity 3. Automation – Lesser mishaps and vs manually testing releases 4. Reduce Vulnerabilities 5. Reduce Performance Regressions 6. Maintain 3rd Party developer API contracts 7. Replay – failed QA tests can be replayed by Developers MOST IMPORTANTLY: CANNOT DO CONTINUOUS INTEGRATION & DELIVERY WITHOUT IT
  • 148. 148 9. Categories of QA Automation Performance Testing - Load Testing (every Release) - Latency Testing (every Release) Penetration Testing - Code Scan Utilities (every Checkin) - Pentest Utils (every Release) Automated UI Testing - Automated User Acceptance Tests - (every deployment) Unit Testing - Run Unit tests (every checkin) - Linked with a code coverage bar API Testing - API Testing (every deployment) Quality increases with each Category of Automation
  • 149. 149 9.1 Unit Testing Unit testing is very language specific Language Tools PHP SimpleTest, PHPUnit Java JUnit, TestNG, Mockito, PowerMock Ruby On Rails Rspec, MinTest, Cucumber Node.js Mocha, Jasmine, Expresso (no longer maintained), Should, NodeUnit, jsUnit Python Python Unit Tests, unittest, nosetests, pylint C# C# Tests Golang testify, ginkgo + gomega
  • 150. 150 9.2 API Testing Tools API testing is very dependent on the API Spec (REST, SOAP, SAP) Language Tools REST API RestAssured, SOAP UI, Jmeter, Even without tools a standard code can be used to trigger API testing.
  • 151. 151 9.3 QA – UI Automation tools (some popular ones,, there are a whole lot more – depends on your clients and service) Selenium • Website Testing •Language : Java Watir • Website Testing •Language : Ruby Coded UI • Windows Apps •Language: C# AutoIT • Windows Apps •Language: Basic iike scripting TestPlant /EggPlant • Website, Android •Language : English like Scripts QTP • Windows Browser, Mobile •Language : VB Script
  • 152. 152 9.4 QA – Performance Testing tools (some popular ones,, there are a whole lot more – depends on your clients and service) Jmeter/ Blazemeter • PRO •Easy to learn •Simple Charts • CONS • Reporting is limited HP LoadRunner • PRO •Low cost of distributed load testing • Good use of generator farm • CONS •Cost for enterprise grade WebLoad • PRO •Good Web Tech coverage • CONS Borland Silk Performer • PRO •Licensing Model • CONS •Cost for enterprise grade IBM Rational Performance Tester • PRO •No code knowledge reqd • CONS •Cost for enterprise grade #HTTP #FTP #HTTP #SAP #Oracle #SaaS #HTTP #HTTP #FTP #Email #HTTP #SOA #SAP
  • 153. 153 9.5 Code Vulnerability Tools Typically integrated with the build environment Language Tools Free Java (FindBugs, Xanitizer,) PHP (RIPS) Commercial KlocWork, Fortify, Coverity Code Advisor,
  • 154. 154 Choice #1 : Cloud Hosting Choice #10: Analytics Pipeline It’s a thesis in itself and not covered in this presentation. We will do another one on it.
  • 155. 155 Choice #1 : Cloud Hosting Choice #11: Data Routing Not covered in this presentation
  • 156. 156 Choice #1 : Cloud Hosting Choice #12: Monitoring & Logging  Cloud Health Monitoring  Application Performance Management  Logging  Crash Debugging
  • 157. 157 3. Application Logging 1. Cloud Dashboards 4. Excepting & Crash Monitoring 2. Cloud Application Performance Monitoring (CAPM) 12. Monitoring Tools for the Cloud
  • 158. 12.1 Cloud Health Monitoring Dashboards ? A Cloud Monitoring Dashboard helps monitor health of the cloud Meaning 1. Compute 2. File Storage 3. Networking & Heartbeats 4. Infrastructure Load & Scaling 5. Exceptions Note: Some do more than just monitoring like Prometheus Sample Prometheus Dashboard (promdash). Courtesy : https://prometheus.io/docs/visualization/promdash/
  • 159. 159 12.1 Cloud Log Dashboards Comparison A visual dashboard and query UI Part of ELK Stack. Market leader Use: For Log Based Cloud Monitoring A visual dashboard Graphana + InfluxDB/Graphite Use: For beautiful visualizations & graphs A Storage backend with visual dashboard Promdash + Prometheus New kid on the block Use: Good with Docker & Kubernetes / Alerting too Old IT and Cloud Monitoring Dashboard and backend Nagios Old & mature tool Use: Great scalability A special case, where its possible to combine one or more of these.
  • 160. 12.2 Cloud Application Performance Monitoring? A CAPM Tool will help instrument and monitor a cloud application. (not the infrastructure) Meaning 1. Application Business Logic 2. Application Framework 3. Database 4. Networking Traffic 5. Messaging Systems Sample NewRelic CAPM Dashboard. Courtesy : www.newrelic.com
  • 161. 12.2 Cloud Application Performance Monitoring? 1. End User App Monitoring • Passive : Monitoring –Network Traffic (Network port mirroring & agentless) • Active : Monitoring the internal app API hits – using a agent compiled into the app • Useful : End User Outages & Latency Monitoring 2. App Runtime Architecture Discovery & Monitoring • Mapping & Discovering the different servers/micro-services required for an API hit • Provides the flow of data and control through the system for each transaction • Useful : Mapping Components Involved in a transaction 3. Business Transaction Profiling • Aggregation of Business Transactions into categories • Monitor category wise to get aggregated views on usage & performance • Useful : Optimizing Infrastructure & Code 4. Deep Dive Component Monitoring • Monitoring Internal App Monitoring like DB, App, Web, MessageQs, Disk • Needs instrumentation or agent into the application logic • Useful : Exception & Performance Bottleneck Debugging 5. Reporting & App Data Analytics • Standardized reports and dashboards to present the data • Only based on the APM Tool • Useful : Trends, Capacity Planning, Service Level Management Features of CAPM Tools
  • 162. 162 12.3 Application Logging Tools Comparison Languages Java, Scala, .NET, PHP, Node.js, Ruby and Python Deploy : SaaS Pricing: Expensive Best Overall Tool Languages Java, Scala, .NET, PHP Deploy: SaaS/Onprem Pricing: Expensive Best Enterprizy Tool Languages Java, .NET, Go, Ruby, PHP, Node.js, Scala, Python Deploy: SaaS Pricing : Cheaper Most Value for money Languages Java, .NET, PHP, Node.js Deploy : SaaS Pricing : Expensive If you can afford it
  • 163. 163 12.3 Application Logging Tools Basically, it’s a capture of the history of your application. Use logs for debugging, Prevent repetition of pain Basically has 4 components 1. Instrumented Cloud Application –sends the logs 2. Log Collection Service –stores the logs 3. Indexing Service –allows quick query of logs 4. Graphical Interface – easily visualize, query and view logs
  • 164. 164 12.3 Application Logging Tools Comparison PROs #Free #Opensource #DockerImage #MarketLeader #PluginEcosystem CONs #UIKibanaSetup #FiltersHardToWrite #NoAlerts #MemoryHeavy When: Most of the time PROs #Simple #RidiculouslyEasysetup CONs #Paid #NoUI #NeedsStatHat etc PROs #Enterprizy #EasySetup CONs #Paid When: Large scale enterprise log analytics PROs #Free #Opensource #PluginEcosystem #MemoryFootprint #Simplicity CONs #ComplicatedConfig PROs #RealtimeAlerts #GreatSearch #EasySetup #GoodVisualizations CONs #Paid ELK – Stack Trendsetter Logging Service Reco by Amazon/Google EnterpriseCommon Man
  • 165. 165 12.4 Exception Monitoring Tools Basically, it’s a capture of the failure traces of your application. Captures/Groups the exceptions Maintains a DB of all the unhandled exceptions that may have occurred in your application. 1. Captures all software errors 2. Groups them up 3. Allows query and error visualizations 4. Alerts on high error rates
  • 166. 166 12.4 Exception Monitoring Tools Comparison Ruby, PHP, JavaScript, .NET, Python, Django, Node.js, iOS, Swift, Android, Go, Angular, Flask, Java Rackspace Project Pricing : Super-cheap (but no free plan, unlimited is cheap) JavaScript, Angular, Node.js, Python, Ruby, Django, PHP, Clojure, .NET, Android, iOS, Haskell, Drupal, Rails Needs code changes to work Pricing : Cheap JavaScript, Node.js, Python, Go, PHP, Ruby, C#, Objective-C, Java Opensource project that took off Pricing: Expensive Android, Go, iOS, .NET, Node.js, PHP, Python, Ruby, Unity. Pricing : Expensive .NET, Android, Drupal, Go, iOS, JavaScript, Node.js, PHP, Python, Ruby, Unity Pricing : Expensive Use atleast 1, does not matter whichever. The competition here is close.
  • 167. 167 Choice #1 : Cloud Hosting Cloud Stacks after here (just for fun) https://stackshare.io/stacks#!
  • 169. 169
  • 170. 170
  • 172. 172 References (not credited in slides themselves)  http://wikibon.com/  https://stackshare.io/stacks/comparison  http://www.rightscale.com/  https://stackshare.io/stackups/bugsnag-vs-rollbar-vs-airbrake-vs-sentry-vs-raygun  Various Answers : https://www.quora.com/  Various Answers : http://stackoverflow.com/  https://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/  Some Images : https://pixabay.com/  http://www.softwaretestinghelp.com/best-gui-testing-tools/
  • 173. © 2015. Mobiliya Technologies. All Rights Reserved Confidential under NDA www.mobiliya.com Thank You