School of Haskell. Haskell Development Center. Gregg Lebovitz Director, Client Projects FP Complete

Similar documents
Oracle Service Cloud Integration for Developers Ed 1

Oracle Service Cloud Integration for Developers Ed 1

Oracle Service Cloud Integration for Develope

CodeHub. Curran Kelleher 8/18/2012

Qlik Analytics Platform

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

Launch and Scale your Social Game in the Cloud with AltEgo, Amazon Web Services and RightScale

Cloud platforms T Mobile Systems Programming

MCSE Cloud Platform & Infrastructure CLOUD PLATFORM & INFRASTRUCTURE.

JBOSS MIDDLEWARE TO THE CLOUD. MICHAEL EPLEY Sr JBoss Solutions Architect, IC Specialist 2014 June

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE

About Intellipaat. About the Course. Why Take This Course?

1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

IBM Bluemix compute capabilities IBM Corporation

Table of Contents. Preface... xi. 1. Introduction... 1 Type Safety 1 Concise Code 2 Performance 2 Modularity 3 A Solid Foundation 3

Developing Ajax Web Apps with GWT. Session I

Sentinet for BizTalk Server SENTINET

PaaS isn t Just for Developers

<Insert Picture Here> Oracle Policy Automation System Requirements

Introduction to ArcGIS Server Architecture and Services. Amr Wahba

Alteryx Technical Overview

PaaS Anywhere. Isaac Christoffersen Architect, Vizuri

FROM VSTS TO AZURE DEVOPS

Sentinet for Microsoft Azure SENTINET

How Parallels RAS Enhances Microsoft RDS. White Paper Parallels Remote Application Server

Writing your first Web Data Connector

An Oracle White Paper April Oracle Application Express 5.0 Overview

Swift Web Applications on the AWS Cloud

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Snapshot Best Practices: Continuous Integration

PaaS Anywhere. Isaac Christoffersen Architect, Vizuri

Learning Node.js For Mobile Application Development By Stefan Buttigieg;Christopher Svanefalk

Back-end architecture

PROCE55 Mobile: Web API App. Web API.

Continuous Integration and Deployment (CI/CD)

TECHED USER CONFERENCE MAY 3-4, 2016

EXPLORING MONITORING AND ANALYTICS VMware Horizon

When learning coding, be brave

Exercise 1. Bluemix and the Cloud Foundry command-line interface (CLI)

The Now Platform Reference Guide

Transform to Your Cloud

IEEE Sec Dev Conference

Cloud platforms. T Mobile Systems Programming

Cloud & DevOps April Big Group. April 24, 2015 Friday 1:30-2:30 p.m. Science Center Hall E

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Check Point vsec for Microsoft Azure

STREAMLINED CERTIFICATION PATHS

Document Sub Title. Yotpo. Technical Overview 07/18/ Yotpo

JavaFX. JavaFX Overview Release E

VMware Cloud Application Platform

Overview of load testing with Taurus in Jenkins pipeline

Introduction to data centers

IBM Planning Analytics Workspace Local Distributed Soufiane Azizi. IBM Planning Analytics

DevOps on AWS Deep Dive on Continuous Delivery and the AWS Developer Tools

Produced by. ICT-Skills Studio (2016) Higher Diploma in Science in Computer Science. John Fitzgerald

Baremetal with Apache CloudStack

What's New in ActiveVOS 7.1 Includes ActiveVOS 7.1.1

Sharing and Deploying MATLAB Applications

Scaling DreamFactory

Overview of BlackBerry Dynamics Platform

Modeling & Simulation as a Service (M&SaaS)

Integrate MATLAB Analytics into Enterprise Applications

Full Stack Web Developer Nanodegree Syllabus

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

C exam IBM C IBM Digital Experience 8.5 Fundamentals

IBM Watson Content Hub. Architecture Overview

Qlik Sense Certification Exam Study Guide

Introduction to Amazon EC2 Container Service (Amazon ECS) Hands On Lab

Developing Web Applications with Haskell and Yesod

Sahi. Cost effective Web Automation

