Salto: Company-as-Code

Benny Schnaider
October 2020
Company News

Starting a new company

After Pentacom, Qumranet and Ravello, Salto is the fourth company that we are co-founding. There are several ways to start a company. In our case, we aim to leverage the experience we gained from our previous company - before and after the acquisition - and apply it to the new company. For example, when we started Ravello in 2011, our view was that it was only a matter of time until most companies adopt public clouds. Based on our experience from Qumranet/Redhat, we built a service that enabled enterprises to move their apps as-is, from their private to the public cloud without any changes to their existing code. The solution was based on innovative nested virtualization technology, and the concept was very similar to the virtualization solution - KVM - that we had previously developed in Qumranet.

In Salto's case, we looked at the challenges we faced at Ravello, and the ways we solved them. We analyzed each challenge and tested it based on the following criteria:

  • How general is the challenge and how does it apply to other companies
  • How challenging is the problem from an engineering perspective? Admittedly, we are not looking to go after “trivial problems”...
  • Is there a big enough target market for the solution?
  • How easy is it for a startup to sell to this target market?

One area that popped up very quickly was business operations (BizOps).

BizOps: Understanding the space

There are several definitions for BizOps. At Salto, we are focusing on the configuration and integration of business functions (e.g. sales, marketing, finance, etc.) that together provide the business management of an organization.

Before the emergence of SaaS, business functions were serviced by ERP (Enterprise Resource Planning) vendors (such as Oracle, SAP, Microsoft) as part of a monolithic platform. Today, these business functions use tools and applications provided by several SaaS vendors. In fact, it is not uncommon to find tens, and sometimes hundreds, of SaaS tools (such as Salesforce, NetSuite, HubSpot, Zendesk, etc.) in use throughout the business functions of modern software companies.


BizOps: Defining key challenges

The main goal in BizOps is to support the company's dynamic business management needs. Sales and marketing teams are constantly optimizing and adjusting to improve value for customers and to meet enterprise goals. The biggest challenge for BizOps teams is that current tools and methodologies are outdated and inefficient in providing the flexibility and the agility required to meet business teams' needs.

Moreover, many modern companies base their business on the SaaS delivery model. In these cases, BizOps can be viewed as an extension to the basic technology that the company itself is developing. Ideally, these should be tightly integrated.

When we analyzed the way BizOps teams operate in this business environment we identified several operational challenges, mainly in the following areas:

  1. Business processes: The business logic that underlies every major process in the organization.
  2. Configuration: The ability to set, read, modify, monitor, and understand business function configurations.
  3. Integration: The integration of the various business services into a consistent business-management system.
  4. Business Intelligence (BI): The process of analyzing operational business processes and data for the purpose of making intelligent tactical and strategic business decisions.

Salto's approach to BizOps challenge: Company-as-code

Of all the operational challenges described above, Salto's main focus is on Configuration. In addition, we also offer built-in meta-data integration, as well as support for integration platforms and tools that are provided by other vendors.

We realized that proper configuration of all business services is crucial for understanding an organization’s business processes, for maintaining sound integration between services, and for generating high quality BI. Thus, our approach to configuration is holistic: The same language and tools are used to configure all supported business services (Salesforce, NetSuite, HubSpot, etc.). The result is highly increased BizOps productivity and efficiency.

Given our background, we think that the “right solution” for BizOps is to adopt the same methodologies and tools used for software development, DevOps, and testing. In other words: bring the DevOps revolution to BizOps. Moreover, by combining BizOps with DevOps we aim to synchronize between the company's business and its development activities, making it more efficient and agile. We call this approach: Company-as-Code.


Salto's Solution: How it actually works

Salto developed a declarative language called NaCl (Not Another ConfigurationLanguage), that represents configuration of various business services (such as Salesforce, NetSuite and HubSpot). The approach is similar to modern Infrastructure-as-Code tools and languages (for example, Terraform). In fact, NaCl can be thought of as a dialect of HCL (HashiCorp Configuration Language). As part of our solution, we can extract any business service configuration into NaCl and vice-versa: configure the business service from a NaCl representation. Our internal representation is formal in the sense that we can understand relationships among configuration entities. This is a very powerful approach as it enables us to perform high-level configuration operations. Here are just a few examples of things we can do:

  • Configure shared entities across business services (share customer configuration across Salesforce and Marketo, for example).
  • Check the validity of relationships across entities.
  • Perform semantic searches on configuration data.

