SlideShare a Scribd company logo
Bouncing off clouds - Rapid Development 
for Cloud Ready Applications 
Vlad Mihnea 
R&D Manager 
www.ymens.com
A random cat and some clouds
So what's the ruckus about? 
3 
Months 
3 
Apps 
0 
Buffer 
Grady Cloud 
GRADY = Grails Rapid Application 
Development for Ymens
But what is a cloud ready application? 
SaaS 
Online 
Internet 
Subscription 
based 
Automated 
Updates 
Recurring 
Billing 
Configurable 
Efficient Scalable
And which are the typical cloud challenges? 
Multi-tenancy 
User Identity 
Management 
Single Sign 
On 
Access 
Management 
Network 
Dependence 
Integration & 
Interoperability 
Data Mobility 
& Portability 
Data Privacy 
& Security 
Legacy 
Migration
So what is our “simple” answer? 
Plugins 
Bootstrap 
[Magic] 
Groovy 
Grails GRADY 
Rapid Development framework, based on open 
source technologies seamlessly glued together
How do we isolate tenant data? 
Separate DB Shared 
Schema 
Separate 
Schema 
Multi 
Tenant 
Single DB 
Plugin 
Multi Tenancy: Data Architecture
How do we manage identities? 
Authentication Spring Security 
Authorization Spring Security 
Account 
Management Spring Security 
Audit Logging Hibernate Envers 
The 4 A’s of 
Cloud Identity
Much ado about nothing? We did it again! 
4th of October: official launch date 
Smarter! Better! Faster! 
Adopt Grady company wide 
Core to our Cloud Broker Platform 
Foster Innovation through Rapid Prototyping 
No silver bullet. Beware of the tradeoffs! 
3 
Months 
3 
Apps 
0 
Buffer 
Grady Cloud
And we are… 
þ A young team with mixed backgrounds 
using an heterogeneous tech stack. 
þ An agile team who believes in an iterative, 
incremental and sustained pace of 
development. 
þ A self-organizing team oriented towards 
products, customers and innovation. 
þ A growing team. 
And hiring ☺
Before I go 
@Audited 
@MultiTenant 
class Product { 
enum Type { 
SUBCRIPTION, USAGE, TRIAL 
} 
String name 
String description 
String category 
Float price 
Type type 
static mapping = { 
} 
static constraints = { 
name unique: 'tenantId', nullable: false, blank: false, maxSize: 50 
category nullable: false, blank: false, maxSize: 50 
price min: 0.0f, scale: 3 
type inList: [Type.SUBCRIPTION, Type.USAGE, Type.TRIAL] 
description blank: true, widget: 'textarea' 
tenantId display: false 
} 
}
It’s aliveeee! 
demo.ymens.com 
ymens.com/grady 
www.ymens.com
Grails & Groovy 
q Grails: 
þ OSS, Groovy-based high-productivity framework inspired by Ruby on 
Rails and following the "coding by convention" paradigm 
þ Grails applications can run in standard Java servlet containers. 
q Groovy: 
þ OOP language for the Java platform 
þ Dynamic language with features similar to those of Python, Ruby, Perl, 
and Smalltalk 
þ Can be used as a scripting language for the Java Platform, is 
dynamically compiled to Java Virtual Machine (JVM) bytecode, and 
interoperates with other Java code and libraries.
Plugins & Magic 
q Plugins 
þ Java Melody => Monitoring 
þ Console => Runtime DSL Debugging 
þ jQuery => Provided Resources 
q [Magic] 
þ New UI Widgets 
þ REST Scaffolding 
þ Enhanced Scaffolding Templates 
þ Custom Validators & Constrains 
þ SCIM Integration
Core Plugins 
q Spring Security Core: Secure applications using the powerful 
Spring Security library 
þ Spring Security Configuration Info: Provides a basic UI to view the 
security configuration 
þ Spring Security LDAP: Support for LDAP and Active Directory 
authentication 
þ Spring Security OpenID: Support for OpenID authentication 
q Hibernate Envers: 
þ Plugin to integrate grails with Hibernate Envers 
þ Easy Entity Auditing. All that you have to do is annotate your persistent 
class or some of its properties, that you want to audit, with @Audited 
q Multi Tenant Single DB:
Twitter Bootstrap & Less 
q Bootstrap: 
þ Developed by Twitter as a framework to encourage consistency across 
internal tools 
þ No.1 project on GitHub with 71,000+ stars and 26,000+ forks 
þ The most popular HTML, CSS, and JS framework for developing 
responsive, mobile first projects on the web 
q Less: 
þ CSS pre-processor, meaning that it extends the CSS language, adding 
features that allow variables, mixins and functions 
þ Make CSS that is more maintainable, themable and extendable
Multi Tenancy: Data Architecture 
q Separate DB: Each tenant has its own set of data that remains logically isolated 
from data that belongs to all other tenants. 
þ Metadata associates each database with the correct tenant, and database security 
prevents any tenant from accidentally or maliciously accessing other tenants' data. 
q Separate Schema: House multiple tenants in the same database, with each 
tenant having its own set of tables that are grouped into a schema created 
specifically for the tenant. 
þ When a customer first subscribes to the service, the provisioning subsystem creates a 
discrete set of tables for the tenant and associates it with the tenant's own schema. 
þ A significant drawback of the separate-schema approach is that tenant data is harder 
to restore in the event of a failure. If each tenant has its own database, restoring a 
single tenant's data means simply restoring the database from the most recent backup. 
q Shared Schema: The same database and the same set of tables to host 
multiple tenants' data. 
þ A Tenant ID column associates every record with the appropriate tenant 
þ The shared schema approach has the lowest hardware and backup costs, because it 
allows you to serve the largest number of tenants per database server 
þ However, it may incur additional development effort in the area of security, to ensure 
that tenants can never access other tenants' data, even in the event of unexpected 
bugs or attacks
Tradeoffs: No Silver Bullet 
q Grails 
þ Tight Coupling 
þ Anti-patterns 
þ (Some) Immature Plugins 
q Twitter Bootstrap 
þ A dark future where the entire web looks like the Bootstrap example 
page 
þ Heavy-handed, Prescriptive
Grady: Initial Goals 
Requirement Description 
Rapid Prototyping Quickly generate/implement a vertical prototype of the 
application 
Scaffolding Generate CRUD code up yo UI Layer 
Dynamic Form Generation Generate/Render forms based on data model 
Configuration Based Validation Validate input in forms based on configuration and data model 
constraints 
Support for Dictionaries Sets of predefined values to be reused across the application 
Object Relational Mapping Map domain model to underlying persistence based on 
configuration/convention 
Support for Workflows Support for wizards and basic support for workflows 
User Management Basic user management 
Access Management Basic authorization 
Authentication HTTP basic access authentication and Digest authentication 
Reporting Built-in reporting capabilities 
Flexible Data Model Flexible schema or schemaless persistence
Cloud Application Architecture
So what's the ruckus about? 
“Smarter. Faster. Better. These are today's words when talking about 
business. And, about development too. Nowadays, we’re all in the cloud 
and some of us have already faced a simple question without a simple 
answer: how to build better apps faster? There are a multitude of 
challenges arising when trying to achieve this ambitious goal while 
maintaining a productive pace for delivery and innovating at the same time. 
How do I isolate tenant data, how do I manage identities across federated 
clouds, how can I migrate legacy apps, how do I ensure single sign on in 
heterogeneous cloud environments (of course everything Smarter. Faster. 
Better.) We now have a simple answer to some of these technical 
questions: our own rapid development framework, based on open source 
technologies seamlessly glued together, of course, for cloud-ready 
applications - because this is what we do. We're inviting you to a practical 
discussion on how the R&D department can play a major role in delivering 
every business' goal: time to market. Smarter. Better. Faster.” 
Vlad, R&D Monica, Marketing

