Upload
wso2
View
495
Download
1
Embed Size (px)
Citation preview
Associate Technical LeadManjula Rathnayaka
WSO2 Product Release Webinar WSO2 App Factory 2.1.0
Kasun de SilvaSoftware Engineer
Overview
● Introduction to WSO2 App Factory
● New features in WSO2 App Factory
○ Pluggable application types
○ Ability to add runtime externally
○ Puppet scripts for WSO2 App Factory deployments
○ User activity monitoring with WSO2 BAM
○ Custom URL improvements
● What’s Next?
● Q&A
2
Introduction to WSO2 App Factory
● WSO2 App Factory is equipped with,
○ Complete software development life cycle (SDLC) tool chain
○ Platform-as-a-Service (PaaS) capabilities
that aim to address many aspects of the application management process
3
Introduction to WSO2 App Factory
● Main Use cases of App Factory,
○ Create applications and view details of all applications
○ Build a team around applications by inviting users
○ Check in your source code to repository
○ Version and branch your source repository
○ Manage the application across its life cycles
○ Manual or automatic builds and deployments
○ Launch and test your applications
○ Continuously promote and deploy software assets
○ Easily discover and consume APIs
○ Configure registry, endpoints, databases
○ Leverage published APIs in your application
○ Create and manage issues
4
New Features in WSO2 App Factory
● Following are the new features that ships with WSO2 App Factory 2.1.0
○ Adding new application types by including an archive
○ Ability to add runtime externally
○ Puppet scripts for App Factory deployments
○ WSO2 BAM integration for user activity
○ Custom URL improvements
6
Pluggable Application Types
● Application Types
○ Java Web apps
○ Jaggery apps
○ Data services
○ Node.js
○ PHP
○ ASP.NET
● Bring Your Own App Type
7
AppType Configuration
<ApplicationType>
<ApplicationType>war</ApplicationType>
<ProcessorClassName>org.wso2.carbon.appfactory.application.mgt.type.MavenBasedApplicationTypeProcessor</ProcessorClassName>
<DisplayName>Java Web Application</DisplayName>
<Extension>war</Extension>
<Description>Web Application Archive file</Description>
<Buildable>true</Buildable>
<BuildJobTemplate>maven</BuildJobTemplate>
<MavenArcheTypeRequest>-DarchetypeGroupId=org.wso2.appfactory
-DarchetypeArtifactId=webapp-archetype -DarchetypeVersion=2.1.0-SNAPSHOT -DgroupId=org.wso2.appfactory
-Dversion=default-SNAPSHOT -DinteractiveMode=false
-DarchetypeCatalog=local
</MavenArcheTypeRequest>
<ServerDeploymentPaths>webapps</ServerDeploymentPaths>
<Enable>enabled</Enable>
<Comment>Test123</Comment>
<Language>Java</Language>
<SubscriptionAvailability>aPaaS</SubscriptionAvailability>
<IsUploadableAppType>false</IsUploadableAppType>
<DeployerType>*</DeployerType>
<DevelopmentStageParam>.dev</DevelopmentStageParam>
<TestingStageParam>.test</TestingStageParam>
<LaunchURLPattern>https://appserver{stage}.appfactory.private.wso2.com:9443/t/{tenantDomain}/webapps/{applicationID}-
{applicationVersion}/</LaunchURLPattern>
<isAllowDomainMapping>true</isAllowDomainMapping>
<DisplayOrder>1</DisplayOrder>
<Runtimes>appserver</Runtimes>
<ExecutionType>Open</ExecutionType>
<IsCodeEditorSupported>true</IsCodeEditorSupported>
</ApplicationType>
war.apptype
8
Ability to add runtime externally
● Apache Stratos as runtime provider for WSO2 App Factory
● Enable new runtimes using runtime.xml
<Runtime>
<Runtime>appserver</Runtime>
<DeployerClassName>org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer</DeployerClassName>
<PAASArtifactStorageURLPattern>{@stage}/as</PAASArtifactStorageURLPattern>
<AliasPrefix>as</AliasPrefix>
<CartridgeTypePrefix>164as</CartridgeTypePrefix>
<DeploymentPolicy>af-deployment</DeploymentPolicy>
<AutoscalePolicy>economy</AutoscalePolicy>
<SubscribeOnDeployment>false</SubscribeOnDeployment>
<UndeployerClassName>org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactUndeployer</UndeployerClassName>
</Runtime>
<Runtime>
<Runtime>php</Runtime>
<DeployerClassName>org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer</DeployerClassName>
<PAASArtifactStorageURLPattern>{@stage}/as</PAASArtifactStorageURLPattern>
<AliasPrefix>{@appName}</AliasPrefix>
<CartridgeTypePrefix>php</CartridgeTypePrefix>
<DeploymentPolicy>af-deployment</DeploymentPolicy>
<AutoscalePolicy>economy</AutoscalePolicy>
<SubscribeOnDeployment>true</SubscribeOnDeployment>
<UndeployerClassName>org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactUndeployer</UndeployerClassName>
</Runtime>
appserver-runtime.xml
php-runtime.xml
12
Single Tenant Cartridge
● A separate cartridge instance will be spawned for each application version.
● Single tenant cartridges provide,
○ Tenant users process level isolation
○ Instance level dedicated tenancy
● NodeJS, PHP, .Net are deployed in single tenant cartridges.
13
Multi Tenant Cartridge
● Allow multiple tenants to share a single cartridge instance
● Tenant user traffic will be securely directed to isolated application code within the cartridge
instance
● Web apps, Jaggery apps, Data services, JAX WS are deployed in multi tenant cartridges.
14
Puppet scripts for App Factory deployments
15
● WSO2 App Factory deployment consist of WSO2 products, third party servers and plugins.
● Puppet as the configuration management tool for different deployments of App Factory.
IaaS
Developer Setup
Puppet Master
Remote Server
Developer Machine
Puppet
Agent
Dev AS Cartridge
Iaas (OpenStack)
Test AS Cartridge
Prod AS Cartridge
BPS
Build
Server
GitBlit
S2GitBlit
UES
BAM
SS
APM
IS
ELB
MySQL
Dev Paas
Test Paas
Prod Paas
AF
16
BAM
Build Server
Multi-Node Setup
Puppet Master
Server
BPS
GitBlit
S2GitBlit
UES
SS
APM
IS
MySQL
Dev Paas
Test Paas
Prod Paas
AF
Dev AS Cartridge
Test AS Cartridge
Prod AS Cartridge
IaaS
Puppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
AgentPuppet
Agent
Puppet
Agent
Puppet
Agent
Puppet
Agent
ELBPuppet
Agent
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
Server Node
17
Test AS Cartridge
Prod AS Cartridge
User Activity Monitoring
● Statistics and feedback loop for continuous improvements of App Factory portal.
18
Publish activities to BAM
Summarize and generate
reports
Custom URL Feature
● Application's production URL will be generated as follows by default,
<appkey>.<tenanatDomain>.wso2apps.com
● To associate a custom URL,
○ Reserve a domain name with any domain registrars
○ Update the production URL in your application with the reserved domain
19
What’s Next?
● Configurable lifecycle stages & requirements
● Docker based IaaS support
● More app types and runtimes.
● GitHub integration
● Many more...
Stay in touch with WSO2 App Cloud : https://cloud.wso2.com
21
Upcoming Webinars
● Learn How to Dynamically Add New Application Types, Runtimes to
WSO2 App Factory (7th April)
● Enterprise application development with WSO2 App Factory (21st April)
22