50
DIRIGIBLE Nedelcho Delchev (@delchevn) EclipseCon EU 2015

Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Embed Size (px)

Citation preview

Page 1: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

DIRIGIBLENedelcho Delchev (@delchevn)

EclipseCon EU 2015

Page 2: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Agenda

• Overview• Highlights• Driving Forces• Technical Look• Future Look• Recap

Page 3: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Overview

Page 4: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

What is it?Dirigible is an Integrated Development Environment as a Service (IDEaaS) for dynamic applications. It provides both development tools and runtime environment.Dirigible is part of the Eclipse Cloud Development TLP (ECD), along with Orion, Che, Flux and CloudFoundry Tools.

Page 5: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

ECD?

Page 6: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

What can you do with it?Everything you need for your next generation cloud application:• Database management• Scripting services• Shell commands• Flows & Jobs• Web content• Wiki documents• Lifecycle management• Monitoring logs

Page 7: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Highlights

Page 8: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Building BlocksThree major pillars:• Repository• IDE• Runtime

Page 9: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Web IDEDirigible has a full-fledged Web IDE running entirely in a browser, hence doesn’t require any installation and configuration steps. Focused on JavaScript support client- and server-side.

Page 10: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Orion EditorEmbedded Orion editor is the default one for JavaScript and HTML5/CSS authoring. Dirigible’s injected API is integrated in code-completion as well.

http://www.dirigible.io/blogs/2015/10/28/blogs_dirigible_orion_editor.html

Page 11: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Standard Eclipse PluginsBy using single source paradigm of Eclipse RAP, it is possible ~90% of the functionality to run server-less in the standalone Eclipse IDE. In this way you can still use your favorite tools e.g. JDT, JSDT, eGit. Focused mainly on the Java services development.

http://www.dirigible.io/help/eclipse-rcp.html

Page 12: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Deployment OptionsDirigible is entirely modularized leveraging OSGi by Eclipse Equinox. It provides a few default options of packaging - Trial, All-In-One, Runtime and RCP Update Site with platform specific builds for SAP HANA Cloud Platform and Apache Tomcat (standalone or CloudFoundry or OpenShift).

http://www.dirigible.io/help/tomcat.html

Page 13: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Off-line OptionsThere are three options for off-line mode development using Dirigible:• Self-contained executable jar• Local instance deployed on Java Web container

such as Apache Tomcat• Native plugins in Eclipse

http://download.eclipse.org/dirigible/

Page 15: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Bring-Your-Own-LanguageIn case you want to use a language different than the built-in ones - JavaScript and Java, you can easily implement a bridge extension for JVM languages like Groovy, jRuby, Jython, Scala, etc.

http://www.dirigible.io/blogs/2015/10/21/blogs_dirigible_impl_sql_plugin.html

Page 16: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Usage?So far internally at SAP and very few customers and partners as well as a learning tool at universities and schools

Page 17: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Driving Forces

Page 18: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

The Ultimate GoalDirigible promotes so called In-System Programming development model. It avoids the side-effects of a simulated (local) environment, gives access to the live data, ensures all the dependencies and integrations are on place and at the end results to the shortest development turn-around time ever.

Page 19: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Dynamic Applications• Built for change• Consist of atomic components• Promote REST/Web 2.0 patterns• Built on micro-services architecture• Cover vertical scenarios• Provide end-to-end completeness• Extensible and adaptable

http://www.dirigible.io/help/dynamic_applications.html

Page 21: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Pull PrincipleIn fact, the absolute pull principle – we develop the toolkit in the way we ourselves need it and use it.

Page 22: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

RAD Technics• Fast prototyping• Predefined templates• Wizards and specialized editors• Reusable artifacts• Enforce best-practices

Page 23: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Injected ServicesDirigible has a concepts of Injected Services and Execution Context. • Injected Services are predefined objects or

platform services wrappers, which are accessible directly during the script execution.

• The Context is a standard way to pass parameters throughout the process of separated modules.

It is possible to extend the set of Injected Services e.g. based on Cloud Platform in use.

http://www.dirigible.io/help/api.html

Page 24: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Content TransportAll the artifacts for a given project in Dirigible are stored in the underlying Repository component. It has an abstract File System like structure, hence it can be easily bundled and transported to another instance. There is a remote interface as well as CLI, which can be used for integration with the legacy transport management systems in your landscape.

Registry Content

New Instance

Zip archive via HTTPor Git clone

Page 25: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