More Related Content

What's hot

OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the core
Chris Richardson
 
Futures and Rx Observables: powerful abstractions for consuming web services ...
Futures and Rx Observables: powerful abstractions for consuming web services ...Futures and Rx Observables: powerful abstractions for consuming web services ...
Futures and Rx Observables: powerful abstractions for consuming web services ...
Chris Richardson
 
Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)
Chris Richardson
 
Oracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservicesOracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservices
Chris Richardson
 
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Chris Richardson
 
Building microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring BootBuilding microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring Boot
Chris Richardson
 
Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)
Chris Richardson
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)
Chris Richardson
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Chris Richardson
 
Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)
Chris Richardson
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for Microservices
Chris Richardson
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)
Chris Richardson
 
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Chris Richardson
 
Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...
Chris Richardson
 
Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)
Chris Richardson
 
Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...
Chris Richardson
 
There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)
Chris Richardson
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
Chris Richardson
 
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Chris Richardson
 
Microservices and Redis #redisconf Keynote
Microservices and Redis #redisconf KeynoteMicroservices and Redis #redisconf Keynote
Microservices and Redis #redisconf Keynote
Chris Richardson
 

What's hot (20)

OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the core
 
Futures and Rx Observables: powerful abstractions for consuming web services ...
Futures and Rx Observables: powerful abstractions for consuming web services ...Futures and Rx Observables: powerful abstractions for consuming web services ...
Futures and Rx Observables: powerful abstractions for consuming web services ...
 
Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)
 
Oracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservicesOracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservices
 
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
 
Building microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring BootBuilding microservices with Scala, functional domain models and Spring Boot
Building microservices with Scala, functional domain models and Spring Boot
 
Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)Microservices pattern language (microxchg microxchg2016)
Microservices pattern language (microxchg microxchg2016)
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
 
Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)Events on the outside, on the inside and at the core (jfokus jfokus2016)
Events on the outside, on the inside and at the core (jfokus jfokus2016)
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for Microservices
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)
 
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...
 
Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...Events to the rescue: solving distributed data problems in a microservice arc...
Events to the rescue: solving distributed data problems in a microservice arc...
 
Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)Developing microservices with aggregates (melbourne)
Developing microservices with aggregates (melbourne)
 
Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...
 
There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)There is no such thing as a microservice! (oracle code nyc)
There is no such thing as a microservice! (oracle code nyc)
 
YOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous MicroservicesYOW2018 - Events and Commands: Developing Asynchronous Microservices
YOW2018 - Events and Commands: Developing Asynchronous Microservices
 
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
 
Microservices and Redis #redisconf Keynote
Microservices and Redis #redisconf KeynoteMicroservices and Redis #redisconf Keynote
Microservices and Redis #redisconf Keynote
 

Similar to Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications - IMW 2015

Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaSService Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Software Guru
 
Enterprise serverless
Enterprise serverlessEnterprise serverless
Enterprise serverless
DmitryLozitskiy2
 
Google Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCUGoogle Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCU
Shivam254129
 
Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...
Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...
Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...
Priyanka Aash
 
Big Data on Azure Tutorial
Big Data on Azure TutorialBig Data on Azure Tutorial
Big Data on Azure Tutorial
rustd
 
Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009
guest829442
 
Azure Community Tour 2019 - AZUGDK
Azure Community Tour 2019 - AZUGDKAzure Community Tour 2019 - AZUGDK
Azure Community Tour 2019 - AZUGDK
Peter Selch Dahl
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud Computing
Philip Wheat
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Cscorajramab
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2
Brandon Watson
 
Cloud computing & Security presentation
Cloud computing & Security presentationCloud computing & Security presentation
Cloud computing & Security presentationParveen Yadav
 
Ml ops on AWS
Ml ops on AWSMl ops on AWS
Ml ops on AWS
PhilipBasford
 
The Risks and Rewards of Big Data in the Cloud
The Risks and Rewards of Big Data in the CloudThe Risks and Rewards of Big Data in the Cloud
The Risks and Rewards of Big Data in the Cloud
Social Media Today
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
Ethos Technologies
 
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
apidays
 
Moving Legacy Apps to Cloud: How to Avoid Risk
Moving Legacy Apps to Cloud: How to Avoid RiskMoving Legacy Apps to Cloud: How to Avoid Risk
Moving Legacy Apps to Cloud: How to Avoid Risk
CloverDX
 
Securing Your CI Pipeline with HashiCorp Vault - P2
Securing Your CI Pipeline with HashiCorp Vault - P2Securing Your CI Pipeline with HashiCorp Vault - P2
Securing Your CI Pipeline with HashiCorp Vault - P2
Ashnikbiz
 
Cloud On-Ramp Project Briefing
Cloud On-Ramp Project BriefingCloud On-Ramp Project Briefing
Cloud On-Ramp Project Briefing
Robert McDermott
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
Liran Zelkha
 
Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra
Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache CassandraCassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra
Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra
DataStax Academy
 

Similar to Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications - IMW 2015 (20)

Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaSService Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
Service Mesh and Serverless Chatbots with Linkerd, K8s and OpenFaaS
 
Enterprise serverless
Enterprise serverlessEnterprise serverless
Enterprise serverless
 
Google Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCUGoogle Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCU
 
Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...
Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...
Detecting Malicious Cloud Account Behavior: A Look at the New Native Platform...
 