The architecture is a generic platform with several adapters - one adapter per each business service. See enclosed figure.


Salto provides the language and the adapters as OSS (Open Source Software). Our intention is that the OSS community (SaaS vendors, end-users, integrators) will develop additional adapters for a vast number of business services.

In addition, we built a SaaS service of our own. This service essentially provides an IDE (Integrated Development Environment) for BizOps teams. It abstracts all the complexity of the underlying components (e.g. GitHub, individual SaaS configurations...) and provides additional services such as auditing, compliance, security, and more.

One key feature of our service is that you can still use the old methodologies in tandem with our service. Thus, Salto can automatically synchronize changes you have implemented in your Salesforce GUI into Salto NaCl representation, and vice-versa.


The advantage of a declarative language over low/no code

The current convention is that low-code and/or no-code are the preferred methodologies for the BizOps environment. The clear advantage of this approach is that it is relatively easy to get started, and the time-to-value (the time it takes to demonstrate initial value) is very short. In addition, the technical qualifications of the BizOps staff are usually low. On the other hand, in the long-run, development and maintenance of BizOps that are based on low-code/no-code are very difficult and inefficient.

The Salto approach is different, we use code and adopt software development tools for BizOps configuration. This approach brings all the advantages of modern software development methodologies to business operations: automation, versioning, traceability, code navigation, static validation, etc.

In fact, the basic concepts of “X-as-Code” and declarative languages are not new. We are mimicking the DevOps revolution that started over a decade ago, when IT configuration went from GUI based static configuration to dedicated code (such as Chef, Puppet) and declarative languages (such as Terraforms and CloudFormation).

For those who are concerned about the need to learn a new programming language or develop software in general - don't worry. We made every effort to ensure that your learning curve is trivial. NaCl is an easy to read (and write) configuration language. And if you are up for it, it will be a great opportunity for you to learn cool tools like Git, VSC, and Configuration Management. Otherwise, with Salto's SaaS, we help you get all the value without the need to dive into these tools. Admittedly, this is a contrarian approach these days. However, we stronglybelieve that being contrarian is not a bad thing when starting a new company.


Salto's Open Source Project

We had great experience and success with OSS (Open Source Software) in the past. The best example is KVM (Qumranet). So, naturally, we decided to go OSS again with Salto's core product. On top of our core technology, we are building the Salto SaaS offering, which is (for the most part) proprietary software. The enclosed figure shows the OSS portions of the code.

The main motivations for going OSS with the core product:

  • Enable business service vendors to write adapters for their own services.
  • Let technical people examine and check the code. In fact, if you are technical enough to use command-line and scripting language, you can get significant value from the core product AS IS.

Finally, naming a new company

Choosing a name for a company is always a challenge and creates some interesting dynamics. Some are adopting a name that provides a good idea about what the company is doing. The issue with this approach is that many (probably most) companies change their focus throughout their lifetimes and are therefore at risk of getting stuck with a wrong company name. Unless they change their name, they have to use the "elevator-ride" to explain what they are not doing. So, to be on the safe side, we have always gone with generic names that don't say much about the company focus. The only logic we do use is the ascending order of the first letter: [P] Pentacom/P-Cube, [Q] Qumranet, [R] Ravello, [S] Salto. So, Salto is “Jump" in Italian. It also has the same ring as salt, an ingredient that adds spice and character to any type of food. We like to think that we’ll do the same for the business operations space. Incidentally, the language we developed is called NaCl, which is the ionic compound also known as salt.   


What next?

If you like the story and/or want to learn more, please join us and leapfrog into a new world of BizOps. We will be happy to show you a quick demo and let you see your configuration data from (literally) a different perspective. After an initial Fetch, you will be able to search your code as text, make changes, undo changes and much more.

Salto: Company-as-Code
Benny is Salto's co-founder and Chairman. A veteran entrepreneur and investor, Benny has a track record of building and growing successful companies in networking, virtualization, public clouds and other spaces.