Zato—Agile ESB, SOA, REST and Cloud Integrations in Python
There are several ways to install a service:
Hot-deployment from the command line.
Hot-deployment from the browser.
Adding it to services-sources.txt—you can specify a path to a single module, to a Python package or a Python-dotted name by which to import it.
Let's hot-deploy what you have so far from the command line, assuming a Zato
server is installed in /opt/zato/server1. You can do this using the
$ cp linuxjournal.py /opt/zato/server1/pickup-dir $
Now in the server log:
INFO - zato.hot-deploy.create:22 - Creating tar archive INFO - zato.hot-deploy.create:22 - Uploaded package id:, ↪payload_name:[linuxjournal.py]
Here's what just happened:
The server to be deployed was stored in an SQL database, and each server from a cluster was notified of the deployment of new code.
Each server made a backup of currently deployed services and stored it in the filesystem (by default, there's a circular log of the last 100 backups kept).
Each server imported the service and made it available for use.
All those changes were introduced throughout the whole cluster with no restarts and no reconfiguration.
Using the GUI to Configure the Resources Needed
Zato's Web admin is a GUI that can be used to create server objects that services need quickly, check runtime statistics or gather information needed for debugging purposes.
The Web admin is merely a client of Zato's own API, so everything it does also can be achieved from the command line or by user-created clients making API calls.
On top of that, server-side objects can be managed "en masse" using a JSON-based configuration that can be kept in a config repository for versioning and diffing. This allows for interesting workflows, such as creating a base configuration on a development environment and exporting it to test environments where the new configuration can be merged into an existing one, and later on, all that can be exported to production.
Figures 2–6 show the following configs:
Scheduler's job to invoke the service updating the cache.
Outgoing HTTP connection definitions for connecting to treasury.gov.
HTTP channels for each client—there is no requirement that each client be given a separate channel but doing so allows one to assign different security definitions to each channel without interfering with any other.
Figure 2. Scheduler Job Creation Form
Figure 3. Outgoing HTTP Connection Creation Form
Figure 4. JSON Channel Creation Form
Figure 5. Plain XML Channel Creation Form
Figure 6. SOAP Channel Creation Form
Dariusz Suchojad is a systems architect specializing in SOA/ESB/EAI/BPM/SSO with 12 years of experience completing projects for enterprise customers in telecommunications and banking.
How to Deliver Hybrid Apps in 2 Weeks
July 21, 2015
11:00 AM PDT
Have you fully unlocked the potential of DevOps? Need some expert advice on how to accelerate application delivery on hybrid cloud?
Join this webcast featuring DevOps experts Sanjeev Sharma, IBM CTO and Distinguished Engineer; Synchrony Systems CEO Slavik Zorin; and Silverpop production operations director John Karnes as they discuss the challenges that limit application delivery innovation and how they accelerated the lifecycle to deliver hybrid apps in two weeks instead of two months. They’ll also offer tips that will help you develop a business case to get started with DevOps initiatives.
Free to Linux Journal readers.Register Now!
|Huge Package Overhaul for Debian and Ubuntu||Jul 23, 2015|
|diff -u: What's New in Kernel Development||Jul 22, 2015|
|Shashlik - a Tasty New Android Simulator||Jul 21, 2015|
|Embed Linux in Monitoring and Control Systems||Jul 20, 2015|
|The Controversy Behind Canonical's Intellectual Property Policy||Jul 17, 2015|
|Non-Linux FOSS: Portable Apps, in the Cloud!||Jul 15, 2015|
- Huge Package Overhaul for Debian and Ubuntu
- Shashlik - a Tasty New Android Simulator
- diff -u: What's New in Kernel Development
- The Controversy Behind Canonical's Intellectual Property Policy
- Home Automation with Raspberry Pi
- Embed Linux in Monitoring and Control Systems
- Purism Librem 13 Review
- One Port to Rule Them All!
- Privacy Is Personal
- General Relativity in Python