Big Data on Azure Tutorial
Big Data on Azure TutorialBig Data on Azure Tutorial
Big Data on Azure Tutorial
 
Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009
 
Azure Community Tour 2019 - AZUGDK
Azure Community Tour 2019 - AZUGDKAzure Community Tour 2019 - AZUGDK
Azure Community Tour 2019 - AZUGDK
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud Computing
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Csco
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2
 
Cloud computing & Security presentation
Cloud computing & Security presentationCloud computing & Security presentation
Cloud computing & Security presentation
 
Ml ops on AWS
Ml ops on AWSMl ops on AWS
Ml ops on AWS
 
The Risks and Rewards of Big Data in the Cloud
The Risks and Rewards of Big Data in the CloudThe Risks and Rewards of Big Data in the Cloud
The Risks and Rewards of Big Data in the Cloud
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
 
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
APIdays Paris 2018 - Cloud computing - we went through every steps of the Gar...
 
Moving Legacy Apps to Cloud: How to Avoid Risk
Moving Legacy Apps to Cloud: How to Avoid RiskMoving Legacy Apps to Cloud: How to Avoid Risk
Moving Legacy Apps to Cloud: How to Avoid Risk
 
Securing Your CI Pipeline with HashiCorp Vault - P2
Securing Your CI Pipeline with HashiCorp Vault - P2Securing Your CI Pipeline with HashiCorp Vault - P2
Securing Your CI Pipeline with HashiCorp Vault - P2
 
Cloud On-Ramp Project Briefing
Cloud On-Ramp Project BriefingCloud On-Ramp Project Briefing
Cloud On-Ramp Project Briefing
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra
Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache CassandraCassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra
Cassandra Day Atlanta 2015: BetterCloud: Leveraging Apache Cassandra
 

Recently uploaded

This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
GTProductions1
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptxInternet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
VivekSinghShekhawat2
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 

Recently uploaded (20)

