SlideShare ist ein Scribd-Unternehmen logo
1 von 17
9 Design factors on
developing Cloud
applications
Feb 2017
Rick Jang
9 Design factors on developing cloud
applications
1.Don't code your application directly to a specific topology
2.Do not assume the local file system is permanent
3.Don't keep session state in your application
4.Don't log to the file system
5.Don't assume any specific infrastructure dependency
6.Don't use infrastructure APIs from within your application
7.Don't use obscure protocols
8.Don't rely on OS-specific features
9.Don't manually install your application
2
Design factors on developing cloud applications
Don't code your application directly to a specific topology
 Use Dynamic Service Binding e.g. Spring DI
3
Design factors on developing cloud applications
Do not assume the local file system is permanent
 Use File Storage Services like Amazon S3
4
Design factors on developing cloud applications
Don't keep session state in your application
 Use Memory Cache Service like ElastiCache
When you use Cloud Foundry Auto re-configurer,
Session cluster service (Redis) is automatically bound for
java sevlet Session.
Ref. https://blog.pivotal.io/pivotal-cloud-
foundry/products/session-replication-on-cloud-foundry-2
5
Design factors on developing cloud applications
Don't use obscure protocols
 Use 80, 443  make as a Micro Service
6
Design factors on developing cloud applications
- 9
Don't manually install your application
 Automatically Install your application
dependencies such as DDL, static files
You can use JPA which automatically installs your
entities by generating DDLs
 The spring-music.war example shows
automatically installs the static data when it is
connected to MySQL service.
7
Example SaaS App – Essencia Project
Management Tool
â€ąìŒë°˜ SW개발자듀도 쉜êȌ SW 개발방ëČ•ëĄ ì„ ì •ì˜í•˜ì—Ź ì ìš©í•šìœŒëĄœìš SW 생산성을 í–„ìƒì‹œí‚Ź 수 ìžˆë„ëĄ 도움을 쀄 수
있는, Essence 표쀀에 적합한 Practice 및 ë°©ëČ•ëĄ ì„ ê°œë°œí•˜êł  ìĄ°í•©í•˜ë©° 싀행시킀는 SEMAT Essence 지원 ë°©ëȕ론 ìžŹì •ì˜
및 싀행지원 ì†”ëŁšì…˜ - 'Essencia' 의 ê°œë°œêłŒ ëłŽêž‰ìŽ ëȘ©í‘œ
ì•Ąí„°ì™€ 시슀템 정의
Method Repo.
Method Author
Stakeholders
(Product Owner, PM, Developer)
Method Composer
프랙티슀 ìĄ°ëŠœ N-Screen/Web2.0 Portal
싀행 / 가읎드
ëȘšë‹ˆí„°ë§
분석 / 씜적화
Practice / Method
Orchestrator
Or êž°ìĄŽ PMS(JIRA)
WorkList SNS Dashboard
Requirement
Tools
Modeling
Tools
Testing
Tools
CI tools
Practice Library
Practice Author
Practice Mapper
에섌슀-프랙티슀 맀핑
Example SaaS App – Essencia Project Management Tool – MSA Architecture
Amazon S3 Clear DB
Redis
Memory Cache
Essencia Service
3rd Party Apps
JIRA Issue Tracker
Service
All RESTful
Example SaaS App – Essencia Project Management Tool – MSA Architecture
Amazon S3 Clear DB
Redis
Memory Cache
Essencia on CF
IStorage DataSource HttpSession
AmazonS3StorageAbstractCloudServiceBeanFactoryPostProcessor
<bean id="storage" class="org.uengine.modeling.resource.AmazonS3Storage">
<property name="amazonS3Bucket" value="${Amazon.S3.Bucket}"/>
<property name="awsAccessKey" value="${Amazon.AccessKeyID}"/>
<property name="awsSecretAccessKey"
value="${Amazon.SecretAccessKey}"/>
</bean>
<bean
class="org.cloudfoundry.reconfiguration.spring.AbstractCloudServiceBeanFacto
ryPostProcessor" />
Example SaaS App – Essencia Project Management Tool – On-premise Architecture
Local File System
Local DB
(MySQL)
Essencia on-premise
IStorage DataSource HttpSession
LocalFileStorage org.apache.catali
na.session.Stand
ardSession
DBCPDataS
ource
<bean id="storage" class="org.uengine.modeling.resource.LocalFileStorage"
<property name="localBasePath" value="D:Projectcodi"/>
</bean>
Essencia - Dynamic Service Binding with
Spring DI
<bean id="storage"
class="org.uengine.modeling.resource.AmazonS3Storage">
<property name="amazonS3Bucket"
value="${Amazon.S3.Bucket}"/>
<property name="awsAccessKey"
value="${Amazon.AccessKeyID}"/>
<property name="awsSecretAccessKey"
value="${Amazon.SecretAccessKey}"/>
</bean>
<bean
class="org.cloudfoundry.reconfiguration.spring.AbstractCloudService
BeanFactoryPostProcessor" />
<bean id="storage"
class="org.uengine.modeling.resource.LocalFileStorage">
<property name="localBasePath" value="D:Projectcodi"/>
</bean>
Case of On-premise Case of On Cloud
Essencia – Application Code must not be
affected
@Autowired public Storage storage;
public void delete() throws IOException {
storage.delete(this);
}
Essencia – Using AOP for Metering /
Billing – 1
@Metered("project.start")
public void executeProcess(String instanceId) throws Exception{
ProcessInstance instance = getInstance(instanceId);
instance.execute();
}
Essencia – Using AOP for Metering /
Billing – 2
@Aspect
public class MeteringAdvice {
@Before("@annotation(metered)")
public void checkAvailable(Metered metered) throws
NoServiceAvailableException {

..
//Check if the service is available for the requested tenant
}
@AfterReturning("@annotation(metered)")
public void meter(Metered metered) throws Exception {

.
//Add usage log
}
}
Essencia – Build & Deploy Automation
Essencia On-Premise
Essencia On Amazon
Essencia On Bluemix
Overrides:
1. applicationContex.xml (to use AmazonS3Storage)
2. Uengine.properties (to change DB connection info)
Overrides:
1. applicationContex.xml (to use services)
2. pom.xml (Cf push command)
References
‱ https://www.ibm.com/developerworks/websphere/techjou
rnal/1404_brown/1404_brown.html
‱ http://microservices.io/patterns/index.html
‱ www.essencia.live

