Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘sage online

SEOS

with 2 comments

Introduction

Sage ERP Online Services (SEOS) was a system developed alongside the online/cloud versions of Sage 200 ERP (UK) and Sage Morano ERP (Spain). The purpose of this was to provide a number of common sets of functionalities for all Sage online applications such as creating new tenants and users, managing audit logs, managing cloud credentials and managing cloud resources. The system also handled common functions such as integration to the various Sage billing systems. Although SEOS was originally developed as part of the Sage 200 and Sage Morano online projects, it was always intended to be a general tool used by all Sage cloud products. SEOS has been in successful production with both Sage 200 and Sage Morano for some time now, it is now being adopted by various other Sage cloud products both in Europe and in North America.

A lot of what SEOS does is behind the scenes and customers and partners generally don’t see it as a separate service. But I thought it might be of interest to people to know what is or will be going on behind the scenes in our various cloud products. This article is just talking about SEOS in general and doesn’t make any claims as to which will be the next product to adopt SEOS or any timelines for such adoption. But for people using Sage 200 or Sage Morano, they probably already have some experience using the SEOS portal.

One of the key goals of SEOS is to automate everything so there are no manual processes in creating new tenants or users, but additionally it orchestrates disaster recovery, backup/restore and the auto-scaling of resources.

SEOS Services

SEOS has a number of different ways to interact with it. There is a web portal for DevOps/IS type people who run the system, there is a web portal for customers and partners and then there are a number of APIs for the various ERPs to communicate with. Some of the main components are shown below.

seos1

The main job an ERP has to do to integrate to SEOS is provide a provisioning engine. This engine runs all the time (actually at least two of them for high availability). This engine checks the SEOS job queue to see if it has anything to do. Tasks it might be asked to perform include creating a new tenant, creating a new user or suspending a tenant.

Bootstrapping the System

To create a new cloud instance of an ERP that is integrated with SEOS just requires the provisioning engine running. This is either setup manually or via some PowerShell scripts. Once the provisioning engine is going, everything else is done in the provisioning engine as it gets messages from SEOS. When it gets its first create tenant message, it will see that no application servers are running and create a couple (for high availability), it will create the database and do anything else that is needed for that tenant to be able to operate. For the first tenant that could mean creating quite a few storage, database, VM or other resources.

Then as tenants are added, the provisioning engine will be monitoring (with the help of SEOS) the usage of the system and will start additional resources (like application servers), if it determines that the system needs to scale to handle the additional load.

Thus nearly all the work of creating a large cloud system, possibly consisting of hundreds of VMs will all be brought about automatically via the SEOS/provisioning engine system.

This then helps with disaster recover, since when SEOS switches to the alternate data center, it handles switching the databases and basically bootstraps the whole process the same way. Note that databases are a bit different since they are already being replicated to the alternate site and you just want to switch the backup to primary and then use that.

Multi-Cloud

When the provisioning engine requires a new resource like an Azure SQL database or a new Web Role (VM), it doesn’t just go to the cloud API to get it (say using the Azure SDK). Instead it asks SEOS for the resource and SEOS creates it for the ERP. This way the ERP isn’t using the native cloud API, instead it just uses the SEOS API. This then opens up the possibility for hosting these cloud ERPs in different clouds.

Currently all the SMB ERPs are hosted in the Microsoft Azure cloud because we get very good pricing on this and it meets our needs extremely well. However we don’t want to put all our eggs in one basket and if conditions change dramatically, we can much more easily switch other providers. There are other reasons we may need to do this, for instance Azure doesn’t have a data center in Africa and we have a lot of customers in Africa, so we may need a provider closer than Singapore.

DevOps

DevOps is the group that runs all the various Sage Cloud offerings (its official name varies from region to region, but the idea is the same). Having DevOps manage dozens of cloud products all working different ways with different maintenance procedures would be a huge challenge. SEOS brings all these aspects together into one set of procedures.

Take logging for example. It’s easy for any application to generate huge log files for diagnostic and auditing purposes. There are lots of good APIs for doing this. But managing these logs is a challenge. The logs need to be archived for future reference. Generally there are several types of logs, like the Windows Event Log, and application diagnostic log and an application security log. All these need to be kept in a central spot including backing them up. There has to be easy ways to search them, say by tenant, event type or date time. Many people use Elastic Search to search their logs. SEOS provides a uniform way for managing these and automates most of the process. This way DevOps only needs to know one way of managing logs and not a separate way for each ERP. Plus SEOS automates the whole process, avoiding manual procedures and mistakes.

Billing Engines

Sage is a large company and operates around the world. Most of our products are charged for and the backend systems that do billing vary around the world. Various geographic regions have extra regulatory requirements and different business rules. SEOS handles providing usage data to the billing engine via a standard adapter. Each region has to write an adapter to interface to SEOS. Removing this burden of interfacing to the Sage billing systems is a huge benefit to the ERP teams who really don’t want to have to deal with these details.

Summary

If you are a partner or customer using Sage SMB Cloud offerings in Europe, then you have probably already seen SEOS and know something about it. If you are using Sage SMB Cloud offerings in other parts of the world, then you will probably start to see SEOS appearing over the next while. These will probably appear more as features or services, but these are being brought to you by the SEOS global initiative.

