App Factory revolutionizes the way applications are developed. It is a shared, multi-tenanted, elastic, and self-service enterprise platform that supports applications 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.
Why App Factory?
The IT industry uses agile methodologies to develop applications that meet stakeholder expectations today. While agile techniques help us to get over the traditional process bottlenecks, the tools and techniques provide the edge to be agile. App Factory goes one step further to revolutionalize application development and its life-cycle management by addressing the following problems.
- Significant time and effort required to setup application infrastructure - source control, continuous integration, development and testing environment(s)
- Difficult to enforce development and runtime governance best practices and policies
- Need for DevOps and daily production roll-outs
- Time consuming, manual process to obtain project status, dependencies, and change impact
Addressing above problems would result in fast development of applications in much more productive and efficient manner. 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. A controlled and managed software development infrastructure ensures early issue detection, cost savings, and faster go-to-market.
Use cases of WSO2 App Factory
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 and Viewing Applications.
- 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 Managing Code Repository.
- 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 Managing Builds and Deployments.
- 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 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 Life Cycles.
- 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 WSO2 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, Stratos, to achieve maximum scalability and auto-scaling.
For more App Factory features, see Features.
The benefits WSO2 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
- 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 staging, 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 Life Cycle.