Weitere Àhnliche Inhalte

Was ist angesagt?

Confluent & Attunity: Mainframe Data Modern Analytics
Confluent & Attunity: Mainframe Data Modern AnalyticsConfluent & Attunity: Mainframe Data Modern Analytics
Confluent & Attunity: Mainframe Data Modern Analyticsconfluent
 
Generic Objects - Bill Wei - ManageIQ Design Summit 2016
Generic Objects - Bill Wei - ManageIQ Design Summit 2016Generic Objects - Bill Wei - ManageIQ Design Summit 2016
Generic Objects - Bill Wei - ManageIQ Design Summit 2016ManageIQ
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsMĂĄrton Kodok
 
ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°
ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°
ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°SeongIkKim2
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka EcosystemGuido Schmutz
 
Introduction, Examples - Firebase
Introduction, Examples - Firebase Introduction, Examples - Firebase
Introduction, Examples - Firebase Eueung Mulyana
 
DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...
DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...
DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...DataStax
 
BigdataConference Europe - BigQuery ML
BigdataConference Europe - BigQuery MLBigdataConference Europe - BigQuery ML
BigdataConference Europe - BigQuery MLMĂĄrton Kodok
 
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...confluent
 
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Andrew Morgan
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsMĂĄrton Kodok
 
GraphQL-ify your APIs
GraphQL-ify your APIsGraphQL-ify your APIs
GraphQL-ify your APIsSoham Dasgupta
 
Spring Into the Cloud
Spring Into the CloudSpring Into the Cloud
Spring Into the CloudJennifer Hickey
 
Google Firebase presentation - English
Google Firebase presentation - EnglishGoogle Firebase presentation - English
Google Firebase presentation - EnglishAlexandros Tsichouridis
 
