SlideShare a Scribd company logo
DIY - Web App / Web Api
Java / JVM Languages + Gitlab (git, Auto CI & CD) +
Heroku + Let’s Encrypt SSL
Harish Kannarao
LinkedIn: https://www.linkedin.com/in/harish-kannarao/
Github: https://github.com/harishkannarao
Blogs: https://harish-kannarao.blogspot.in/
There was a passionate java
developer, doing some
serious application
programming
One day, he got married to a
lovely girl
She was a founder and
trustee of Aathirai
Educational and Charitable
trust
(a small non-profitable
charity organisation)
➢ Receive donations online
(payment gateway)
➢ Allow social logins
(Google, Facebook…) to
update subscribers
about events
The Developer gets super
excited
to make
enhancements to
the website
Reality:
➔ PHP application
➔ No version control
➔ No page templating
➔ Not mobile friendly
➔ No tests
➔ No CI / CD
➔ No SSL
➔ SSL is expensive
Convince the trustees:
➔ Rewrite the website
➔ Good automated test coverage
(unit and integration level)
➔ Git version control
➔ Responsive web application
➔ Auto-pipelines (CI & CD)
➔ SSL support
➔ Keeping cost to minimal level
Create a simple standalone
java web application with
basic unit and integration
tests
(Spring Boot)
Version Control service:
➔ Github
➔ Gitlab
➔ Bitbucket
➔ …..
https://about.gitlab.com/gitlab-com/
Highlights:
● Free unlimited private repositories and collaborators
● Free Auto CI & CD pipelines (2000 minutes per minutes
with shared runners)
Digital Ocean droplets for GitLab CI Runners:
https://www.digitalocean.com/pricing/#droplet
https://about.gitlab.com/2016/04/19/how-to-set-up-gitlab-run
ner-on-digitalocean/
Gitlab price plan
Cloud hosting service:
➔ AWS from Amazon
➔ Cloud Foundry from Pivotal
➔ Openshift from Redhat
➔ Heroku from Salesforce
➔ Google Cloud
➔ …..
Heroku price plan
● Official plugin for Maven, Gradle and SBT
● Let’s Encrypt SSL support with Auto Certificate Management (ACM)
● Price start from $7 per month
https://www.heroku.com/pricing
For $7 per month:
● 512 MB RAM up to 10 Process Types
● Let’s Encrypt SSL with Auto Certificate Management
● Basic Application Metrics
● Postgres Database up to 10K rows
● Redis database up to 20 concurrent connections
Commercial SSL
Certificates:
● Single site SSL certificate is
$36 for first year and then
$70 per year from second
year
● Wildcard SSL certificate
initial cost is $185 for first
year and $300 per year from
second year
Let’s Encrypt SSL
Let’s Encrypt is a free, automated, and open certificate
authority brought to you by the non-profit Internet Security
Research Group (ISRG).
About: https://letsencrypt.org/about/
Compatibility:
https://letsencrypt.org/docs/certificate-compatibility/
Statistics: https://letsencrypt.org/stats/
Complete picture
Gitlab
Auto CI Pipeline
(Unit and Integration Tests)
Java Spring Boot Web App
Auto CD Pipeline
(Deploy to Heroku)
Heroku
Java Build Packs
Auto Certificate
Management
Load balancer and
Instances
Let’s Encrypt
Domain Registrar’s
CNAME Entry
(GoDaddy)
● Java
● Spring Boot
● Bootstrap
● Angular
● Webjar
● Responsive
● Single Page Application
● Test Driven Development
● Auto-Pipelines for CI & CD
&
Room for future enhancements
http://www.aathirai.org
➢ Gitlab pipeline &
configuration
➢ Gitlab runners configuration
➢ Heroku plugin configuration
➢ Heroku dashboard
➢ Heroku settings
○ Custom domain
○ Let’s Encrypt SSL
➢ Heroku metrics
➢ CNAME Entry
○ GoDaddy
Quick Demo
Wife became very happy and
husband gets treated with
some awesome Indian food at
home,
along with loads of love.
Can this same concept be applied
to a medium sized project with
multiple environment and complex
pipeline ????
Not the End…...
Medium size project
https://gitlab.com/harishkannarao/ci-example-project/pipelines
https://gitlab.com/harishkannarao/ci-example-project/pipelines/13625240
Large Enterprise Project
The Twelve-Factor App
https://12factor.net/
I. Codebase
One codebase tracked in revision control, many
deploys
II. Dependencies
Explicitly declare and isolate dependencies
III. Config
Store config in the environment
IV. Backing services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless
processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and
graceful shutdown
X. Dev/prod parity
Keep development, staging, and production as
similar as possible
XI. Logs
Treat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off
processes
○ Multiple pipelines in single
(mono) Repo?
https://gitlab.com/gitlab-org/gitla
b-ce/issues/18157
○ Ability to configure inter
project pipeline dependencies?
Other Challenges for large enterprise projects
Other Challenges (Continued…)
○ Role based permission for
manual triggers?
https://gitlab.com/gitlab-org/gitla
b-ce/issues/20261
○ Mono release in Heroku with
multiple micro components?
○ Scoped API key for Heroku
https://www.your-next-fancy-idea.com
Java / JVM based language or framework
Gitlab [ Digital Ocean ]
Heroku [ Let’s Encrypt ]
Go Daddy
● Get started with basic hello world skeleton app in less than 3 hours
● Zero manual interaction from development to live
● Cost:
○ Version Control: Free (basic) / $4 per user per month (advanced) from Gitlab
○ CI & CD: Free (up to 2000 minutes from Gitlab) / From $5 per month (with Digital Ocean
runners)
○ App Instance: From $7 per month (with Heroku)
● Can scale up with business needs and growth
https://api.your-next-mobile-app.com
Summary
The peak–end rule is a psychological heuristic
in which people judge an experience largely
based on how they felt at its peak (i.e., its
most intense point) and at its end, rather than
based on the total sum or average of every
moment of the experience.
Example:
● Brexit Referendum 2016
● US Presidential Election 2016
Peak-End Rule
https://en.wikipedia.org/wiki/Peak%E2%80%93end_rule
Do It Yourself :: Web App - Web Api
Do It Yourself :: Web App - Web Api

More Related Content

What's hot

From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with Wakanda
Alexandre Morgaut
 
React Webinar With CodePolitan
React Webinar With CodePolitanReact Webinar With CodePolitan
React Webinar With CodePolitan
Riza Fahmi
 
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Stephen Chin
 
Overview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysisOverview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysis
Michael Bryzek
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
Stephen Chin
 
GitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabGitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLab
Fatih Acet
 
Simple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and SwaggerSimple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and Swagger
LeanIX GmbH
 
Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017
Deepu K Sasidharan
 
How we build project for Open Source
How we build project for Open SourceHow we build project for Open Source
How we build project for Open Source
Alexander Zayats
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product Lifecycle
OlyaSurits
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
Allen Dean
 
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceEnhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Nico Meisenzahl
 
Michael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 PresentationMichael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 PresentationMichael(tm) Smith
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoni
Sandeep Soni
 
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
WSO2
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
HYS Enterprise
 
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Codemotion
 
stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?
NETWAYS
 
Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020
George Adams
 
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
ManageIQ
 

What's hot (20)

From Web App Model Design to Production with Wakanda
From Web App Model Design to Production with WakandaFrom Web App Model Design to Production with Wakanda
From Web App Model Design to Production with Wakanda
 
React Webinar With CodePolitan
React Webinar With CodePolitanReact Webinar With CodePolitan
React Webinar With CodePolitan
 
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
 
Overview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysisOverview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysis
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
 
GitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabGitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLab
 
Simple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and SwaggerSimple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and Swagger
 
Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017Easy Microservices with JHipster - Devoxx BE 2017
Easy Microservices with JHipster - Devoxx BE 2017
 
How we build project for Open Source
How we build project for Open SourceHow we build project for Open Source
How we build project for Open Source
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product Lifecycle
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
 
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceEnhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
 
Michael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 PresentationMichael(tm) Smith WND09 Presentation
Michael(tm) Smith WND09 Presentation
 
Micro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoniMicro frontend architecture_presentation_ssoni
Micro frontend architecture_presentation_ssoni
 
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
[WSO2Con EU 2018] OpenAPI Specification 3 - The Evolution of Swagger
 
GitLab for CI/CD process
GitLab for CI/CD processGitLab for CI/CD process
GitLab for CI/CD process
 
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
Ivan Jovanovic - Micro Frontends - Codemotion Rome_2019
 
stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?stackconf 2021 | GitOps: yea or nay?
stackconf 2021 | GitOps: yea or nay?
 
Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020
 
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
Community - Carol Chen, Sergio Ocon - ManageIQ Design Summit 2016
 

Similar to Do It Yourself :: Web App - Web Api

Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...
Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...
Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...
BLRDEVX
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesKeith Fitzgerald
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
Alexandre Gouaillard
 
From localhost to the cloud: A Journey of Deployments
From localhost to the cloud: A Journey of DeploymentsFrom localhost to the cloud: A Journey of Deployments
From localhost to the cloud: A Journey of Deployments
Tegar Imansyah
 
