Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

What is A Cloud Stack in 2017

7.854 Aufrufe

Veröffentlicht am

What is Cloud Software in 2017 made up of ?
How to choose a cloud stack in 2017 for my app ?
How are my choices linked to each other ?

Veröffentlicht in: Software

What is A Cloud Stack in 2017

  1. 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. 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. 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. 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. 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 6 KNOWING WHEN TO USE WHAT “IS IMPORTANT “ EACH TOOL HAS A PURPOSE AND FITS A BILL!
  7. 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. 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. 9. A CHOICE AT A TIME BREAK-UP THE CLOUD. MAKE IT SIMPLER. LOOK AT ONLY SECTION OF INTEREST IN SLIDES AHEAD
  10. 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. 11 On the InternetOn Premise Private PublicHybrid Cloud (Private + Public)
  12. 12. 12 #1.1 HOSTING: THE “PRIVATE CLOUD”  Drive your PRIVATE Car
  13. 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. 14 #1.2 HOSTING : THE “PUBLIC CLOUD”  Shared PUBLIC Transport
  15. 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. 16 #1.3 HOSTING : THE “HYBRID CLOUD”  Park and Ride (use the tool, where it’s useful)
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 82 5.1 PHP Frameworks Trends Reco 1 Laravel
  83. 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. 84 5.2 Java Frameworks Trends Reco 1 Java Spring
  85. 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
  86. 86. 86 5.3 Ruby Frameworks Reco 1 Rails
  87. 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. 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. 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. 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. 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. 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. 93 5. Backend : How to choose ? Job Postings : Your Technology Bet is not receding ? Check trends on indeed.com / github.com
  94. 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. 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. 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. 97 5. Backend : How to choose ? Knowledge from previous slides
  98. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 110 6.C. Java Script Race Angular & React are the two libraries trending up – all others are flat or trending down.
  111. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 129 Choice #1 : Cloud Hosting Choice #8: Deployment Ops Tool Which Devops Tool to use ?  Chef  Salt  Puppet  Kubernetes  EC2 Container Service
  130. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 146 Choice #1 : Cloud Hosting Choice #9: QA Automation Which QA Automation Tool ? Unit API UI Performance Pentest & Vulnerabilities
  147. 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. 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. 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. 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. 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. 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. 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. 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. 155 Choice #1 : Cloud Hosting Choice #11: Data Routing Not covered in this presentation
  156. 156. 156 Choice #1 : Cloud Hosting Choice #12: Monitoring & Logging  Cloud Health Monitoring  Application Performance Management  Logging  Crash Debugging
  157. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 167 Choice #1 : Cloud Hosting Cloud Stacks after here (just for fun) https://stackshare.io/stacks#!
  168. 168. 168 https://stackshare.io/airbnb/airbnb
  169. 169. 169
  170. 170. 170
  171. 171. 171 https://stackshare.io/stackshare/stackshare
  172. 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. 173. © 2015. Mobiliya Technologies. All Rights Reserved Confidential under NDA www.mobiliya.com Thank You

×