From my sql to postgresql using kafka+debezium
From my sql to postgresql using kafka+debeziumFrom my sql to postgresql using kafka+debezium
From my sql to postgresql using kafka+debeziumClement Demonchy
 
Developing serverless applications with azure functions
Developing serverless applications with azure functionsDeveloping serverless applications with azure functions
Developing serverless applications with azure functionsJeff Chu
 
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...HostedbyConfluent
 
Westpac AU - Confluent Schema Registry
Westpac AU - Confluent Schema RegistryWestpac AU - Confluent Schema Registry
Westpac AU - Confluent Schema Registryconfluent
 
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...HostedbyConfluent
 
Designing For Multicloud, CF Summit Frankfurt 2016
Designing For Multicloud, CF Summit Frankfurt 2016Designing For Multicloud, CF Summit Frankfurt 2016
Designing For Multicloud, CF Summit Frankfurt 2016Mark D'Cunha
 

Was ist angesagt? (20)

Confluent & Attunity: Mainframe Data Modern Analytics
Confluent & Attunity: Mainframe Data Modern AnalyticsConfluent & Attunity: Mainframe Data Modern Analytics
Confluent & Attunity: Mainframe Data Modern Analytics
 
Generic Objects - Bill Wei - ManageIQ Design Summit 2016
Generic Objects - Bill Wei - ManageIQ Design Summit 2016Generic Objects - Bill Wei - ManageIQ Design Summit 2016
Generic Objects - Bill Wei - ManageIQ Design Summit 2016
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
 
ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°
ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°
ëȘšëž 서ëč™ íŒŒìŽí”„ëŒìž ê”Źì¶•í•˜êž°
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka Ecosystem
 
Introduction, Examples - Firebase
Introduction, Examples - Firebase Introduction, Examples - Firebase
Introduction, Examples - Firebase
 
DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...
DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...
DataStax | DSE Production-Certified Cassandra on Pivotal Cloud Foundry (Ben L...
 
BigdataConference Europe - BigQuery ML
BigdataConference Europe - BigQuery MLBigdataConference Europe - BigQuery ML
BigdataConference Europe - BigQuery ML
 
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...
James Watters, Pivotal | Kafka Summit NYC 2019 Keynote (Spring Boot+Kafka: Th...
 
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
 
GraphQL-ify your APIs
GraphQL-ify your APIsGraphQL-ify your APIs
GraphQL-ify your APIs
 
Spring Into the Cloud
Spring Into the CloudSpring Into the Cloud
Spring Into the Cloud
 
Google Firebase presentation - English
Google Firebase presentation - EnglishGoogle Firebase presentation - English
Google Firebase presentation - English
 
From my sql to postgresql using kafka+debezium
From my sql to postgresql using kafka+debeziumFrom my sql to postgresql using kafka+debezium
From my sql to postgresql using kafka+debezium
 
Developing serverless applications with azure functions
Developing serverless applications with azure functionsDeveloping serverless applications with azure functions
Developing serverless applications with azure functions
 
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...
Live Event Debugging With ksqlDB at Reddit | Hannah Hagen and Paul Kiernan, R...
 
Westpac AU - Confluent Schema Registry
Westpac AU - Confluent Schema RegistryWestpac AU - Confluent Schema Registry
Westpac AU - Confluent Schema Registry
 
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
 
Designing For Multicloud, CF Summit Frankfurt 2016
Designing For Multicloud, CF Summit Frankfurt 2016Designing For Multicloud, CF Summit Frankfurt 2016
Designing For Multicloud, CF Summit Frankfurt 2016
 

Ähnlich wie 9 design factors for cloud applications

Planning Your Cloud Strategy
Planning Your Cloud StrategyPlanning Your Cloud Strategy
Planning Your Cloud StrategyImesh Gunaratne
 
WSO2Con EU 2016: Planning Your Cloud Strategy
WSO2Con EU 2016: Planning Your Cloud StrategyWSO2Con EU 2016: Planning Your Cloud Strategy
WSO2Con EU 2016: Planning Your Cloud StrategyWSO2
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)Rahul Singh
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsmichaelaaron25322
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With AzureClint Edmonson
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxNCCOMMS
 
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel PartnersCraeg Strong
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fuseboxnascomgenk
 
FabricServer Technology Overview
FabricServer Technology OverviewFabricServer Technology Overview
FabricServer Technology OverviewIvan_datasynapse
 
Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champKumton Suttiraksiri
 
Tech UG - Newcastle 09-17 - logic apps
Tech UG - Newcastle 09-17 -   logic appsTech UG - Newcastle 09-17 -   logic apps
Tech UG - Newcastle 09-17 - logic appsMichael Stephenson
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAElynneblue
 
20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data ai
20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data ai20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data ai
20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data aiMeng-Ru (Raymond) Tsai
 
7 flavours of devops implementation
7 flavours of devops implementation7 flavours of devops implementation
7 flavours of devops implementationAspire Systems
 
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...Craeg Strong
 
MOSS 2007 Deployment Fundamentals -Part2
MOSS 2007 Deployment Fundamentals -Part2MOSS 2007 Deployment Fundamentals -Part2
MOSS 2007 Deployment Fundamentals -Part2Information Technology
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuVMware Tanzu
 

Ähnlich wie 9 design factors for cloud applications (20)

Planning Your Cloud Strategy
Planning Your Cloud StrategyPlanning Your Cloud Strategy
Planning Your Cloud Strategy
 
WSO2Con EU 2016: Planning Your Cloud Strategy
WSO2Con EU 2016: Planning Your Cloud StrategyWSO2Con EU 2016: Planning Your Cloud Strategy
WSO2Con EU 2016: Planning Your Cloud Strategy
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applications
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With Azure
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFx
 
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners
20211028 ADDO Adapting to Covid with Serverless Craeg Strong Ariel Partners
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fusebox
 
FabricServer Technology Overview
FabricServer Technology OverviewFabricServer Technology Overview
FabricServer Technology Overview
 
Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champ
 
Tech UG - Newcastle 09-17 - logic apps
Tech UG - Newcastle 09-17 -   logic appsTech UG - Newcastle 09-17 -   logic apps
Tech UG - Newcastle 09-17 - logic apps
 
Fs And Self Service
Fs And Self ServiceFs And Self Service
Fs And Self Service
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
 
20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data ai
20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data ai20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data ai
20171024 æ–‡ćŒ–ć€§ć­ž 1 azure big data ai
 
7 flavours of devops implementation
7 flavours of devops implementation7 flavours of devops implementation
7 flavours of devops implementation
 
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
20211202 North America DevOps Group NADOG Adapting to Covid With Serverless C...
 
MOSS 2007 Deployment Fundamentals -Part2
MOSS 2007 Deployment Fundamentals -Part2MOSS 2007 Deployment Fundamentals -Part2
MOSS 2007 Deployment Fundamentals -Part2
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
 

Mehr von uEngine Solutions

읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하Ʞ
읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하Ʞ읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하Ʞ
읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하ꞰuEngine Solutions
 
ëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture Learning
ëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture Learningëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture Learning
ëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture LearninguEngine Solutions
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3uEngine Solutions
 
Event storming based msa training commerce example v2
Event storming based msa training commerce example v2Event storming based msa training commerce example v2
Event storming based msa training commerce example v2uEngine Solutions
 
Event storming based msa training commerce example
Event storming based msa training commerce exampleEvent storming based msa training commerce example
Event storming based msa training commerce exampleuEngine Solutions
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation WorkshopuEngine Solutions
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
 
Microservice coding guide
Microservice coding guideMicroservice coding guide
Microservice coding guideuEngine Solutions
 
Safe cloud native transformation approaches
Safe cloud native transformation approachesSafe cloud native transformation approaches
Safe cloud native transformation approachesuEngine Solutions
 
microservice architecture public education v2
microservice architecture public education v2microservice architecture public education v2
microservice architecture public education v2uEngine Solutions
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementationuEngine Solutions
 
유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)
유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)
유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)uEngine Solutions
 
