This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Introducing App Factory
WSO2 App Factory is a shared, elastic, and self-service enterprise platform that supports application development and management from inception to retirement. It is designed for multiple project teams to collaboratively write applications and manage their life cycle stages in a shared, regulated, and controlled manner. The App Factory is released under Apache Software License Version 2.0, one of the most business-friendly licenses available today.
Why WSO2 App Factory
The IT industry uses agile methodologies to develop applications to meet the expectations of different stakeholders today. While agile methodologies help us overcome the traditional process bottlenecks, cutting-edge agility is achieved through the use of specific tools and techniques. WSO2 App Factory's collaborative development platform is an easy way to achieve agility while imposing rules, governance policies and maintaining control over all aspects of the software development life cycle.
With App Factory, you can enforce teams to follow a uniform practice with defined coding guidelines, a standard set of libraries, and best practices, and ensure that a checklist of prerequisites is met before an application goes into production. There are numerous drawbacks in not providing such a managed infrastructure. For example, developers and QA might end up building and testing applications in environments that do not simulate a real production setting, resulting in issues that appear only when the application runs in production. Issues appearing in later stages of the lifecycle impose a greater cost of recovery. App Factory's managed and regulated platform ensures early issue detection, cost savings, and faster go-to-market.
Common App Factory use cases
WSO2 App Factory is equipped with a complete software development life cycle (SDLC) tool chain and Platform-as-a-Service (PaaS) capabilities that aim to address many aspects of the application management process. Given below are some of its use cases:
- Create applications and view details of all applications in a unified, controlled platform. See Creating an Application.
- Build a team around applications by inviting users, assigning them single or multiple roles and managing them. See Building your Team.
- Check in your source code to repository, version and branch your source repository, view life-cycle stages of branches and configuration management of the source code. See Checking in and Branching the Code.
- Manual or automatic builds and deployments of the branches, check build status, change build settings, browse the build server, launch and test your applications, run continuous integration tests. See Building and Deploying the Application.
- Continuously promote and deploy software assets. Easily discover and consume APIs through a user-friendly storefront. Configure registry, endpoints, databases to store your application's data and leverage published APIs in your application. See Configuring Resources.
- Create and manage issues in a default issue tracking system or your own bug tracking tool. See details like types, severity and status of all issues reported against a given version of an application in a single view. See Adding Tests and Tracking Issues.
- Manage the application across its life cycles, configure your own life-cycle stages and preconditions for state transition, view life-cycle history, specify estimated deadlines for an application to be in a given life-cycle stage. See Managing Lifecycles.
 - Leverage inbuilt App Factory tooling support in WSO2 Developer Studio, which gives you a simpler and better integrated development experience.
Figure 1: Life-cycle management activities integrated in App Factory
WSO2 App Factory encourages software delivery best practices and is highly extensible and customizable. Because all the third-party tools used in App Factory are integrated through extension points, you can easily configure new life-cycle stages, workflows, and tools of your choice.
Key characteristics of App Factory
The main characteristics of the App Factory product are:
- Cloud based: Cloud based development infrastructure -Â SVN, continuous build system, defect management. Self-service configuration enabled through cloud computing.
- Adaptability: You can virtually connect to any system/tool of your choice, provided it has an API. You are also given default options for out of the box deployments, such as GIT for a code repository or Redmine for issues management.
- Extensibility: AppFactory executes business processes for build, application governance or application creation logic. You can extend these processes involving human tasks, if required. Similarly, the list of application types supported by App Factory can be extended as new Stratos cartridges are added. This can be done by you or by our team of experts.
- Scalability: App Factory leverages WSO2’s PaaS, Private PaaS, to achieve maximum scalability and auto-scaling.
For more App Factory features, see Features.
The benefits App Factory brings to your business
In summary, WSO2 App Factory provides the following advantages:
- Reduces the cost of development and time-to-market by early detection of issues.
- Pre-setup environments ready to go, with automatic provisioning as the application goes through the development lifecycle. Saves the time spent on infrastructure, source control, continuous integration, development and testing environment(s).
- Extensibility and customizability allows you to add tools and workflows you are already familiar with.
- The platform automatically manages dependencies for you. For example, when moving an application from development to testing or production, you usually have to connect to different APIs and databases. But now, the developer can simply move the application through its life-cycle stages while the platform automatically connects it to the correct resources.
Can impose policies and standards between life-cycle stages so that an application won't progress from one stage to the next before meeting regulatory and quality standards.
Helps build a digital business ecosystem. Fosters cross-organizational development collaboration by making your applications public in a storefront and encouraging reuse. Because developers understand what capabilities are already available before starting a new development project, cost of rework is reduced.
- Manage and monitor projects through App Factory's numerous dashboards.
Next, see Default Application Lifecycle.