Dreaming up a CMS in Go (golang)

Slides:



Advertisements
Similar presentations
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Advertisements

OpenAtrium A Drupal Distribution for Online Collaboration Bud Witney Systems Manager Horticulture & Crop Science Department.
Acquia Cloud Drupal Platform-as-a-Service. Market Size [1,00,000+ sites] Innovation [10,000+ modules] Community [500,000+ members] “… is as much a Social.
Introducing new web content management tools for Priority...
Progress Report 11/1/01 Matt Bridges. Overview Data collection and analysis tool for web site traffic Lets website administrators know who is on their.
Presented by Mina Haratiannezhadi 1.  publishing, editing and modifying content  maintenance  central interface  manage workflows 2.
The easy way to a nice looking website design By a total non-designer (Me!)
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
ITM352 Javascript and Dynamic Web Pages: Client Side Processing.
1 Copyright 2008 NexJ Systems Inc. Confidential and Proprietary - Not for Distribution. Open Source Strategy NexJ Systems Inc.
Implementing search with free software An introduction to Solr By Mick England.
PHP and MySQL Week#1  Course Plan.  Introduction to Dynamic Web Content.  Setting Up Development Server Eng. Mohamed Ahmed Black 1.
Web Content Management Systems. Lecture Contents Web Content Management Systems Non-technical users manage content Workflow management system Different.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
MVC New release IE8 Beta 1 Deep Zoom (sea dragon) Silver light 2.0 Beta 1 Expression Blend 2.5 Preview Instant Messaging API Enhancements to Virtual Earth.
1. 2 What’s New in NetBeans IDE What is NetBeans IDE?  Ready to use out of the box  Support for latest Java specifications & standards  Other.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
WordPress Web. WordPress Blogging system with full content management Personal publishing system Built on PHP scripting language and MySQL relational.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
INTERNET APPLICATION DEVELOPMENT For More visit:
Model a Container Runtime environment on Your Mac with VMware AppCatalyst VMworld Fabio Rapposelli
Codeigniter is an open source web application. It occupies a very small amount of space in the memory and is most useful for developers who aim to develop.
We Know IT … IT’s What We Do! ® 2 Cyprien Mvuanda & Jonathan Davis Empire 2.0 Services October 1, 2010 Albany, NY Design, Development,Workflow and Implementation.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Sample School Website. What is wrong with the existing School Webspace Site? Can only host static pages – no dynamic content possible. Can not be edited.
Dean Anderson Polk County, Oregon GIS in Action 2014 Modifying Open Source Software (A Case Study)
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Implement Viewing Transactions in Real Time James Payne Managing Director for New Media / Advancement July 27, 2015.
Web Cache. What is Cache? Cache is the storing of data temporarily to improve performance. Cache exist in a variety of areas such as your CPU, Hard Disk.
Online Conference June 17 th and 18 th Modern SharePoint Development using Visual Studio Code.
Top 5 IDE that Simplifies PHP Development Biztech IT Consultancy Pvt. Ltd. | |
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
INFM 700 Project 3 (Aqua) - Akashdeep Ray - Arnaud Lawson - Neha AR - Vidisha Vedvyas.
1 Cutting Edge FE technologies for complex product August 6, 2015.
Drupal Basics May 30, 2012 By Sean Fitzpatrick. Sean Fitzpatrick | Welcome We're going to talk about Drupal We're going to keep it pretty.
JQuery Fundamentals Introduction Tutorial Videos
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
INTRO TO Presenter: PhuongNQK.
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
Fundamentals Sunny Sharma Microsoft
Presents An enterprise-ready commerce solution, without the enterprise problems or the enterprise price tag. How many people are: DNN users? Developers?
Docker Birthday #3.
Getting Started as an EdgeX Developer
Platform as a Service.
Content Management System
WordPress “WordPress is a free and open source blog publishing application.” Christina Vasileiou Database management system.
ASP.NET in Linux and Windows containers
PHP / MySQL Introduction
Drupal VM and Docker4Drupal For Drupal Development Platform
Enhancing Cloud Foundry with CLI Plugins
Dynamic Web Pages (Flash, JavaScript)
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Content Management Systems
9/20/ :55 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Building Modern Web Apps with ASP.NET MVC 6
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
Google App Engine Ying Zou 01/24/2016.
Cloud Web Filtering Platform
2/24/2019 6:15 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
.NET Conf 2018 Keynote Jose Barbosa Aaron Amm Theeranit.
International Living Atlases Workshop Madrid 2018
Web AppBuilder for ArcGIS
Introduce to Angular 6 Present by: Võ Văn Hào
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Implementation of Drupal: An Effective Content Management System for
#01# ASP.NET Core Overview Design by: TEDU Trainer: Bach Ngoc Toan
Running C# in the browser
ASP.NET Core 2.0 The Future of Web Apps Shahed Chowdhuri
Presentation transcript:

Dreaming up a CMS in Go (golang) Use Drupal experience to imagine a fast CMS. DrupalCamp Florida Jitesh Doshi, SpinSpire.com Twitter: @spinspire_com Sample code: https://bitbucket.org/jitesh_doshi/gander

We love Drupal as a CMS & Platform We make a living at it. But we want more from it … Speed Smaller footprint Faster development Massive scaling More flexible Information Architecture While keeping all that is good about Drupal

About SpinSpire SpinSpire is a Drupal focused company. All developers located in Jacksonville, Florida. Contributed modules: popular_tags & prlp. Clients such as Nike, Florida Blue and Federal Govt. Find us on the web, or visit spinspire.com

Go Programming Language (golang) Correctness: Compilation, static typing, etc. Productivity: Garbage collection, small core A comprehensive runtime library Package system (go get) Fully self-contained binaries Cross-compilation Overall great toolset

Fully Self-contained binaries Can be deployed as small, single file docker image Combine with docker-compose to add database, caching, search-engine, etc. Look ma, no OS!!!

Dynamically loaded plugins (extensions) Now, compile plugins to *.so files (on Linux) Load the plugin from "main" binary Call symbols (functions) from the plugin What's that, if not an extension?

Extreme scalability with goroutines Go implements CSP's (Communicating Seq. Processes) as goroutines and channels Any blocking operation could be goroutine Run tens of thousands of goroutines But make sure there's no reverse proxy! Built-in HTTP server runs each HTTP request in it's own goroutine

More Flexible Information Architecture Problems with Drupal entities: nid + vid + langcode Embedding and referencing other entities NoSQL v/s Relational Full NoSQL / document databases (Mongo etc.) Partial schemaless: JSON columns in MySQL & PGSQL

Content Editing Usability Improvements Instant, one-click edits (HTML5 inline editing) Auto-save Auto-versioning Layered versioning Easy undo/redo Basically, a git-like CMS

Other Features Real-time content (push) updates for site visitors E.g. live updates on breaking news or game score. Think firebase! Or better yet, RethinkDB. API-fast!!! (not just API-first) Bootstrapping Drupal slows down API calls Native GraphQL server Server-side templating option(al).

What would setup/install look like? Install docker curl -O <somewhere>/docker-compose.yml docker-compose up -d Navigate to http://localhost:8080/ Download *.so plugins to ./plugins Enable and configure plugins Deploy to PROD (using CLI tool) in cloud

Development Workflow? go get … cli start … edit <someplugin>.go (vscode, IntelliJ, vi, emacs, etc.) Save … auto-compile … auto-reload Test … Commit … push ...

Let's move the conversation forward And take action ... Email: jitesh@spinspire.com Twitter @spinspire_com Visit spinspire.com Past video tutorial screencasts youtube.com/spinspire Sample code: https://bitbucket.org/jitesh_doshi/gander