Deploy

This guide will cover how to deploy and manage applications

Overview

This guide covers the deployment of solutions build on the Servoy platform to end-users, assuming a solution is available and ready for deployment and that the developer of the solution provided information about the deployment options the solution supports.

Application Server

The Servoy Application Server is a key component of the Servoy development and deployment platform, which is primarily used for building and running data-centric business applications. It serves as the central server where Servoy applications are hosted and managed. Here are the main features and functions of the Servoy Application Server:

  1. Hosting and Execution: It hosts Servoy solutions, which are essentially the applications developed using the Servoy Developer IDE. The server manages the execution of these applications, handling client requests and serving responses.

  2. Database Connectivity: The server provides connectivity to various databases, facilitating data storage, retrieval, updates, and transactions. Servoy supports a wide range of databases including SQL databases like PostgreSQL, MySQL, Microsoft SQL Server, Oracle, Progress, FoxPro DBFs and more.

  3. Client Management: It manages different types of clients including browser clients, desktop clients, mobile clients and headless clients (for server automation). This entails session management, client-server communication, and client synchronization.

  4. Security: The application server includes built-in security features for authentication and authorization, ensuring that access to application data and functionality is properly controlled.

  5. Scalability and Performance: It is designed to be scalable and can handle multiple simultaneous client connections efficiently. Performance optimization features are also integrated to manage load and resource utilization effectively. Servoy’s application server can scale horizontally in a cluster architecture.

  6. Integration Capabilities: Servoy Application Server allows integration with other systems and technologies via RESTful web services, plugins, and Java libraries, expanding the functionality and versatility of Servoy applications.

  7. Administration and Monitoring: It includes tools for server administration and monitoring, helping administrators manage the application lifecycle, monitor performance, and troubleshoot issues.

Architecture The Servoy Application Server is based on Apache Tomcat.

Servoy Repository

The Servoy Repository is a set of tables in a database, containing all the metadata of deployed solutions.

The metadata contains, among other things the following:

  • Solution design

  • Solution versions

  • Users & user groups

The Servoy Application Server requires to have a named server connection with the name repository_server, which points to the database hosting the Servoy Repository tables.

Self-hosting

Self-hosting an application involves running and managing the application on your own infrastructure instead of relying on third-party hosting services. Here's an overview of the process:

  • Choose Your Infrastructure: Determine where you'll host the application. This could be on physical servers in your own data center or on virtual servers provided by a cloud service provider. Consider factors such as scalability, reliability, and cost when making this decision.

  • Set Up Your Server Environment: Install the necessary software stack on your server. This may include an operating system (e.g., Linux, Windows Server), a web server (e.g., Apache, Nginx), a database server (e.g., MySQL, PostgreSQL), and any other dependencies required by your application.

  • Configure Networking: Set up networking configurations to allow users to access your application over the internet. This involves configuring DNS settings, firewall rules, and network security groups to control traffic to and from your server.

  • Install and Configure the Application: Install your application on the server and configure it to run in the server environment. This may involve uploading application files, setting up databases, configuring environment variables, and modifying configuration files as needed.

  • Secure Your Application: Implement security measures to protect your application from unauthorized access and attacks. This includes using HTTPS for secure communication, implementing access controls, applying security patches regularly, and using strong authentication mechanisms.

  • Monitor and Maintain: Monitor your application and server for performance issues, errors, and security vulnerabilities. Set up monitoring tools to track metrics such as CPU usage, memory usage, disk space, and network traffic. Regularly update and maintain both your application and server to ensure they remain secure and reliable.

  • Backup and Recovery: Implement backup and recovery procedures to protect against data loss and downtime. Regularly backup application data and configuration files, and test recovery procedures to ensure they are effective in case of emergencies.

  • Scale Your Infrastructure: As your application grows, you may need to scale your infrastructure to handle increased traffic and workload. This could involve adding more servers, optimizing server configurations, or using load balancing and auto-scaling technologies to distribute traffic across multiple servers.

In case of self-hosting, application deployment is done by .war file deployment to Tomcat.

ServoyCloud

Servoy Cloud is a full PaaS (Platform-as-a-service). It handles test automation, WAR generation, deployment, hosting, and monitoring in one easy place without any additional technical know-how needed. All the hard stuff is handled for you, and its officially supported by Servoy with its SLA's.

If you are using the full stack of Servoy Cloud Services the deployment of an application, from source code to automatic testing to pre-production to production is completely managed by Servoy from it's own servers.

If you are using the Servoy Cloud Pipeline from the Servoy Cloud Services offering, the building of an application, from source code to tested code to deployable package is managed by Servoy from it's Cloud Pipeline Servers and a WAR file or a Docker Container ready to be installed on your servers will be automatically produced.

Servoy Cloud capabilities

  • Build process

    • GIT repository (for the Servoy code)

    • Triggers for automatic builds on commit

    • Choice of Servoy version used

    • Different environments for different branches (UAT, DEV, Pre-Production etc.)

    • Servoy file creation (.Servoy file)

    • WAR creation (includes .Servoy file) for Servoy application server

    • Full stack version control (OS, Java, Servoy, DB, add ons)

  • Testing

    • Integrated E2E testing

    • Integrated unit testing

    • Integrated end point testing

  • Deployment process

    • Integrated approach to development, testing and deployment.

    • Managed data migrations as part of deployment

    • Managed data schema changes as part of deployment

  • Primary cloud providers guarantee infrastructure uptime

    • They don’t care if your database goes down

    • They don’t care if your web server is inaccessible because of a DNS entry problem

    • They don’t care if your web application container is running out of memory

    • They don’t care how many users are logged in

  • Servoy cloud guarantees application uptime (and performance)

    • Servoy monitors all containers, continuously

    • Servoy monitors ping accessibility, with notifications for interruptions

    • Servoy monitors memory, CPU, etc

    • Servoy cloud will selfheal its nodes in case there are interruptions

    • We provide SLA level response, with dedicated cloud engineers

    • Failover for the Servoy application server

    • Zero-downtime deployment

    • Load balancing

    • Data broadcasting across servers making use of RabbitMQ (AMQP messaging broker) including Failover

    • Certificate management (SSL)

    • Monitoring (CPU, memory, performance etc)

    • Database including replication

    • Shared volume (files like reports) between servers

    • Database Back-ups

Servoy Cloud offers scalability, flexibility, cost transparency, and offloaded management responsibilities, making it an attractive option for many organizations, especially those with dynamic workloads or limited IT resources. Self-hosting involves packaging, deploying, and managing web applications on your own infrastructure using server software like Apache Tomcat or Jetty and requires upfront investment, ongoing maintenance, and expertise in infrastructure management.

Last updated