This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptxInternet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 

Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications - IMW 2015

  • 1. Bouncing off clouds - Rapid Development for Cloud Ready Applications Vlad Mihnea R&D Manager www.ymens.com
  • 2. A random cat and some clouds
  • 3. So what's the ruckus about? 3 Months 3 Apps 0 Buffer Grady Cloud GRADY = Grails Rapid Application Development for Ymens
  • 4. But what is a cloud ready application? SaaS Online Internet Subscription based Automated Updates Recurring Billing Configurable Efficient Scalable
  • 5. And which are the typical cloud challenges? Multi-tenancy User Identity Management Single Sign On Access Management Network Dependence Integration & Interoperability Data Mobility & Portability Data Privacy & Security Legacy Migration
  • 6. So what is our “simple” answer? Plugins Bootstrap [Magic] Groovy Grails GRADY Rapid Development framework, based on open source technologies seamlessly glued together
  • 7. How do we isolate tenant data? Separate DB Shared Schema Separate Schema Multi Tenant Single DB Plugin Multi Tenancy: Data Architecture
  • 8. How do we manage identities? Authentication Spring Security Authorization Spring Security Account Management Spring Security Audit Logging Hibernate Envers The 4 A’s of Cloud Identity
  • 9. Much ado about nothing? We did it again! 4th of October: official launch date Smarter! Better! Faster! Adopt Grady company wide Core to our Cloud Broker Platform Foster Innovation through Rapid Prototyping No silver bullet. Beware of the tradeoffs! 3 Months 3 Apps 0 Buffer Grady Cloud
  • 10. And we are… þ A young team with mixed backgrounds using an heterogeneous tech stack. þ An agile team who believes in an iterative, incremental and sustained pace of development. þ A self-organizing team oriented towards products, customers and innovation. þ A growing team. And hiring ☺
  • 11. Before I go @Audited @MultiTenant class Product { enum Type { SUBCRIPTION, USAGE, TRIAL } String name String description String category Float price Type type static mapping = { } static constraints = { name unique: 'tenantId', nullable: false, blank: false, maxSize: 50 category nullable: false, blank: false, maxSize: 50 price min: 0.0f, scale: 3 type inList: [Type.SUBCRIPTION, Type.USAGE, Type.TRIAL] description blank: true, widget: 'textarea' tenantId display: false } }
  • 12. It’s aliveeee! demo.ymens.com ymens.com/grady www.ymens.com
  • 13. Grails & Groovy q Grails: þ OSS, Groovy-based high-productivity framework inspired by Ruby on Rails and following the "coding by convention" paradigm þ Grails applications can run in standard Java servlet containers. q Groovy: þ OOP language for the Java platform þ Dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk þ Can be used as a scripting language for the Java Platform, is dynamically compiled to Java Virtual Machine (JVM) bytecode, and interoperates with other Java code and libraries.
  • 14. Plugins & Magic q Plugins þ Java Melody => Monitoring þ Console => Runtime DSL Debugging þ jQuery => Provided Resources q [Magic] þ New UI Widgets þ REST Scaffolding þ Enhanced Scaffolding Templates þ Custom Validators & Constrains þ SCIM Integration
  • 15. Core Plugins q Spring Security Core: Secure applications using the powerful Spring Security library þ Spring Security Configuration Info: Provides a basic UI to view the security configuration þ Spring Security LDAP: Support for LDAP and Active Directory authentication þ Spring Security OpenID: Support for OpenID authentication q Hibernate Envers: þ Plugin to integrate grails with Hibernate Envers þ Easy Entity Auditing. All that you have to do is annotate your persistent class or some of its properties, that you want to audit, with @Audited q Multi Tenant Single DB:
  • 16. Twitter Bootstrap & Less q Bootstrap: þ Developed by Twitter as a framework to encourage consistency across internal tools þ No.1 project on GitHub with 71,000+ stars and 26,000+ forks þ The most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web q Less: þ CSS pre-processor, meaning that it extends the CSS language, adding features that allow variables, mixins and functions þ Make CSS that is more maintainable, themable and extendable
  • 17. Multi Tenancy: Data Architecture q Separate DB: Each tenant has its own set of data that remains logically isolated from data that belongs to all other tenants. þ Metadata associates each database with the correct tenant, and database security prevents any tenant from accidentally or maliciously accessing other tenants' data. q Separate Schema: House multiple tenants in the same database, with each tenant having its own set of tables that are grouped into a schema created specifically for the tenant. þ When a customer first subscribes to the service, the provisioning subsystem creates a discrete set of tables for the tenant and associates it with the tenant's own schema. þ A significant drawback of the separate-schema approach is that tenant data is harder to restore in the event of a failure. If each tenant has its own database, restoring a single tenant's data means simply restoring the database from the most recent backup. q Shared Schema: The same database and the same set of tables to host multiple tenants' data. þ A Tenant ID column associates every record with the appropriate tenant þ The shared schema approach has the lowest hardware and backup costs, because it allows you to serve the largest number of tenants per database server þ However, it may incur additional development effort in the area of security, to ensure that tenants can never access other tenants' data, even in the event of unexpected bugs or attacks
  • 18. Tradeoffs: No Silver Bullet q Grails þ Tight Coupling þ Anti-patterns þ (Some) Immature Plugins q Twitter Bootstrap þ A dark future where the entire web looks like the Bootstrap example page þ Heavy-handed, Prescriptive
  • 19. Grady: Initial Goals Requirement Description Rapid Prototyping Quickly generate/implement a vertical prototype of the application Scaffolding Generate CRUD code up yo UI Layer Dynamic Form Generation Generate/Render forms based on data model Configuration Based Validation Validate input in forms based on configuration and data model constraints Support for Dictionaries Sets of predefined values to be reused across the application Object Relational Mapping Map domain model to underlying persistence based on configuration/convention Support for Workflows Support for wizards and basic support for workflows User Management Basic user management Access Management Basic authorization Authentication HTTP basic access authentication and Digest authentication Reporting Built-in reporting capabilities Flexible Data Model Flexible schema or schemaless persistence
  • 21. So what's the ruckus about? “Smarter. Faster. Better. These are today's words when talking about business. And, about development too. Nowadays, we’re all in the cloud and some of us have already faced a simple question without a simple answer: how to build better apps faster? There are a multitude of challenges arising when trying to achieve this ambitious goal while maintaining a productive pace for delivery and innovating at the same time. How do I isolate tenant data, how do I manage identities across federated clouds, how can I migrate legacy apps, how do I ensure single sign on in heterogeneous cloud environments (of course everything Smarter. Faster. Better.) We now have a simple answer to some of these technical questions: our own rapid development framework, based on open source technologies seamlessly glued together, of course, for cloud-ready applications - because this is what we do. We're inviting you to a practical discussion on how the R&D department can play a major role in delivering every business' goal: time to market. Smarter. Better. Faster.” Vlad, R&D Monica, Marketing