SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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 coreChris 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 microservicesChris 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 BootChris 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 MicroservicesChris 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 MicroservicesChris 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 KeynoteChris Richardson
 

Mais procurados (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
 

Semelhante a 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 OpenFaaSSoftware Guru
 
Google Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCUGoogle Cloud Study Jam | GDSC NCU
Google Cloud Study Jam | GDSC NCUShivam254129
 
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 Tutorialrustd
 
Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009Cloud Computing & Sun Vision 03262009
Cloud Computing & Sun Vision 03262009guest829442
 
Azure Community Tour 2019 - AZUGDK
Azure Community Tour 2019 - AZUGDKAzure Community Tour 2019 - AZUGDK
Azure Community Tour 2019 - AZUGDKPeter Selch Dahl
 
Arc Ready Cloud Computing
Arc Ready Cloud ComputingArc Ready Cloud Computing
Arc Ready Cloud ComputingPhilip 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 V2Brandon Watson
 
Cloud computing & Security presentation
Cloud computing & Security presentationCloud computing & Security presentation
Cloud computing & Security presentationParveen Yadav
 
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 CloudSocial Media Today
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010Ethos 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 RiskCloverDX
 
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 - P2Ashnikbiz
 
Cloud On-Ramp Project Briefing
Cloud On-Ramp Project BriefingCloud On-Ramp Project Briefing
Cloud On-Ramp Project BriefingRobert McDermott
 
Technology Overview
Technology OverviewTechnology Overview
Technology OverviewLiran 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 CassandraDataStax Academy
 

Semelhante a 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
 

Último

GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistKHM Anwar
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 

Último (20)

GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization SpecialistSEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization Specialist
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 

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