Advertisements

Written by smist08

August 9, 2014 at 3:34 pm

Sage 300 Online

with 13 comments

Introduction

At our Sage Summit conference we officially rolled out our new Sage 300 Online service. Sage 300 ERP has had an online hosted version for over ten years. The new Sage 300 Online service is meant to radically modernize our cloud version. It is now hosted in Microsoft Azure, sign on is via SageID, and the virtualization software is vastly improved.

We support all the standard Sage 300 ERP Modules, along with integrations to other Sage applications like Sage Exchange and host a number of third party ISV products. Financial Reporting and Business Intelligence is provided via Sage Intelligence (Sage Alchemex).

Using the cloud version of Sage 300 means that you don’t need to maintain your own servers or other hardware, you don’t need to be responsible for backing up your data and you aren’t responsible for data center support. Further you aren’t responsible for maintaining and upgrading the software. We install all necessary hotfixes and product updates. We even perform major version upgrades for you, which can be a major cost saving.

Modern businesses tend to be distributed over many geographic locations with many employees working from home or working while on road trips. Using a cloud based ERP allows all these people to access the central cloud based ERP from any place with Internet access. This is much easier than maintaining expensive and slow VPN type networks.

First we’ll run through how the service looks and then talk about some of the various aspects of it.

Usage

To access and run Sage 300 Online, you go to an URL in your browser that redirects you to SageID.

sage300online1

You now enter your SageID credentials and are signed into the system. This leads to the following page which gives a list of programs that you are allowed to run.

sage300online2

Clicking on “Sage 300 Online” will then launch the Sage 300 Online desktop. Below is a screenshot of the Desktop run from the landing web page and then running the Order Entry UI.

sage300online3

Notice that it now looks exactly like you are running Sage 300 locally. You no longer run a terminal server client which presents a new Windows desktop inside your existing Windows desktop.

SageID

When you first sign up for the service, you provide an e-mail address which will become your SageID. This first user is the administrator for your company and can invite other users from a SageID administrative website to use the system. SageID will then be your login for our site.

Your SageID will be your login for all Sage Cloud services and is also connected to the back end billing systems, so we can provide one bill for all your services attached to your SageID. This includes the Sage Mobile applications unveiled at Sage Summit. This will make reporting and billing very simple for cloud users.

Microsoft Azure

Our Sage 300 Online service is hosted in Microsoft Azure. These are Microsoft’s cloud data centers with locations all over the world. We use Azure due to its reliability and redundancy. If something were to happen to one data center we could operate out of another. Also the Microsoft network that connects these data centers to the Internet is extremely fast and have very low latency leading to great performance.

Microsoft Azure supports both PaaS and IaaS infrastructures. We use PaaS infrastructure for the initial web pages and for the databases. We use IaaS infrastructure to run Sage 300 ERP in a virtualized environment.

Microsoft Azure allows us to offer our cloud solutions to all our customers no matter where in the world they are located from data centers that are in their region or close to their region. Currently Microsoft has Azure Data Centers in the US, Ireland, Hong Kong, Singapore and Amsterdam with locations opening soon in Sydney and Melbourne.

Microsoft Virtualization Framework

Within the Azure environment we run a standard Microsoft virtualization environment that Microsoft has created for any datacenter. This is run on a number of Windows Server 2012’s. The virtualization environment is accessed via RDP8 which supports our SageID integration, supports virtualizing just the applications (rather than a Windows Desktop login), supports expected functionality like copy/paste, supports printing to local printers and supports transferring files to and from the cloud environment.

Microsoft Azure SQL

We run the Sage 300 company and system databases on Azure SQL servers which are a PaaS implementation of SQL Server. This database provides reliability performing every write to three separate places. Further as Microsoft develops out their cloud roadmap, many new features and services are planned for Azure SQL to improve the general robustness of cloud solutions.

ISVs

With our initial offering, we don’t support all Sage 300 third party solutions, but we do provide a set of some of the most popular. Generally the third party solution has to be able to run in the cloud which usually means it must be written with the Sage 300 SDK (the exception to make the rule is PrintBoss).

The third party products we support are: Orchid EFT and RMA, Pacific Technologies Purchasing Workflow and Funds Availability Wellspring PrintBoss, Aatrix Payroll Reports and Avalara Sales Tax.

Customization

Since all companies using this cloud solution are running the same Sage 300 programs, you cannot customize the system by installing any EXEs or DLLs, since then these would be used by all companies subscribing to the system. Similarly security is a much bigger concern in the cloud and we have to carefully regulate what can get into the system.

Also since this is a multi-tenant environment we can’t allow any arbitrary third party solution to be installed. For any ISV that wants to participate in this offering, we need to verify that their solution will run in our Azure setup correctly and not cause any problems for other tenants.

Summary

We’ve started letting people use our Sage 300 Online offering with a Sage Summit Preview program. Then in a couple of months we’ll be making it officially generally available. The Microsoft Azure cloud gives us much more scalability and global reach than we previously had. Integrating with SageID and using newer virtualization technology greatly improves the usability and convenience of our product. We are very excited about this project and are looking forward to adding to it as we develop it forward.