GraphQL Bangkok Meetup 6.0
GraphQL Bangkok Meetup 6.0GraphQL Bangkok Meetup 6.0
GraphQL Bangkok Meetup 6.0
Tobias Meixner
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
wesley chun
 
JAMstack
JAMstackJAMstack
JAMstack
Tomasz Bak
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) future
Filip Bruun Bech-Larsen
 
Building Rich Internet Applications Using Google Web Toolkit
Building Rich Internet Applications Using  Google Web ToolkitBuilding Rich Internet Applications Using  Google Web Toolkit
Building Rich Internet Applications Using Google Web Toolkitrajivmordani
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
wesley chun
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Jonas Rosland
 
Application development using the wso2 developer studio
Application development using the wso2 developer studioApplication development using the wso2 developer studio
Application development using the wso2 developer studioWSO2
 
8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation
8base
 
8base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 201807198base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 20180719
Oscar Perez
 
Future of the Web
Future of the WebFuture of the Web
Future of the Web
Filip Bruun Bech-Larsen
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
WSO2
 
The Future of the web
The Future of the webThe Future of the web
The Future of the web
Filip Bruun Bech-Larsen
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2
 
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Ido Green
 

Similar to Do It Yourself :: Web App - Web Api (20)

Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...
Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...
Architect Track Heroku - A Polyglot Platform [Architecture & Add-ons]By Ashis...
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
From localhost to the cloud: A Journey of Deployments
From localhost to the cloud: A Journey of DeploymentsFrom localhost to the cloud: A Journey of Deployments
From localhost to the cloud: A Journey of Deployments
 
GraphQL Bangkok Meetup 6.0
GraphQL Bangkok Meetup 6.0GraphQL Bangkok Meetup 6.0
GraphQL Bangkok Meetup 6.0
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
JAMstack
JAMstackJAMstack
JAMstack
 
Frontend development of the (current) future
Frontend development of the (current) futureFrontend development of the (current) future
Frontend development of the (current) future
 
Building Rich Internet Applications Using Google Web Toolkit
Building Rich Internet Applications Using  Google Web ToolkitBuilding Rich Internet Applications Using  Google Web Toolkit
Building Rich Internet Applications Using Google Web Toolkit
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015Docker and containers - For Boston Docker Meetup Workshop in March 2015
Docker and containers - For Boston Docker Meetup Workshop in March 2015
 
Application development using the wso2 developer studio
Application development using the wso2 developer studioApplication development using the wso2 developer studio
Application development using the wso2 developer studio
 
8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation8base Hyperledger Miami Meetup Presentation
8base Hyperledger Miami Meetup Presentation
 
8base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 201807198base Hyperledger Miami Meetup 20180719
8base Hyperledger Miami Meetup 20180719
 
Future of the Web
Future of the WebFuture of the Web
Future of the Web
 
Delivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing ChoreoDelivering New Digital Experiences Fast - Introducing Choreo
Delivering New Digital Experiences Fast - Introducing Choreo
 
The Future of the web
The Future of the webThe Future of the web
The Future of the web
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
 

Recently uploaded

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 

Recently uploaded (20)

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 