ScalingDirigible promotes architectural patterns proven in the cloud computing space. By wizards, templates and other RAD technics, it tries to enforce Web 2.0 paradigm and micro-services architecture. In case the application follows the best practices, it can be possible to scale horizontally afterwards on production landscape.

Page 26: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Technical Look

Page 27: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Create, Import or Clone a Project

Page 28: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Data Models

Page 29: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Inspect the Database state• Database Perspective has Database Viewer and

SQL Console for low level manipulations.

Page 30: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Generate a RESTful serviceOnce you have the data model in place, you can generate a CRUD service for it.

Page 31: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

What is generated?Based on the database table definition, all server-side JavaScript artifacts are produced using predefined templates. After activation, you have a fully capable REST service exposing your data from the database layer as JSON content over HTTP.

Template

Metadata

Generator

REST service

Page 32: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

JavaScript - Node.js or?Dirigible uses Mozilla Rhino.• Mature and stable framework• Supports CommonJS for dynamic loading of

modules• Built-in debugger with simple API• Possibility to invoke standard Java objects directly

Page 33: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Activate or Publish?• Activate copy the artifacts from the user’s

workspace to the sandbox for testing.• Publish copy the artifacts to the public registry

space.activate

publishWorkspac

e

Sandbox

Registry

Page 34: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Debugging the code?Dirigible provides a Debug perspective for the default language – JavaScript.

Page 35: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

User InterfaceTo be complete for the entity management scenario, we added templates for pattern based user interface generation. Default technologies as of now:• Bootstrap + AngularJS• OpenUI5

Page 36: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Process declarations?In the context of Cloud Applications, usually it is required integrations with external 3-thd party services or just declarative description of consecutive calls. In Dirigible we semantically separated such services by adding: • Flows – simple context based routing in JSON • Jobs – asynchronous triggers with CRON

expressions in JSON

Page 37: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

ExtensibilityThere is a generic extensibility concept in place. You can define extension points at the “packaged software” part, hence it is possible for others to introduce extensions to these extension points. There is no syntactical contract definition, it is bilateral.

Page 38: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

SecurityThere is easy way to secure the endpoints of your services or user interfaces. You can choose from the set of predefined roles.It is possible to add more roles, if needed.

Page 39: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

DocumentationTo make your application ready-to-use for your users it is not enough just to cover all the functional requirements. The documentation is considered as integral part of the application itself. The supported wiki formats are confluence, markdown, textile, tracwiki and twiki.

Page 40: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

SCMGit is the SCM of choice for Dirigible. There is a simplified Git interaction support in the Web IDE. In case of more complex “merge” situations you can commit your changes in a new branch and continue with the fixes by using your favorite Git client or via the Terminal view.

Page 41: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Monitoring

Page 42: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Future Look

Page 43: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

What is next?Some of the hot topics in discussion:• More widgets and enhancements in UI templates• Enhanced templates authoring• More integrations – no-SQL databases, messaging

busses• non-JVM Runtime implementations• More languages – groovy, ruby, python, DSLs, …• More form-based editors for major artifacts• WYSIWYG enhancements and binding support• Tutorials and courses• More samples and show-cases• Market place for reusable services• … your own deliveries

Page 44: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Worth to join?

?

Page 45: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Why to contribute? You have some Eclipse based plugins and you are

curious whether they can run in Dirigible environment? You are keen on using Web IDE based development, but

you miss important features? You are cloud platform provider and you want to see

your services as injected objects? You are in software business and want to boost the

productivity by developing new services in the cloud You are creator or a fan of a great programming language

and you want to integrate it as a scripting language? You are a teacher looking for an easy-to-use tool for your

courses … or you just know that to contribute to open source

projects is still considered cool by younger people

Page 46: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

How to contribute?• Go to:https://github.com/eclipse/dirigible

clone, fork, make pull requests…

If in doubt, just contact us.

Page 47: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Recap

Page 48: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Key Takeaways• There is a project in Eclipse Foundation called

Dirigible• It provides development environment that can run

everywhere• It claims to provide everything you need as a

developer• It claims to provide fastest developer turn-around

time• It claims to promote the most powerful development

model• It enforces best-practices in your applications• It starts establishing ecosystem for business services

around it• It is built with care and love

Page 49: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

References• http://www.dirigible.io• https://www.eclipse.org/dirigible/• https://github.com/eclipse/dirigible• http://www.dirigible.io/blogs.html• @dirigible_io• https://www.youtube.com/channel/UCY

nsiVQ0M9iQLqP5DXCLMBA/videos• http://scn.sap.com/docs/DOC-33139

 (Topic:IDEaaS)

Page 50: Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)

Thank You!