Oracle Code Day Hands On Labs (HOL) (Install, Repository, Local Deploy, DevCS, OACCS)

Cloud Deployment Scenarios

Qlik Sense Enterprise architecture and scalability

Overview of Web Application Development

Grading Rubric Homework 1

Google Plugin for Eclipse

JBoss Portal Quickstart User Guide. Release 2.6.6

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

Cisco Tetration Analytics

How to choose the right approach to analytics and reporting

Amazon Web Services (AWS) Solutions Architect Intermediate Level Course Content

MATLAB as a Financial Engineering Development Platform Delivering Financial / Quantitative Models to the Enterprise Eugene McGoldrick

VISUAL APPLICATION CREATION AND PUBLISHING FOR ANYONE

Exam : Implementing Microsoft Azure Infrastructure Solutions

<Insert Picture Here> Oracle Coherence & Extreme Transaction Processing (XTP)

Oracle Corporation

Brocade Virtual Traffic Manager and Parallels Remote Application Server

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Tableau Server - 101

<Insert Picture Here> JavaFX 2.0

Introduction to cloud computing

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

The Modern Web Access Management Platform from on-premises to the Cloud

8.3 cloud roadmap. Dr. Andrei Borshchev, CEO Nikolay Churkov, Head of Software Development. The AnyLogic Company Conference 2018 Baltimore

Education Brochure. Education. Accelerate your path to business discovery. qlik.com

TIBCO Cloud Integration Security Overview

Architect your deployment using Chef

Introduction to Cloud Computing

MCSE Mobility Earned: MCSE Cloud Platform & Infrastructure Earned: 2017 MCSE MCSE. MCSD App Builder. MCSE Business Applications Earned 2017

Transcription:

School of Haskell Haskell Development Center Gregg Lebovitz Director, Client Projects FP Complete

Agenda Explain Design Goals Tell the story behind School of Haskell Demonstrate current implementation Give overview of School architecture Discuss the service architecture Present our Next Steps Provide some target milestones 3/26/2013

Background FP Complete launched March 2012 Goal: Create a commercial Haskell platform Current plan: SaaS develop and deploy in the cloud Option to deploy on private cloud or VM Near future: develop on private cloud or VM Further out: configuration, monitoring, exception tracing, interoperability, distributed applications.

FP Complete Team Aaron Contorer Founder and CEO Bartosz Milewsky Chief Architect Michael Snoyman Engineering Lead Gregg Lebovitz Product Management, Sales

Haskell Development Center Four Ingredients Learn Develop Build Deploy

Original Ideas Free Education IDE for Interactive Learning Commercial IDE Cloud Deployment Deployment on a Private VM or Private Cloud Private VM version of the IDE Desktop version of the IDE Enhanced Deployment Options Application Services

Current Roadmap School of Haskell Haskell Development Center Haskell Application Server Distributed Haskell (Cloud Haskell?)

The School of Haskell Story We wanted an early version of Education IDE Interactive learning center Lighter version of the IDE Tools to create content Tutorials embedded with editor with build and run The back end infrastructure was in place Efficient and secure deployment system Secure Content storage Back up in GitHub

School of Haskell Goals Interactive on-line service Active code examples and exercises Free Accounts Support lots of users Low service cost per user Community contributed content Easily leverage existing content 3/26/2013

School of Haskell Features User publishable content Support of standards (GitHub Markdown) Extensions for embedding active code Focus on relevant code sections Feature to hide sections of irrelevant code Option to Show all code sections Active code editor Button to build and run Publisher toolkit for creating Markdown content

SoH Architecture Browser based client Web based server (front end) Isolated code execution containers (back end) Standard cloud services (services)

SoH Design Web based client / editor Written in Javascript using codemirror Implements user code editor Tutorials in Markdown Render content as HTML Overlay codemirror on code snippets Controls to Show hidden code sections Build and run code

Soh Front end services Code sent to front end for build and run Two way communication with application Create output window Send standard output to browser for display Capture use input and send to application For Web tutorials Launch an instance of web server Code snippets served by web server Frame for opening web server at a give URL