Distributed transanction in microservices
Distributed transanction in microservicesDistributed transanction in microservices
Distributed transanction in microservicesuEngine Solutions
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementationuEngine Solutions
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architectureuEngine Solutions
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsuEngine Solutions
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
Bluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹ
Bluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹBluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹ
Bluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹuEngine Solutions
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureuEngine Solutions
 
Building multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickBuilding multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickuEngine Solutions
 

Mehr von uEngine Solutions (20)

읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하Ʞ
읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하Ʞ읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하Ʞ
읎ëČ€íŠžìŠ€í† ë°êłŒ BDD ë„Œ í˜Œí•©í•˜ì—Ź 소프튞웚얎 ë””ìžìžêłŒ 테슀튞 자동화하Ʞ
 
ëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture Learning
ëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture Learningëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture Learning
ëč„대멎 MSA / CNA 강의 - Contactless Microservices Architecture Learning
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
 
Event storming based msa training commerce example v2
Event storming based msa training commerce example v2Event storming based msa training commerce example v2
Event storming based msa training commerce example v2
 
Event storming based msa training commerce example
Event storming based msa training commerce exampleEvent storming based msa training commerce example
Event storming based msa training commerce example
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation Workshop
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
Microservice coding guide
Microservice coding guideMicroservice coding guide
Microservice coding guide
 
Safe cloud native transformation approaches
Safe cloud native transformation approachesSafe cloud native transformation approaches
Safe cloud native transformation approaches
 
microservice architecture public education v2
microservice architecture public education v2microservice architecture public education v2
microservice architecture public education v2
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementation
 
유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)
유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)
유엔진 였픈소슀 큎띌우드 플랫폌 (uEngine Microservice architecture Platform)
 
Distributed transanction in microservices
Distributed transanction in microservicesDistributed transanction in microservices
Distributed transanction in microservices
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementation
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architecture
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS Snapshots
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
Bluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹ
Bluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹBluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹ
Bluemix paas ᄀᅔ번 saas 귀발 사ᄅᅹ
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
Building multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickBuilding multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quick
 

KĂŒrzlich hochgeladen

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp KrisztiĂĄn
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 

