24
Associate Technical Lead Manjula Rathnayaka WSO2 Product Release Webinar WSO2 App Factory 2.1.0 Kasun de Silva Software Engineer

WSO2 Product Release Webinar - WSO2 App Factory 2.1

  • 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

Introduction to WSO2 App Factory

● High-level components of WSO2 App Factory

5

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

Support for Jaggery App Type

9

Support for .NET AppType

10

Support for NodeJs AppType

11

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

Custom URL Feature

20

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

23

Q & A

24