Markdown Extensions Active Code ```active Haskell Code ``` Showing Code Snippets Mark visible code with --show ```active Haskell Code -- show Haskell Code Segment -- show Haskell Code ``` 3/26/2013

Example Console App ## Console Application Below is an example of a simple console application ``` active haskell main = do putstrln "Enter your name:" name <- getline putstrln $ "Hello, " ++ name ++ ", how are you?" ``` 3/26/2013

Console App 3/26/2013

Example Web App ## Sample Yesod App This app creates a yesod server and pages. ``` active haskell web {-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses, TemplateHaskell, OverloadedStrings #-} import Yesod data MySite = MySite instance Yesod MySite mkyesod "MySite" [parseroutes / HomeR GET /about AboutR GET ] gethomer = defaultlayout $ do [whamlet Welcome to my web site! <br> <a href=@{aboutr}>about Me. ] towidget [cassius body background-color: #048 color: white a color: yellow ] getaboutr = defaultlayout [whamlet Enough about me! <br> <a href=@{homer}>back Home. ] main = warpenv MySite ``` 3/26/2013

Showing Code Snippets ``` active haskell web {-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses, TemplateHaskell, OverloadedStrings #-} import Yesod -- show data MySite = MySite instance Yesod MySite mkyesod "MySite" [parseroutes / HomeR GET /about AboutR GET ] gethomer = defaultlayout $ do [whamlet Welcome to my web site! <br> <a href=@{aboutr}>about Me. ] towidget [cassius body background-color: #048 color: white a color: yellow ] getaboutr = defaultlayout [whamlet Enough about me! <br> <a href=@{homer}>back Home. ] main = warpenv MySite -- show ``` 3/26/2013

Example Snippet 3/26/2013

Web App Output 3/26/2013

Web Front End Design Written in Yesod Whamlet, HTML, and Markdown for Web Pages Engine for rendering Markdown Cassius and CSS for Style Sheets Fay for JavaScript (markdown can contain JS) Front end communicates via REST / JSON / AJAX All site static pages written in Markdown Markdown pages can contain HTML

Front End Functions 1. Serve Static Web Pages 2. Create Dynamic Pages (e.g. tutorial list) 3. Process Web Client Requests 4. Brokers back end services 5. Renders output from user applications

Infrastructure Isolation services (back end) Creates and populates isolated runtimes Serves requests for compile and execution Web servers (front end) Manages virtual hosts and routes HTTP requests Runs School of Haskell and user web services Cloud services (service infrastructure) Storage (databases, and files) Email and Messaging Repository (GitHub, private git repos) Logging and event management

Isolation Manager Manages isolation containers Creates and populates containers Launches build and execute processes Sends stdout to front end service Isolation container options LXC on a shared EC2 Instance A private EC2 Instance Created and destroyed on demand Managed by the elastic load balancer

Front End Services Used for deploying services A collection of EC2 web instances Provides request routing Each web service assigned a host / port Virtual host manager responsible for routing Instances managed by front end EC2 balancer Instances communicate with cloud services

Cloud Services Can be any web based service SoH uses S3, GitHub and git Postgres (Heroku) SimpleDB SES Loggly

Add More Services We will add more services based on Haskell Development Center requirements Individual requirements Customer demand for services

Next Steps Haskell Cloud Development Center Code Snipped based intelligent editor Guided development Integrated help and learning Build, test, and deploy Repository integration Vetted libraries from Stackage Scalability Cabal import and export

Next Steps Haskell Private Development Center Same features as Cloud service Deploy on public cloud or private VM Available as a VM behind the firewall Service is self managed Updates from FP Complete 3/26/2013

Next Steps Application services Configuration and deployment management Health monitoring and profiling Alert and event management Runtime Analytics and Metrics Control Management Exception processing Event and log consolidation

Next Steps Interoperability JVM CLR Improved C++ Java Application server support (e.g. Jboss) Excel??

Next Steps Distributed Services Cloud Haskell?? Distributed service management Value Add distributed service Libraries Failover and redundancy

Current Plans Alpha in April Public beta by mid year Some application services by end of year Some JVM support by end of year

That s it Thank you for your time!! 3/26/2013