KĂŒrzlich hochgeladen (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 

9 design factors for cloud applications

  • 1. 9 Design factors on developing Cloud applications Feb 2017 Rick Jang
  • 2. 9 Design factors on developing cloud applications 1.Don't code your application directly to a specific topology 2.Do not assume the local file system is permanent 3.Don't keep session state in your application 4.Don't log to the file system 5.Don't assume any specific infrastructure dependency 6.Don't use infrastructure APIs from within your application 7.Don't use obscure protocols 8.Don't rely on OS-specific features 9.Don't manually install your application 2
  • 3. Design factors on developing cloud applications Don't code your application directly to a specific topology  Use Dynamic Service Binding e.g. Spring DI 3
  • 4. Design factors on developing cloud applications Do not assume the local file system is permanent  Use File Storage Services like Amazon S3 4
  • 5. Design factors on developing cloud applications Don't keep session state in your application  Use Memory Cache Service like ElastiCache When you use Cloud Foundry Auto re-configurer, Session cluster service (Redis) is automatically bound for java sevlet Session. Ref. https://blog.pivotal.io/pivotal-cloud- foundry/products/session-replication-on-cloud-foundry-2 5
  • 6. Design factors on developing cloud applications Don't use obscure protocols  Use 80, 443  make as a Micro Service 6
  • 7. Design factors on developing cloud applications - 9 Don't manually install your application  Automatically Install your application dependencies such as DDL, static files You can use JPA which automatically installs your entities by generating DDLs  The spring-music.war example shows automatically installs the static data when it is connected to MySQL service. 7
  • 8. Example SaaS App – Essencia Project Management Tool â€ąìŒë°˜ SW개발자듀도 쉜êȌ SW 개발방ëČ•ëĄ ì„ ì •ì˜í•˜ì—Ź ì ìš©í•šìœŒëĄœìš SW 생산성을 í–„ìƒì‹œí‚Ź 수 ìžˆë„ëĄ 도움을 쀄 수 있는, Essence 표쀀에 적합한 Practice 및 ë°©ëČ•ëĄ ì„ ê°œë°œí•˜êł  ìĄ°í•©í•˜ë©° 싀행시킀는 SEMAT Essence 지원 ë°©ëȕ론 ìžŹì •ì˜ 및 싀행지원 ì†”ëŁšì…˜ - 'Essencia' 의 ê°œë°œêłŒ ëłŽêž‰ìŽ ëȘ©í‘œ ì•Ąí„°ì™€ 시슀템 정의 Method Repo. Method Author Stakeholders (Product Owner, PM, Developer) Method Composer 프랙티슀 ìĄ°ëŠœ N-Screen/Web2.0 Portal 싀행 / 가읎드 ëȘšë‹ˆí„°ë§ 분석 / 씜적화 Practice / Method Orchestrator Or êž°ìĄŽ PMS(JIRA) WorkList SNS Dashboard Requirement Tools Modeling Tools Testing Tools CI tools Practice Library Practice Author Practice Mapper 에섌슀-프랙티슀 맀핑
  • 9. Example SaaS App – Essencia Project Management Tool – MSA Architecture Amazon S3 Clear DB Redis Memory Cache Essencia Service 3rd Party Apps JIRA Issue Tracker Service All RESTful
  • 10. Example SaaS App – Essencia Project Management Tool – MSA Architecture Amazon S3 Clear DB Redis Memory Cache Essencia on CF IStorage DataSource HttpSession AmazonS3StorageAbstractCloudServiceBeanFactoryPostProcessor <bean id="storage" class="org.uengine.modeling.resource.AmazonS3Storage"> <property name="amazonS3Bucket" value="${Amazon.S3.Bucket}"/> <property name="awsAccessKey" value="${Amazon.AccessKeyID}"/> <property name="awsSecretAccessKey" value="${Amazon.SecretAccessKey}"/> </bean> <bean class="org.cloudfoundry.reconfiguration.spring.AbstractCloudServiceBeanFacto ryPostProcessor" />
  • 11. Example SaaS App – Essencia Project Management Tool – On-premise Architecture Local File System Local DB (MySQL) Essencia on-premise IStorage DataSource HttpSession LocalFileStorage org.apache.catali na.session.Stand ardSession DBCPDataS ource <bean id="storage" class="org.uengine.modeling.resource.LocalFileStorage" <property name="localBasePath" value="D:Projectcodi"/> </bean>
  • 12. Essencia - Dynamic Service Binding with Spring DI <bean id="storage" class="org.uengine.modeling.resource.AmazonS3Storage"> <property name="amazonS3Bucket" value="${Amazon.S3.Bucket}"/> <property name="awsAccessKey" value="${Amazon.AccessKeyID}"/> <property name="awsSecretAccessKey" value="${Amazon.SecretAccessKey}"/> </bean> <bean class="org.cloudfoundry.reconfiguration.spring.AbstractCloudService BeanFactoryPostProcessor" /> <bean id="storage" class="org.uengine.modeling.resource.LocalFileStorage"> <property name="localBasePath" value="D:Projectcodi"/> </bean> Case of On-premise Case of On Cloud
  • 13. Essencia – Application Code must not be affected @Autowired public Storage storage; public void delete() throws IOException { storage.delete(this); }
  • 14. Essencia – Using AOP for Metering / Billing – 1 @Metered("project.start") public void executeProcess(String instanceId) throws Exception{ ProcessInstance instance = getInstance(instanceId); instance.execute(); }
  • 15. Essencia – Using AOP for Metering / Billing – 2 @Aspect public class MeteringAdvice { @Before("@annotation(metered)") public void checkAvailable(Metered metered) throws NoServiceAvailableException { 
.. //Check if the service is available for the requested tenant } @AfterReturning("@annotation(metered)") public void meter(Metered metered) throws Exception { 
. //Add usage log } }
  • 16. Essencia – Build & Deploy Automation Essencia On-Premise Essencia On Amazon Essencia On Bluemix Overrides: 1. applicationContex.xml (to use AmazonS3Storage) 2. Uengine.properties (to change DB connection info) Overrides: 1. applicationContex.xml (to use services) 2. pom.xml (Cf push command)