Servoy Cloud is a cloud service intended for software development teams that develop and optionally deploy software using the Servoy technology stack. The purpose of the cloud service is to provide all required technology and tools to do this in a highly productive, transparent and controlled way. The result of using Servoy's cloud is an even more productive software development team, empowered by technology that can continuously and iterative deliver high quality software at an high pace.
In This Chapter
Servoy Cloud Pipeline
The Servoy Cloud Pipeline is a comprehensive set of functionalities to allow you to manage and control all aspects of building and deploying Servoy technology based applications..
Key aspects
Key aspects of Servoy Cloud Pipeline:
- Continuous delivery pipeline in-the-cloud
- Automated build, deploy, QA and reporting
- Integrated Source control
- Docker orchestration and container monitoring
- Agile Project Tracking
- High-availability production environments
in a Scalable, Stable, Secure environment.
Source Control
Everything is under Source Control, this includes:
- The source code you create in the Servoy IDE
- The database structure and things like indexes
- Application metadata
- Application properties
- All stack components
- Operating system
- Java
- Libraries
- Servoy
- Environment settings and variables
- Database engine
In a typical pipeline the application moves from development to user acceptance to pre-production to production
In each step the quality of the application and all settings changes to it and its stack are taken to the next level and once ready for deployment to production everything has been tested.
Servoy Cloud-based Production
Servoy Cloud Production (PROD) is a set of services and tools aimed to host a solution at a given availability level, it integrates seamless with the Servoy Cloud Pipeline and give you an availability of functionality and performance.
The Servoy Cloud enforces SSL use, automatic encryption, strict access controls, docker static security scanning, and binary hashing. It automatically and continuously scans all public-exposed end points, pipeline components, and project management tools, whether at the Servoy or client end. It then notifies the engineering team of security vulnerabilities. Servoy Cloud security reports are easy to understand, highly configurable, and immediately actionable, and take seconds to produce. Finally, Servoy updates its stack several times a day to keep abreast of the latest industry developments.
Core principles of Servoy Cloud-based Production Service
To use the Servoy Cloud-based Production Service you must use the Servoy Cloud Pipeline for development and use a pre-production environment (PPROD)
Promoting a solution to Production can only be done after a successful test and promotion in a pre-production environmnet
The Servoy Cloud will scale up and down, sessions are drained (and killed) according to you Service Level Agreement and during the operating window agreed timeframe the performances are guaranteed.
Some core principles of SCP
New source = new build = new release
If anything changes in source, this requires a new release
Automatic testing is key
The purpose of Servoy Cloud is to enable teams to perform at a high pace, releasing often and fast, whilst keeping or increasing the quality of their application. To ensure the quality of releases each and every time extensive automatic testing is required. These tests basically describe (and automatically test) what quality means, the describe (and test) the functionality of the application.
Servoy Cloud Production guarantees that end to end test that succeeded in a pre-production environment will function and perform in a production environment.
Development
In an agile team, members work together on an application. The development environment they work in represents the latest status of the team.
User testing is done in UAT
In an agile team end users are involved to test if the functionality that was intended.
Deployment testing is done in Pre-production
To test the promotion step from UAT to production you have to use the pre-production environment.
This environment is must be a architectualy identical environment as you production environment. All steps to promote you solution to production must be automated and the steps must be tested to pre-production before promoting to production.
Pre-production is also used to do performance testing using end to end test. This means that pre-production must also be a solid representation of production in terms of datasize.
Source control
As everything is under source control you are required to use a source control system.
SCP provides a git source control system. You can also use your own outside SCP
Our mandatory branching strategy is ......
Case / bug management
We recommend you use a case / bug management system to be able to track the performance of the development team and create a solid history of your product.
You can use the included case / bug management team in SCP to manage cases / bugs / sprints. This included system integrates fully with all other SCP subsystems. You can also use your own system(s) to do this.
The included system also provides functionality for technical documentation and code reviews.
The subsystems in the SCP
Source control
Servoy Cloud contains its own source control system. You can also configure Servoy Cloud to use your own source control system, hosted somewhere else.
The Source control system can be reach through the CCC URL or directly through URL
SCP engine
Servoy Cloud contains an engine. The things the engine runs are named jobs.
A job can create a build of the software, run tests, promote a build to a different environment
Jobs run time scheduled, triggered (by a commit in source) or manual
Jobs are highly parameterized, they can be configured on specific branches of the source control system, contain specific versions of libraries, contain specific versions of Servoy and java. On a job you can configure to run unit test, end to end test, code coverage and code analysis.
Builds
A build job creates a new version of the solution. This can be a solution file, a war file or a docker file
build parameters....
Promotions
A promotion takes a docker image and deploys it to an environment
promotion parameters ....
Environment
An environment is a running server (or multiple servers) that has a version of a running solution docker image.
environment parameters ....
Automatic testing (Unit & End to End)
Servoy Cloud contains both an unit test engine and a end to end test engine
If a job has configured to run unit tests it will run the test every time and create a report. In such a case it can optionally also check code coverage and produce a report of the % code covered by the unit test.
If a job has configured to run end to end tests it will run these test every time ands create a report.
If tests are ran but fail, the job will fail.
Database management
Log management
Monitoring
Project / Case / Issue management
Dev
UAT
Pre-Production
Production
Other environments
Webinars
Servoy periodically produces Technical Webinars targeted to developers covering a broad range of topics, from new features to new capabilities to best practices. The following webinars are focused on the Servoy Cloud offering: