Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Basejmp Platform

Ganesh Paramasivam
March 12, 2024
390

Basejmp Platform

Overview of the Basejmp platform

Ganesh Paramasivam

March 12, 2024
Tweet

Transcript

  1. E N T E R P R I S E

    D I G I T A L & A I A P P L I C A T I O N S
  2. BASEJMP Basejmp is a Low Code Application platform for Rapid,

    Reliable & Painless development and deployment of Digital and AI Transformation Applications for all Digital and AI transformation initiatives
  3. WHAT IS BASEJMP ? Basejmp is a Digital and AI

    transformation platform that allows to rapidly build and deploy Full stack enterprise transformation applications ( Both front-end and back-end ) Applications that are cloud-native (API driven, horizontally scalable, resilient, fault- tolerant ) Applications that can hosted on-premise or on cloud Extremely rapidly With minimal engineering resources Without limits - Everything possible with traditional development is possible with Basejmp Supported by AI - Program the behaviour using “English” as a programming language
  4. PROBLEM Developing full-stack cloud native applications for transformation initiatives Are

    technically complex (due to vast ever changing technology landscape) Needs hiring/skilling a multi-faceted team of scarcely available and expensive engineering resources (skilled in front-end, back-end, cloud, on-premise, databases etc.) Takes a long time to develop Are unpredictable in terms of both cost and schedule Difficult to evolve and adapt to changes Needs continuous investment to maintain
  5. “Basejmp platform simpli fi es application development by enabling the

    instant instantiation of an universal cloud-native application that is then tailored to a speci fi c need by con fi guring and customising the contained application building blocks using the provided development tools” HOW DOES BASEJMP SOLVE THIS
  6. HOW DO YOU USE BASEJMP ? Instantiate a universal application

    and apply necessary configurations and customisations DEPLOY ROLL-OUT CONFIGURE CUSTOM APPLICATIONS
  7. BASEJMP PLATFORM Basejmp platform consists of •Universal Cloud Native Application

    • That is instantiated for a specific use-case •Made of Configurable and Customisable application building blocks • A set of primitive blocks that configured and customized depending on your needs •Customised using High-Productivity Dev tools • A powerful toolset to perform the above configuration and customisation The con fi guration and customisation transforms the instantiated universal application into a custom tailored application
  8. IMPROVEMENTS When Basejmp is used to build cloud native applications

    Engineering resource needs are minimal - A single engineer sufficient to build applications end-to-end to start with Easy to ramp-up on using the system - No need to hire trained and certified specialists. The resulting app is by default horizontally scalable, resilient, infrastructure independent Predictability of time, cost and quality Easy to maintain and evolve
  9. EXAMPLE USAGE SCENARIOS Instantiate a universal application and apply necessary

    configurations and customisations Internal applications Automation and business function support applications Integration of existing systems - data pipe that pushes and pulls data Business intelligence Dashboards Data analytics system (machine learning and AI platform) CUSTOM APPLICATION
  10. EXAMPLE USAGE SCENARIOS Instantiate a universal application and apply necessary

    configurations and customisations Applications you sell Technology products that you sell to customers Custom-fit applications built-for your clients Custom additions to your technology product offerings Complementary products to your technology product offerings CUSTOM APPLICATION
  11. EXAMPLE USAGE SCENARIOS Instantiate a universal application and Bundle your

    product inside this. Customisation layer for your product Bundle your product inside Basejmp Use Basejmp to abstract away infrastructure. Use the configuration and customisation blocks to build custom functionalities not aligned with your product road-map CUSTOM APPLICATION
  12. WHY SHOULD YOU USE BASEJMP LOW OPERATIONAL COST REDUCE TOTAL

    COST OF OWNERSHIP Low maintenance across application lifecycle Deploy multiple applications as well as multiple instances of applications on the same platform. ULTRA-HIGH PRODUCTIVITY & FLEXIBILITY ADAPT WITH AGILITY BASED ON FEEDBACK Develop and release applications faster. Be agile, nimble and adapt rapidly based on user feedback. Get more done with existing engineering resources/budget. Realise significant cost and lead-times savings. Avoid high costs and lead times of custom development and inflexibility of SAAS.
  13. BASJMP ALTERNATIVES What are the limitations of using commercial off-the-shelf

    SaaS applications that meeds your application needs. OFF-THE- SHELF SAAS APPLICATIONS SaaS (In) Flexibility SaaS applications are common for all of the vendor's customers. Customising the solution to a specific need is not possible Data silos Each SaaS application used is a Data Silo. Special effort needed to aggregate data across silos. Integration Challenges Dependent on SaaS vendor if one system needs to be integrated with another system (SaaS or in-house ) What are the limitations of developing a custom application either by in-house development teams or dev agencies. CUSTOM DEVELOPED APPLICATIONS DEV High Development Cost The cost of full-stack development is very high due to the complex nature of the activity needing scarce talent Long development time-lines Complex development activity results in long time-lines from conception to deployment High TCO Even after completion of development, long-term investment needed to enhance and address issues
  14. The universal application is tailored for a speci fi c

    use-case by con fi guring and customising the di ff erent application building blocks supported by it. Basejmp provides di ff erent application blocks for the di ff erent parts of the application. APPLICATION BUILDING BLOCKS
  15. DATABASE BLOCKS INTERFACE DATABASE LOGIC GATEWAY Database Blocks allow the

    creation of the data model of the application. With the database blocks you can • Create a transactional database • Create a Analytical database • Create Table within these databases • Add Columns to the tables STORE-TABLE-COLUMN APPLICATION BLOCKS PROVIDED BY BASEJMP
  16. BUSINESS LOGIC BLOCKS INTERFACE DATABASE LOGIC GATEWAY Hosting Block allows

    the creation of •A static http server to serve static site content to complement your dynamic app •With ability to upload content to this server via HTTP API (Example:- Static content on GitHub can be uploaded automatically using Github actions) STATIC HOSTING APPLICATION BLOCKS PROVIDED BY BASEJMP
  17. BUSINESS LOGIC BLOCKS INTERFACE DATABASE LOGIC GATEWAY APPLICATION BLOCKS PROVIDED

    BY BASEJMP The authentication block allows for the creation of an authentication service with support for • Maintaining a user database • Login, Logout, Reset and Change Password services • Integration with an external IDP
  18. BUSINESS LOGIC BLOCKS INTERFACE DATABASE LOGIC GATEWAY The SQL API

    Blocks allows the creation of a service • That is created from parameterised SQL query template • The template is rendered at run-time with parameters substituted by HTTP arguments • The query response is returned as an array of JSON Objects SQL API APPLICATION BLOCKS PROVIDED BY BASEJMP
  19. BUSINESS LOGIC BLOCKS INTERFACE DATABASE LOGIC GATEWAY LAMBDA APPLICATION BLOCKS

    PROVIDED BY BASEJMP The Lambda blocks allow the creation of a service • That is created from the con fi gured Javascript code. • During execution of the service the Javascript code is executed in a sand-boxed Deno runtime. • The response returned by the Javascript code is returned in the HTTP Response
  20. API GATEWAY BLOCKS INTERFACE DATABASE LOGIC GATEWAY The API Gateway

    allows for • The setup of domains and paths to expose business logic to outside world. • Wiring up the path to the backing business logic block (Hosting, Authentication, SQLAPI, Lambda) DOMAIN-PATH-PATHGROUP APPLICATION BLOCKS PROVIDED BY BASEJMP
  21. API GATEWAY BLOCKS INTERFACE DATABASE LOGIC GATEWAY AUTHZ APPLICATION BLOCKS

    PROVIDED BY BASEJMP The authorisation block allows to setup rules on a domain, path and HTTP method basis to decide • If un-authenticated users are allowed to access the same • If not and only authenticated users are allowed, which authentication pool should be user be authenticated against.
  22. USER INTERFACE BLOCKS INTERFACE DATABASE LOGIC GATEWAY The front-end blocks

    allow the creation of the user interface. With these blocks • Multiple applications can be created • For each application, the following can be created • UI Screen accessible at a speci fi c hash/fragment path • States to back the screen • Reducers and thunks to modify state FRONT-END
  23. CONTAINER BLOCK The container block allows to • Instantiate any

    of the thousands of containers available in docker hub or other docker registries • Create storage (Block and Fileystem) for these containers • Create services for these containers that are accessible from the API Gateway block
  24. BLOCKS BROWSER & EDITOR The blocks browser master-detail browser is

    the main interface through which all the blocks can be browsed and controlled.
  25. VISUAL UI EDITOR The UI Editor Provides a Drag and

    Drop editor to build Front-end UI components from a library of commonly needed widgets.
  26. The AI Assisted UI Logic editor allows the development of

    front-end UI logic by providing instructions in English AI ASSISTED UI LOGIC EDITOR
  27. TRADITIONAL UI LOGIC EDITOR The traditional UI Logic editor allows

    the development of UI Front-end logic via traditional coding in the browser
  28. AI ASSISTED LAMBDA EDITOR The AI Assisted Lambda Editor allows

    for the development of lambda functions using English instructions
  29. TRADITIONAL LAMBDA EDITOR The AI Assisted Lambda editor allows the

    development of Lambda logic by providing instructions in English
  30. DATABASE BROWSER Database Browser provides an interface to perform ad-hoc

    SQL queries to check database schema and test SQL queries during development
  31. API TESTER API Tester allows testing of API’s created by

    allowing for making requests with different kinds of headers and payloads.
  32. SQL API TESTER SQL API Tester allows testing of SQL

    API templates by checking the rendered templates against various input arguments
  33. The web based console is complemented by an interactive CLI

    tool that allows to achieve via command-line everything that can be achieved via the web console. INTERACTIVE CLI
  34. Declarative YAML based con fi guration allows automation of app

    creation as well as version control of created apps. DECLARATIVE
  35. BASEJMP ARCHITECTURE DETAILS Elastic Horizontal Scalability - All Basejmp services

    are micro services packaged as Docker containers that can be scaled up and down on demand Resilient and Fault Tolerance - Kubernetes distribution used for orchestration of micro-services High Performance and Stability - All micro-services in Rust - Performance, Security, Stability Deployment Flexibility - Solution designed to be implemented across various infra configurations (Tested for - Bare-metal, VMWare ESXi, AWS EC2, OVHCloud Bare-Metal, OVH Managed Kubernetes etc.)
  36. BASEJMP ARCHITECTURE DETAILS Export and Import of applications - Developed

    applications can be exported to a yaml file and version-controlled. Declarative application configuration - Apply exported yaml file back to running deployment for applying incremental changes Multiple accounts and multiple application support - Can support multiple accounts and multiple applications within each account for better management
  37. Proven and Scalable components used for application blocks - Rook

    Ceph for storage Citus for Transactional Database, Clickhouse for Analytical Database Keycloak for authentication, CASBIN for authorisation NGINX for static hosting, deno for powering lambda functions Docker to run containers QEMU-KVM for launching Virtual Machines (coming soon) React, PrimeReact and Redux for UI components BASEJMP ARCHITECTURE DETAILS
  38. ENGAGEMENT MODELS Basejmp provides the solution only. Customer uses in-house

    development team to develop applications themselves. Basejmp provides necessary training and guidance during development. PLATFORM WITH TRAINING Basejmp provides the solution and additionally works with the customer to develop applications as per the customer’s requirement. FULL APPLICATION DELIVERY PRODUCT & TRAINING TURNKEY SOLUTIONS
  39. Working with stakeholders and identifying the detailed list of personas

    and use- cases that the application needs to support. REQUIREMENTS UNDERSTANDING Develop UI mockups that shows the User experience flow for the major use-cases UI MOCKUPS DEVELOPMENT Understanding of the scope of the application and high-level scheduling of activities. PROJECT KICK-OFF TYPICAL APPLICATION DEVELOPMENT STEPS
  40. Based on the use-cases and the UI screens, identify and

    list the different blocks that needs to be created and configured CONFIGURATION IDENTIFICATION Deploy application to the final end- users DEPLOY Create, configure and connect the blocks identified in the previous step using the Basejmp console, CLI or the declarative configuration file OBJECTS CREATION AND CONFIGURATION Deploy, demo and test the developed application and identify missing and wrongly implemented functionality DEMO, USER TEST AND BUG-FIX