In this talk, Martin covers how an All-JavaScript approach with MongoDB, Express, React and Node.js (MERN) enables iterating fast, picking the example of the quickly growing product 'myOnboarding' by Haufe-Lexware. He touches on the pros and cons of this technology stack, how the technology ties in to the product's microservices architecture, and how the product team leverages CI/CD to be able to act, and react, fast and securely. The talk further touches on how the product team setup and customer feedback is crucial to iterate fast, in the right direction.
6. sli.do/xxxx
TeamSetup
Development+UX/Design
Barcelona and Freiburg
Product Management
Product and MarketingIntrapreneurs
Freiburg
MarketingManagement
Freiburg
Business Development
Management
Freiburg
Sales Support
Implementation
Consulting
(external partner)
Core Team:
Daily/Bi-WeeklyExchange
(Mostly) SharedOKRs
Fully Responsible Product Team
14. sli.do/xxxx
Client Types
CMS and Web App
React Single Page
Applications
Served via nginx
static web server
Mobile App
Mobile App iOS/Android
via react-native
Cross compiled to
iOS and Android
Similar programming
as CMS/Web App
Communicatewith
Backend via REST API
Secured via OAuth2 SSO Support
Integration Clients
myOnboarding Command
LineInterface
Integration with other
Haufe solutions
Custom Integrations via
API Management
15. sli.do/xxxx
Architecture
Kubernetes (Azure AKS-Engine)
CMS
APIGateway(wicked/kong)
Auth Server
People
Content
Grafana
Notific-ations
Sche-duler
Permis-sions
Integ-ration
Plans
Prome-theus Alertmanager
WebApp
MongoDB
(Atlas, managed service)
IngressController(SSL)
Tasks Media
System
Compo-nent
Nginx
Static Micro-
Service
Browser
MobileApp
OAuth2.0
Integrations(mO
CLI,Umantis,…)
No state inside
k8scluster!
18. sli.do/xxxx
Risks
„I just need that piece of data from the other service, let‘s go to the database andfetch it.“
Default values?
Known data issues
Bounded Context? On-the-flydata
migrations?
Code Duplication
24. sli.do/xxxx
Development Strategy
Short Feature
Branches
Feature Flags
PerTenant
Features whichare still being finalized
are often already deployed to Prod!
Local
Development
Deploy/Testin
DevCluster
Mergeto
Master
Auto-Deployto
Dev,Test,Prod
Finalizing
Feature
Code
Review
Feature
GA
F E A T U R E L I F E C Y C L E
29. sli.do/xxxx
Gotchas
Rollouts are only safe if
tests are pretty
comprehensive
Choosing tests (Unit,API,
E2E) efficiently is… tricky.
Writing testable code is
also… tricky.
Shortlived feature branches
crucialto not build up large
and dangerous changes
33. sli.do/xxxx
LeveragingManaged Services
I probably won‘t operate things
better* thana cloud provider.
Repeat after me:
Log Management
Databases
(MongoDB, Postgres)
E-Mailsending
Push Notifications
Kubernetes
as aService
But some things just don‘t fit
(so you end upwith DIY anyway)
Grafana
Prometheus
API Gateway
(wicked/Kong)
*)safer,cheaper;
exceptionsapply
39. sli.do/xxxx
Why dowebelieve inthis approach?
Short Customer
Feedback Loop
Quickmovefrom RAD
to actual Product
Close Connect
To Marketing
MarketResponse
Shows Big Interest
Inthe Topic
Market Success
So Far – We Seem To
Get It Right
Attractive Technologies
(We‘re Hiring!)
Fast Prototyping And
Efficient Coding
Close Connect
To Sales
… why this is crucial for the success of the product will also be a topic later on in this talk.
Mongo, Express, React, Node.js, Kubernetes, Ubuntu, Postgres, FluentD, Wicked, Kong, Prometheus, Grafana,… and BP, who knows.
To answer this question, we‘ll take a look at how we develop in the myO project
Especially taking care of feature flags can at times be really… tricky.
Constant checking on all
error codes of all services
Hard to measure end-user
satisfaction with the product
Sneaking failure of
Onboarding programs
Then we can go to the logs and check on them
This is an easy fallacy: DYI. Use managed services wherever they make sense
There may be situations where you can‘t
But try to stick with what your cloud provider gives you
What you don‘t have to operate, you… don‘t have to operate.