Do It Yourself :: Web App - Web Api

  • 1. DIY - Web App / Web Api Java / JVM Languages + Gitlab (git, Auto CI & CD) + Heroku + Let’s Encrypt SSL Harish Kannarao LinkedIn: https://www.linkedin.com/in/harish-kannarao/ Github: https://github.com/harishkannarao Blogs: https://harish-kannarao.blogspot.in/
  • 2. There was a passionate java developer, doing some serious application programming
  • 3. One day, he got married to a lovely girl
  • 4. She was a founder and trustee of Aathirai Educational and Charitable trust (a small non-profitable charity organisation)
  • 5. ➢ Receive donations online (payment gateway) ➢ Allow social logins (Google, Facebook…) to update subscribers about events
  • 6. The Developer gets super excited to make enhancements to the website
  • 7. Reality: ➔ PHP application ➔ No version control ➔ No page templating ➔ Not mobile friendly ➔ No tests ➔ No CI / CD ➔ No SSL ➔ SSL is expensive
  • 8. Convince the trustees: ➔ Rewrite the website ➔ Good automated test coverage (unit and integration level) ➔ Git version control ➔ Responsive web application ➔ Auto-pipelines (CI & CD) ➔ SSL support ➔ Keeping cost to minimal level
  • 9. Create a simple standalone java web application with basic unit and integration tests (Spring Boot)
  • 10. Version Control service: ➔ Github ➔ Gitlab ➔ Bitbucket ➔ …..
  • 11. https://about.gitlab.com/gitlab-com/ Highlights: ● Free unlimited private repositories and collaborators ● Free Auto CI & CD pipelines (2000 minutes per minutes with shared runners) Digital Ocean droplets for GitLab CI Runners: https://www.digitalocean.com/pricing/#droplet https://about.gitlab.com/2016/04/19/how-to-set-up-gitlab-run ner-on-digitalocean/ Gitlab price plan
  • 12. Cloud hosting service: ➔ AWS from Amazon ➔ Cloud Foundry from Pivotal ➔ Openshift from Redhat ➔ Heroku from Salesforce ➔ Google Cloud ➔ …..
  • 13. Heroku price plan ● Official plugin for Maven, Gradle and SBT ● Let’s Encrypt SSL support with Auto Certificate Management (ACM) ● Price start from $7 per month https://www.heroku.com/pricing For $7 per month: ● 512 MB RAM up to 10 Process Types ● Let’s Encrypt SSL with Auto Certificate Management ● Basic Application Metrics ● Postgres Database up to 10K rows ● Redis database up to 20 concurrent connections
  • 14. Commercial SSL Certificates: ● Single site SSL certificate is $36 for first year and then $70 per year from second year ● Wildcard SSL certificate initial cost is $185 for first year and $300 per year from second year
  • 15. Let’s Encrypt SSL Let’s Encrypt is a free, automated, and open certificate authority brought to you by the non-profit Internet Security Research Group (ISRG). About: https://letsencrypt.org/about/ Compatibility: https://letsencrypt.org/docs/certificate-compatibility/ Statistics: https://letsencrypt.org/stats/
  • 16. Complete picture Gitlab Auto CI Pipeline (Unit and Integration Tests) Java Spring Boot Web App Auto CD Pipeline (Deploy to Heroku) Heroku Java Build Packs Auto Certificate Management Load balancer and Instances Let’s Encrypt Domain Registrar’s CNAME Entry (GoDaddy)
  • 17. ● Java ● Spring Boot ● Bootstrap ● Angular ● Webjar ● Responsive ● Single Page Application ● Test Driven Development ● Auto-Pipelines for CI & CD & Room for future enhancements http://www.aathirai.org
  • 18. ➢ Gitlab pipeline & configuration ➢ Gitlab runners configuration ➢ Heroku plugin configuration ➢ Heroku dashboard ➢ Heroku settings ○ Custom domain ○ Let’s Encrypt SSL ➢ Heroku metrics ➢ CNAME Entry ○ GoDaddy Quick Demo
  • 19. Wife became very happy and husband gets treated with some awesome Indian food at home, along with loads of love.
  • 20. Can this same concept be applied to a medium sized project with multiple environment and complex pipeline ???? Not the End…...
  • 23. The Twelve-Factor App https://12factor.net/ I. Codebase One codebase tracked in revision control, many deploys II. Dependencies Explicitly declare and isolate dependencies III. Config Store config in the environment IV. Backing services Treat backing services as attached resources V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. Logs Treat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes
  • 24. ○ Multiple pipelines in single (mono) Repo? https://gitlab.com/gitlab-org/gitla b-ce/issues/18157 ○ Ability to configure inter project pipeline dependencies? Other Challenges for large enterprise projects
  • 25. Other Challenges (Continued…) ○ Role based permission for manual triggers? https://gitlab.com/gitlab-org/gitla b-ce/issues/20261 ○ Mono release in Heroku with multiple micro components? ○ Scoped API key for Heroku
  • 26. https://www.your-next-fancy-idea.com Java / JVM based language or framework Gitlab [ Digital Ocean ] Heroku [ Let’s Encrypt ] Go Daddy ● Get started with basic hello world skeleton app in less than 3 hours ● Zero manual interaction from development to live ● Cost: ○ Version Control: Free (basic) / $4 per user per month (advanced) from Gitlab ○ CI & CD: Free (up to 2000 minutes from Gitlab) / From $5 per month (with Digital Ocean runners) ○ App Instance: From $7 per month (with Heroku) ● Can scale up with business needs and growth https://api.your-next-mobile-app.com Summary
  • 27. The peak–end rule is a psychological heuristic in which people judge an experience largely based on how they felt at its peak (i.e., its most intense point) and at its end, rather than based on the total sum or average of every moment of the experience. Example: ● Brexit Referendum 2016 ● US Presidential Election 2016 Peak-End Rule https://en.wikipedia.org/wiki/Peak%E2%80%93end_rule